Add more inline tests

This commit is contained in:
Aleksey Kladov 2018-02-04 12:28:30 +03:00
parent b072e68ad5
commit 003ea633e9
9 changed files with 54 additions and 0 deletions

View File

@ -25,6 +25,8 @@ fn item(p: &mut Parser) {
use_item::use_item(p);
USE_ITEM
}
// test extern_crate
// extern crate foo;
EXTERN_KW if la == CRATE_KW => {
extern_crate_item(p);
EXTERN_CRATE_ITEM
@ -32,14 +34,20 @@ fn item(p: &mut Parser) {
EXTERN_KW => {
abi(p);
match p.current() {
// test extern_fn
// extern fn foo() {}
FN_KW => {
fn_item(p);
FN_ITEM
}
// test extern_block
// extern {}
L_CURLY => {
extern_block(p);
EXTERN_BLOCK
}
// test extern_struct
// extern struct Foo;
_ => {
item.abandon(p);
p.error().message("expected `fn` or `{`").emit();

View File

@ -0,0 +1 @@
extern {}

View File

@ -0,0 +1,8 @@
FILE@[0; 10)
EXTERN_BLOCK@[0; 10)
ABI@[0; 7)
EXTERN_KW@[0; 6)
WHITESPACE@[6; 7)
L_CURLY@[7; 8)
R_CURLY@[8; 9)
WHITESPACE@[9; 10)

View File

@ -0,0 +1 @@
extern fn foo() {}

View File

@ -0,0 +1,14 @@
FILE@[0; 19)
FN_ITEM@[0; 19)
ABI@[0; 7)
EXTERN_KW@[0; 6)
WHITESPACE@[6; 7)
FN_KW@[7; 9)
WHITESPACE@[9; 10)
IDENT@[10; 13) "foo"
L_PAREN@[13; 14)
R_PAREN@[14; 15)
WHITESPACE@[15; 16)
L_CURLY@[16; 17)
R_CURLY@[17; 18)
WHITESPACE@[18; 19)

View File

@ -0,0 +1 @@
extern crate foo;

View File

@ -0,0 +1,9 @@
FILE@[0; 18)
EXTERN_CRATE_ITEM@[0; 18)
EXTERN_KW@[0; 6)
WHITESPACE@[6; 7)
CRATE_KW@[7; 12)
WHITESPACE@[12; 13)
IDENT@[13; 16) "foo"
SEMI@[16; 17)
WHITESPACE@[17; 18)

View File

@ -0,0 +1 @@
extern struct Foo;

View File

@ -0,0 +1,11 @@
FILE@[0; 19)
ABI@[0; 7)
EXTERN_KW@[0; 6)
WHITESPACE@[6; 7)
err: `expected `fn` or `{``
STRUCT_ITEM@[7; 19)
STRUCT_KW@[7; 13)
WHITESPACE@[13; 14)
IDENT@[14; 17) "Foo"
SEMI@[17; 18)
WHITESPACE@[18; 19)