Fix up the syntax tree for macro 2.0

This commit is contained in:
Lukas Wirth 2024-07-03 10:41:19 +02:00
parent 26c7bfd0b4
commit 013b6a883f
9 changed files with 226 additions and 169 deletions

View file

@ -5,15 +5,14 @@ SOURCE_FILE
NAME
IDENT "m"
TOKEN_TREE
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "i"
COLON ":"
IDENT "ident"
R_PAREN ")"
WHITESPACE " "
TOKEN_TREE
L_CURLY "{"
R_CURLY "}"
L_PAREN "("
DOLLAR "$"
IDENT "i"
COLON ":"
IDENT "ident"
R_PAREN ")"
WHITESPACE " "
TOKEN_TREE
L_CURLY "{"
R_CURLY "}"
WHITESPACE "\n"

View file

@ -39,16 +39,15 @@ SOURCE_FILE
NAME
IDENT "m"
TOKEN_TREE
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
COLON ":"
IDENT "ident"
R_PAREN ")"
WHITESPACE " "
TOKEN_TREE
L_CURLY "{"
R_CURLY "}"
L_PAREN "("
DOLLAR "$"
COLON ":"
IDENT "ident"
R_PAREN ")"
WHITESPACE " "
TOKEN_TREE
L_CURLY "{"
R_CURLY "}"
WHITESPACE "\n"
FN
VISIBILITY

View file

@ -5,51 +5,50 @@ SOURCE_FILE
NAME
IDENT "parse_use_trees"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "s"
COLON ":"
IDENT "expr"
R_PAREN ")"
IDENT "s"
COLON ":"
IDENT "expr"
R_PAREN ")"
COMMA ","
STAR "*"
WHITESPACE " "
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
COMMA ","
STAR "*"
WHITESPACE " "
R_PAREN ")"
STAR "*"
R_PAREN ")"
WHITESPACE " "
TOKEN_TREE
L_CURLY "{"
WHITESPACE "\n "
IDENT "vec"
BANG "!"
TOKEN_TREE
L_BRACK "["
WHITESPACE "\n "
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
IDENT "parse_use_tree"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "s"
R_PAREN ")"
COMMA ","
R_PAREN ")"
STAR "*"
R_PAREN ")"
WHITESPACE " "
TOKEN_TREE
L_CURLY "{"
WHITESPACE "\n "
IDENT "vec"
BANG "!"
TOKEN_TREE
L_BRACK "["
WHITESPACE "\n "
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
IDENT "parse_use_tree"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "s"
R_PAREN ")"
COMMA ","
R_PAREN ")"
STAR "*"
WHITESPACE "\n "
R_BRACK "]"
WHITESPACE "\n"
R_CURLY "}"
R_BRACK "]"
WHITESPACE "\n"
R_CURLY "}"
WHITESPACE "\n\n"
FN
ATTR
@ -80,79 +79,62 @@ SOURCE_FILE
NAME
IDENT "test_merge"
TOKEN_TREE
L_PAREN "("
TOKEN_TREE
L_PAREN "("
TOKEN_TREE
L_BRACK "["
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "input"
COLON ":"
IDENT "expr"
R_PAREN ")"
COMMA ","
STAR "*"
WHITESPACE " "
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
COMMA ","
R_PAREN ")"
STAR "*"
R_BRACK "]"
COMMA ","
WHITESPACE " "
TOKEN_TREE
L_BRACK "["
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "output"
COLON ":"
IDENT "expr"
R_PAREN ")"
COMMA ","
STAR "*"
WHITESPACE " "
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
COMMA ","
R_PAREN ")"
STAR "*"
R_BRACK "]"
R_PAREN ")"
WHITESPACE " "
TOKEN_TREE
L_CURLY "{"
WHITESPACE "\n "
IDENT "assert_eq"
BANG "!"
L_BRACK "["
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "input"
COLON ":"
IDENT "expr"
R_PAREN ")"
COMMA ","
STAR "*"
WHITESPACE " "
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
WHITESPACE "\n "
IDENT "merge_use_trees"
TOKEN_TREE
L_PAREN "("
IDENT "parse_use_trees"
BANG "!"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "input"
COMMA ","
R_PAREN ")"
STAR "*"
R_PAREN ")"
R_PAREN ")"
COMMA ","
WHITESPACE "\n "
R_PAREN ")"
STAR "*"
R_BRACK "]"
COMMA ","
WHITESPACE " "
TOKEN_TREE
L_BRACK "["
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "output"
COLON ":"
IDENT "expr"
R_PAREN ")"
COMMA ","
STAR "*"
WHITESPACE " "
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
COMMA ","
R_PAREN ")"
STAR "*"
R_BRACK "]"
R_PAREN ")"
WHITESPACE " "
TOKEN_TREE
L_CURLY "{"
WHITESPACE "\n "
IDENT "assert_eq"
BANG "!"
TOKEN_TREE
L_PAREN "("
WHITESPACE "\n "
IDENT "merge_use_trees"
TOKEN_TREE
L_PAREN "("
IDENT "parse_use_trees"
BANG "!"
TOKEN_TREE
@ -161,17 +143,33 @@ SOURCE_FILE
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "output"
IDENT "input"
COMMA ","
R_PAREN ")"
STAR "*"
R_PAREN ")"
COMMA ","
WHITESPACE "\n "
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n "
R_CURLY "}"
COMMA ","
WHITESPACE "\n "
IDENT "parse_use_trees"
BANG "!"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
TOKEN_TREE
L_PAREN "("
DOLLAR "$"
IDENT "output"
COMMA ","
R_PAREN ")"
STAR "*"
R_PAREN ")"
COMMA ","
WHITESPACE "\n "
R_PAREN ")"
SEMICOLON ";"
WHITESPACE "\n "
R_CURLY "}"
WHITESPACE "\n"
R_CURLY "}"
WHITESPACE "\n"