【发布时间】:2014-04-29 23:40:20
【问题描述】:
我正在开发一个编译器项目,我需要用 C 语言实现函数: 首先,我使用的是 Racket 解析器工具 (http://docs.racket-lang.org/parser-tools/LALR_1__Parsers.html?q=~a)
无论如何,我目前在语法中的函数声明规则是:
(fun-declaration
[(type-specifier FNCT \( \) compound-stmt)
(begin
$1
(printf "~nA function is being declared~n")
$5
)])
我的问题是,在开始块中的代码之前正在评估复合 stmt(这是一个占位符打印,实际代码具有与问题无关的程序集)。这意味着我为函数设置/标题打印到文件的任何程序集都是在复合 stmt 之后编写的,其中复合 stmt 是 {code code code...}
如何在开始块中获取代码以在复合 stmt 之前进行评估?
【问题讨论】:
标签: parsing compilation racket lexical-analysis operator-precedence