In this lab you can first try to run simple.lex, mylexer2.lex, and english.lex. After you get familiar with JLex specification and scanner generation process, you can start to work on assignment 2.
In this assignment, it is more concenient to use command line, not IDEs.javac Main.java
lsor in windows using the dir command:
dir`
You can run the scanner generator by typing the following commands in your 2140 directory. Note that you should not run inside JLex directory.
java JLex.Main lexfileName
For example, you can try to generate a scanner from simple.lex sepcification. Before running the following, you should download the simple.lex file from our course web site:
java JLex.Main simple.lexMake sure that when you type the command you are in the directory one layer above JLex.
Notice what file is generated by JLex. You should see that a new file (the scanner) called lexfileName.java (e.g., simple.lex.java) is produced. Now you can compile and run the scanner.
take a look at the file simple.lex.java. We will notice the class name is MyLexer;
Change the file name of simple.lex.java to MyLexer.java bytyping:
mv simple.lex.java MyLexer.java
Then you can compile the scanner (e.g. MyLexer.java) by typing:
javac MyLexer.java
Or alternatively you can directly compile the generated code without changing its file name by:
javac simple.lex.java
look at the files that are generated. In some cases several classes may be generated;
now you can run the scanner by:
java MyLexernotice that in general the Main method can be in other classes;
input something on the keyboard to see what happens.
Now you have completed the process, you should look the lex spec, the scanner generated, and try to change the lex to produce different scanners.