- Added an operator += for FString that takes an FName as input, since GCC

is unable to synthesize one.
- Converted xlatcc to use lemon during its build process. Now you don't need
  bison to rebuild everything anymore.


SVN r470 (trunk)
This commit is contained in:
Randy Heit 2007-01-31 00:30:42 +00:00
parent e8495e90f5
commit 095b11bc36
13 changed files with 2905 additions and 3339 deletions

View file

@ -1,3 +1,9 @@
January 30, 2007
- Added an operator += for FString that takes an FName as input, since GCC
is unable to synthesize one.
- Converted xlatcc to use lemon during its build process. Now you don't need
bison to rebuild everything anymore.
January 27, 2007 January 27, 2007
- Added support for damage-specific player pain sounds. - Added support for damage-specific player pain sounds.
- Removed the constraint that all $playerreserve SNDINFO commands must come - Removed the constraint that all $playerreserve SNDINFO commands must come

View file

@ -34,8 +34,6 @@
#ifndef NAME_H #ifndef NAME_H
#define NAME_H #define NAME_H
#include "doomtype.h"
enum ENamedName enum ENamedName
{ {
#define xx(n) NAME_##n, #define xx(n) NAME_##n,

View file

@ -6,6 +6,7 @@
#include <string.h> #include <string.h>
#include <stddef.h> #include <stddef.h>
#include "tarray.h" #include "tarray.h"
#include "name.h"
#ifdef __GNUC__ #ifdef __GNUC__
#define PRINTFISH(x) __attribute__((format(printf, 2, x))) #define PRINTFISH(x) __attribute__((format(printf, 2, x)))
@ -117,6 +118,7 @@ public:
FString &operator += (const FString &tail); FString &operator += (const FString &tail);
FString &operator += (const char *tail); FString &operator += (const char *tail);
FString &operator += (char tail); FString &operator += (char tail);
FString &operator += (const FName &name) { return *this += name.GetChars(); }
FString &AppendCStrPart (const char *tail, size_t tailLen); FString &AppendCStrPart (const char *tail, size_t tailLen);
FString Left (size_t numChars) const; FString Left (size_t numChars) const;

View file

@ -377,7 +377,7 @@
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Creating parse.c from parse.y" Description="Creating parse.c from parse.y"
CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;&#x0D;&#x0A;" CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)parse.c" Outputs="$(InputDir)parse.c;$(InputDir)parse.h"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
@ -397,7 +397,7 @@
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Creating parse.c from parse.y" Description="Creating parse.c from parse.y"
CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;&#x0D;&#x0A;" CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)parse.c" Outputs="$(InputDir)parse.c;$(InputDir)parse.h"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
@ -424,7 +424,7 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Creating scanner.c from scanner.re" Description="Creating scanner.c from scanner.re"
CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;" CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)scanner.c" Outputs="$(InputDir)scanner.c"
/> />
</FileConfiguration> </FileConfiguration>
@ -434,7 +434,7 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Creating scanner.c from scanner.re" Description="Creating scanner.c from scanner.re"
CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;" CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)scanner.c" Outputs="$(InputDir)scanner.c"
/> />
</FileConfiguration> </FileConfiguration>
@ -444,7 +444,7 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Creating scanner.c from scanner.re" Description="Creating scanner.c from scanner.re"
CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;" CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)scanner.c" Outputs="$(InputDir)scanner.c"
/> />
</FileConfiguration> </FileConfiguration>
@ -454,7 +454,7 @@
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
Description="Creating scanner.c from scanner.re" Description="Creating scanner.c from scanner.re"
CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;" CommandLine="..\re2c\re2c -s -o &quot;scanner.c&quot; &quot;$(InputFileName)&quot;&#x0D;&#x0A;"
Outputs="$(InputDir)scanner.c" Outputs="$(InputDir)scanner.c"
/> />
</FileConfiguration> </FileConfiguration>

View file

@ -1,17 +1,15 @@
/* Driver template for the LEMON parser generator. /* Driver template for the LEMON parser generator.
** The author disclaims copyright to this source code. ** The author disclaims copyright to this source code.
*/ */
/* First off, code is include which follows the "include" declaration /* First off, code is included which follows the "include" declaration
** in the input file. */ ** in the input file. */
#include <stdio.h> #include <stdio.h>
#ifndef NDEBUG
#include <string.h> #include <string.h>
#endif
#line 1 "parse.y" #line 1 "parse.y"
#include <malloc.h> #include <malloc.h>
#include "dehsupp.h" #include "dehsupp.h"
#line 16 "parse.c" #line 13 "parse.c"
/* Next is all token values, in a form suitable for use by makeheaders. /* Next is all token values, in a form suitable for use by makeheaders.
** This section will be null unless lemon is run with the -m switch. ** This section will be null unless lemon is run with the -m switch.
*/ */
@ -210,7 +208,7 @@ static const YYACTIONTYPE yy_default[] = {
/* 120 */ 146, 173, 211, 174, 171, 207, 145, 210, 209, 160, /* 120 */ 146, 173, 211, 174, 171, 207, 145, 210, 209, 160,
/* 130 */ 144, 143, 170, 216, 191, 169, 212, 142, 215, 214, /* 130 */ 144, 143, 170, 216, 191, 169, 212, 142, 215, 214,
}; };
#define YY_SZ_ACTTAB (sizeof(yy_action)/sizeof(yy_action[0])) #define YY_SZ_ACTTAB (int)(sizeof(yy_action)/sizeof(yy_action[0]))
/* The next table maps tokens into fallback tokens. If a construct /* The next table maps tokens into fallback tokens. If a construct
** like the following: ** like the following:
@ -488,7 +486,7 @@ static void yy_destructor(YYCODETYPE yymajor, YYMINORTYPE *yypminor){
case 34: case 34:
#line 8 "parse.y" #line 8 "parse.y"
{ if ((yypminor->yy0).string) free((yypminor->yy0).string); } { if ((yypminor->yy0).string) free((yypminor->yy0).string); }
#line 493 "parse.c" #line 490 "parse.c"
break; break;
default: break; /* If no destructor action specified: do nothing */ default: break; /* If no destructor action specified: do nothing */
} }
@ -552,7 +550,7 @@ void ParseFree(
*/ */
static int yy_find_shift_action( static int yy_find_shift_action(
yyParser *pParser, /* The parser */ yyParser *pParser, /* The parser */
int iLookAhead /* The look-ahead token */ YYCODETYPE iLookAhead /* The look-ahead token */
){ ){
int i; int i;
int stateno = pParser->yystack[pParser->yyidx].stateno; int stateno = pParser->yystack[pParser->yyidx].stateno;
@ -565,6 +563,7 @@ static int yy_find_shift_action(
} }
i += iLookAhead; i += iLookAhead;
if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){ if( i<0 || i>=YY_SZ_ACTTAB || yy_lookahead[i]!=iLookAhead ){
if( iLookAhead>0 ){
#ifdef YYFALLBACK #ifdef YYFALLBACK
int iFallback; /* Fallback token */ int iFallback; /* Fallback token */
if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0]) if( iLookAhead<sizeof(yyFallback)/sizeof(yyFallback[0])
@ -578,6 +577,21 @@ static int yy_find_shift_action(
return yy_find_shift_action(pParser, iFallback); return yy_find_shift_action(pParser, iFallback);
} }
#endif #endif
#ifdef YYWILDCARD
{
int j = i - iLookAhead + YYWILDCARD;
if( j>=0 && j<YY_SZ_ACTTAB && yy_lookahead[j]==YYWILDCARD ){
#ifndef NDEBUG
if( yyTraceFILE ){
fprintf(yyTraceFILE, "%sWILDCARD %s => %s\n",
yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]);
}
#endif /* NDEBUG */
return yy_action[j];
}
}
#endif /* YYWILDCARD */
}
return yy_default[stateno]; return yy_default[stateno];
}else{ }else{
return yy_action[i]; return yy_action[i];
@ -594,7 +608,7 @@ static int yy_find_shift_action(
*/ */
static int yy_find_reduce_action( static int yy_find_reduce_action(
int stateno, /* Current state number */ int stateno, /* Current state number */
int iLookAhead /* The look-ahead token */ YYCODETYPE iLookAhead /* The look-ahead token */
){ ){
int i; int i;
/* int stateno = pParser->yystack[pParser->yyidx].stateno; */ /* int stateno = pParser->yystack[pParser->yyidx].stateno; */
@ -635,7 +649,7 @@ static void yy_shift(
#endif #endif
while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser);
/* Here code is inserted which will execute if the parser /* Here code is inserted which will execute if the parser
** stack every overflows */ ** stack ever overflows */
ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ ParseARG_STORE; /* Suppress warning about unused %extra_argument var */
return; return;
} }
@ -760,13 +774,12 @@ static void yy_reduce(
yymsp = &yypParser->yystack[yypParser->yyidx]; yymsp = &yypParser->yystack[yypParser->yyidx];
#ifndef NDEBUG #ifndef NDEBUG
if( yyTraceFILE && yyruleno>=0 if( yyTraceFILE && yyruleno>=0
&& yyruleno<sizeof(yyRuleName)/sizeof(yyRuleName[0]) ){ && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){
fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt,
yyRuleName[yyruleno]); yyRuleName[yyruleno]);
} }
#endif /* NDEBUG */ #endif /* NDEBUG */
#ifndef NDEBUG
/* Silence complaints from purify about yygotominor being uninitialized /* Silence complaints from purify about yygotominor being uninitialized
** in some cases when it is copied into the stack after the following ** in some cases when it is copied into the stack after the following
** switch. yygotominor is uninitialized when a rule reduces that does ** switch. yygotominor is uninitialized when a rule reduces that does
@ -774,9 +787,15 @@ static void yy_reduce(
** value of the nonterminal uninitialized is utterly harmless as long ** value of the nonterminal uninitialized is utterly harmless as long
** as the value is never used. So really the only thing this code ** as the value is never used. So really the only thing this code
** accomplishes is to quieten purify. ** accomplishes is to quieten purify.
**
** 2007-01-16: The wireshark project (www.wireshark.org) reports that
** without this code, their parser segfaults. I'm not sure what there
** parser is doing to make this happen. This is the second bug report
** from wireshark this week. Clearly they are stressing Lemon in ways
** that it has not been previously stressed... (SQLite ticket #2172)
*/ */
memset(&yygotominor, 0, sizeof(yygotominor)); memset(&yygotominor, 0, sizeof(yygotominor));
#endif
switch( yyruleno ){ switch( yyruleno ){
/* Beginning here are the reduction cases. A typical example /* Beginning here are the reduction cases. A typical example
@ -795,198 +814,198 @@ static void yy_reduce(
yy_destructor(11,&yymsp[-2].minor); yy_destructor(11,&yymsp[-2].minor);
yy_destructor(12,&yymsp[0].minor); yy_destructor(12,&yymsp[0].minor);
} }
#line 800 "parse.c" #line 818 "parse.c"
break; break;
case 18: case 18:
#line 45 "parse.y" #line 45 "parse.y"
{ printf ("%s", yymsp[0].minor.yy0.string); } { printf ("%s", yymsp[0].minor.yy0.string); }
#line 805 "parse.c" #line 823 "parse.c"
break; break;
case 19: case 19:
#line 46 "parse.y" #line 46 "parse.y"
{ printf ("%d", yymsp[0].minor.yy62); } { printf ("%d", yymsp[0].minor.yy62); }
#line 810 "parse.c" #line 828 "parse.c"
break; break;
case 20: case 20:
#line 47 "parse.y" #line 47 "parse.y"
{ printf ("\n"); yy_destructor(15,&yymsp[0].minor); { printf ("\n"); yy_destructor(15,&yymsp[0].minor);
} }
#line 816 "parse.c" #line 834 "parse.c"
break; break;
case 21: case 21:
#line 50 "parse.y" #line 50 "parse.y"
{ yygotominor.yy62 = yymsp[0].minor.yy0.val; } { yygotominor.yy62 = yymsp[0].minor.yy0.val; }
#line 821 "parse.c" #line 839 "parse.c"
break; break;
case 22: case 22:
#line 51 "parse.y" #line 51 "parse.y"
{ yygotominor.yy62 = yymsp[-2].minor.yy62 + yymsp[0].minor.yy62; yy_destructor(5,&yymsp[-1].minor); { yygotominor.yy62 = yymsp[-2].minor.yy62 + yymsp[0].minor.yy62; yy_destructor(5,&yymsp[-1].minor);
} }
#line 827 "parse.c" #line 845 "parse.c"
break; break;
case 23: case 23:
#line 52 "parse.y" #line 52 "parse.y"
{ yygotominor.yy62 = yymsp[-2].minor.yy62 - yymsp[0].minor.yy62; yy_destructor(4,&yymsp[-1].minor); { yygotominor.yy62 = yymsp[-2].minor.yy62 - yymsp[0].minor.yy62; yy_destructor(4,&yymsp[-1].minor);
} }
#line 833 "parse.c" #line 851 "parse.c"
break; break;
case 24: case 24:
#line 53 "parse.y" #line 53 "parse.y"
{ yygotominor.yy62 = yymsp[-2].minor.yy62 * yymsp[0].minor.yy62; yy_destructor(6,&yymsp[-1].minor); { yygotominor.yy62 = yymsp[-2].minor.yy62 * yymsp[0].minor.yy62; yy_destructor(6,&yymsp[-1].minor);
} }
#line 839 "parse.c" #line 857 "parse.c"
break; break;
case 25: case 25:
#line 54 "parse.y" #line 54 "parse.y"
{ yygotominor.yy62 = yymsp[-2].minor.yy62 / yymsp[0].minor.yy62; yy_destructor(7,&yymsp[-1].minor); { yygotominor.yy62 = yymsp[-2].minor.yy62 / yymsp[0].minor.yy62; yy_destructor(7,&yymsp[-1].minor);
} }
#line 845 "parse.c" #line 863 "parse.c"
break; break;
case 26: case 26:
#line 55 "parse.y" #line 55 "parse.y"
{ yygotominor.yy62 = yymsp[-2].minor.yy62 | yymsp[0].minor.yy62; yy_destructor(1,&yymsp[-1].minor); { yygotominor.yy62 = yymsp[-2].minor.yy62 | yymsp[0].minor.yy62; yy_destructor(1,&yymsp[-1].minor);
} }
#line 851 "parse.c" #line 869 "parse.c"
break; break;
case 27: case 27:
#line 56 "parse.y" #line 56 "parse.y"
{ yygotominor.yy62 = yymsp[-2].minor.yy62 & yymsp[0].minor.yy62; yy_destructor(3,&yymsp[-1].minor); { yygotominor.yy62 = yymsp[-2].minor.yy62 & yymsp[0].minor.yy62; yy_destructor(3,&yymsp[-1].minor);
} }
#line 857 "parse.c" #line 875 "parse.c"
break; break;
case 28: case 28:
#line 57 "parse.y" #line 57 "parse.y"
{ yygotominor.yy62 = yymsp[-2].minor.yy62 ^ yymsp[0].minor.yy62; yy_destructor(2,&yymsp[-1].minor); { yygotominor.yy62 = yymsp[-2].minor.yy62 ^ yymsp[0].minor.yy62; yy_destructor(2,&yymsp[-1].minor);
} }
#line 863 "parse.c" #line 881 "parse.c"
break; break;
case 29: case 29:
#line 58 "parse.y" #line 58 "parse.y"
{ yygotominor.yy62 = -yymsp[0].minor.yy62; yy_destructor(4,&yymsp[-1].minor); { yygotominor.yy62 = -yymsp[0].minor.yy62; yy_destructor(4,&yymsp[-1].minor);
} }
#line 869 "parse.c" #line 887 "parse.c"
break; break;
case 30: case 30:
#line 59 "parse.y" #line 59 "parse.y"
{ yygotominor.yy62 = yymsp[-1].minor.yy62; yy_destructor(11,&yymsp[-2].minor); { yygotominor.yy62 = yymsp[-1].minor.yy62; yy_destructor(11,&yymsp[-2].minor);
yy_destructor(12,&yymsp[0].minor); yy_destructor(12,&yymsp[0].minor);
} }
#line 876 "parse.c" #line 894 "parse.c"
break; break;
case 33: case 33:
#line 65 "parse.y" #line 65 "parse.y"
{ AddAction (yymsp[0].minor.yy0.string); } { AddAction (yymsp[0].minor.yy0.string); }
#line 881 "parse.c" #line 899 "parse.c"
break; break;
case 34: case 34:
#line 66 "parse.y" #line 66 "parse.y"
{ AddAction (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); { AddAction (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor);
} }
#line 887 "parse.c" #line 905 "parse.c"
break; break;
case 37: case 37:
#line 72 "parse.y" #line 72 "parse.y"
{ AddHeight (yymsp[0].minor.yy62); } { AddHeight (yymsp[0].minor.yy62); }
#line 892 "parse.c" #line 910 "parse.c"
break; break;
case 38: case 38:
#line 73 "parse.y" #line 73 "parse.y"
{ AddHeight (yymsp[0].minor.yy62); yy_destructor(13,&yymsp[-1].minor); { AddHeight (yymsp[0].minor.yy62); yy_destructor(13,&yymsp[-1].minor);
} }
#line 898 "parse.c" #line 916 "parse.c"
break; break;
case 41: case 41:
#line 79 "parse.y" #line 79 "parse.y"
{ AddActionMap (yymsp[0].minor.yy0.string); } { AddActionMap (yymsp[0].minor.yy0.string); }
#line 903 "parse.c" #line 921 "parse.c"
break; break;
case 42: case 42:
#line 80 "parse.y" #line 80 "parse.y"
{ AddActionMap (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); { AddActionMap (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor);
} }
#line 909 "parse.c" #line 927 "parse.c"
break; break;
case 45: case 45:
#line 86 "parse.y" #line 86 "parse.y"
{ AddCodeP (yymsp[0].minor.yy62); } { AddCodeP (yymsp[0].minor.yy62); }
#line 914 "parse.c" #line 932 "parse.c"
break; break;
case 46: case 46:
#line 87 "parse.y" #line 87 "parse.y"
{ AddCodeP (yymsp[0].minor.yy62); yy_destructor(13,&yymsp[-1].minor); { AddCodeP (yymsp[0].minor.yy62); yy_destructor(13,&yymsp[-1].minor);
} }
#line 920 "parse.c" #line 938 "parse.c"
break; break;
case 49: case 49:
#line 93 "parse.y" #line 93 "parse.y"
{ AddSpriteName (yymsp[0].minor.yy0.string); } { AddSpriteName (yymsp[0].minor.yy0.string); }
#line 925 "parse.c" #line 943 "parse.c"
break; break;
case 50: case 50:
#line 94 "parse.y" #line 94 "parse.y"
{ AddSpriteName (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); { AddSpriteName (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor);
} }
#line 931 "parse.c" #line 949 "parse.c"
break; break;
case 55: case 55:
#line 103 "parse.y" #line 103 "parse.y"
{ AddStateMap (yymsp[-4].minor.yy0.string, yymsp[-2].minor.yy62, yymsp[0].minor.yy62); yy_destructor(13,&yymsp[-3].minor); { AddStateMap (yymsp[-4].minor.yy0.string, yymsp[-2].minor.yy62, yymsp[0].minor.yy62); yy_destructor(13,&yymsp[-3].minor);
yy_destructor(13,&yymsp[-1].minor); yy_destructor(13,&yymsp[-1].minor);
} }
#line 938 "parse.c" #line 956 "parse.c"
break; break;
case 56: case 56:
#line 106 "parse.y" #line 106 "parse.y"
{ yygotominor.yy62 = 0; yy_destructor(28,&yymsp[0].minor); { yygotominor.yy62 = 0; yy_destructor(28,&yymsp[0].minor);
} }
#line 944 "parse.c" #line 962 "parse.c"
break; break;
case 57: case 57:
#line 107 "parse.y" #line 107 "parse.y"
{ yygotominor.yy62 = 1; yy_destructor(29,&yymsp[0].minor); { yygotominor.yy62 = 1; yy_destructor(29,&yymsp[0].minor);
} }
#line 950 "parse.c" #line 968 "parse.c"
break; break;
case 58: case 58:
#line 108 "parse.y" #line 108 "parse.y"
{ yygotominor.yy62 = 2; yy_destructor(30,&yymsp[0].minor); { yygotominor.yy62 = 2; yy_destructor(30,&yymsp[0].minor);
} }
#line 956 "parse.c" #line 974 "parse.c"
break; break;
case 61: case 61:
#line 114 "parse.y" #line 114 "parse.y"
{ AddSoundMap (yymsp[0].minor.yy0.string); } { AddSoundMap (yymsp[0].minor.yy0.string); }
#line 961 "parse.c" #line 979 "parse.c"
break; break;
case 62: case 62:
#line 115 "parse.y" #line 115 "parse.y"
{ AddSoundMap (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); { AddSoundMap (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor);
} }
#line 967 "parse.c" #line 985 "parse.c"
break; break;
case 65: case 65:
#line 121 "parse.y" #line 121 "parse.y"
{ AddInfoName (yymsp[0].minor.yy0.string); } { AddInfoName (yymsp[0].minor.yy0.string); }
#line 972 "parse.c" #line 990 "parse.c"
break; break;
case 66: case 66:
#line 122 "parse.y" #line 122 "parse.y"
{ AddInfoName (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor); { AddInfoName (yymsp[0].minor.yy0.string); yy_destructor(13,&yymsp[-1].minor);
} }
#line 978 "parse.c" #line 996 "parse.c"
break; break;
case 71: case 71:
#line 131 "parse.y" #line 131 "parse.y"
{ AddThingBits (yymsp[0].minor.yy0.string, yymsp[-4].minor.yy62, yymsp[-2].minor.yy62); yy_destructor(13,&yymsp[-3].minor); { AddThingBits (yymsp[0].minor.yy0.string, yymsp[-4].minor.yy62, yymsp[-2].minor.yy62); yy_destructor(13,&yymsp[-3].minor);
yy_destructor(13,&yymsp[-1].minor); yy_destructor(13,&yymsp[-1].minor);
} }
#line 985 "parse.c" #line 1003 "parse.c"
break; break;
case 76: case 76:
#line 140 "parse.y" #line 140 "parse.y"
{ AddRenderStyle (yymsp[0].minor.yy0.string, yymsp[-2].minor.yy62); yy_destructor(13,&yymsp[-1].minor); { AddRenderStyle (yymsp[0].minor.yy0.string, yymsp[-2].minor.yy62); yy_destructor(13,&yymsp[-1].minor);
} }
#line 991 "parse.c" #line 1009 "parse.c"
break; break;
}; };
yygoto = yyRuleInfo[yyruleno].lhs; yygoto = yyRuleInfo[yyruleno].lhs;
@ -1123,6 +1142,9 @@ void Parse(
yymajor = 0; yymajor = 0;
}else{ }else{
yymajor = YYNOCODE; yymajor = YYNOCODE;
while( yypParser->yyidx>= 0 && (yyact = yy_find_shift_action(yypParser,YYNOCODE)) < YYNSTATE + YYNRULE ){
yy_reduce(yypParser,yyact-YYNSTATE);
}
} }
}else if( yyact < YYNSTATE + YYNRULE ){ }else if( yyact < YYNSTATE + YYNRULE ){
yy_reduce(yypParser,yyact-YYNSTATE); yy_reduce(yypParser,yyact-YYNSTATE);

View file

@ -19,10 +19,10 @@ CCDV = @../../ccdv
CC = gcc CC = gcc
LDFLAGS= -s LDFLAGS= -s
BISON = bison LEMON = ../lemon/lemon
BISONFLAGS = LEMONFLAGS =
OBJS = gen.o xlat-parse.tab.o OBJS = gen.o xlat-parse.o
all: $(EXE) all: $(EXE)
@ -40,11 +40,11 @@ else
rm -f *.o rm -f *.o
endif endif
xlat-parse.tab.o: xlat-parse.tab.c xlat.h xlat-parse.o: xlat-parse.c xlat.h xlat-parse.h
$(CCDV) $(CC) $(CFLAGS) -c -o $@ $< $(CCDV) $(CC) $(CFLAGS) -c -o $@ $<
xlat-parse.tab.c: xlat-parse.y xlat-parse.c xlat-parse.h: xlat-parse.y
$(CCDV) $(BISON) $(BISONFLAGS) -o $@ $< $(CCDV) $(LEMON) $(LEMONFLAGS) $<
gen.o: gen.c xlat.h gen.o: gen.c xlat.h
$(CCDV) $(CC) $(CFLAGS) -c -o $@ $< $(CCDV) $(CC) $(CFLAGS) -c -o $@ $<

View file

@ -19,7 +19,7 @@ static char *NameStack[FILE_STACK];
static int LineStack[FILE_STACK]; static int LineStack[FILE_STACK];
static int SourceStackSize; static int SourceStackSize;
int yyparse (); void yyparse (void);
int CountSimpleTranslators (void) int CountSimpleTranslators (void)
{ {

2090
tools/xlatcc/xlat-parse.c Normal file

File diff suppressed because it is too large Load diff

36
tools/xlatcc/xlat-parse.h Normal file
View file

@ -0,0 +1,36 @@
#define OR 1
#define XOR 2
#define AND 3
#define MINUS 4
#define PLUS 5
#define MULTIPLY 6
#define DIVIDE 7
#define NEG 8
#define NUM 9
#define SYMNUM 10
#define LPAREN 11
#define RPAREN 12
#define PRINT 13
#define COMMA 14
#define STRING 15
#define ENDL 16
#define DEFINE 17
#define SYM 18
#define INCLUDE 19
#define RBRACE 20
#define ENUM 21
#define LBRACE 22
#define EQUALS 23
#define SPECIAL 24
#define SEMICOLON 25
#define COLON 26
#define LBRACKET 27
#define RBRACKET 28
#define FLAGS 29
#define ARG2 30
#define ARG3 31
#define ARG4 32
#define ARG5 33
#define OR_EQUAL 34
#define TAG 35
#define LINEID 36

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -98,84 +98,6 @@
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;" CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;"
/> />
</Configuration> </Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/xlatcc.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;"
/>
</Configuration>
<Configuration <Configuration
Name="Debug|x64" Name="Debug|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@ -257,6 +179,84 @@
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;" CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;"
/> />
</Configuration> </Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="Release"
IntermediateDirectory="Release"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
/>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="WIN32;NDEBUG;_CONSOLE"
RuntimeLibrary="0"
UsePrecompiledHeader="0"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
DisableSpecificWarnings="4996"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
OutputFile="$(OutDir)/xlatcc.exe"
LinkIncremental="1"
GenerateDebugInformation="true"
SubSystem="1"
OptimizeReferences="2"
EnableCOMDATFolding="2"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
CommandLine="copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)\$(TargetFileName)&quot;"
/>
</Configuration>
<Configuration <Configuration
Name="Release|x64" Name="Release|x64"
OutputDirectory="$(PlatformName)\$(ConfigurationName)" OutputDirectory="$(PlatformName)\$(ConfigurationName)"
@ -350,40 +350,8 @@
> >
</File> </File>
<File <File
RelativePath=".\xlat-parse.tab.c" RelativePath=".\xlat-parse.c"
> >
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="__STDC__=0"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="__STDC__=0"
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|x64"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="__STDC__=0"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|x64"
>
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="__STDC__=0"
/>
</FileConfiguration>
</File> </File>
</Filter> </Filter>
<Filter <Filter
@ -391,6 +359,10 @@
Filter="h;hpp;hxx;hm;inl;inc;xsd" Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
> >
<File
RelativePath=".\xlat-parse.h"
>
</File>
<File <File
RelativePath=".\xlat.h" RelativePath=".\xlat.h"
> >
@ -407,8 +379,9 @@
> >
<Tool <Tool
Name="VCCustomBuildTool" Name="VCCustomBuildTool"
CommandLine="bison xlat-parse.y&#x0D;&#x0A;" Description="Generating xlat-parse.c from xlat-parse.y..."
Outputs="xlat-parse.tab.c" CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;"
Outputs="$(InputDir)xlat-parse.c;$(InputDir)xlat-parse.h"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration <FileConfiguration
@ -420,6 +393,16 @@
Outputs="xlat-parse.tab.c" Outputs="xlat-parse.tab.c"
/> />
</FileConfiguration> </FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCustomBuildTool"
Description="Generating xlat-parse.c from xlat-parse.y..."
CommandLine="..\lemon\lemon.exe -s &quot;$(InputFileName)&quot;"
Outputs="$(InputDir)xlat-parse.c;$(InputDir)xlat-parse.h"
/>
</FileConfiguration>
</File> </File>
</Filter> </Filter>
</Files> </Files>

View file

@ -16,7 +16,7 @@ special
219:Sector_SetFriction(), 219:Sector_SetFriction(),
222:Scroll_Texture_Model(), 222:Scroll_Texture_Model(),
225:Scroll_Texture_Offsets(), 225:Scroll_Texture_Offsets(),
227:PointPush_SetForce(), 227:PointPush_SetForce()
; ;
// Static_Init types // Static_Init types