解析器实现

use*_*576 5 parsing prolog

嗨,我正在尝试用这样的语法实现一个简单语言的解析器.

program ::= "program" declarations "begin" statements "end"
declaration ::= "var" ident "as" type
type ::= "string" | "int"
Run Code Online (Sandbox Code Playgroud)

我完成了前两个,我怎么写类型语法?

program( prog( DECLS, STATS ) ) -->
[ 'program' ], declarations( DECLS ),
[ 'begin' ], statements( STATS ), [ 'end' ].

declaration( decl( IDENT, TYPE ) ) -->
[ 'var' ], ident( IDENT ), [ 'as' ], type( TYPE ).
Run Code Online (Sandbox Code Playgroud)