ampersand -> amp

This commit is contained in:
Aleksey Kladov 2018-08-05 18:18:02 +03:00
parent 720861bcff
commit d44169ab1e
17 changed files with 157 additions and 35 deletions

View File

@ -15,7 +15,7 @@ Grammar(
["~", "TILDE"],
["?", "QUESTION"],
["$", "DOLLAR"],
["&", "AMPERSAND"],
["&", "AMP"],
["|", "PIPE"],
["+", "PLUS"],
["*", "STAR"],
@ -41,7 +41,7 @@ Grammar(
[">=", "GTEQ"],
["+=", "PLUSEQ"],
["-=", "MINUSEQ"],
["&&", "AMPERSANDAMPERSAND"],
["&&", "AMPAMP"],
["||", "PIPEPIPE"],
],
keywords: [

View File

@ -68,8 +68,8 @@ fn current_op(p: &Parser) -> (u8, Op) {
if p.at_compound2(PIPE, PIPE) {
return (3, Op::Composite(PIPEPIPE, 2));
}
if p.at_compound2(AMPERSAND, AMPERSAND) {
return (4, Op::Composite(AMPERSANDAMPERSAND, 2));
if p.at_compound2(AMP, AMP) {
return (4, Op::Composite(AMPAMP, 2));
}
if p.at_compound2(L_ANGLE, EQ) {
return (5, Op::Composite(LTEQ, 2));
@ -113,7 +113,7 @@ fn expr_bp(p: &mut Parser, r: Restrictions, bp: u8) {
const UNARY_EXPR_FIRST: TokenSet =
token_set_union![
token_set![AMPERSAND, STAR, EXCL],
token_set![AMP, STAR, EXCL],
atom::ATOM_EXPR_FIRST,
];
@ -125,7 +125,7 @@ fn lhs(p: &mut Parser, r: Restrictions) -> Option<CompletedMarker> {
// let _ = &1;
// let _ = &mut &f();
// }
AMPERSAND => {
AMP => {
m = p.start();
p.bump();
p.eat(MUT_KW);

View File

@ -53,10 +53,10 @@ fn self_param(p: &mut Parser) {
let la3 = p.nth(3);
let n_toks = match (p.current(), la1, la2, la3) {
(SELF_KW, _, _, _) => 1,
(AMPERSAND, SELF_KW, _, _) => 2,
(AMPERSAND, MUT_KW, SELF_KW, _) => 3,
(AMPERSAND, LIFETIME, SELF_KW, _) => 3,
(AMPERSAND, LIFETIME, MUT_KW, SELF_KW) => 4,
(AMP, SELF_KW, _, _) => 2,
(AMP, MUT_KW, SELF_KW, _) => 3,
(AMP, LIFETIME, SELF_KW, _) => 3,
(AMP, LIFETIME, MUT_KW, SELF_KW) => 4,
_ => return,
};
let m = p.start();

View File

@ -15,7 +15,7 @@ pub(super) fn pattern(p: &mut Parser) {
match la0 {
UNDERSCORE => placeholder_pat(p),
AMPERSAND => ref_pat(p),
AMP => ref_pat(p),
_ => p.err_and_bump("expected pattern"),
}
}
@ -108,7 +108,7 @@ fn placeholder_pat(p: &mut Parser) {
// let &mut b = ();
// }
fn ref_pat(p: &mut Parser) {
assert!(p.at(AMPERSAND));
assert!(p.at(AMP));
let m = p.start();
p.bump();
p.eat(MUT_KW);

View File

@ -6,7 +6,7 @@ pub(super) fn type_(p: &mut Parser) {
EXCL => never_type(p),
STAR => pointer_type(p),
L_BRACK => array_or_slice_type(p),
AMPERSAND => reference_type(p),
AMP => reference_type(p),
UNDERSCORE => placeholder_type(p),
FN_KW | UNSAFE_KW | EXTERN_KW => fn_pointer_type(p),
FOR_KW => for_type(p),
@ -130,7 +130,7 @@ fn array_or_slice_type(p: &mut Parser) {
// type B = &'static ();
// type C = &mut ();
fn reference_type(p: &mut Parser) {
assert!(p.at(AMPERSAND));
assert!(p.at(AMP));
let m = p.start();
p.bump();
p.eat(LIFETIME);

View File

@ -20,7 +20,7 @@ pub enum SyntaxKind {
TILDE,
QUESTION,
DOLLAR,
AMPERSAND,
AMP,
PIPE,
PLUS,
STAR,
@ -44,7 +44,7 @@ pub enum SyntaxKind {
GTEQ,
PLUSEQ,
MINUSEQ,
AMPERSANDAMPERSAND,
AMPAMP,
PIPEPIPE,
USE_KW,
FN_KW,
@ -251,7 +251,7 @@ impl SyntaxKind {
TILDE => &SyntaxInfo { name: "TILDE" },
QUESTION => &SyntaxInfo { name: "QUESTION" },
DOLLAR => &SyntaxInfo { name: "DOLLAR" },
AMPERSAND => &SyntaxInfo { name: "AMPERSAND" },
AMP => &SyntaxInfo { name: "AMP" },
PIPE => &SyntaxInfo { name: "PIPE" },
PLUS => &SyntaxInfo { name: "PLUS" },
STAR => &SyntaxInfo { name: "STAR" },
@ -275,7 +275,7 @@ impl SyntaxKind {
GTEQ => &SyntaxInfo { name: "GTEQ" },
PLUSEQ => &SyntaxInfo { name: "PLUSEQ" },
MINUSEQ => &SyntaxInfo { name: "MINUSEQ" },
AMPERSANDAMPERSAND => &SyntaxInfo { name: "AMPERSANDAMPERSAND" },
AMPAMP => &SyntaxInfo { name: "AMPAMP" },
PIPEPIPE => &SyntaxInfo { name: "PIPEPIPE" },
USE_KW => &SyntaxInfo { name: "USE_KW" },
FN_KW => &SyntaxInfo { name: "FN_KW" },
@ -473,7 +473,7 @@ impl SyntaxKind {
'~' => TILDE,
'?' => QUESTION,
'$' => DOLLAR,
'&' => AMPERSAND,
'&' => AMP,
'|' => PIPE,
'+' => PLUS,
'*' => STAR,
@ -502,7 +502,7 @@ impl SyntaxKind {
TILDE => "~",
QUESTION => "?",
DOLLAR => "$",
AMPERSAND => "&",
AMP => "&",
PIPE => "|",
PLUS => "+",
STAR => "*",
@ -526,7 +526,7 @@ impl SyntaxKind {
GTEQ => ">=",
PLUSEQ => "+=",
MINUSEQ => "-=",
AMPERSANDAMPERSAND => "&&",
AMPAMP => "&&",
PIPEPIPE => "||",
USE_KW => "use",

View File

@ -28,7 +28,7 @@ QUESTION 1 "?"
WHITESPACE 1 " "
DOLLAR 1 "$"
WHITESPACE 1 " "
AMPERSAND 1 "&"
AMP 1 "&"
WHITESPACE 1 " "
PIPE 1 "|"
WHITESPACE 1 " "

View File

@ -8,7 +8,7 @@ FILE@[0; 54)
EQ@[7; 8)
REFERENCE_TYPE@[8; 12)
WHITESPACE@[8; 9)
AMPERSAND@[9; 10)
AMP@[9; 10)
TUPLE_TYPE@[10; 12)
L_PAREN@[10; 11)
R_PAREN@[11; 12)
@ -23,7 +23,7 @@ FILE@[0; 54)
EQ@[21; 22)
REFERENCE_TYPE@[22; 34)
WHITESPACE@[22; 23)
AMPERSAND@[23; 24)
AMP@[23; 24)
LIFETIME@[24; 31) "'static"
TUPLE_TYPE@[31; 34)
WHITESPACE@[31; 32)
@ -40,7 +40,7 @@ FILE@[0; 54)
EQ@[43; 44)
REFERENCE_TYPE@[44; 52)
WHITESPACE@[44; 45)
AMPERSAND@[45; 46)
AMP@[45; 46)
MUT_KW@[46; 49)
TUPLE_TYPE@[49; 52)
WHITESPACE@[49; 50)

View File

@ -15,7 +15,7 @@ FILE@[0; 52)
LET_KW@[16; 19)
REF_PAT@[19; 23)
WHITESPACE@[19; 20)
AMPERSAND@[20; 21)
AMP@[20; 21)
BIND_PAT@[21; 23)
NAME@[21; 23)
IDENT@[21; 22) "a"
@ -31,7 +31,7 @@ FILE@[0; 52)
LET_KW@[33; 36)
REF_PAT@[36; 44)
WHITESPACE@[36; 37)
AMPERSAND@[37; 38)
AMP@[37; 38)
MUT_KW@[38; 41)
BIND_PAT@[41; 44)
NAME@[41; 44)

View File

@ -20,7 +20,7 @@ FILE@[0; 52)
EQ@[21; 22)
REF_EXPR@[22; 25)
WHITESPACE@[22; 23)
AMPERSAND@[23; 24)
AMP@[23; 24)
LITERAL@[24; 25)
INT_NUMBER@[24; 25) "1"
SEMI@[25; 26)
@ -34,11 +34,11 @@ FILE@[0; 52)
EQ@[37; 38)
REF_EXPR@[38; 48)
WHITESPACE@[38; 39)
AMPERSAND@[39; 40)
AMP@[39; 40)
MUT_KW@[40; 43)
REF_EXPR@[43; 48)
WHITESPACE@[43; 44)
AMPERSAND@[44; 45)
AMP@[44; 45)
CALL_EXPR@[45; 48)
PATH_EXPR@[45; 46)
PATH@[45; 46)

View File

@ -65,7 +65,7 @@ FILE@[0; 89)
PARAM_LIST@[76; 84)
L_PAREN@[76; 77)
SELF_PARAM@[77; 82)
AMPERSAND@[77; 78)
AMP@[77; 78)
SELF_KW@[78; 82)
R_PAREN@[82; 83)
WHITESPACE@[83; 84)

View File

@ -33,7 +33,7 @@ FILE@[0; 106)
PARAM_LIST@[35; 44)
L_PAREN@[35; 36)
SELF_PARAM@[36; 41)
AMPERSAND@[36; 37)
AMP@[36; 37)
SELF_KW@[37; 41)
COMMA@[41; 42)
R_PAREN@[42; 43)
@ -50,7 +50,7 @@ FILE@[0; 106)
PARAM_LIST@[55; 67)
L_PAREN@[55; 56)
SELF_PARAM@[56; 64)
AMPERSAND@[56; 57)
AMP@[56; 57)
LIFETIME@[57; 59) "'a"
WHITESPACE@[59; 60)
SELF_KW@[60; 64)
@ -69,7 +69,7 @@ FILE@[0; 106)
PARAM_LIST@[78; 101)
L_PAREN@[78; 79)
SELF_PARAM@[79; 91)
AMPERSAND@[79; 80)
AMP@[79; 80)
LIFETIME@[80; 82) "'a"
WHITESPACE@[82; 83)
MUT_KW@[83; 86)

View File

@ -17,7 +17,7 @@ FILE@[0; 23)
DEREF_EXPR@[16; 19)
STAR@[16; 17)
REF_EXPR@[17; 19)
AMPERSAND@[17; 18)
AMP@[17; 18)
LITERAL@[18; 19)
INT_NUMBER@[18; 19) "1"
SEMI@[19; 20)

View File

@ -0,0 +1,6 @@
fn foo() {
x += 1;
1 + 1 <= 2 * 3;
z -= 3 >= 0;
true || true && false;
}

View File

@ -0,0 +1,89 @@
FILE@[0; 89)
FN_ITEM@[0; 89)
FN_KW@[0; 2)
NAME@[2; 6)
WHITESPACE@[2; 3)
IDENT@[3; 6) "foo"
PARAM_LIST@[6; 9)
L_PAREN@[6; 7)
R_PAREN@[7; 8)
WHITESPACE@[8; 9)
BLOCK_EXPR@[9; 89)
L_CURLY@[9; 10)
EXPR_STMT@[10; 27)
BIN_EXPR@[10; 21)
PATH_EXPR@[10; 17)
PATH@[10; 17)
PATH_SEGMENT@[10; 17)
NAME_REF@[10; 17)
WHITESPACE@[10; 15)
IDENT@[15; 16) "x"
WHITESPACE@[16; 17)
PLUSEQ@[17; 19)
LITERAL@[19; 21)
WHITESPACE@[19; 20)
INT_NUMBER@[20; 21) "1"
SEMI@[21; 22)
WHITESPACE@[22; 27)
EXPR_STMT@[27; 47)
BIN_EXPR@[27; 41)
BIN_EXPR@[27; 33)
LITERAL@[27; 29)
INT_NUMBER@[27; 28) "1"
WHITESPACE@[28; 29)
PLUS@[29; 30)
LITERAL@[30; 33)
WHITESPACE@[30; 31)
INT_NUMBER@[31; 32) "1"
WHITESPACE@[32; 33)
LTEQ@[33; 35)
BIN_EXPR@[35; 41)
LITERAL@[35; 38)
WHITESPACE@[35; 36)
INT_NUMBER@[36; 37) "2"
WHITESPACE@[37; 38)
STAR@[38; 39)
LITERAL@[39; 41)
WHITESPACE@[39; 40)
INT_NUMBER@[40; 41) "3"
SEMI@[41; 42)
WHITESPACE@[42; 47)
EXPR_STMT@[47; 64)
BIN_EXPR@[47; 58)
PATH_EXPR@[47; 49)
PATH@[47; 49)
PATH_SEGMENT@[47; 49)
NAME_REF@[47; 49)
IDENT@[47; 48) "z"
WHITESPACE@[48; 49)
MINUSEQ@[49; 51)
BIN_EXPR@[51; 58)
LITERAL@[51; 54)
WHITESPACE@[51; 52)
INT_NUMBER@[52; 53) "3"
WHITESPACE@[53; 54)
GTEQ@[54; 56)
LITERAL@[56; 58)
WHITESPACE@[56; 57)
INT_NUMBER@[57; 58) "0"
SEMI@[58; 59)
WHITESPACE@[59; 64)
EXPR_STMT@[64; 87)
BIN_EXPR@[64; 85)
LITERAL@[64; 69)
TRUE_KW@[64; 68)
WHITESPACE@[68; 69)
PIPEPIPE@[69; 71)
BIN_EXPR@[71; 85)
LITERAL@[71; 77)
WHITESPACE@[71; 72)
TRUE_KW@[72; 76)
WHITESPACE@[76; 77)
AMPAMP@[77; 79)
LITERAL@[79; 85)
WHITESPACE@[79; 80)
FALSE_KW@[80; 85)
SEMI@[85; 86)
WHITESPACE@[86; 87)
R_CURLY@[87; 88)
WHITESPACE@[88; 89)

View File

@ -0,0 +1,3 @@
fn foo() {
loop {};
}

View File

@ -0,0 +1,24 @@
FILE@[0; 26)
FN_ITEM@[0; 26)
FN_KW@[0; 2)
NAME@[2; 6)
WHITESPACE@[2; 3)
IDENT@[3; 6) "foo"
PARAM_LIST@[6; 9)
L_PAREN@[6; 7)
R_PAREN@[7; 8)
WHITESPACE@[8; 9)
BLOCK_EXPR@[9; 26)
L_CURLY@[9; 10)
EXPR_STMT@[10; 24)
LOOP_EXPR@[10; 22)
WHITESPACE@[10; 15)
LOOP_KW@[15; 19)
BLOCK_EXPR@[19; 22)
WHITESPACE@[19; 20)
L_CURLY@[20; 21)
R_CURLY@[21; 22)
SEMI@[22; 23)
WHITESPACE@[23; 24)
R_CURLY@[24; 25)
WHITESPACE@[25; 26)