Sha256: 41b5f736b022b087924e1059bc430f7c61798ba12a9edc1fc209f1864d5ad594

Contents?: true

Size: 1.94 KB

Versions: 10

Compression:

Stored size: 1.94 KB

Contents

%x mu emu

%%

[^\x00]*?/("{{")                 {
                                   if(yytext.slice(-1) !== "\\") this.begin("mu");
                                   if(yytext.slice(-1) === "\\") yytext = yytext.substr(0,yyleng-1), this.begin("emu");
                                   if(yytext) return 'CONTENT';
                                 }

[^\x00]+                         { return 'CONTENT'; }

<emu>[^\x00]{2,}?/("{{")         { this.popState(); return 'CONTENT'; }

<mu>"{{>"                        { return 'OPEN_PARTIAL'; }
<mu>"{{#"                        { return 'OPEN_BLOCK'; }
<mu>"{{/"                        { return 'OPEN_ENDBLOCK'; }
<mu>"{{^"                        { return 'OPEN_INVERSE'; }
<mu>"{{"\s*"else"                { return 'OPEN_INVERSE'; }
<mu>"{{{"                        { return 'OPEN_UNESCAPED'; }
<mu>"{{&"                        { return 'OPEN_UNESCAPED'; }
<mu>"{{!"[\s\S]*?"}}"            { yytext = yytext.substr(3,yyleng-5); this.popState(); return 'COMMENT'; }
<mu>"{{"                         { return 'OPEN'; }

<mu>"="                          { return 'EQUALS'; }
<mu>"."/[} ]                     { return 'ID'; }
<mu>".."                         { return 'ID'; }
<mu>[\/.]                        { return 'SEP'; }
<mu>\s+                          { /*ignore whitespace*/ }
<mu>"}}}"                        { this.popState(); return 'CLOSE'; }
<mu>"}}"                         { this.popState(); return 'CLOSE'; }
<mu>'"'("\\"["]|[^"])*'"'        { yytext = yytext.substr(1,yyleng-2).replace(/\\"/g,'"'); return 'STRING'; }
<mu>"true"/[}\s]                 { return 'BOOLEAN'; }
<mu>"false"/[}\s]                { return 'BOOLEAN'; }
<mu>[0-9]+/[}\s]                 { return 'INTEGER'; }
<mu>[a-zA-Z0-9_$-]+/[=}\s\/.]    { return 'ID'; }
<mu>'['[^\]]*']'                 { yytext = yytext.substr(1, yyleng-2); return 'ID'; }
<mu>.                            { return 'INVALID'; }

<INITIAL,mu><<EOF>>              { return 'EOF'; }

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
handlebars-0.3.2 vendor/handlebars/src/handlebars.l
handlebars-0.3.2beta4 vendor/handlebars/src/handlebars.l
handlebars-0.3.2beta3 vendor/handlebars/src/handlebars.l
handlebars-0.3.2beta2 vendor/handlebars/src/handlebars.l
handlebars-0.3.2beta1 vendor/handlebars/src/handlebars.l
handlebars-0.3.1 vendor/handlebars/src/handlebars.l
handlebars-0.3.0 vendor/handlebars/src/handlebars.l
handlebars-0.2.2 vendor/handlebars/src/handlebars.l
handlebars-0.2.1 vendor/handlebars/src/handlebars.l
handlebars-0.2.0 vendor/handlebars/src/handlebars.l