From 2f6b67798ea507ec20a75d597fe27cf0ce75a71f Mon Sep 17 00:00:00 2001 From: Tobias Lutke Date: Tue, 30 Oct 2012 21:41:56 -0400 Subject: [PATCH] fixed but with single char identifiers --- ext/liquid/liquid_context.c | 2 +- ext/liquid/liquid_context.leg | 2 +- test/liquid/parser_test.rb | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/ext/liquid/liquid_context.c b/ext/liquid/liquid_context.c index 3690416..ef1c0cd 100644 --- a/ext/liquid/liquid_context.c +++ b/ext/liquid/liquid_context.c @@ -561,7 +561,7 @@ YY_RULE(int) yy_rangelet(yycontext *ctx) } YY_RULE(int) yy_identifier(yycontext *ctx) { int yypos0= ctx->pos, yythunkpos0= ctx->thunkpos; - yyprintf((stderr, "%s\n", "identifier")); if (!yymatchClass(ctx, (unsigned char *)"\000\000\000\000\000\000\000\000\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l15; if (!yymatchClass(ctx, (unsigned char *)"\000\000\000\000\000\040\377\003\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l15; + yyprintf((stderr, "%s\n", "identifier")); if (!yymatchClass(ctx, (unsigned char *)"\000\000\000\000\000\000\000\000\376\377\377\007\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l15; l16:; { int yypos17= ctx->pos, yythunkpos17= ctx->thunkpos; if (!yymatchClass(ctx, (unsigned char *)"\000\000\000\000\000\040\377\003\376\377\377\207\376\377\377\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000")) goto l17; goto l16; l17:; ctx->pos= yypos17; ctx->thunkpos= yythunkpos17; diff --git a/ext/liquid/liquid_context.leg b/ext/liquid/liquid_context.leg index 5ea4317..64067ab 100644 --- a/ext/liquid/liquid_context.leg +++ b/ext/liquid/liquid_context.leg @@ -78,7 +78,7 @@ const = "true" { $$ = Qtrue; } ; digit = [0-9]; -identifier = [a-zA-Z][a-zA-Z0-9_\-]+[?!]?; +identifier = [a-zA-Z][a-zA-Z0-9_\-]*[?!]?; %% diff --git a/test/liquid/parser_test.rb b/test/liquid/parser_test.rb index 6b699b8..7ff4e3f 100644 --- a/test/liquid/parser_test.rb +++ b/test/liquid/parser_test.rb @@ -42,6 +42,7 @@ class ParserTest < Test::Unit::TestCase def test_lookups assert_equal [[:id, "variable"], [:lookup, nil]], Parser.parse('variable') assert_equal [[:id, "underscored_variable"], [:lookup, nil]], Parser.parse('underscored_variable') + assert_equal [[:id, "c"], [:lookup, nil]], Parser.parse('c') end def test_global_hash