diff options
Diffstat (limited to 'tikzit-old/src/common/tikzlexer.lm')
-rw-r--r-- | tikzit-old/src/common/tikzlexer.lm | 170 |
1 files changed, 0 insertions, 170 deletions
diff --git a/tikzit-old/src/common/tikzlexer.lm b/tikzit-old/src/common/tikzlexer.lm deleted file mode 100644 index 1e92f73..0000000 --- a/tikzit-old/src/common/tikzlexer.lm +++ /dev/null @@ -1,170 +0,0 @@ -%{ -/* - * Copyright 2010 Chris Heunen - * Copyright 2010-2013 Aleks Kissinger - * Copyright 2013 K. Johan Paulsson - * Copyright 2013 Alex Merry <dev@randomguy3.me.uk> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -#import <Foundation/Foundation.h> -#import "tikzparserdefs.h" -#import "tikzparser.h" - -#define YY_USER_ACTION \ - yylloc->first_line = yylloc->last_line; \ - yylloc->first_column = yylloc->last_column + 1; \ - yylloc->last_column = yylloc->first_column + yyleng - 1; - -%} - -%option reentrant bison-bridge bison-locations 8bit -%option nounput -%option yylineno -%option noyywrap -%option header-file="common/tikzlexer.h" -%option extra-type="TikzGraphAssembler *" - - -%s props -%s xcoord -%s ycoord -%s noderef - -FLOAT \-?[0-9]*(\.[0-9]+)? - -%% - - /* whitespace is ignored, except for position counting; we don't - count formfeed and vtab as whitespace, because it's not obvious - how they should be dealt with and no-one actually uses them */ - - /* lex will take the longest-matching string */ -<INITIAL,xcoord,ycoord,props,noderef>\r\n|\r|\n { - yylloc->first_line += 1; - yylloc->last_line = yylloc->first_line; - yylloc->first_column = yylloc->last_column = 0; -} -<INITIAL,xcoord,ycoord,props,noderef>[\t ]+ { } - -\\begin\{tikzpicture\} { return BEGIN_TIKZPICTURE_CMD; } -\\end\{tikzpicture\} { return END_TIKZPICTURE_CMD; } -\\begin\{pgfonlayer\} { return BEGIN_PGFONLAYER_CMD; } -\\end\{pgfonlayer\} { return END_PGFONLAYER_CMD; } -\\draw { return DRAW_CMD; } -\\node { return NODE_CMD; } -\\path { return PATH_CMD; } -rectangle { return RECTANGLE; } -node { return NODE; } -at { return AT; } -to { return TO; } -; { return SEMICOLON; } - -\([ ]*{FLOAT}[ ]*,[ ]*{FLOAT}[ ]*\) { - yylloc->last_column = yylloc->first_column + 1; - yyless(1); - BEGIN(xcoord); -} -<xcoord>{FLOAT} { - yylval->pt.x=(float)strtod(yytext,NULL); - BEGIN(ycoord); -} -<ycoord>, { } -<ycoord>{FLOAT} { - yylval->pt.y=(float)strtod(yytext,NULL); -} -<ycoord>\) { - BEGIN(INITIAL); - return COORD; -} - - /* when we see "[", change parsing mode */ -\[ /*syntaxhlfix]*/ { - BEGIN(props); - return LEFTBRACKET; -} -<props>= { return EQUALS; } -<props>, { return COMMA; } - /* technically, it is possible to have newlines in the middle of - property names or values, but in practice this is unlikely and - screws up our line counting */ -<props>[^=,\{\] \t\n]([^=,\{\]\n]*[^=,\{\] \t\n])? { - yylval->nsstr=[NSString stringWithUTF8String:yytext]; - return PROPSTRING; -} -<props>\] { - BEGIN(INITIAL); - return RIGHTBRACKET; -} - -\( { - BEGIN(noderef); - return LEFTPARENTHESIS; -} -<noderef>\. { - return FULLSTOP; -} - /* we assume node names (and anchor names) never contain - newlines */ -<noderef>[^\.\{\)\n]+ { - yylval->nsstr=[NSString stringWithUTF8String:yytext]; - return REFSTRING; -} -<noderef>\) { - BEGIN(INITIAL); - return RIGHTPARENTHESIS; -} - -<INITIAL,props>\{ { - NSMutableString *buf = [NSMutableString string]; - unsigned int brace_depth = 1; - unsigned int escape = 0; - while (1) { - char c = input(yyscanner); - // eof reached before closing brace - if (c == '\0' || c == EOF) { - return UNCLOSED_DELIM_STR; - } - - yylloc->last_column += 1; - yyleng += 1; - if (escape) { - escape = 0; - } else if (c == '\\') { - escape = 1; - } else if (c == '{') { - brace_depth++; - } else if (c == '}') { - brace_depth--; - if (brace_depth == 0) break; - } else if (c == '\n') { - yylloc->last_line += 1; - yylloc->last_column = 0; - } - [buf appendFormat:@"%c", c]; - } - - yylval->nsstr = buf; - return DELIMITEDSTRING; -} - -\\begin { return UNKNOWN_BEGIN_CMD; } -\\end { return UNKNOWN_END_CMD; } -\\[a-zA-Z0-9]+ { return UNKNOWN_CMD; } -[a-zA-Z0-9]+ { return UNKNOWN_STR; } -<INITIAL,xcoord,ycoord,props,noderef>. { return UNKNOWN_STR; } - - /* vi:ft=lex:noet:ts=4:sts=4:sw=4: - */ |