func newLineParser(fd *pbmeta.FieldDescriptor, value string) *lineParser { l := golexer.NewLexer() l.AddMatcher(golexer.NewNumeralMatcher(Token_Numeral)) l.AddMatcher(golexer.NewStringMatcher(Token_String)) l.AddIgnoreMatcher(golexer.NewWhiteSpaceMatcher(Token_WhiteSpace)) l.AddIgnoreMatcher(golexer.NewLineEndMatcher(Token_LineEnd)) l.AddIgnoreMatcher(golexer.NewUnixStyleCommentMatcher(Token_UnixStyleComment)) l.AddMatcher(golexer.NewSignMatcher(Token_True, "true")) l.AddMatcher(golexer.NewSignMatcher(Token_False, "false")) l.AddMatcher(golexer.NewSignMatcher(Token_Comma, ":")) l.AddMatcher(golexer.NewIdentifierMatcher(Token_Identifier)) l.AddMatcher(golexer.NewUnknownMatcher(Token_Unknown)) l.Start(value) return &lineParser{ lexer: l, fd: fd, } }
func newStructParser(value string) *structParser { l := golexer.NewLexer() l.AddMatcher(golexer.NewNumeralMatcher(Token_Numeral)) l.AddMatcher(golexer.NewStringMatcher(Token_String)) l.AddIgnoreMatcher(golexer.NewWhiteSpaceMatcher(Token_WhiteSpace)) l.AddIgnoreMatcher(golexer.NewLineEndMatcher(Token_LineEnd)) l.AddIgnoreMatcher(golexer.NewUnixStyleCommentMatcher(Token_UnixStyleComment)) l.AddMatcher(golexer.NewSignMatcher(Token_Comma, ":")) l.AddMatcher(golexer.NewIdentifierMatcher(Token_Identifier)) l.AddMatcher(golexer.NewUnknownMatcher(Token_Unknown)) l.Start(value) return &structParser{ golexer.NewParser(l), } }