Skip to content

corvofeng/compiler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

编译器课程设计

项目文档

程序运行

mkdir build
cd build
cmake ..
make -j4

Lex运行

./bin/lex_rel input/require.l

gcc lex.yy.c -o out

./out input/main.c

lex主要是将require.l文件解析, 然后再生成lex.yy.c文件

Yacc运行

# 使用词法分析工具生成待解析文件
./out input/yacc_test.c > lex.out

./bin/yacc_rel ./input/require.y lex.out

Yacc输入

<(,->
<$NUM,23>
<+,->
<$NUM,16>
<),->
<*,->
<$NUM,3>
<-,->
<$NUM,12>
<+,->
<$NUM,4>

Yacc运行结果

                  0                                                     s1
(                 0  1                     0                            s6
( a               0  1  6                  0  23                        A->a
( A               0  1  5                  0  23                        s14
( A +             0  1  5 14               0  23   0                    s6
( A + a           0  1  5 14  6            0  23   0  16                A->a
( A + A           0  1  5 14 23            0  23   0  16                A->A+A
( A               0  1  5                  0  39                        s12
( A )             0  1  5 12               0  39   0                    A->(A)
A                 0  2                    39                            s7
A *               0  2  7                 39   0                        s3
A * a             0  2  7  3              39   0   3                    A->a
A * A             0  2  7 17              39   0   3                    A->A*A
A                 0  2                   117                            s9
A -               0  2  9                117   0                        s3
A - a             0  2  9  3             117   0  12                    A->a
A - A             0  2  9 19             117   0  12                    s8
A - A +           0  2  9 19  8          117   0  12   0                s3
A - A + a         0  2  9 19  8  3       117   0  12   0   4            A->a
A - A + A         0  2  9 19  8 18       117   0  12   0   4            A->A+A
A - A             0  2  9 19             117   0  16                    A->A-A
A                 0  2                   101                            Accept

About

东南大学大三编译原理课程设计

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •