Changes in generated files due to modification in Jambase and jamgram.yy.

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@258 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold
2002-07-16 19:53:12 +00:00
parent e96d98165c
commit 12aa5123e4
5 changed files with 356 additions and 301 deletions
+53 -19
View File
@@ -406,7 +406,7 @@ char *jambase[] = {
"}\n", "}\n",
"rule File\n", "rule File\n",
"{\n", "{\n",
"Depends files : $(<) ;\n", "LocalDepends files : $(<) ;\n",
"Depends $(<) : $(>) ;\n", "Depends $(<) : $(>) ;\n",
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
"MODE on $(<) = $(FILEMODE) ;\n", "MODE on $(<) = $(FILEMODE) ;\n",
@@ -422,7 +422,7 @@ char *jambase[] = {
"local _s = [ FAppendSuffix $(>[1]) : $(SUFEXE) ] ;\n", "local _s = [ FAppendSuffix $(>[1]) : $(SUFEXE) ] ;\n",
"Depends $(_t) : $(_s) $(>[2-]) ;\n", "Depends $(_t) : $(_s) $(>[2-]) ;\n",
"GenFile1 $(_t) : $(_s) $(>[2-]) ;\n", "GenFile1 $(_t) : $(_s) $(>[2-]) ;\n",
"Clean clean : $(_t) ;\n", "LocalClean clean : $(_t) ;\n",
"}\n", "}\n",
"rule GenFile1\n", "rule GenFile1\n",
"{\n", "{\n",
@@ -431,7 +431,7 @@ char *jambase[] = {
"}\n", "}\n",
"rule HardLink\n", "rule HardLink\n",
"{\n", "{\n",
"Depends files : $(<) ;\n", "LocalDepends files : $(<) ;\n",
"Depends $(<) : $(>) ;\n", "Depends $(<) : $(>) ;\n",
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
"}\n", "}\n",
@@ -450,8 +450,8 @@ char *jambase[] = {
"{\n", "{\n",
"local i t ;\n", "local i t ;\n",
"t = $(>:G=$(INSTALLGRIST)) ;\n", "t = $(>:G=$(INSTALLGRIST)) ;\n",
"Depends install : $(t) ;\n", "LocalDepends install : $(t) ;\n",
"Clean uninstall : $(t) ;\n", "LocalClean uninstall : $(t) ;\n",
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
"MakeLocate $(t) : $(<) ;\n", "MakeLocate $(t) : $(<) ;\n",
"for i in $(>)\n", "for i in $(>)\n",
@@ -515,7 +515,7 @@ char *jambase[] = {
"LexMv $(<) : $(>) ;\n", "LexMv $(<) : $(>) ;\n",
"Depends $(<) : $(>) ;\n", "Depends $(<) : $(>) ;\n",
"MakeLocate $(<) : $(LOCATE_SOURCE) ;\n", "MakeLocate $(<) : $(LOCATE_SOURCE) ;\n",
"Clean clean : $(<) ;\n", "LocalClean clean : $(<) ;\n",
"}\n", "}\n",
"rule Library\n", "rule Library\n",
"{\n", "{\n",
@@ -529,11 +529,11 @@ char *jambase[] = {
"_l = $(<:S=$(SUFLIB)) ;\n", "_l = $(<:S=$(SUFLIB)) ;\n",
"if $(KEEPOBJS)\n", "if $(KEEPOBJS)\n",
"{\n", "{\n",
"Depends obj : $(_s) ;\n", "LocalDepends obj : $(_s) ;\n",
"}\n", "}\n",
"else\n", "else\n",
"{\n", "{\n",
"Depends lib : $(_l) ;\n", "LocalDepends lib : $(_l) ;\n",
"}\n", "}\n",
"if ! $(_l:D)\n", "if ! $(_l:D)\n",
"{\n", "{\n",
@@ -551,7 +551,7 @@ char *jambase[] = {
"Depends $(_l)($(_i:BS)) : $(_i) ;\n", "Depends $(_l)($(_i:BS)) : $(_i) ;\n",
"}\n", "}\n",
"}\n", "}\n",
"Clean clean : $(_l) ;\n", "LocalClean clean : $(_l) ;\n",
"if $(CRELIB) { CreLib $(_l) : $(_s[1]) ; }\n", "if $(CRELIB) { CreLib $(_l) : $(_s[1]) ; }\n",
"Archive $(_l) : $(_s) ;\n", "Archive $(_l) : $(_s) ;\n",
"if $(RANLIB) { Ranlib $(_l) ; }\n", "if $(RANLIB) { Ranlib $(_l) ; }\n",
@@ -568,6 +568,18 @@ char *jambase[] = {
"Depends $(_t) : $(>:S=$(SUFLIB)) ;\n", "Depends $(_t) : $(>:S=$(SUFLIB)) ;\n",
"NEEDLIBS on $(_t) += $(>:S=$(SUFLIB)) ;\n", "NEEDLIBS on $(_t) += $(>:S=$(SUFLIB)) ;\n",
"}\n", "}\n",
"rule LocalClean\n",
"{\n",
"if [ FIsPrefix $(INVOCATION_SUBDIR) : $(SUBDIR_TOKENS) ] {\n",
"Clean $(1) : $(2) ;\n",
"}\n",
"}\n",
"rule LocalDepends\n",
"{\n",
"if [ FIsPrefix $(INVOCATION_SUBDIR) : $(SUBDIR_TOKENS) ] {\n",
"Depends $(1) : $(2) ;\n",
"}\n",
"}\n",
"rule Main\n", "rule Main\n",
"{\n", "{\n",
"MainFromObjects $(<) : $(>:S=$(SUFOBJ)) ;\n", "MainFromObjects $(<) : $(>:S=$(SUFOBJ)) ;\n",
@@ -583,10 +595,10 @@ char *jambase[] = {
"Depends $(<) : $(_t) ;\n", "Depends $(<) : $(_t) ;\n",
"NotFile $(<) ;\n", "NotFile $(<) ;\n",
"}\n", "}\n",
"Depends exe : $(_t) ;\n", "LocalDepends exe : $(_t) ;\n",
"Depends $(_t) : $(_s) ;\n", "Depends $(_t) : $(_s) ;\n",
"MakeLocate $(_t) : $(LOCATE_TARGET) ;\n", "MakeLocate $(_t) : $(LOCATE_TARGET) ;\n",
"Clean clean : $(_t) ;\n", "LocalClean clean : $(_t) ;\n",
"Link $(_t) : $(_s) ;\n", "Link $(_t) : $(_s) ;\n",
"}\n", "}\n",
"rule MakeLocate\n", "rule MakeLocate\n",
@@ -606,7 +618,7 @@ char *jambase[] = {
"local s ;\n", "local s ;\n",
"$(<)-mkdir = true ;\n", "$(<)-mkdir = true ;\n",
"MkDir1 $(<) ;\n", "MkDir1 $(<) ;\n",
"Depends dirs : $(<) ;\n", "LocalDepends dirs : $(<) ;\n",
"s = $(<:P) ;\n", "s = $(<:P) ;\n",
"if $(NT)\n", "if $(NT)\n",
"{\n", "{\n",
@@ -629,7 +641,7 @@ char *jambase[] = {
"}\n", "}\n",
"rule Object\n", "rule Object\n",
"{\n", "{\n",
"Clean clean : $(<) ;\n", "LocalClean clean : $(<) ;\n",
"MakeLocate $(<) : $(LOCATE_TARGET) ;\n", "MakeLocate $(<) : $(LOCATE_TARGET) ;\n",
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
"HDRS on $(<) = $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) ;\n", "HDRS on $(<) = $(SEARCH_SOURCE) $(SUBDIRHDRS) $(HDRS) ;\n",
@@ -681,7 +693,7 @@ char *jambase[] = {
"for _i in [ FGristFiles $(<) ]\n", "for _i in [ FGristFiles $(<) ]\n",
"{\n", "{\n",
"Object $(_i:S=$(SUFOBJ)) : $(_i) ;\n", "Object $(_i:S=$(SUFOBJ)) : $(_i) ;\n",
"Depends obj : $(_i:S=$(SUFOBJ)) ;\n", "LocalDepends obj : $(_i:S=$(SUFOBJ)) ;\n",
"}\n", "}\n",
"}\n", "}\n",
"rule RmTemps\n", "rule RmTemps\n",
@@ -694,19 +706,19 @@ char *jambase[] = {
"}\n", "}\n",
"rule Shell\n", "rule Shell\n",
"{\n", "{\n",
"Depends shell : $(<) ;\n", "LocalDepends shell : $(<) ;\n",
"Depends $(<) : $(>) ;\n", "Depends $(<) : $(>) ;\n",
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
"MODE on $(<) = $(SHELLMODE) ;\n", "MODE on $(<) = $(SHELLMODE) ;\n",
"Clean clean : $(<) ;\n", "LocalClean clean : $(<) ;\n",
"Chmod $(<) ;\n", "Chmod $(<) ;\n",
"}\n", "}\n",
"rule SoftLink\n", "rule SoftLink\n",
"{\n", "{\n",
"Depends files : $(<) ;\n", "LocalDepends files : $(<) ;\n",
"Depends $(<) : $(>) ;\n", "Depends $(<) : $(>) ;\n",
"SEARCH on $(>) = $(SEARCH_SOURCE) ;\n", "SEARCH on $(>) = $(SEARCH_SOURCE) ;\n",
"Clean clean : $(<) ;\n", "LocalClean clean : $(<) ;\n",
"}\n", "}\n",
"rule SubDir\n", "rule SubDir\n",
"{\n", "{\n",
@@ -719,6 +731,14 @@ char *jambase[] = {
"}\n", "}\n",
"$(_top) = [ FSubDir $(<[2-]) ] ;\n", "$(_top) = [ FSubDir $(<[2-]) ] ;\n",
"}\n", "}\n",
"if ! $(INVOCATION_SUBDIR_SET) {\n",
"INVOCATION_SUBDIR_SET = true ;\n",
"INVOCATION_SUBDIR = $(<[2-]) ;\n",
"if $(INVOCATION_SUBDIR) {\n",
"SubInclude $(_top) ;\n",
"jumptoeof ;\n",
"}\n",
"}\n",
"if ! $($(_top)-included)\n", "if ! $($(_top)-included)\n",
"{\n", "{\n",
"$(_top)-included = TRUE ;\n", "$(_top)-included = TRUE ;\n",
@@ -775,7 +795,7 @@ char *jambase[] = {
"Depends $(<) $(_h) : $(>) ;\n", "Depends $(<) $(_h) : $(>) ;\n",
"Yacc1 $(<) $(_h) : $(>) ;\n", "Yacc1 $(<) $(_h) : $(>) ;\n",
"YaccMv $(<) $(_h) : $(>) ;\n", "YaccMv $(<) $(_h) : $(>) ;\n",
"Clean clean : $(<) $(_h) ;\n", "LocalClean clean : $(<) $(_h) ;\n",
"}\n", "}\n",
"Includes $(<) : $(_h) ;\n", "Includes $(<) : $(_h) ;\n",
"}\n", "}\n",
@@ -807,6 +827,20 @@ char *jambase[] = {
"return $(_o) ;\n", "return $(_o) ;\n",
"}\n", "}\n",
"}\n", "}\n",
"rule FIsPrefix\n",
"{\n",
"local a = $(1) ;\n",
"local b = $(2) ;\n",
"while $(a) && $(a[1]) = $(b[1]) {\n",
"a = $(a[2-]) ;\n",
"b = $(b[2-]) ;\n",
"}\n",
"if $(a) {\n",
"return ;\n",
"} else {\n",
"return true ;\n",
"}\n",
"}\n",
"rule FSubDir\n", "rule FSubDir\n",
"{\n", "{\n",
"if ! $(<[1]) \n", "if ! $(<[1]) \n",
+281 -266
View File
@@ -32,24 +32,25 @@
#define IGNORE_t 282 #define IGNORE_t 282
#define IN_t 283 #define IN_t 283
#define INCLUDE_t 284 #define INCLUDE_t 284
#define LOCAL_t 285 #define JUMPTOEOF_t 285
#define ON_t 286 #define LOCAL_t 286
#define PIECEMEAL_t 287 #define ON_t 287
#define QUIETLY_t 288 #define PIECEMEAL_t 288
#define RETURN_t 289 #define QUIETLY_t 289
#define RULE_t 290 #define RETURN_t 290
#define SWITCH_t 291 #define RULE_t 291
#define TOGETHER_t 292 #define SWITCH_t 292
#define UPDATED_t 293 #define TOGETHER_t 293
#define WHILE_t 294 #define UPDATED_t 294
#define _LBRACE_t 295 #define WHILE_t 295
#define _BAR_t 296 #define _LBRACE_t 296
#define _BARBAR_t 297 #define _BAR_t 297
#define _RBRACE_t 298 #define _BARBAR_t 298
#define ARG 299 #define _RBRACE_t 299
#define STRING 300 #define ARG 300
#define STRING 301
#line 88 "jamgram.y" #line 89 "jamgram.y"
#include "jam.h" #include "jam.h"
@@ -71,6 +72,7 @@
# define pfor( s,l,r ) parse_make( compile_foreach,l,r,P0,s,S0,0 ) # define pfor( s,l,r ) parse_make( compile_foreach,l,r,P0,s,S0,0 )
# define pif( l,r,t ) parse_make( compile_if,l,r,t,S0,S0,0 ) # define pif( l,r,t ) parse_make( compile_if,l,r,t,S0,S0,0 )
# define pincl( l ) parse_make( compile_include,l,P0,P0,S0,S0,0 ) # define pincl( l ) parse_make( compile_include,l,P0,P0,S0,S0,0 )
# define pj2eof( ) parse_make( compile_jumptoeof,P0,P0,P0,S0,S0,0 )
# define plist( s ) parse_make( compile_list,P0,P0,P0,s,S0,0 ) # define plist( s ) parse_make( compile_list,P0,P0,P0,s,S0,0 )
# define plocal( l,r,t ) parse_make( compile_local,l,r,t,S0,S0,0 ) # define plocal( l,r,t ) parse_make( compile_local,l,r,t,S0,S0,0 )
# define pnull() parse_make( compile_null,P0,P0,P0,S0,S0,0 ) # define pnull() parse_make( compile_null,P0,P0,P0,S0,S0,0 )
@@ -102,11 +104,11 @@
#define YYFINAL 140 #define YYFINAL 142
#define YYFLAG -32768 #define YYFLAG -32768
#define YYNTBASE 47 #define YYNTBASE 48
#define YYTRANSLATE(x) ((unsigned)(x) <= 300 ? yytranslate[x] : 66) #define YYTRANSLATE(x) ((unsigned)(x) <= 301 ? yytranslate[x] : 67)
static const char yytranslate[] = { 0, static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -138,57 +140,59 @@ static const char yytranslate[] = { 0,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47
}; };
#if YYDEBUG != 0 #if YYDEBUG != 0
static const short yyprhs[] = { 0, static const short yyprhs[] = { 0,
0, 1, 3, 4, 6, 8, 11, 16, 23, 27, 0, 1, 3, 4, 6, 8, 11, 16, 23, 27,
31, 35, 40, 47, 51, 59, 65, 71, 79, 85, 31, 34, 38, 43, 50, 54, 62, 68, 74, 82,
89, 93, 94, 95, 105, 107, 109, 111, 114, 116, 88, 92, 96, 97, 98, 108, 110, 112, 114, 117,
120, 124, 128, 132, 136, 140, 144, 148, 152, 156, 119, 123, 127, 131, 135, 139, 143, 147, 151, 155,
160, 163, 167, 168, 171, 176, 178, 182, 184, 185, 159, 163, 166, 170, 171, 174, 179, 181, 185, 187,
188, 190, 191, 196, 199, 204, 209, 210, 213, 215, 188, 191, 193, 194, 199, 202, 207, 212, 213, 216,
217, 219, 221, 223, 225, 226 218, 220, 222, 224, 226, 228, 229
}; };
static const short yyrhs[] = { -1, static const short yyrhs[] = { -1,
49, 0, 0, 49, 0, 50, 0, 50, 49, 0, 50, 0, 0, 50, 0, 51, 0, 51, 50, 0,
31, 58, 11, 48, 0, 31, 58, 14, 58, 11, 32, 59, 11, 49, 0, 32, 59, 14, 59, 11,
48, 0, 41, 48, 44, 0, 30, 58, 11, 0, 49, 0, 42, 49, 45, 0, 30, 59, 11, 0,
60, 57, 11, 0, 60, 53, 58, 11, 0, 60, 31, 11, 0, 61, 58, 11, 0, 61, 54, 59,
32, 58, 53, 58, 11, 0, 35, 58, 11, 0, 11, 0, 61, 33, 59, 54, 59, 11, 0, 36,
26, 45, 29, 58, 41, 48, 44, 0, 37, 58, 59, 11, 0, 26, 46, 29, 59, 42, 49, 45,
41, 55, 44, 0, 27, 54, 41, 48, 44, 0, 0, 38, 59, 42, 56, 45, 0, 27, 55, 42,
27, 54, 41, 48, 44, 24, 50, 0, 40, 54, 49, 45, 0, 27, 55, 42, 49, 45, 24, 51,
41, 48, 44, 0, 36, 45, 50, 0, 32, 60, 0, 41, 55, 42, 49, 45, 0, 37, 46, 51,
50, 0, 0, 0, 20, 63, 45, 65, 41, 51, 0, 33, 61, 51, 0, 0, 0, 20, 64, 46,
46, 52, 44, 0, 14, 0, 9, 0, 17, 0, 66, 42, 52, 47, 53, 45, 0, 14, 0, 9,
23, 14, 0, 60, 0, 54, 14, 54, 0, 54, 0, 17, 0, 23, 14, 0, 61, 0, 55, 14,
4, 54, 0, 54, 12, 54, 0, 54, 13, 54, 55, 0, 55, 4, 55, 0, 55, 12, 55, 0,
0, 54, 15, 54, 0, 54, 16, 54, 0, 54, 55, 13, 55, 0, 55, 15, 55, 0, 55, 16,
5, 54, 0, 54, 6, 54, 0, 54, 42, 54, 55, 0, 55, 5, 55, 0, 55, 6, 55, 0,
0, 54, 43, 54, 0, 60, 29, 58, 0, 3, 55, 43, 55, 0, 55, 44, 55, 0, 61, 29,
54, 0, 7, 54, 8, 0, 0, 56, 55, 0, 59, 0, 3, 55, 0, 7, 55, 8, 0, 0,
22, 45, 10, 48, 0, 58, 0, 58, 10, 57, 57, 56, 0, 22, 46, 10, 49, 0, 59, 0,
0, 59, 0, 0, 59, 60, 0, 45, 0, 0, 59, 10, 58, 0, 60, 0, 0, 60, 61, 0,
18, 61, 62, 19, 0, 60, 57, 0, 32, 60, 46, 0, 0, 18, 62, 63, 19, 0, 61, 58,
60, 57, 0, 32, 60, 35, 58, 0, 0, 63, 0, 33, 61, 61, 58, 0, 33, 61, 36, 59,
64, 0, 39, 0, 38, 0, 28, 0, 34, 0, 0, 0, 64, 65, 0, 40, 0, 39, 0, 28,
33, 0, 25, 0, 0, 21, 58, 0 0, 35, 0, 34, 0, 25, 0, 0, 21, 59,
0
}; };
#endif #endif
#if YYDEBUG != 0 #if YYDEBUG != 0
static const short yyrline[] = { 0, static const short yyrline[] = { 0,
129, 131, 142, 144, 148, 150, 152, 154, 158, 160, 131, 133, 144, 146, 150, 152, 154, 156, 160, 162,
162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182,
182, 184, 187, 189, 196, 198, 200, 202, 210, 212, 184, 186, 188, 191, 193, 200, 202, 204, 206, 214,
214, 216, 218, 220, 222, 224, 226, 228, 230, 232, 216, 218, 220, 222, 224, 226, 228, 230, 232, 234,
234, 236, 246, 248, 252, 261, 263, 273, 277, 279, 236, 238, 240, 250, 252, 256, 265, 267, 277, 281,
283, 285, 285, 294, 296, 298, 307, 309, 313, 315, 283, 287, 289, 289, 298, 300, 302, 311, 313, 317,
317, 319, 321, 323, 332, 334 319, 321, 323, 325, 327, 336, 338
}; };
#endif #endif
@@ -200,129 +204,136 @@ static const char * const yytname[] = { "$","error","$undefined.","_BANG_t",
"_COLON_t","_SEMIC_t","_LANGLE_t","_LANGLE_EQUALS_t","_EQUALS_t","_RANGLE_t", "_COLON_t","_SEMIC_t","_LANGLE_t","_LANGLE_EQUALS_t","_EQUALS_t","_RANGLE_t",
"_RANGLE_EQUALS_t","_QUESTION_EQUALS_t","_LBRACKET_t","_RBRACKET_t","ACTIONS_t", "_RANGLE_EQUALS_t","_QUESTION_EQUALS_t","_LBRACKET_t","_RBRACKET_t","ACTIONS_t",
"BIND_t","CASE_t","DEFAULT_t","ELSE_t","EXISTING_t","FOR_t","IF_t","IGNORE_t", "BIND_t","CASE_t","DEFAULT_t","ELSE_t","EXISTING_t","FOR_t","IF_t","IGNORE_t",
"IN_t","INCLUDE_t","LOCAL_t","ON_t","PIECEMEAL_t","QUIETLY_t","RETURN_t","RULE_t", "IN_t","INCLUDE_t","JUMPTOEOF_t","LOCAL_t","ON_t","PIECEMEAL_t","QUIETLY_t",
"SWITCH_t","TOGETHER_t","UPDATED_t","WHILE_t","_LBRACE_t","_BAR_t","_BARBAR_t", "RETURN_t","RULE_t","SWITCH_t","TOGETHER_t","UPDATED_t","WHILE_t","_LBRACE_t",
"_RBRACE_t","ARG","STRING","run","block","rules","rule","@1","@2","assign","expr", "_BAR_t","_BARBAR_t","_RBRACE_t","ARG","STRING","run","block","rules","rule",
"cases","case","lol","list","listp","arg","@3","func","eflags","eflag","bindlist", NULL "@1","@2","assign","expr","cases","case","lol","list","listp","arg","@3","func",
"eflags","eflag","bindlist", NULL
}; };
#endif #endif
static const short yyr1[] = { 0, static const short yyr1[] = { 0,
47, 47, 48, 48, 49, 49, 49, 49, 50, 50, 48, 48, 49, 49, 50, 50, 50, 50, 51, 51,
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
50, 51, 52, 50, 53, 53, 53, 53, 54, 54, 51, 51, 52, 53, 51, 54, 54, 54, 54, 55,
54, 54, 54, 54, 54, 54, 54, 54, 54, 54, 55, 55, 55, 55, 55, 55, 55, 55, 55, 55,
54, 54, 55, 55, 56, 57, 57, 58, 59, 59, 55, 55, 55, 56, 56, 57, 58, 58, 59, 60,
60, 61, 60, 62, 62, 62, 63, 63, 64, 64, 60, 61, 62, 61, 63, 63, 63, 64, 64, 65,
64, 64, 64, 64, 65, 65 65, 65, 65, 65, 65, 66, 66
}; };
static const short yyr2[] = { 0, static const short yyr2[] = { 0,
0, 1, 0, 1, 1, 2, 4, 6, 3, 3, 0, 1, 0, 1, 1, 2, 4, 6, 3, 3,
3, 4, 6, 3, 7, 5, 5, 7, 5, 3, 2, 3, 4, 6, 3, 7, 5, 5, 7, 5,
3, 0, 0, 9, 1, 1, 1, 2, 1, 3, 3, 3, 0, 0, 9, 1, 1, 1, 2, 1,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2, 3, 0, 2, 4, 1, 3, 1, 0, 2, 3, 2, 3, 0, 2, 4, 1, 3, 1, 0,
1, 0, 4, 2, 4, 4, 0, 2, 1, 1, 2, 1, 0, 4, 2, 4, 4, 0, 2, 1,
1, 1, 1, 1, 0, 2 1, 1, 1, 1, 1, 0, 2
}; };
static const short yydefact[] = { 1, static const short yydefact[] = { 1,
52, 57, 0, 0, 49, 49, 0, 49, 0, 49, 53, 58, 0, 0, 50, 0, 50, 0, 50, 0,
0, 3, 51, 2, 5, 49, 0, 0, 0, 0, 50, 0, 3, 52, 2, 5, 50, 0, 0, 0,
0, 0, 29, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 49, 11, 0, 0, 0,
0, 0, 4, 6, 26, 25, 27, 0, 49, 49, 0, 0, 0, 0, 4, 6, 27, 26, 28, 0,
0, 46, 0, 49, 0, 64, 61, 63, 62, 60, 50, 50, 0, 47, 0, 50, 0, 65, 62, 64,
59, 65, 58, 49, 41, 0, 0, 0, 0, 0, 63, 61, 60, 66, 59, 50, 42, 0, 0, 0,
0, 0, 0, 0, 3, 0, 0, 49, 10, 50, 0, 0, 0, 0, 0, 0, 3, 0, 0, 50,
3, 49, 21, 14, 20, 43, 3, 9, 28, 0, 10, 51, 3, 50, 22, 15, 21, 44, 3, 9,
0, 11, 49, 0, 54, 53, 49, 0, 0, 42, 29, 0, 0, 12, 50, 0, 55, 54, 50, 0,
31, 36, 37, 32, 33, 30, 34, 35, 0, 38, 0, 43, 32, 37, 38, 33, 34, 31, 35, 36,
39, 40, 7, 0, 0, 0, 43, 0, 49, 12, 0, 39, 40, 41, 7, 0, 0, 0, 44, 0,
47, 49, 49, 66, 22, 3, 17, 3, 0, 16, 50, 13, 48, 50, 50, 67, 23, 3, 18, 3,
44, 19, 0, 56, 55, 0, 0, 0, 8, 3, 0, 17, 45, 20, 0, 57, 56, 0, 0, 0,
13, 23, 15, 18, 45, 0, 24, 0, 0, 0 8, 3, 14, 24, 16, 19, 46, 0, 25, 0,
0, 0
}; };
static const short yydefgoto[] = { 138, static const short yydefgoto[] = { 140,
32, 33, 15, 126, 136, 40, 22, 106, 107, 41, 34, 35, 16, 128, 138, 42, 23, 108, 109, 43,
42, 25, 23, 17, 45, 18, 53, 88 44, 26, 24, 18, 47, 19, 55, 90
}; };
static const short yypact[] = { 146, static const short yypact[] = { 140,
-32768,-32768, -26, 15,-32768,-32768, -5,-32768, -15,-32768, -32768,-32768, -26, 7,-32768, 30,-32768, 1,-32768, -22,
15, 146,-32768,-32768, 146, 30, -8, 41, 3, 15, -32768, 7, 140,-32768,-32768, 140, 13, -12, 184, 10,
15, 97, 5, 10, -5, 12, 170, 34, 170, 13, 7, 7, 100, 15, 31, 1,-32768, 21, 169, 43,
119, 14,-32768,-32768,-32768,-32768,-32768, 42,-32768,-32768, 169, 26, 121, 18,-32768,-32768,-32768,-32768,-32768, 41,
46, 53, -5,-32768, 48,-32768,-32768,-32768,-32768,-32768, -32768,-32768, 58, 61, 1,-32768, 55,-32768,-32768,-32768,
-32768, 49,-32768,-32768,-32768, 137, 15, 15, 15, 15, -32768,-32768,-32768, 54,-32768,-32768,-32768, 141, 7, 7,
15, 15, 15, 15, 146, 15, 15,-32768,-32768,-32768, 7, 7, 7, 7, 7, 7, 140, 7, 7,-32768,
146,-32768,-32768,-32768,-32768, 50, 146,-32768,-32768, 32, -32768,-32768, 140,-32768,-32768,-32768,-32768, 73, 140,-32768,
65,-32768,-32768, -7,-32768,-32768,-32768, 40, 44,-32768, -32768, 42, 66,-32768,-32768, -3,-32768,-32768,-32768, 56,
201, 155, 155,-32768,-32768, 201,-32768,-32768, 38, 142, 57,-32768, 45, 68, 68,-32768,-32768, 45,-32768,-32768,
142,-32768,-32768, 76, 51, 55, 50, 56,-32768,-32768, 63, 221, 221,-32768,-32768, 89, 65, 64, 73, 72,
-32768,-32768,-32768,-32768,-32768, 146, 82, 146, 104,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768, 140, 77, 140,
-32768,-32768, 96,-32768,-32768, 69, 73, 170,-32768, 146, 92,-32768,-32768,-32768, 108,-32768,-32768, 74, 78, 169,
-32768,-32768,-32768,-32768,-32768, 75,-32768, 120, 121,-32768 -32768, 140,-32768,-32768,-32768,-32768,-32768, 79,-32768, 122,
128,-32768
}; };
static const short yypgoto[] = {-32768, static const short yypgoto[] = {-32768,
-57, 16, -24,-32768,-32768, 47, 31, 19,-32768, -35, -56, 12, -27,-32768,-32768, 47, 28, 22,-32768, -37,
-4,-32768, 0,-32768,-32768,-32768,-32768,-32768 -4,-32768, 0,-32768,-32768,-32768,-32768,-32768
}; };
#define YYLAST 217 #define YYLAST 237
static const short yytable[] = { 16, static const short yytable[] = { 17,
24, 26, 73, 28, 75, 30, 27, 99, 85, 1, 25, 75, 28, 77, 30, 1, 32, 29, 87, 21,
1, 16, 1, 103, 16, 14, 44, 20, 19, 108, 101, 15, 17, 22, 1, 17, 105, 46, 1, 20,
69, 21, 71, 43, 70, 72, 16, 112, 16, 29, 45, 37, 110, 31, 1, 72, 38, 36, 17, 39,
34, 54, 1, 68, 80, 81, 13, 13, 35, 13, 17, 73, 114, 14, 74, 40, 82, 83, 56, 33,
35, 31, 84, 36, 74, 36, 37, 111, 37, 89, 27, 71, 14, 70, 86, 41, 14, 113, 57, 58,
55, 56, 38, 76, 38, 79, 82, 78, 127, 13, 37, 91, 14, 76, 81, 38, 62, 63, 39, 65,
129, 39, 83, 102, 16, 46, 86, 104, 47, 87, 66, 129, 80, 131, 40, 104, 17, 78, 84, 106,
16, 105, 135, 48, 49, 110, 16, 125, 50, 51, 85, 59, 17, 88, 89, 137, 112, 127, 17, 62,
115, 117, 114, 113, 116, 52, 118, 91, 92, 93, 63, 64, 65, 66, 116, 115, 93, 94, 95, 96,
94, 95, 96, 97, 98, 119, 100, 101, 120, 122, 97, 98, 99, 100, 107, 102, 103, 117, 118, 120,
57, 58, 59, 134, 123, 128, 131, 124, 60, 61, 130, 132, 136, 59, 60, 61, 125, 119, 122, 126,
62, 63, 64, 130, 132, 16, 133, 16, 137, 139, 121, 62, 63, 64, 65, 66, 124, 17, 133, 17,
140, 0, 57, 58, 59, 121, 109, 16, 0, 16, 134, 141, 135, 139, 59, 60, 61, 142, 111, 17,
60, 61, 62, 63, 64, 0, 0, 65, 66, 67, 123, 17, 62, 63, 64, 65, 66, 0, 0, 0,
57, 58, 59, 0, 90, 57, 58, 59, 60, 61, 0, 67, 68, 69, 59, 60, 61, 0, 92, 0,
62, 63, 64, 60, 61, 62, 63, 64, 57, 77, 0, 0, 62, 63, 64, 65, 66, 1, 0, 2,
66, 67, 0, 1, 0, 2, 60, 61, 62, 63, 0, 0, 79, 68, 69, 3, 4, 0, 0, 5,
64, 3, 4, 0, 0, 5, 6, 7, 66, 67, 6, 7, 8, 0, 0, 9, 10, 11, 0, 0,
8, 9, 10, 0, 0, 11, 12, 1, 0, 2, 12, 13, 0, 68, 69, 14, 1, 0, 2, 0,
13, 0, 0, 0, 0, 3, 4, 0, 0, 5, 0, 0, 0, 0, 3, 4, 0, 0, 5, 6,
0, 7, 0, 0, 8, 9, 10, 0, 0, 11, 0, 8, 0, 0, 9, 10, 11, 0, 48, 12,
12, 0, 60, 61, 13, 63, 64 13, 49, 0, 0, 14, 0, 0, 50, 51, 0,
0, 0, 52, 53, 59, 60, 61, 0, 0, 54,
0, 0, 62, 63, 64, 65, 66
}; };
static const short yycheck[] = { 0, static const short yycheck[] = { 0,
5, 6, 27, 8, 29, 10, 7, 65, 44, 18, 5, 29, 7, 31, 9, 18, 11, 8, 46, 3,
18, 12, 18, 71, 15, 0, 17, 3, 45, 77, 67, 0, 13, 7, 18, 16, 73, 18, 18, 46,
11, 7, 11, 32, 25, 14, 27, 35, 29, 45, 33, 9, 79, 46, 18, 26, 14, 16, 29, 17,
15, 29, 18, 29, 39, 40, 45, 45, 9, 45, 31, 11, 36, 46, 14, 23, 41, 42, 29, 12,
9, 11, 43, 14, 11, 14, 17, 83, 17, 54, 11, 11, 46, 29, 45, 33, 46, 85, 21, 22,
20, 21, 23, 41, 23, 14, 11, 44, 116, 45, 9, 56, 46, 11, 14, 14, 12, 13, 17, 15,
118, 32, 10, 68, 65, 25, 19, 72, 28, 21, 16, 118, 45, 120, 23, 70, 67, 42, 11, 74,
71, 22, 130, 33, 34, 11, 77, 113, 38, 39, 10, 4, 73, 19, 21, 132, 11, 115, 79, 12,
41, 44, 87, 84, 41, 45, 11, 57, 58, 59, 13, 14, 15, 16, 89, 86, 59, 60, 61, 62,
60, 61, 62, 63, 64, 45, 66, 67, 44, 44, 63, 64, 65, 66, 22, 68, 69, 42, 42, 11,
4, 5, 6, 128, 109, 24, 11, 112, 12, 13, 24, 10, 130, 4, 5, 6, 111, 45, 45, 114,
14, 15, 16, 10, 46, 116, 44, 118, 44, 0, 46, 12, 13, 14, 15, 16, 45, 118, 11, 120,
0, -1, 4, 5, 6, 107, 80, 128, -1, 130, 47, 0, 45, 45, 4, 5, 6, 0, 82, 130,
12, 13, 14, 15, 16, -1, -1, 41, 42, 43, 109, 132, 12, 13, 14, 15, 16, -1, -1, -1,
4, 5, 6, -1, 8, 4, 5, 6, 12, 13, -1, 42, 43, 44, 4, 5, 6, -1, 8, -1,
14, 15, 16, 12, 13, 14, 15, 16, 4, 41, -1, -1, 12, 13, 14, 15, 16, 18, -1, 20,
42, 43, -1, 18, -1, 20, 12, 13, 14, 15, -1, -1, 42, 43, 44, 26, 27, -1, -1, 30,
16, 26, 27, -1, -1, 30, 31, 32, 42, 43, 31, 32, 33, -1, -1, 36, 37, 38, -1, -1,
35, 36, 37, -1, -1, 40, 41, 18, -1, 20, 41, 42, -1, 43, 44, 46, 18, -1, 20, -1,
45, -1, -1, -1, -1, 26, 27, -1, -1, 30, -1, -1, -1, -1, 26, 27, -1, -1, 30, 31,
-1, 32, -1, -1, 35, 36, 37, -1, -1, 40, -1, 33, -1, -1, 36, 37, 38, -1, 25, 41,
41, -1, 12, 13, 45, 15, 16 42, 28, -1, -1, 46, -1, -1, 34, 35, -1,
-1, -1, 39, 40, 4, 5, 6, -1, -1, 46,
-1, -1, 12, 13, 14, 15, 16
}; };
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ /* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/etc/bison.simple" #line 3 "/etc/bison.simple"
@@ -870,263 +881,267 @@ yyreduce:
switch (yyn) { switch (yyn) {
case 2: case 2:
#line 132 "jamgram.y" #line 134 "jamgram.y"
{ parse_save( yyvsp[0].parse ); ; { parse_save( yyvsp[0].parse ); ;
break;} break;}
case 3: case 3:
#line 143 "jamgram.y" #line 145 "jamgram.y"
{ yyval.parse = pnull(); ; { yyval.parse = pnull(); ;
break;} break;}
case 4: case 4:
#line 145 "jamgram.y" #line 147 "jamgram.y"
{ yyval.parse = yyvsp[0].parse; ; { yyval.parse = yyvsp[0].parse; ;
break;} break;}
case 5: case 5:
#line 149 "jamgram.y" #line 151 "jamgram.y"
{ yyval.parse = yyvsp[0].parse; ; { yyval.parse = yyvsp[0].parse; ;
break;} break;}
case 6: case 6:
#line 151 "jamgram.y" #line 153 "jamgram.y"
{ yyval.parse = prules( yyvsp[-1].parse, yyvsp[0].parse ); ; { yyval.parse = prules( yyvsp[-1].parse, yyvsp[0].parse ); ;
break;} break;}
case 7: case 7:
#line 153 "jamgram.y" #line 155 "jamgram.y"
{ yyval.parse = plocal( yyvsp[-2].parse, pnull(), yyvsp[0].parse ); ; { yyval.parse = plocal( yyvsp[-2].parse, pnull(), yyvsp[0].parse ); ;
break;} break;}
case 8: case 8:
#line 155 "jamgram.y" #line 157 "jamgram.y"
{ yyval.parse = plocal( yyvsp[-4].parse, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = plocal( yyvsp[-4].parse, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 9: case 9:
#line 159 "jamgram.y" #line 161 "jamgram.y"
{ yyval.parse = yyvsp[-1].parse; ; { yyval.parse = yyvsp[-1].parse; ;
break;} break;}
case 10: case 10:
#line 161 "jamgram.y" #line 163 "jamgram.y"
{ yyval.parse = pincl( yyvsp[-1].parse ); ; { yyval.parse = pincl( yyvsp[-1].parse ); ;
break;} break;}
case 11: case 11:
#line 163 "jamgram.y" #line 165 "jamgram.y"
{ yyval.parse = prule( yyvsp[-2].parse, yyvsp[-1].parse ); ; { yyval.parse = pj2eof( ); ;
break;} break;}
case 12: case 12:
#line 165 "jamgram.y" #line 167 "jamgram.y"
{ yyval.parse = pset( yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-2].number ); ; { yyval.parse = prule( yyvsp[-2].parse, yyvsp[-1].parse ); ;
break;} break;}
case 13: case 13:
#line 167 "jamgram.y" #line 169 "jamgram.y"
{ yyval.parse = pset1( yyvsp[-5].parse, yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-2].number ); ; { yyval.parse = pset( yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-2].number ); ;
break;} break;}
case 14: case 14:
#line 169 "jamgram.y" #line 171 "jamgram.y"
{ yyval.parse = yyvsp[-1].parse; ; { yyval.parse = pset1( yyvsp[-5].parse, yyvsp[-3].parse, yyvsp[-1].parse, yyvsp[-2].number ); ;
break;} break;}
case 15: case 15:
#line 171 "jamgram.y" #line 173 "jamgram.y"
{ yyval.parse = pfor( yyvsp[-5].string, yyvsp[-3].parse, yyvsp[-1].parse ); ; { yyval.parse = yyvsp[-1].parse; ;
break;} break;}
case 16: case 16:
#line 173 "jamgram.y" #line 175 "jamgram.y"
{ yyval.parse = pswitch( yyvsp[-3].parse, yyvsp[-1].parse ); ; { yyval.parse = pfor( yyvsp[-5].string, yyvsp[-3].parse, yyvsp[-1].parse ); ;
break;} break;}
case 17: case 17:
#line 175 "jamgram.y" #line 177 "jamgram.y"
{ yyval.parse = pif( yyvsp[-3].parse, yyvsp[-1].parse, pnull() ); ; { yyval.parse = pswitch( yyvsp[-3].parse, yyvsp[-1].parse ); ;
break;} break;}
case 18: case 18:
#line 177 "jamgram.y" #line 179 "jamgram.y"
{ yyval.parse = pif( yyvsp[-5].parse, yyvsp[-3].parse, yyvsp[0].parse ); ; { yyval.parse = pif( yyvsp[-3].parse, yyvsp[-1].parse, pnull() ); ;
break;} break;}
case 19: case 19:
#line 179 "jamgram.y" #line 181 "jamgram.y"
{ yyval.parse = pwhile( yyvsp[-3].parse, yyvsp[-1].parse ); ; { yyval.parse = pif( yyvsp[-5].parse, yyvsp[-3].parse, yyvsp[0].parse ); ;
break;} break;}
case 20: case 20:
#line 181 "jamgram.y" #line 183 "jamgram.y"
{ yyval.parse = psetc( yyvsp[-1].string, yyvsp[0].parse ); ; { yyval.parse = pwhile( yyvsp[-3].parse, yyvsp[-1].parse ); ;
break;} break;}
case 21: case 21:
#line 183 "jamgram.y" #line 185 "jamgram.y"
{ yyval.parse = pon( yyvsp[-1].parse, yyvsp[0].parse ); ; { yyval.parse = psetc( yyvsp[-1].string, yyvsp[0].parse ); ;
break;} break;}
case 22: case 22:
#line 185 "jamgram.y" #line 187 "jamgram.y"
{ yymode( SCAN_STRING ); ; { yyval.parse = pon( yyvsp[-1].parse, yyvsp[0].parse ); ;
break;} break;}
case 23: case 23:
#line 187 "jamgram.y" #line 189 "jamgram.y"
{ yymode( SCAN_NORMAL ); ; { yymode( SCAN_STRING ); ;
break;} break;}
case 24: case 24:
#line 189 "jamgram.y" #line 191 "jamgram.y"
{ yyval.parse = psete( yyvsp[-6].string,yyvsp[-5].parse,yyvsp[-2].string,yyvsp[-7].number ); ; { yymode( SCAN_NORMAL ); ;
break;} break;}
case 25: case 25:
#line 197 "jamgram.y" #line 193 "jamgram.y"
{ yyval.number = ASSIGN_SET; ; { yyval.parse = psete( yyvsp[-6].string,yyvsp[-5].parse,yyvsp[-2].string,yyvsp[-7].number ); ;
break;} break;}
case 26: case 26:
#line 199 "jamgram.y" #line 201 "jamgram.y"
{ yyval.number = ASSIGN_APPEND; ; { yyval.number = ASSIGN_SET; ;
break;} break;}
case 27: case 27:
#line 201 "jamgram.y" #line 203 "jamgram.y"
{ yyval.number = ASSIGN_DEFAULT; ; { yyval.number = ASSIGN_APPEND; ;
break;} break;}
case 28: case 28:
#line 203 "jamgram.y" #line 205 "jamgram.y"
{ yyval.number = ASSIGN_DEFAULT; ; { yyval.number = ASSIGN_DEFAULT; ;
break;} break;}
case 29: case 29:
#line 211 "jamgram.y" #line 207 "jamgram.y"
{ yyval.parse = peval( EXPR_EXISTS, yyvsp[0].parse, pnull() ); ; { yyval.number = ASSIGN_DEFAULT; ;
break;} break;}
case 30: case 30:
#line 213 "jamgram.y" #line 215 "jamgram.y"
{ yyval.parse = peval( EXPR_EQUALS, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_EXISTS, yyvsp[0].parse, pnull() ); ;
break;} break;}
case 31: case 31:
#line 215 "jamgram.y" #line 217 "jamgram.y"
{ yyval.parse = peval( EXPR_NOTEQ, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_EQUALS, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 32: case 32:
#line 217 "jamgram.y" #line 219 "jamgram.y"
{ yyval.parse = peval( EXPR_LESS, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_NOTEQ, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 33: case 33:
#line 219 "jamgram.y" #line 221 "jamgram.y"
{ yyval.parse = peval( EXPR_LESSEQ, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_LESS, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 34: case 34:
#line 221 "jamgram.y" #line 223 "jamgram.y"
{ yyval.parse = peval( EXPR_MORE, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_LESSEQ, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 35: case 35:
#line 223 "jamgram.y" #line 225 "jamgram.y"
{ yyval.parse = peval( EXPR_MOREEQ, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_MORE, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 36: case 36:
#line 225 "jamgram.y" #line 227 "jamgram.y"
{ yyval.parse = peval( EXPR_AND, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_MOREEQ, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 37: case 37:
#line 227 "jamgram.y" #line 229 "jamgram.y"
{ yyval.parse = peval( EXPR_AND, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_AND, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 38: case 38:
#line 229 "jamgram.y" #line 231 "jamgram.y"
{ yyval.parse = peval( EXPR_OR, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_AND, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 39: case 39:
#line 231 "jamgram.y" #line 233 "jamgram.y"
{ yyval.parse = peval( EXPR_OR, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_OR, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 40: case 40:
#line 233 "jamgram.y" #line 235 "jamgram.y"
{ yyval.parse = peval( EXPR_IN, yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = peval( EXPR_OR, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 41: case 41:
#line 235 "jamgram.y" #line 237 "jamgram.y"
{ yyval.parse = peval( EXPR_NOT, yyvsp[0].parse, pnull() ); ; { yyval.parse = peval( EXPR_IN, yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 42: case 42:
#line 237 "jamgram.y" #line 239 "jamgram.y"
{ yyval.parse = yyvsp[-1].parse; ; { yyval.parse = peval( EXPR_NOT, yyvsp[0].parse, pnull() ); ;
break;} break;}
case 43: case 43:
#line 247 "jamgram.y" #line 241 "jamgram.y"
{ yyval.parse = P0; ; { yyval.parse = yyvsp[-1].parse; ;
break;} break;}
case 44: case 44:
#line 249 "jamgram.y" #line 251 "jamgram.y"
{ yyval.parse = pnode( yyvsp[-1].parse, yyvsp[0].parse ); ; { yyval.parse = P0; ;
break;} break;}
case 45: case 45:
#line 253 "jamgram.y" #line 253 "jamgram.y"
{ yyval.parse = psnode( yyvsp[-2].string, yyvsp[0].parse ); ; { yyval.parse = pnode( yyvsp[-1].parse, yyvsp[0].parse ); ;
break;} break;}
case 46: case 46:
#line 262 "jamgram.y" #line 257 "jamgram.y"
{ yyval.parse = pnode( P0, yyvsp[0].parse ); ; { yyval.parse = psnode( yyvsp[-2].string, yyvsp[0].parse ); ;
break;} break;}
case 47: case 47:
#line 264 "jamgram.y" #line 266 "jamgram.y"
{ yyval.parse = pnode( yyvsp[0].parse, yyvsp[-2].parse ); ; { yyval.parse = pnode( P0, yyvsp[0].parse ); ;
break;} break;}
case 48: case 48:
#line 274 "jamgram.y" #line 268 "jamgram.y"
{ yyval.parse = yyvsp[0].parse; yymode( SCAN_NORMAL ); ; { yyval.parse = pnode( yyvsp[0].parse, yyvsp[-2].parse ); ;
break;} break;}
case 49: case 49:
#line 278 "jamgram.y" #line 278 "jamgram.y"
{ yyval.parse = pnull(); yymode( SCAN_PUNCT ); ; { yyval.parse = yyvsp[0].parse; yymode( SCAN_NORMAL ); ;
break;} break;}
case 50: case 50:
#line 280 "jamgram.y" #line 282 "jamgram.y"
{ yyval.parse = pappend( yyvsp[-1].parse, yyvsp[0].parse ); ; { yyval.parse = pnull(); yymode( SCAN_PUNCT ); ;
break;} break;}
case 51: case 51:
#line 284 "jamgram.y" #line 284 "jamgram.y"
{ yyval.parse = plist( yyvsp[0].string ); ; { yyval.parse = pappend( yyvsp[-1].parse, yyvsp[0].parse ); ;
break;} break;}
case 52: case 52:
#line 285 "jamgram.y" #line 288 "jamgram.y"
{ yymode( SCAN_NORMAL ); ; { yyval.parse = plist( yyvsp[0].string ); ;
break;} break;}
case 53: case 53:
#line 286 "jamgram.y" #line 289 "jamgram.y"
{ yyval.parse = yyvsp[-1].parse; ; { yymode( SCAN_NORMAL ); ;
break;} break;}
case 54: case 54:
#line 295 "jamgram.y" #line 290 "jamgram.y"
{ yyval.parse = prule( yyvsp[-1].parse, yyvsp[0].parse ); ; { yyval.parse = yyvsp[-1].parse; ;
break;} break;}
case 55: case 55:
#line 297 "jamgram.y" #line 299 "jamgram.y"
{ yyval.parse = pon( yyvsp[-2].parse, prule( yyvsp[-1].parse, yyvsp[0].parse ) ); ; { yyval.parse = prule( yyvsp[-1].parse, yyvsp[0].parse ); ;
break;} break;}
case 56: case 56:
#line 299 "jamgram.y" #line 301 "jamgram.y"
{ yyval.parse = pon( yyvsp[-2].parse, yyvsp[0].parse ); ; { yyval.parse = pon( yyvsp[-2].parse, prule( yyvsp[-1].parse, yyvsp[0].parse ) ); ;
break;} break;}
case 57: case 57:
#line 308 "jamgram.y" #line 303 "jamgram.y"
{ yyval.number = 0; ; { yyval.parse = pon( yyvsp[-2].parse, yyvsp[0].parse ); ;
break;} break;}
case 58: case 58:
#line 310 "jamgram.y" #line 312 "jamgram.y"
{ yyval.number = yyvsp[-1].number | yyvsp[0].number; ; { yyval.number = 0; ;
break;} break;}
case 59: case 59:
#line 314 "jamgram.y" #line 314 "jamgram.y"
{ yyval.number = RULE_UPDATED; ; { yyval.number = yyvsp[-1].number | yyvsp[0].number; ;
break;} break;}
case 60: case 60:
#line 316 "jamgram.y" #line 318 "jamgram.y"
{ yyval.number = RULE_TOGETHER; ; { yyval.number = RULE_UPDATED; ;
break;} break;}
case 61: case 61:
#line 318 "jamgram.y" #line 320 "jamgram.y"
{ yyval.number = RULE_IGNORE; ; { yyval.number = RULE_TOGETHER; ;
break;} break;}
case 62: case 62:
#line 320 "jamgram.y" #line 322 "jamgram.y"
{ yyval.number = RULE_QUIETLY; ; { yyval.number = RULE_IGNORE; ;
break;} break;}
case 63: case 63:
#line 322 "jamgram.y" #line 324 "jamgram.y"
{ yyval.number = RULE_PIECEMEAL; ; { yyval.number = RULE_QUIETLY; ;
break;} break;}
case 64: case 64:
#line 324 "jamgram.y" #line 326 "jamgram.y"
{ yyval.number = RULE_EXISTING; ; { yyval.number = RULE_PIECEMEAL; ;
break;} break;}
case 65: case 65:
#line 333 "jamgram.y" #line 328 "jamgram.y"
{ yyval.parse = pnull(); ; { yyval.number = RULE_EXISTING; ;
break;} break;}
case 66: case 66:
#line 335 "jamgram.y" #line 337 "jamgram.y"
{ yyval.parse = pnull(); ;
break;}
case 67:
#line 339 "jamgram.y"
{ yyval.parse = yyvsp[0].parse; ; { yyval.parse = yyvsp[0].parse; ;
break;} break;}
} }
@@ -1355,4 +1370,4 @@ yyerrhandle:
} }
return 1; return 1;
} }
#line 339 "jamgram.y" #line 343 "jamgram.y"
+17 -16
View File
@@ -29,22 +29,23 @@
#define IGNORE_t 282 #define IGNORE_t 282
#define IN_t 283 #define IN_t 283
#define INCLUDE_t 284 #define INCLUDE_t 284
#define LOCAL_t 285 #define JUMPTOEOF_t 285
#define ON_t 286 #define LOCAL_t 286
#define PIECEMEAL_t 287 #define ON_t 287
#define QUIETLY_t 288 #define PIECEMEAL_t 288
#define RETURN_t 289 #define QUIETLY_t 289
#define RULE_t 290 #define RETURN_t 290
#define SWITCH_t 291 #define RULE_t 291
#define TOGETHER_t 292 #define SWITCH_t 292
#define UPDATED_t 293 #define TOGETHER_t 293
#define WHILE_t 294 #define UPDATED_t 294
#define _LBRACE_t 295 #define WHILE_t 295
#define _BAR_t 296 #define _LBRACE_t 296
#define _BARBAR_t 297 #define _BAR_t 297
#define _RBRACE_t 298 #define _BARBAR_t 298
#define ARG 299 #define _RBRACE_t 299
#define STRING 300 #define ARG 300
#define STRING 301
extern YYSTYPE yylval; extern YYSTYPE yylval;
+4
View File
@@ -26,6 +26,7 @@
%token IGNORE_t %token IGNORE_t
%token IN_t %token IN_t
%token INCLUDE_t %token INCLUDE_t
%token JUMPTOEOF_t
%token LOCAL_t %token LOCAL_t
%token ON_t %token ON_t
%token PIECEMEAL_t %token PIECEMEAL_t
@@ -106,6 +107,7 @@
# define pfor( s,l,r ) parse_make( compile_foreach,l,r,P0,s,S0,0 ) # define pfor( s,l,r ) parse_make( compile_foreach,l,r,P0,s,S0,0 )
# define pif( l,r,t ) parse_make( compile_if,l,r,t,S0,S0,0 ) # define pif( l,r,t ) parse_make( compile_if,l,r,t,S0,S0,0 )
# define pincl( l ) parse_make( compile_include,l,P0,P0,S0,S0,0 ) # define pincl( l ) parse_make( compile_include,l,P0,P0,S0,S0,0 )
# define pj2eof( ) parse_make( compile_jumptoeof,P0,P0,P0,S0,S0,0 )
# define plist( s ) parse_make( compile_list,P0,P0,P0,s,S0,0 ) # define plist( s ) parse_make( compile_list,P0,P0,P0,s,S0,0 )
# define plocal( l,r,t ) parse_make( compile_local,l,r,t,S0,S0,0 ) # define plocal( l,r,t ) parse_make( compile_local,l,r,t,S0,S0,0 )
# define pnull() parse_make( compile_null,P0,P0,P0,S0,S0,0 ) # define pnull() parse_make( compile_null,P0,P0,P0,S0,S0,0 )
@@ -159,6 +161,8 @@ rule : _LBRACE_t block _RBRACE_t
{ $$.parse = $2.parse; } { $$.parse = $2.parse; }
| INCLUDE_t list _SEMIC_t | INCLUDE_t list _SEMIC_t
{ $$.parse = pincl( $2.parse ); } { $$.parse = pincl( $2.parse ); }
| JUMPTOEOF_t _SEMIC_t
{ $$.parse = pj2eof( ); }
| arg lol _SEMIC_t | arg lol _SEMIC_t
{ $$.parse = prule( $1.parse, $2.parse ); } { $$.parse = prule( $1.parse, $2.parse ); }
| arg assign list _SEMIC_t | arg assign list _SEMIC_t
+1
View File
@@ -26,6 +26,7 @@
{ "ignore", IGNORE_t }, { "ignore", IGNORE_t },
{ "in", IN_t }, { "in", IN_t },
{ "include", INCLUDE_t }, { "include", INCLUDE_t },
{ "jumptoeof", JUMPTOEOF_t },
{ "local", LOCAL_t }, { "local", LOCAL_t },
{ "on", ON_t }, { "on", ON_t },
{ "piecemeal", PIECEMEAL_t }, { "piecemeal", PIECEMEAL_t },