summaryrefslogtreecommitdiff
path: root/debian/patches/0003-Use-flex-and-bison-options-instead-of-defines.patch
blob: bce0ce1f1a0fc5f19bde5b2a03a8378903dc6b76 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
From 456d1a0aa3699833d6db381d3ceec51e48451c17 Mon Sep 17 00:00:00 2001
From: Alex Merry <dev@randomguy3.me.uk>
Date: Fri, 2 Aug 2013 20:38:45 +0100
Subject: [PATCH 3/4] 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).
---
 tikzit/src/common/TikzGraphAssembler+Parser.h |  3 ---
 tikzit/src/common/TikzGraphAssembler.m        |  3 +--
 tikzit/src/common/tikzlexer.lm                |  1 +
 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];
 }
 %}
-- 
2.11.0