X-Git-Url: http://git.asbjorn.biz/?a=blobdiff_plain;f=src%2Fparser.lex;h=38f24dc47abeb0f0e184d0052e8399c17a892424;hb=d9872c4e9c1c252d74d380d114eeb769c043e013;hp=4ccf2c00abf40ddfc0daf52e908ee2518d4440e0;hpb=821ddd9551a9138b14f2ca1252e43c1521581071;p=swftools.git diff --git a/src/parser.lex b/src/parser.lex index 4ccf2c0..38f24dc 100644 --- a/src/parser.lex +++ b/src/parser.lex @@ -3,7 +3,7 @@ #include #include #include -#include "q.h" +#include "../lib/q.h" #include "parser.h" //RVALUE {NUMBER}|{PERCENT}|{NAME}|\"{STRING}\"|{DIM} @@ -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();}