文件名称:lex_simple
介绍说明--下载内容均来自于网络,请自行研究使用
简单的lex编程,详细见英文描述
Running the Lex program
1. Write the Lex specifications as described above in a file, say, prog1.l
2. On moon.cse.yzu.edu.tw, do the following:
flex prog1.l (Produces lex.yy.c as the output)
gcc lex.yy.c -lfl (Compile the C file and link with Lex library)
a.out (Run the executable, and type the input, followed by )
or, if the input is in a file, say, hw1.in, then do the following:
a.out < hw1.in-Write the LEX program as per the specifications below.
--------------------------------------------------------------------------------
Recognize Action
Arithmetic (+,-,*, /) Print the operator along with the line number
Relational (<, <=, >, >=, !=, ==) Print the operator along with the line number
Assignment (=) Print the operator along with the line number
Parenthesis (left and right ones) No action for now
Some set of Reserved Words (for, if, while, int, ...) Print the Reserved word along with the line number
Identifiers Insert into a table and keep track of the line number
Numbers Print the number (should handle integer and floating point) along with the line number
Keep explicit track of the current line number by recognizing "\n" as a separate token. Do not use the LEX line number variable.
At the end, print the number of distinct identifiers and the line numbers on which they occur.
Sample Input:
int i, n, sum
i =
Running the Lex program
1. Write the Lex specifications as described above in a file, say, prog1.l
2. On moon.cse.yzu.edu.tw, do the following:
flex prog1.l (Produces lex.yy.c as the output)
gcc lex.yy.c -lfl (Compile the C file and link with Lex library)
a.out (Run the executable, and type the input, followed by )
or, if the input is in a file, say, hw1.in, then do the following:
a.out < hw1.in-Write the LEX program as per the specifications below.
--------------------------------------------------------------------------------
Recognize Action
Arithmetic (+,-,*, /) Print the operator along with the line number
Relational (<, <=, >, >=, !=, ==) Print the operator along with the line number
Assignment (=) Print the operator along with the line number
Parenthesis (left and right ones) No action for now
Some set of Reserved Words (for, if, while, int, ...) Print the Reserved word along with the line number
Identifiers Insert into a table and keep track of the line number
Numbers Print the number (should handle integer and floating point) along with the line number
Keep explicit track of the current line number by recognizing "\n" as a separate token. Do not use the LEX line number variable.
At the end, print the number of distinct identifiers and the line numbers on which they occur.
Sample Input:
int i, n, sum
i =
(系统自动生成,下载前可以参看下载内容)
下载文件列表
hw1
hw1.in
lex.yy.c
hw1.l
hw1.in
lex.yy.c
hw1.l