summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Merry <dev@randomguy3.me.uk>2013-08-02 20:38:45 +0100
committerAlex Merry <dev@randomguy3.me.uk>2013-08-02 20:38:45 +0100
commit634340f35b4ccc2206da12bed01c4fcb6bc55731 (patch)
treeb6c93512ec9f9e847f954db2df8376be92c00b85
parent466b44d154c9b99be77d880f433f12df0f26d767 (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).
-rw-r--r--tikzit/src/common/TikzGraphAssembler+Parser.h3
-rw-r--r--tikzit/src/common/TikzGraphAssembler.m3
-rw-r--r--tikzit/src/common/tikzlexer.lm1
-rw-r--r--tikzit/src/common/tikzparser.ym10
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];
}
%}