rust/src/grammar
Vadim Petrochenkov f284cbc7af Cleanup interfaces of Name, SyntaxContext and Ident
Make sure Name, SyntaxContext and Ident are passed by value
Make sure Idents don't serve as keys (or parts of keys) in maps, Ident comparison is not well defined
2015-09-24 23:05:02 +03:00
..
.gitignore
check.sh
lexer.l Use consistent terminology for byte string literals 2015-09-03 10:54:53 +03:00
parser-lalr-main.c
parser-lalr.y Use consistent terminology for byte string literals 2015-09-03 10:54:53 +03:00
raw-string-literal-ambiguity.md
README.md
RustLexer.g4 Use consistent terminology for byte string literals 2015-09-03 10:54:53 +03:00
testparser.py
tokens.h Use consistent terminology for byte string literals 2015-09-03 10:54:53 +03:00
verify.rs Cleanup interfaces of Name, SyntaxContext and Ident 2015-09-24 23:05:02 +03:00
xidcontinue.g4
xidstart.g4

Reference grammar.

Uses antlr4 and a custom Rust tool to compare ASTs/token streams generated. You can use the check-lexer make target to run all of the available tests.

To use manually:

antlr4 RustLexer.g4
javac *.java
rustc -O verify.rs
for file in ../*/**.rs; do
    echo $file;
    grun RustLexer tokens -tokens < "$file" | ./verify "$file" RustLexer.tokens || break
done

Note That the ../*/**.rs glob will match every *.rs file in the above directory and all of its recursive children. This is a zsh extension.