X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fparser.lex;h=38f24dc47abeb0f0e184d0052e8399c17a892424;hb=7b277f03f0e4db6ba147cddbf25334ba9b18c5a7;hp=d5d81d6428cb35ecae1a865766b6af9e4be7cae2;hpb=4db7d75bc14d8b93a247ede2a3ac7a7190d31d5e;p=swftools.git diff --git a/src/parser.lex b/src/parser.lex index d5d81d6..38f24dc 100644 --- a/src/parser.lex +++ b/src/parser.lex @@ -88,8 +88,8 @@ static void store(enum type_t type, int line, int column, char*text, int length) } prefix = 0; break; - case LABEL: - string_set2(&tmp, text, length-1); + case RAWDATA: + string_set2(&tmp, text+1/*:*/, length-5/*.end*/); token.text = (char*)mem_putstring(&strings, tmp); break; case COMMAND: @@ -185,11 +185,11 @@ RVALUE \"{STRING}\"|([^ \n\r\t]+) {NAME}{S}*-= {s(ASSIGNMENT);prefix="";c();BEGIN(R);} {NAME}{S}*= {s(ASSIGNMENT);c();BEGIN(R);} { /* values which appear only on the right-hand side of assignments, like: x=50% */ - [^ \n\t\r]* {s(IDENTIFIER);c();BEGIN(0);} + [^ :\n\t\r]* {s(IDENTIFIER);c();BEGIN(0);} } \.include{S}.*\n {handleInclude(yytext, yyleng);} \.{NAME} {s(COMMAND);c();} -{NAME}{S}*: {s(LABEL);c();} +:([^.]|\.[^e]|\.e[^n]|\.en[^d]|[ \n\r\t])*\.end {s(RAWDATA);c();} {NAME} {s(IDENTIFIER);c();} "[" {c();BEGIN(BINARY);} {S} {c();}