GenerateCompiler

-ReAdded generateCompiler.bat
-Fixed paths in bat filse
-Fixed paths for includes
This commit is contained in:
marauder2k7 2024-04-14 07:08:17 +01:00
parent 8404496ffa
commit 0954b081d0
7 changed files with 139 additions and 138 deletions

View file

@ -8,7 +8,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "console/console.h" #include "console/console.h"
#include "console/compiler.h" #include "console/torquescript/compiler.h"
#include "console/consoleInternal.h" #include "console/consoleInternal.h"
#include "core/strings/stringFunctions.h" #include "core/strings/stringFunctions.h"
@ -166,7 +166,7 @@ decl_list
: :
{ $$ = nil; } { $$ = nil; }
| decl_list decl | decl_list decl
{ if(!gStatementList) { gStatementList = $2; } else { gStatementList->append($2); } } { if(!Script::gStatementList) { Script::gStatementList = $2; } else { Script::gStatementList->append($2); } }
; ;
decl decl

View file

@ -29,10 +29,6 @@
#include <stdio.h> #include <stdio.h>
#include "compiler.h"
#include "runtime.h"
#include "console/script.h"
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */ /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
#ifdef c_plusplus #ifdef c_plusplus
@ -555,9 +551,11 @@ char *yytext;
#define YYLMAX 4096 #define YYLMAX 4096
#define YY_NO_UNISTD_H #define YY_NO_UNISTD_H
#include <stdio.h>
#include "platform/platform.h" #include "platform/platform.h"
#include "core/stringTable.h" #include "core/stringTable.h"
#include "console/console.h" #include "console/console.h"
#include "console/torquescript/compiler.h"
#include "console/dynamicTypes.h" #include "console/dynamicTypes.h"
#include "core/strings/stringFunctions.h" #include "core/strings/stringFunctions.h"
@ -578,7 +576,10 @@ inline Token< T > MakeToken( T value, U32 lineNumber )
return result; return result;
} }
#include "cmdgram.h" #include "console/torquescript/cmdgram.h"
// HACK: C++17 and beyond can't use register keyword
#define register
using namespace Compiler; using namespace Compiler;
@ -633,7 +634,7 @@ void CMDerror(const char * s, ...);
// Reset the parser. // Reset the parser.
void CMDrestart(FILE *in); void CMDrestart(FILE *in);
#line 635 "CMDscan.cpp" #line 638 "CMDscan.cpp"
/* Macros after this point can all be overridden by user definitions in /* Macros after this point can all be overridden by user definitions in
* section 1. * section 1.
@ -776,14 +777,14 @@ YY_MALLOC_DECL
YY_DECL YY_DECL
{ {
yy_state_type yy_current_state; register yy_state_type yy_current_state;
char *yy_cp, *yy_bp; register char *yy_cp, *yy_bp;
int yy_act; register int yy_act;
#line 105 "CMDscan.l" #line 108 "CMDscan.l"
; ;
#line 785 "CMDscan.cpp" #line 788 "CMDscan.cpp"
if ( yy_init ) if ( yy_init )
{ {
@ -825,7 +826,7 @@ YY_DECL
yy_match: yy_match:
do do
{ {
YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)]; register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
if ( yy_accept[yy_current_state] ) if ( yy_accept[yy_current_state] )
{ {
yy_last_accepting_state = yy_current_state; yy_last_accepting_state = yy_current_state;
@ -868,187 +869,187 @@ do_action: /* This label is used only to access EOF actions. */
case 1: case 1:
YY_RULE_SETUP YY_RULE_SETUP
#line 107 "CMDscan.l" #line 110 "CMDscan.l"
{ } { }
YY_BREAK YY_BREAK
case 2: case 2:
YY_RULE_SETUP YY_RULE_SETUP
#line 108 "CMDscan.l" #line 111 "CMDscan.l"
{ return(Sc_ScanDocBlock()); } { return(Sc_ScanDocBlock()); }
YY_BREAK YY_BREAK
case 3: case 3:
YY_RULE_SETUP YY_RULE_SETUP
#line 109 "CMDscan.l" #line 112 "CMDscan.l"
; ;
YY_BREAK YY_BREAK
case 4: case 4:
YY_RULE_SETUP YY_RULE_SETUP
#line 110 "CMDscan.l" #line 113 "CMDscan.l"
; ;
YY_BREAK YY_BREAK
case 5: case 5:
YY_RULE_SETUP YY_RULE_SETUP
#line 111 "CMDscan.l" #line 114 "CMDscan.l"
{lineIndex++;} {lineIndex++;}
YY_BREAK YY_BREAK
case 6: case 6:
YY_RULE_SETUP YY_RULE_SETUP
#line 112 "CMDscan.l" #line 115 "CMDscan.l"
{ return(Sc_ScanString(STRATOM)); } { return(Sc_ScanString(STRATOM)); }
YY_BREAK YY_BREAK
case 7: case 7:
YY_RULE_SETUP YY_RULE_SETUP
#line 113 "CMDscan.l" #line 116 "CMDscan.l"
{ return(Sc_ScanString(TAGATOM)); } { return(Sc_ScanString(TAGATOM)); }
YY_BREAK YY_BREAK
case 8: case 8:
YY_RULE_SETUP YY_RULE_SETUP
#line 114 "CMDscan.l" #line 117 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opEQ, lineIndex ); return opEQ; } { CMDlval.i = MakeToken< int >( opEQ, lineIndex ); return opEQ; }
YY_BREAK YY_BREAK
case 9: case 9:
YY_RULE_SETUP YY_RULE_SETUP
#line 115 "CMDscan.l" #line 118 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opNE, lineIndex ); return opNE; } { CMDlval.i = MakeToken< int >( opNE, lineIndex ); return opNE; }
YY_BREAK YY_BREAK
case 10: case 10:
YY_RULE_SETUP YY_RULE_SETUP
#line 116 "CMDscan.l" #line 119 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opGE, lineIndex ); return opGE; } { CMDlval.i = MakeToken< int >( opGE, lineIndex ); return opGE; }
YY_BREAK YY_BREAK
case 11: case 11:
YY_RULE_SETUP YY_RULE_SETUP
#line 117 "CMDscan.l" #line 120 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opLE, lineIndex ); return opLE; } { CMDlval.i = MakeToken< int >( opLE, lineIndex ); return opLE; }
YY_BREAK YY_BREAK
case 12: case 12:
YY_RULE_SETUP YY_RULE_SETUP
#line 118 "CMDscan.l" #line 121 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opAND, lineIndex ); return opAND; } { CMDlval.i = MakeToken< int >( opAND, lineIndex ); return opAND; }
YY_BREAK YY_BREAK
case 13: case 13:
YY_RULE_SETUP YY_RULE_SETUP
#line 119 "CMDscan.l" #line 122 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opOR, lineIndex ); return opOR; } { CMDlval.i = MakeToken< int >( opOR, lineIndex ); return opOR; }
YY_BREAK YY_BREAK
case 14: case 14:
YY_RULE_SETUP YY_RULE_SETUP
#line 120 "CMDscan.l" #line 123 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opCOLONCOLON, lineIndex ); return opCOLONCOLON; } { CMDlval.i = MakeToken< int >( opCOLONCOLON, lineIndex ); return opCOLONCOLON; }
YY_BREAK YY_BREAK
case 15: case 15:
YY_RULE_SETUP YY_RULE_SETUP
#line 121 "CMDscan.l" #line 124 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opMINUSMINUS, lineIndex ); return opMINUSMINUS; } { CMDlval.i = MakeToken< int >( opMINUSMINUS, lineIndex ); return opMINUSMINUS; }
YY_BREAK YY_BREAK
case 16: case 16:
YY_RULE_SETUP YY_RULE_SETUP
#line 122 "CMDscan.l" #line 125 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opPLUSPLUS, lineIndex ); return opPLUSPLUS; } { CMDlval.i = MakeToken< int >( opPLUSPLUS, lineIndex ); return opPLUSPLUS; }
YY_BREAK YY_BREAK
case 17: case 17:
YY_RULE_SETUP YY_RULE_SETUP
#line 123 "CMDscan.l" #line 126 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opSTREQ, lineIndex ); return opSTREQ; } { CMDlval.i = MakeToken< int >( opSTREQ, lineIndex ); return opSTREQ; }
YY_BREAK YY_BREAK
case 18: case 18:
YY_RULE_SETUP YY_RULE_SETUP
#line 124 "CMDscan.l" #line 127 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opSTRNE, lineIndex ); return opSTRNE; } { CMDlval.i = MakeToken< int >( opSTRNE, lineIndex ); return opSTRNE; }
YY_BREAK YY_BREAK
case 19: case 19:
YY_RULE_SETUP YY_RULE_SETUP
#line 125 "CMDscan.l" #line 128 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opSHL, lineIndex ); return opSHL; } { CMDlval.i = MakeToken< int >( opSHL, lineIndex ); return opSHL; }
YY_BREAK YY_BREAK
case 20: case 20:
YY_RULE_SETUP YY_RULE_SETUP
#line 126 "CMDscan.l" #line 129 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opSHR, lineIndex ); return opSHR; } { CMDlval.i = MakeToken< int >( opSHR, lineIndex ); return opSHR; }
YY_BREAK YY_BREAK
case 21: case 21:
YY_RULE_SETUP YY_RULE_SETUP
#line 127 "CMDscan.l" #line 130 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opPLASN, lineIndex ); return opPLASN; } { CMDlval.i = MakeToken< int >( opPLASN, lineIndex ); return opPLASN; }
YY_BREAK YY_BREAK
case 22: case 22:
YY_RULE_SETUP YY_RULE_SETUP
#line 128 "CMDscan.l" #line 131 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opMIASN, lineIndex ); return opMIASN; } { CMDlval.i = MakeToken< int >( opMIASN, lineIndex ); return opMIASN; }
YY_BREAK YY_BREAK
case 23: case 23:
YY_RULE_SETUP YY_RULE_SETUP
#line 129 "CMDscan.l" #line 132 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opMLASN, lineIndex ); return opMLASN; } { CMDlval.i = MakeToken< int >( opMLASN, lineIndex ); return opMLASN; }
YY_BREAK YY_BREAK
case 24: case 24:
YY_RULE_SETUP YY_RULE_SETUP
#line 130 "CMDscan.l" #line 133 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opDVASN, lineIndex ); return opDVASN; } { CMDlval.i = MakeToken< int >( opDVASN, lineIndex ); return opDVASN; }
YY_BREAK YY_BREAK
case 25: case 25:
YY_RULE_SETUP YY_RULE_SETUP
#line 131 "CMDscan.l" #line 134 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opMODASN, lineIndex ); return opMODASN; } { CMDlval.i = MakeToken< int >( opMODASN, lineIndex ); return opMODASN; }
YY_BREAK YY_BREAK
case 26: case 26:
YY_RULE_SETUP YY_RULE_SETUP
#line 132 "CMDscan.l" #line 135 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opANDASN, lineIndex ); return opANDASN; } { CMDlval.i = MakeToken< int >( opANDASN, lineIndex ); return opANDASN; }
YY_BREAK YY_BREAK
case 27: case 27:
YY_RULE_SETUP YY_RULE_SETUP
#line 133 "CMDscan.l" #line 136 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opXORASN, lineIndex ); return opXORASN; } { CMDlval.i = MakeToken< int >( opXORASN, lineIndex ); return opXORASN; }
YY_BREAK YY_BREAK
case 28: case 28:
YY_RULE_SETUP YY_RULE_SETUP
#line 134 "CMDscan.l" #line 137 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opORASN, lineIndex ); return opORASN; } { CMDlval.i = MakeToken< int >( opORASN, lineIndex ); return opORASN; }
YY_BREAK YY_BREAK
case 29: case 29:
YY_RULE_SETUP YY_RULE_SETUP
#line 135 "CMDscan.l" #line 138 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opSLASN, lineIndex ); return opSLASN; } { CMDlval.i = MakeToken< int >( opSLASN, lineIndex ); return opSLASN; }
YY_BREAK YY_BREAK
case 30: case 30:
YY_RULE_SETUP YY_RULE_SETUP
#line 136 "CMDscan.l" #line 139 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opSRASN, lineIndex ); return opSRASN; } { CMDlval.i = MakeToken< int >( opSRASN, lineIndex ); return opSRASN; }
YY_BREAK YY_BREAK
case 31: case 31:
YY_RULE_SETUP YY_RULE_SETUP
#line 137 "CMDscan.l" #line 140 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opINTNAME, lineIndex ); return opINTNAME; } { CMDlval.i = MakeToken< int >( opINTNAME, lineIndex ); return opINTNAME; }
YY_BREAK YY_BREAK
case 32: case 32:
YY_RULE_SETUP YY_RULE_SETUP
#line 138 "CMDscan.l" #line 141 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( opINTNAMER, lineIndex ); return opINTNAMER; } { CMDlval.i = MakeToken< int >( opINTNAMER, lineIndex ); return opINTNAMER; }
YY_BREAK YY_BREAK
case 33: case 33:
YY_RULE_SETUP YY_RULE_SETUP
#line 139 "CMDscan.l" #line 142 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( '\n', lineIndex ); return '@'; } { CMDlval.i = MakeToken< int >( '\n', lineIndex ); return '@'; }
YY_BREAK YY_BREAK
case 34: case 34:
YY_RULE_SETUP YY_RULE_SETUP
#line 140 "CMDscan.l" #line 143 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( '\t', lineIndex ); return '@'; } { CMDlval.i = MakeToken< int >( '\t', lineIndex ); return '@'; }
YY_BREAK YY_BREAK
case 35: case 35:
YY_RULE_SETUP YY_RULE_SETUP
#line 141 "CMDscan.l" #line 144 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( ' ', lineIndex ); return '@'; } { CMDlval.i = MakeToken< int >( ' ', lineIndex ); return '@'; }
YY_BREAK YY_BREAK
case 36: case 36:
YY_RULE_SETUP YY_RULE_SETUP
#line 142 "CMDscan.l" #line 145 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( 0, lineIndex ); return '@'; } { CMDlval.i = MakeToken< int >( 0, lineIndex ); return '@'; }
YY_BREAK YY_BREAK
case 37: case 37:
YY_RULE_SETUP YY_RULE_SETUP
#line 143 "CMDscan.l" #line 146 "CMDscan.l"
{ /* this comment stops syntax highlighting from getting messed up when editing the lexer in TextPad */ { /* this comment stops syntax highlighting from getting messed up when editing the lexer in TextPad */
int c = 0, l; int c = 0, l;
for ( ; ; ) for ( ; ; )
@ -1074,222 +1075,222 @@ YY_RULE_SETUP
} }
YY_BREAK YY_BREAK
case 38: case 38:
#line 167 "CMDscan.l"
case 39:
#line 168 "CMDscan.l"
case 40:
#line 169 "CMDscan.l"
case 41:
#line 170 "CMDscan.l" #line 170 "CMDscan.l"
case 42: case 39:
#line 171 "CMDscan.l" #line 171 "CMDscan.l"
case 43: case 40:
#line 172 "CMDscan.l" #line 172 "CMDscan.l"
case 44: case 41:
#line 173 "CMDscan.l" #line 173 "CMDscan.l"
case 45: case 42:
#line 174 "CMDscan.l" #line 174 "CMDscan.l"
case 46: case 43:
#line 175 "CMDscan.l" #line 175 "CMDscan.l"
case 47: case 44:
#line 176 "CMDscan.l" #line 176 "CMDscan.l"
case 48: case 45:
#line 177 "CMDscan.l" #line 177 "CMDscan.l"
case 49: case 46:
#line 178 "CMDscan.l" #line 178 "CMDscan.l"
case 50: case 47:
#line 179 "CMDscan.l" #line 179 "CMDscan.l"
case 51: case 48:
#line 180 "CMDscan.l" #line 180 "CMDscan.l"
case 52: case 49:
#line 181 "CMDscan.l" #line 181 "CMDscan.l"
case 53: case 50:
#line 182 "CMDscan.l" #line 182 "CMDscan.l"
case 54: case 51:
#line 183 "CMDscan.l" #line 183 "CMDscan.l"
case 55: case 52:
#line 184 "CMDscan.l" #line 184 "CMDscan.l"
case 56: case 53:
#line 185 "CMDscan.l" #line 185 "CMDscan.l"
case 57: case 54:
#line 186 "CMDscan.l" #line 186 "CMDscan.l"
case 58: case 55:
#line 187 "CMDscan.l" #line 187 "CMDscan.l"
case 59: case 56:
#line 188 "CMDscan.l" #line 188 "CMDscan.l"
case 60: case 57:
#line 189 "CMDscan.l" #line 189 "CMDscan.l"
case 58:
#line 190 "CMDscan.l"
case 59:
#line 191 "CMDscan.l"
case 60:
#line 192 "CMDscan.l"
case 61: case 61:
YY_RULE_SETUP YY_RULE_SETUP
#line 189 "CMDscan.l" #line 192 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( CMDtext[ 0 ], lineIndex ); return CMDtext[ 0 ]; } { CMDlval.i = MakeToken< int >( CMDtext[ 0 ], lineIndex ); return CMDtext[ 0 ]; }
YY_BREAK YY_BREAK
case 62: case 62:
YY_RULE_SETUP YY_RULE_SETUP
#line 190 "CMDscan.l" #line 193 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwIN, lineIndex ); return(rwIN); } { CMDlval.i = MakeToken< int >( rwIN, lineIndex ); return(rwIN); }
YY_BREAK YY_BREAK
case 63: case 63:
YY_RULE_SETUP YY_RULE_SETUP
#line 191 "CMDscan.l" #line 194 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwCASEOR, lineIndex ); return(rwCASEOR); } { CMDlval.i = MakeToken< int >( rwCASEOR, lineIndex ); return(rwCASEOR); }
YY_BREAK YY_BREAK
case 64: case 64:
YY_RULE_SETUP YY_RULE_SETUP
#line 192 "CMDscan.l" #line 195 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwBREAK, lineIndex ); return(rwBREAK); } { CMDlval.i = MakeToken< int >( rwBREAK, lineIndex ); return(rwBREAK); }
YY_BREAK YY_BREAK
case 65: case 65:
YY_RULE_SETUP YY_RULE_SETUP
#line 193 "CMDscan.l" #line 196 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwRETURN, lineIndex ); return(rwRETURN); } { CMDlval.i = MakeToken< int >( rwRETURN, lineIndex ); return(rwRETURN); }
YY_BREAK YY_BREAK
case 66: case 66:
YY_RULE_SETUP YY_RULE_SETUP
#line 194 "CMDscan.l" #line 197 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwELSE, lineIndex ); return(rwELSE); } { CMDlval.i = MakeToken< int >( rwELSE, lineIndex ); return(rwELSE); }
YY_BREAK YY_BREAK
case 67: case 67:
YY_RULE_SETUP YY_RULE_SETUP
#line 195 "CMDscan.l" #line 198 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwASSERT, lineIndex ); return(rwASSERT); } { CMDlval.i = MakeToken< int >( rwASSERT, lineIndex ); return(rwASSERT); }
YY_BREAK YY_BREAK
case 68: case 68:
YY_RULE_SETUP YY_RULE_SETUP
#line 196 "CMDscan.l" #line 199 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwWHILE, lineIndex ); return(rwWHILE); } { CMDlval.i = MakeToken< int >( rwWHILE, lineIndex ); return(rwWHILE); }
YY_BREAK YY_BREAK
case 69: case 69:
YY_RULE_SETUP YY_RULE_SETUP
#line 197 "CMDscan.l" #line 200 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwDO, lineIndex ); return(rwDO); } { CMDlval.i = MakeToken< int >( rwDO, lineIndex ); return(rwDO); }
YY_BREAK YY_BREAK
case 70: case 70:
YY_RULE_SETUP YY_RULE_SETUP
#line 198 "CMDscan.l" #line 201 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwIF, lineIndex ); return(rwIF); } { CMDlval.i = MakeToken< int >( rwIF, lineIndex ); return(rwIF); }
YY_BREAK YY_BREAK
case 71: case 71:
YY_RULE_SETUP YY_RULE_SETUP
#line 199 "CMDscan.l" #line 202 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwFOREACHSTR, lineIndex ); return(rwFOREACHSTR); } { CMDlval.i = MakeToken< int >( rwFOREACHSTR, lineIndex ); return(rwFOREACHSTR); }
YY_BREAK YY_BREAK
case 72: case 72:
YY_RULE_SETUP YY_RULE_SETUP
#line 200 "CMDscan.l" #line 203 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwFOREACH, lineIndex ); return(rwFOREACH); } { CMDlval.i = MakeToken< int >( rwFOREACH, lineIndex ); return(rwFOREACH); }
YY_BREAK YY_BREAK
case 73: case 73:
YY_RULE_SETUP YY_RULE_SETUP
#line 201 "CMDscan.l" #line 204 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwFOR, lineIndex ); return(rwFOR); } { CMDlval.i = MakeToken< int >( rwFOR, lineIndex ); return(rwFOR); }
YY_BREAK YY_BREAK
case 74: case 74:
YY_RULE_SETUP YY_RULE_SETUP
#line 202 "CMDscan.l" #line 205 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwCONTINUE, lineIndex ); return(rwCONTINUE); } { CMDlval.i = MakeToken< int >( rwCONTINUE, lineIndex ); return(rwCONTINUE); }
YY_BREAK YY_BREAK
case 75: case 75:
YY_RULE_SETUP YY_RULE_SETUP
#line 203 "CMDscan.l" #line 206 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwDEFINE, lineIndex ); return(rwDEFINE); } { CMDlval.i = MakeToken< int >( rwDEFINE, lineIndex ); return(rwDEFINE); }
YY_BREAK YY_BREAK
case 76: case 76:
YY_RULE_SETUP YY_RULE_SETUP
#line 204 "CMDscan.l" #line 207 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwDECLARE, lineIndex ); return(rwDECLARE); } { CMDlval.i = MakeToken< int >( rwDECLARE, lineIndex ); return(rwDECLARE); }
YY_BREAK YY_BREAK
case 77: case 77:
YY_RULE_SETUP YY_RULE_SETUP
#line 205 "CMDscan.l" #line 208 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwDECLARESINGLETON, lineIndex ); return(rwDECLARESINGLETON); } { CMDlval.i = MakeToken< int >( rwDECLARESINGLETON, lineIndex ); return(rwDECLARESINGLETON); }
YY_BREAK YY_BREAK
case 78: case 78:
YY_RULE_SETUP YY_RULE_SETUP
#line 206 "CMDscan.l" #line 209 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwDATABLOCK, lineIndex ); return(rwDATABLOCK); } { CMDlval.i = MakeToken< int >( rwDATABLOCK, lineIndex ); return(rwDATABLOCK); }
YY_BREAK YY_BREAK
case 79: case 79:
YY_RULE_SETUP YY_RULE_SETUP
#line 207 "CMDscan.l" #line 210 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwCASE, lineIndex ); return(rwCASE); } { CMDlval.i = MakeToken< int >( rwCASE, lineIndex ); return(rwCASE); }
YY_BREAK YY_BREAK
case 80: case 80:
YY_RULE_SETUP YY_RULE_SETUP
#line 208 "CMDscan.l" #line 211 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwSWITCHSTR, lineIndex ); return(rwSWITCHSTR); } { CMDlval.i = MakeToken< int >( rwSWITCHSTR, lineIndex ); return(rwSWITCHSTR); }
YY_BREAK YY_BREAK
case 81: case 81:
YY_RULE_SETUP YY_RULE_SETUP
#line 209 "CMDscan.l" #line 212 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwSWITCH, lineIndex ); return(rwSWITCH); } { CMDlval.i = MakeToken< int >( rwSWITCH, lineIndex ); return(rwSWITCH); }
YY_BREAK YY_BREAK
case 82: case 82:
YY_RULE_SETUP YY_RULE_SETUP
#line 210 "CMDscan.l" #line 213 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwDEFAULT, lineIndex ); return(rwDEFAULT); } { CMDlval.i = MakeToken< int >( rwDEFAULT, lineIndex ); return(rwDEFAULT); }
YY_BREAK YY_BREAK
case 83: case 83:
YY_RULE_SETUP YY_RULE_SETUP
#line 211 "CMDscan.l" #line 214 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwPACKAGE, lineIndex ); return(rwPACKAGE); } { CMDlval.i = MakeToken< int >( rwPACKAGE, lineIndex ); return(rwPACKAGE); }
YY_BREAK YY_BREAK
case 84: case 84:
YY_RULE_SETUP YY_RULE_SETUP
#line 212 "CMDscan.l" #line 215 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( rwNAMESPACE, lineIndex ); return(rwNAMESPACE); } { CMDlval.i = MakeToken< int >( rwNAMESPACE, lineIndex ); return(rwNAMESPACE); }
YY_BREAK YY_BREAK
case 85: case 85:
YY_RULE_SETUP YY_RULE_SETUP
#line 213 "CMDscan.l" #line 216 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( 1, lineIndex ); return INTCONST; } { CMDlval.i = MakeToken< int >( 1, lineIndex ); return INTCONST; }
YY_BREAK YY_BREAK
case 86: case 86:
YY_RULE_SETUP YY_RULE_SETUP
#line 214 "CMDscan.l" #line 217 "CMDscan.l"
{ CMDlval.i = MakeToken< int >( 0, lineIndex ); return INTCONST; } { CMDlval.i = MakeToken< int >( 0, lineIndex ); return INTCONST; }
YY_BREAK YY_BREAK
case 87: case 87:
YY_RULE_SETUP YY_RULE_SETUP
#line 215 "CMDscan.l" #line 218 "CMDscan.l"
{ return(Sc_ScanVar()); } { return(Sc_ScanVar()); }
YY_BREAK YY_BREAK
case 88: case 88:
YY_RULE_SETUP YY_RULE_SETUP
#line 216 "CMDscan.l" #line 220 "CMDscan.l"
{ return Sc_ScanIdent(); } { return Sc_ScanIdent(); }
YY_BREAK YY_BREAK
case 89: case 89:
YY_RULE_SETUP YY_RULE_SETUP
#line 217 "CMDscan.l" #line 221 "CMDscan.l"
return(Sc_ScanHex()); return(Sc_ScanHex());
YY_BREAK YY_BREAK
case 90: case 90:
YY_RULE_SETUP YY_RULE_SETUP
#line 218 "CMDscan.l" #line 222 "CMDscan.l"
{ CMDtext[CMDleng] = 0; CMDlval.i = MakeToken< int >( dAtoi(CMDtext), lineIndex ); return INTCONST; } { CMDtext[CMDleng] = 0; CMDlval.i = MakeToken< int >( dAtoi(CMDtext), lineIndex ); return INTCONST; }
YY_BREAK YY_BREAK
case 91: case 91:
YY_RULE_SETUP YY_RULE_SETUP
#line 219 "CMDscan.l" #line 223 "CMDscan.l"
return Sc_ScanNum(); return Sc_ScanNum();
YY_BREAK YY_BREAK
case 92: case 92:
YY_RULE_SETUP YY_RULE_SETUP
#line 220 "CMDscan.l" #line 224 "CMDscan.l"
return(ILLEGAL_TOKEN); return(ILLEGAL_TOKEN);
YY_BREAK YY_BREAK
case 93: case 93:
YY_RULE_SETUP YY_RULE_SETUP
#line 221 "CMDscan.l" #line 225 "CMDscan.l"
return(ILLEGAL_TOKEN); return(ILLEGAL_TOKEN);
YY_BREAK YY_BREAK
case 94: case 94:
YY_RULE_SETUP YY_RULE_SETUP
#line 222 "CMDscan.l" #line 226 "CMDscan.l"
ECHO; ECHO;
YY_BREAK YY_BREAK
#line 1291 "CMDscan.cpp" #line 1294 "CMDscan.cpp"
case YY_STATE_EOF(INITIAL): case YY_STATE_EOF(INITIAL):
yyterminate(); yyterminate();
@ -1432,9 +1433,9 @@ case YY_STATE_EOF(INITIAL):
static int yy_get_next_buffer() static int yy_get_next_buffer()
{ {
char *dest = yy_current_buffer->yy_ch_buf; register char *dest = yy_current_buffer->yy_ch_buf;
char *source = yytext_ptr; register char *source = yytext_ptr;
int number_to_move, i; register int number_to_move, i;
int ret_val; int ret_val;
if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] ) if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
@ -1562,14 +1563,14 @@ static int yy_get_next_buffer()
static yy_state_type yy_get_previous_state() static yy_state_type yy_get_previous_state()
{ {
yy_state_type yy_current_state; register yy_state_type yy_current_state;
char *yy_cp; register char *yy_cp;
yy_current_state = yy_start; yy_current_state = yy_start;
for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp ) for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
{ {
YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1); register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
if ( yy_accept[yy_current_state] ) if ( yy_accept[yy_current_state] )
{ {
yy_last_accepting_state = yy_current_state; yy_last_accepting_state = yy_current_state;
@ -1601,10 +1602,10 @@ static yy_state_type yy_try_NUL_trans( yy_current_state )
yy_state_type yy_current_state; yy_state_type yy_current_state;
#endif #endif
{ {
int yy_is_jam; register int yy_is_jam;
char *yy_cp = yy_c_buf_p; register char *yy_cp = yy_c_buf_p;
YY_CHAR yy_c = 1; register YY_CHAR yy_c = 1;
if ( yy_accept[yy_current_state] ) if ( yy_accept[yy_current_state] )
{ {
yy_last_accepting_state = yy_current_state; yy_last_accepting_state = yy_current_state;
@ -1625,14 +1626,14 @@ yy_state_type yy_current_state;
#ifndef YY_NO_UNPUT #ifndef YY_NO_UNPUT
#ifdef YY_USE_PROTOS #ifdef YY_USE_PROTOS
static void yyunput( int c, char *yy_bp ) static void yyunput( int c, register char *yy_bp )
#else #else
static void yyunput( c, yy_bp ) static void yyunput( c, yy_bp )
int c; int c;
char *yy_bp; register char *yy_bp;
#endif #endif
{ {
char *yy_cp = yy_c_buf_p; register char *yy_cp = yy_c_buf_p;
/* undo effects of setting up yytext */ /* undo effects of setting up yytext */
*yy_cp = yy_hold_char; *yy_cp = yy_hold_char;
@ -1640,10 +1641,10 @@ char *yy_bp;
if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 ) if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
{ /* need to shift things up to make room */ { /* need to shift things up to make room */
/* +2 for EOB chars. */ /* +2 for EOB chars. */
int number_to_move = yy_n_chars + 2; register int number_to_move = yy_n_chars + 2;
char *dest = &yy_current_buffer->yy_ch_buf[ register char *dest = &yy_current_buffer->yy_ch_buf[
yy_current_buffer->yy_buf_size + 2]; yy_current_buffer->yy_buf_size + 2];
char *source = register char *source =
&yy_current_buffer->yy_ch_buf[number_to_move]; &yy_current_buffer->yy_ch_buf[number_to_move];
while ( source > yy_current_buffer->yy_ch_buf ) while ( source > yy_current_buffer->yy_ch_buf )
@ -2097,7 +2098,7 @@ yyconst char *s2;
int n; int n;
#endif #endif
{ {
int i; register int i;
for ( i = 0; i < n; ++i ) for ( i = 0; i < n; ++i )
s1[i] = s2[i]; s1[i] = s2[i];
} }
@ -2149,7 +2150,7 @@ int main()
return 0; return 0;
} }
#endif #endif
#line 222 "CMDscan.l" #line 226 "CMDscan.l"
static const char *scanBuffer; static const char *scanBuffer;
@ -2340,7 +2341,7 @@ static int Sc_ScanDocBlock()
static int Sc_ScanString(int ret) static int Sc_ScanString(int ret)
{ {
CMDtext[CMDleng - 1] = 0; CMDtext[CMDleng - 1] = 0;
if(!TorqueScript::getRuntime()->collapseEscapedCharacters(CMDtext+1)) if(!collapseEscape(CMDtext+1))
return -1; return -1;
dsize_t bufferLen = dStrlen( CMDtext ); dsize_t bufferLen = dStrlen( CMDtext );

View file

@ -9,7 +9,7 @@
#include "platform/platform.h" #include "platform/platform.h"
#include "core/stringTable.h" #include "core/stringTable.h"
#include "console/console.h" #include "console/console.h"
#include "console/compiler.h" #include "console/torquescript/compiler.h"
#include "console/dynamicTypes.h" #include "console/dynamicTypes.h"
#include "core/strings/stringFunctions.h" #include "core/strings/stringFunctions.h"
@ -30,7 +30,7 @@ inline Token< T > MakeToken( T value, U32 lineNumber )
return result; return result;
} }
#include "console/cmdgram.h" #include "console/torquescript/cmdgram.h"
// HACK: C++17 and beyond can't use register keyword // HACK: C++17 and beyond can't use register keyword
#define register #define register

View file

@ -1,6 +1,6 @@
echo Changing to %4 ... echo Changing to %4 ...
cd %4 cd %4
echo Generating %2 and %3 with prefix %1. echo Generating %2 and %3 with prefix %1.
..\..\bin\bison\bison.exe -o %2 %3 --defines -p %1 ..\..\..\bin\bison\bison.exe -o %2 %3 --defines -p %1
echo Renaming %2 to %5 . echo Renaming %2 to %5 .
move /Y %2 %5 move /Y %2 %5

View file

@ -95,7 +95,7 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include "console/console.h" #include "console/console.h"
#include "compiler.h" #include "console/torquescript/compiler.h"
#include "console/consoleInternal.h" #include "console/consoleInternal.h"
#include "core/strings/stringFunctions.h" #include "core/strings/stringFunctions.h"
@ -2390,3 +2390,5 @@ yyerrhandle:
goto yynewstate; goto yynewstate;
} }
#line 617 "cmdgram.y" #line 617 "cmdgram.y"

View file

@ -1,6 +1,3 @@
#ifndef _CMDGRAM_H_
#define _CMDGRAM_H_
typedef union { typedef union {
Token< char > c; Token< char > c;
Token< int > i; Token< int > i;
@ -93,5 +90,3 @@ typedef union {
extern YYSTYPE CMDlval; extern YYSTYPE CMDlval;
#endif

View file

@ -0,0 +1,3 @@
call bison.bat CMD CMDgram.c CMDgram.y . CMDgram.cpp
..\..\..\bin\flex\flex -PCMD -oCMDscan.cpp CMDscan.l