LALRPOP における型推論と構文糖衣
LALRPOP では、アクションコードを省略可能な構文糖衣を提供しており、これによりパーサ定義をより簡潔に記述できる。特に、他の非終端記号から値をそのまま受け取るようなケースでは、明示的なアクションコードを書く必要がない。
例えば、次のような Term の定義があるとする:
pub Term: i32 = {
<n:Num> => n,
"(" <t:Term> ")" => t,
};
...
6月24日 00:49 投稿
カスタムレキサーの作成
Whitespace言語のパースにおけるレキサー実装
Whitespace言語をパースする際、次のような文法構造を想定します:
pub Program = <Statement*>;
Statement: ast::Stmt = {
" " <StackOp>,
"\t" " " <MathOp>,
"\t" "\t" <HeapOp>,
"\n" <FlowCtrl>,
"\t" "\n" <Io>,
};
StackOp: ast::Stmt = {
" " <Nu ...
5月23日 21:29 投稿