コード例 #1
0
ファイル: parser.go プロジェクト: 272489711/e8vm
func newParser(f string, r io.Reader) (*parser, *lex8.Recorder) {
	ret := new(parser)

	var x lex8.Tokener = newLexer(f, r)
	x = newSemiInserter(x)
	rec := lex8.NewRecorder(x)
	ret.x = lex8.NewCommentRemover(rec)
	ret.Parser = lex8.NewParser(ret.x, Types)
	return ret, rec
}
コード例 #2
0
ファイル: parser.go プロジェクト: NickDaison/e8vm
func makeTokener(f string, r io.Reader, golike bool) (
	lex8.Tokener, *lex8.Recorder,
) {
	var x lex8.Tokener = newLexer(f, r)

	x = newSemiInserter(x)

	kw := lex8.NewKeyworder(x)
	kw.Ident = Ident
	kw.Keyword = Keyword
	if !golike {
		kw.Keywords = gKeywords
	} else {
		kw.Keywords = golikeKeywords
	}

	rec := lex8.NewRecorder(kw)
	return lex8.NewCommentRemover(rec), rec
}