diff options
author | Alex Merry <dev@randomguy3.me.uk> | 2013-08-02 20:38:45 +0100 |
---|---|---|
committer | Alex Merry <dev@randomguy3.me.uk> | 2013-08-02 20:38:45 +0100 |
commit | 634340f35b4ccc2206da12bed01c4fcb6bc55731 (patch) | |
tree | b6c93512ec9f9e847f954db2df8376be92c00b85 /tikzit | |
parent | 466b44d154c9b99be77d880f433f12df0f26d767 (diff) |
Use flex and bison options instead of #defines
Defining YY_EXTRA_TYPE is not the "proper" way to set that type (a
%option should be used instead), and defining YYLEX_PARAM will no longer
work with bison 3 (%lex-param is the correct thing to use).
Diffstat (limited to 'tikzit')
-rw-r--r-- | tikzit/src/common/TikzGraphAssembler+Parser.h | 3 | ||||
-rw-r--r-- | tikzit/src/common/TikzGraphAssembler.m | 3 | ||||
-rw-r--r-- | tikzit/src/common/tikzlexer.lm | 1 | ||||
-rw-r--r-- | tikzit/src/common/tikzparser.ym | 10 |
4 files changed, 7 insertions, 10 deletions
diff --git a/tikzit/src/common/TikzGraphAssembler+Parser.h b/tikzit/src/common/TikzGraphAssembler+Parser.h index 55fa901..c9391a9 100644 --- a/tikzit/src/common/TikzGraphAssembler+Parser.h +++ b/tikzit/src/common/TikzGraphAssembler+Parser.h @@ -31,9 +31,6 @@ /** Get a previously-stored node by name */ - (Node*) nodeWithName:(NSString*)name; - (void) reportError:(const char *)message atLocation:(YYLTYPE*)yylloc; -- (void*) scanner; @end -#define YY_EXTRA_TYPE TikzGraphAssembler * - // vi:ft=objc:noet:ts=4:sts=4:sw=4 diff --git a/tikzit/src/common/TikzGraphAssembler.m b/tikzit/src/common/TikzGraphAssembler.m index 2dd8d50..60b96ee 100644 --- a/tikzit/src/common/TikzGraphAssembler.m +++ b/tikzit/src/common/TikzGraphAssembler.m @@ -58,7 +58,7 @@ tikzStr = [t UTF8String]; yy_scan_string(tikzStr, scanner); - int result = yyparse(self); + int result = yyparse(scanner); tikzStr = NULL; [pool drain]; @@ -278,7 +278,6 @@ free (context); } } -- (void*) scanner { return scanner; } @end // vi:ft=objc:ts=4:noet:sts=4:sw=4 diff --git a/tikzit/src/common/tikzlexer.lm b/tikzit/src/common/tikzlexer.lm index a0e5968..fe7ab0d 100644 --- a/tikzit/src/common/tikzlexer.lm +++ b/tikzit/src/common/tikzlexer.lm @@ -34,6 +34,7 @@ %option yylineno %option noyywrap %option header-file="common/tikzlexer.h" +%option extra-type="TikzGraphAssembler *" %s props %s xcoord diff --git a/tikzit/src/common/tikzparser.ym b/tikzit/src/common/tikzparser.ym index 98d25e4..6eea833 100644 --- a/tikzit/src/common/tikzparser.ym +++ b/tikzit/src/common/tikzparser.ym @@ -38,7 +38,8 @@ struct noderef { %defines "common/tikzparser.h" %pure-parser %locations -%parse-param {TikzGraphAssembler *assembler} +%lex-param {void *scanner} +%parse-param {void *scanner} %error-verbose %union { @@ -47,8 +48,7 @@ struct noderef { GraphElementProperty *prop; GraphElementData *data; Node *node; - struct noderef noderef; -}; + struct noderef noderef; }; %{ #import "TikzGraphAssembler+Parser.h" @@ -56,8 +56,8 @@ struct noderef { #import "GraphElementProperty.h" #import "Node.h" #import "tikzlexer.h" -#define YYLEX_PARAM [assembler scanner] -void yyerror(YYLTYPE *yylloc, TikzGraphAssembler *assembler, const char *str) { +#define assembler yyget_extra(scanner) +void yyerror(YYLTYPE *yylloc, void *scanner, const char *str) { [assembler reportError:str atLocation:yylloc]; } %} |