A Lexical-Analyzer Generator written in Java. The target language is C++.
Its core tech is reverse polish notation.
Use maven to package.
We need you to write a lex file. Here is an example lex file of ANSI C.
Running JAR need two arguments.
path/to/intputFile path/to/outputFile
The input file is your lex file.
The output file is the C++ lexer code we generated.
And you will get a head file yy.tab.h
.
void count();
int yywrap();
void comment();
int check_type();
int yylex();
Feel free to modify them.
The example using the example lex file of ANSI C. Run JAR with it.
$ java -jar SeuLex-1.0.jar path/to/example2.lex path/to/lex.cpp
Then we will get 2 files like lex.cpp
and yy.tab.h
. Compile them in a c++ compiler. Assume the executable file we get is lex.exe
, execute it with one argument which is the file you want to perform lexical analysis. In addition, you can take no arguments to execute lex.exe
which allows you to type your code in the console directly.
Input code segment
int main() {return 0;}
Output in console
Match word: int ID: 142
Match word: ID: 0
Match word: main ID: 10000
Match word: ( ID: 40
Match word: ) ID: 41
Match word: ID: 0
Match word: { ID: 123
Match word: return ID: 181
Match word: ID: 0
Match word: 0 ID: 128
Match word: ; ID: 59
Match word: } ID: 125