diff --git a/lexer.l b/lexer.l index e604adab..fe0049a9 100644 --- a/lexer.l +++ b/lexer.l @@ -107,7 +107,7 @@ } -[[:alnum:]]+ { yylval->literal = jv_string(yytext); return IDENT;} +[a-zA-Z_][a-zA-Z_0-9]* { yylval->literal = jv_string(yytext); return IDENT;} [ \n\t]+ {} diff --git a/testdata b/testdata index 8a289973..307eaa62 100644 --- a/testdata +++ b/testdata @@ -61,6 +61,10 @@ null {"foo": {"bar": 42}, "bar": "badvalue"} 42 +.foo_bar +{"foo_bar": 2} +2 + .["foo"].bar {"foo": {"bar": 42}, "bar": "badvalue"} 42