aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_compile.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--LuaSL/src/LuaSL_compile.c106
1 files changed, 53 insertions, 53 deletions
diff --git a/LuaSL/src/LuaSL_compile.c b/LuaSL/src/LuaSL_compile.c
index c53a09a..48f2910 100644
--- a/LuaSL/src/LuaSL_compile.c
+++ b/LuaSL/src/LuaSL_compile.c
@@ -222,7 +222,7 @@ static LSL_Leaf *newLeaf(LSL_Type type, LSL_Leaf *left, LSL_Leaf *right)
222 { 222 {
223 leaf->left = left; 223 leaf->left = left;
224 leaf->right = right; 224 leaf->right = right;
225 leaf->token = tokens[type - lowestToken]; 225 leaf->toKen = tokens[type - lowestToken];
226 } 226 }
227 227
228 return leaf; 228 return leaf;
@@ -274,7 +274,7 @@ static LSL_Leaf *findVariable(LuaSL_compiler *compiler, const char *name)
274 LSL_Leaf *param = NULL; 274 LSL_Leaf *param = NULL;
275 EINA_INARRAY_FOREACH((&(block->function->vars)), param) 275 EINA_INARRAY_FOREACH((&(block->function->vars)), param)
276 { 276 {
277 if ((param) && (LSL_PARAMETER == param->token->type)) 277 if ((param) && (LSL_PARAMETER == param->toKen->type))
278 { 278 {
279// if (name == param->value.identifierValue->name) // Assuming they are stringshares. 279// if (name == param->value.identifierValue->name) // Assuming they are stringshares.
280 if (0 == strcmp(name, param->value.identifierValue->name)) // Not assuming they are stringeshares. 280 if (0 == strcmp(name, param->value.identifierValue->name)) // Not assuming they are stringeshares.
@@ -330,15 +330,15 @@ LSL_Leaf *addOperation(LuaSL_compiler *compiler, LSL_Leaf *left, LSL_Leaf *lval,
330 lval->right = right; 330 lval->right = right;
331 331
332 // Convert subtract to negate if needed. 332 // Convert subtract to negate if needed.
333 if ((NULL == left) && (LSL_SUBTRACT == lval->token->type)) 333 if ((NULL == left) && (LSL_SUBTRACT == lval->toKen->type))
334 lval->token = tokens[LSL_NEGATION - lowestToken]; 334 lval->toKen = tokens[LSL_NEGATION - lowestToken];
335 335
336 // Try to figure out what type of operation this is. 336 // Try to figure out what type of operation this is.
337 if (NULL == left) 337 if (NULL == left)
338 lType = OT_nothing; 338 lType = OT_nothing;
339 else 339 else
340 { 340 {
341 if ((left->token) && (LSL_IDENTIFIER == left->token->type) && (left->value.identifierValue)) 341 if ((left->toKen) && (LSL_IDENTIFIER == left->toKen->type) && (left->value.identifierValue))
342 { 342 {
343 LSL_Leaf *var = findVariable(compiler, left->value.identifierValue->name); 343 LSL_Leaf *var = findVariable(compiler, left->value.identifierValue->name);
344 344
@@ -360,7 +360,7 @@ LSL_Leaf *addOperation(LuaSL_compiler *compiler, LSL_Leaf *left, LSL_Leaf *lval,
360 rType = OT_nothing; 360 rType = OT_nothing;
361 else 361 else
362 { 362 {
363 if ((right->token) && (LSL_IDENTIFIER == right->token->type) && (right->value.identifierValue)) 363 if ((right->toKen) && (LSL_IDENTIFIER == right->toKen->type) && (right->value.identifierValue))
364 { 364 {
365 LSL_Leaf *var = findVariable(compiler, right->value.identifierValue->name); 365 LSL_Leaf *var = findVariable(compiler, right->value.identifierValue->name);
366 366
@@ -379,7 +379,7 @@ LSL_Leaf *addOperation(LuaSL_compiler *compiler, LSL_Leaf *left, LSL_Leaf *lval,
379 rType = allowed[rType].result; 379 rType = allowed[rType].result;
380 } 380 }
381 381
382 switch (lval->token->subType) 382 switch (lval->toKen->subType)
383 { 383 {
384 case ST_BOOLEAN : 384 case ST_BOOLEAN :
385 case ST_COMPARISON : 385 case ST_COMPARISON :
@@ -392,20 +392,20 @@ LSL_Leaf *addOperation(LuaSL_compiler *compiler, LSL_Leaf *left, LSL_Leaf *lval,
392 if (OT_invalid != lval->basicType) 392 if (OT_invalid != lval->basicType)
393 { 393 {
394 // Check if it's an allowed operation. 394 // Check if it's an allowed operation.
395 if (0 == (lval->token->subType & allowed[lval->basicType].subTypes)) 395 if (0 == (lval->toKen->subType & allowed[lval->basicType].subTypes))
396 lval->basicType = OT_invalid; 396 lval->basicType = OT_invalid;
397 else 397 else
398 { 398 {
399 // Double check the corner cases. 399 // Double check the corner cases.
400 switch (lval->token->subType) 400 switch (lval->toKen->subType)
401 { 401 {
402 case ST_MULTIPLY : 402 case ST_MULTIPLY :
403 if (OT_vectorVector == lval->basicType) 403 if (OT_vectorVector == lval->basicType)
404 { 404 {
405 if (LSL_MULTIPLY == lval->token->type) 405 if (LSL_MULTIPLY == lval->toKen->type)
406 { 406 {
407 lval->basicType = OT_float; 407 lval->basicType = OT_float;
408 lval->token = tokens[LSL_DOT_PRODUCT - lowestToken]; 408 lval->toKen = tokens[LSL_DOT_PRODUCT - lowestToken];
409 } 409 }
410 else 410 else
411 lval->basicType = OT_vector; 411 lval->basicType = OT_vector;
@@ -424,22 +424,22 @@ LSL_Leaf *addOperation(LuaSL_compiler *compiler, LSL_Leaf *left, LSL_Leaf *lval,
424 424
425 if (left) 425 if (left)
426 { 426 {
427 if (left->token) 427 if (left->toKen)
428 leftToken = left->token->token; 428 leftToken = left->toKen->toKen;
429 else 429 else
430 PE("BROKEN LEFT TOKEN!!!!!!!!!!!!!!!!!!"); 430 PE("BROKEN LEFT TOKEN!!!!!!!!!!!!!!!!!!");
431 leftType = allowed[left->basicType].name; 431 leftType = allowed[left->basicType].name;
432 } 432 }
433 if (right) 433 if (right)
434 { 434 {
435 if (right->token) 435 if (right->toKen)
436 rightToken = right->token->token; 436 rightToken = right->toKen->toKen;
437 else 437 else
438 PE("BROKEN RIGHT TOKEN!!!!!!!!!!!!!!!!!!"); 438 PE("BROKEN RIGHT TOKEN!!!!!!!!!!!!!!!!!!");
439 rightType = allowed[right->basicType].name; 439 rightType = allowed[right->basicType].name;
440 } 440 }
441 441
442 PE("Invalid operation [%s(%s) %s %s(%s)] @ line %d, column %d!", leftType, leftToken, lval->token->token, rightType, rightToken, lval->line, lval->column); 442 PE("Invalid operation [%s(%s) %s %s(%s)] @ line %d, column %d!", leftType, leftToken, lval->toKen->toKen, rightType, rightToken, lval->line, lval->column);
443 } 443 }
444 } 444 }
445 445
@@ -463,15 +463,15 @@ LSL_Leaf *addParameter(LuaSL_compiler *compiler, LSL_Leaf *type, LSL_Leaf *ident
463 if ( (identifier) && (result)) 463 if ( (identifier) && (result))
464 { 464 {
465 result->name = identifier->value.stringValue; 465 result->name = identifier->value.stringValue;
466 result->value.token = tokens[LSL_UNKNOWN - lowestToken]; 466 result->value.toKen = tokens[LSL_UNKNOWN - lowestToken];
467 identifier->value.identifierValue = result; 467 identifier->value.identifierValue = result;
468 identifier->token = tokens[LSL_PARAMETER - lowestToken]; 468 identifier->toKen = tokens[LSL_PARAMETER - lowestToken];
469 identifier->left = type; 469 identifier->left = type;
470 if (type) 470 if (type)
471 { 471 {
472 identifier->basicType = type->basicType; 472 identifier->basicType = type->basicType;
473 result->value.basicType = type->basicType; 473 result->value.basicType = type->basicType;
474 result->value.token = type->token; // This is the LSL_TYPE_* token instead of the LSL_* token. Not sure if that's a problem. 474 result->value.toKen = type->toKen; // This is the LSL_TYPE_* toKen instead of the LSL_* toKen. Not sure if that's a problem.
475 } 475 }
476 } 476 }
477 return identifier; 477 return identifier;
@@ -529,7 +529,7 @@ LSL_Leaf *addFunction(LuaSL_compiler *compiler, LSL_Leaf *type, LSL_Leaf *identi
529 if (identifier) 529 if (identifier)
530 { 530 {
531 func->name = identifier->value.stringValue; 531 func->name = identifier->value.stringValue;
532 identifier->token = tokens[LSL_FUNCTION - lowestToken]; 532 identifier->toKen = tokens[LSL_FUNCTION - lowestToken];
533 identifier->value.functionValue = func; 533 identifier->value.functionValue = func;
534 func->type = type; 534 func->type = type;
535 if (type) 535 if (type)
@@ -567,7 +567,7 @@ LSL_Leaf *addFunctionCall(LuaSL_compiler *compiler, LSL_Leaf *identifier, LSL_Le
567 LSL_Leaf *func = findFunction(compiler, identifier->value.stringValue); 567 LSL_Leaf *func = findFunction(compiler, identifier->value.stringValue);
568 LSL_FunctionCall *call = calloc(1, sizeof(LSL_FunctionCall)); 568 LSL_FunctionCall *call = calloc(1, sizeof(LSL_FunctionCall));
569 569
570 identifier->token = tokens[LSL_UNKNOWN - lowestToken]; 570 identifier->toKen = tokens[LSL_UNKNOWN - lowestToken];
571 571
572 if (func) 572 if (func)
573 { 573 {
@@ -579,7 +579,7 @@ LSL_Leaf *addFunctionCall(LuaSL_compiler *compiler, LSL_Leaf *identifier, LSL_Le
579 } 579 }
580 identifier->value.functionCallValue = call; 580 identifier->value.functionCallValue = call;
581 // TODO - Put the params in call. 581 // TODO - Put the params in call.
582 identifier->token = tokens[LSL_FUNCTION_CALL - lowestToken]; 582 identifier->toKen = tokens[LSL_FUNCTION_CALL - lowestToken];
583 identifier->basicType = func->basicType; 583 identifier->basicType = func->basicType;
584 } 584 }
585 else 585 else
@@ -629,7 +629,7 @@ LSL_Leaf *addState(LuaSL_compiler *compiler, LSL_Leaf *identifier, LSL_Leaf *blo
629 result->name = identifier->value.stringValue; 629 result->name = identifier->value.stringValue;
630 result->block = block; 630 result->block = block;
631 identifier->value.stateValue = result; 631 identifier->value.stateValue = result;
632 identifier->token = tokens[LSL_STATE - lowestToken]; 632 identifier->toKen = tokens[LSL_STATE - lowestToken];
633 eina_hash_add(compiler->script.states, result->name, identifier); 633 eina_hash_add(compiler->script.states, result->name, identifier);
634 } 634 }
635 635
@@ -756,10 +756,10 @@ LSL_Leaf *addTypecast(LSL_Leaf *lval, LSL_Leaf *type, LSL_Leaf *rval, LSL_Leaf *
756 if (type) 756 if (type)
757 lval->basicType = type->basicType; 757 lval->basicType = type->basicType;
758 // Actualy, at this point, type is no longer needed. 758 // Actualy, at this point, type is no longer needed.
759 lval->token = tokens[LSL_TYPECAST_OPEN - lowestToken]; 759 lval->toKen = tokens[LSL_TYPECAST_OPEN - lowestToken];
760 } 760 }
761// if (rval) 761// if (rval)
762// rval->token = tokens[LSL_TYPECAST_CLOSE - lowestToken]; 762// rval->toKen = tokens[LSL_TYPECAST_CLOSE - lowestToken];
763 763
764 return lval; 764 return lval;
765} 765}
@@ -771,7 +771,7 @@ LSL_Leaf *addVariable(LuaSL_compiler *compiler, LSL_Leaf *type, LSL_Leaf *identi
771 if ( (identifier) && (result)) 771 if ( (identifier) && (result))
772 { 772 {
773 result->name = identifier->value.stringValue; 773 result->name = identifier->value.stringValue;
774 result->value.token = tokens[LSL_UNKNOWN - lowestToken]; 774 result->value.toKen = tokens[LSL_UNKNOWN - lowestToken];
775 identifier->value.identifierValue = result; 775 identifier->value.identifierValue = result;
776 identifier->left = type; 776 identifier->left = type;
777 identifier->right = assignment; 777 identifier->right = assignment;
@@ -781,7 +781,7 @@ LSL_Leaf *addVariable(LuaSL_compiler *compiler, LSL_Leaf *type, LSL_Leaf *identi
781 { 781 {
782 identifier->basicType = type->basicType; 782 identifier->basicType = type->basicType;
783 result->value.basicType = type->basicType; 783 result->value.basicType = type->basicType;
784 result->value.token = type->token; // This is the LSL_TYPE_* token instead of the LSL_* token. Not sure if that's a problem. 784 result->value.toKen = type->toKen; // This is the LSL_TYPE_* toKen instead of the LSL_* toKen. Not sure if that's a problem.
785 } 785 }
786 if (compiler->currentBlock) 786 if (compiler->currentBlock)
787 eina_hash_add(compiler->currentBlock->variables, result->name, identifier); 787 eina_hash_add(compiler->currentBlock->variables, result->name, identifier);
@@ -831,21 +831,21 @@ static LSL_Leaf *evaluateLeaf(LSL_Leaf *leaf, LSL_Leaf *left, LSL_Leaf *right)
831 LSL_Leaf *lresult = NULL; 831 LSL_Leaf *lresult = NULL;
832 LSL_Leaf *rresult = NULL; 832 LSL_Leaf *rresult = NULL;
833 833
834 if (LSL_RIGHT2LEFT & leaf->token->flags) 834 if (LSL_RIGHT2LEFT & leaf->toKen->flags)
835 { 835 {
836 rresult = evaluateLeaf(leaf->right, left, right); 836 rresult = evaluateLeaf(leaf->right, left, right);
837 if (!(LSL_UNARY & leaf->token->flags)) 837 if (!(LSL_UNARY & leaf->toKen->flags))
838 lresult = evaluateLeaf(leaf->left, left, right); 838 lresult = evaluateLeaf(leaf->left, left, right);
839 } 839 }
840 else // Assume left to right. 840 else // Assume left to right.
841 { 841 {
842 lresult = evaluateLeaf(leaf->left, left, right); 842 lresult = evaluateLeaf(leaf->left, left, right);
843 if (!(LSL_UNARY & leaf->token->flags)) 843 if (!(LSL_UNARY & leaf->toKen->flags))
844 rresult = evaluateLeaf(leaf->right, left, right); 844 rresult = evaluateLeaf(leaf->right, left, right);
845 } 845 }
846 846
847 if (leaf->token->evaluate) 847 if (leaf->toKen->evaluate)
848 result = leaf->token->evaluate(leaf, lresult, rresult); 848 result = leaf->toKen->evaluate(leaf, lresult, rresult);
849 else 849 else
850 { 850 {
851 result = newLeaf(LSL_UNKNOWN, NULL, NULL); 851 result = newLeaf(LSL_UNKNOWN, NULL, NULL);
@@ -964,7 +964,7 @@ static LSL_Leaf *evaluateOperationToken(LSL_Leaf *content, LSL_Leaf *left, LSL_L
964 if (content && result) 964 if (content && result)
965 { 965 {
966 if (LUASL_DEBUG) 966 if (LUASL_DEBUG)
967 printf(" [%s] ", content->token->token); 967 printf(" [%s] ", content->toKen->toKen);
968 968
969 memcpy(result, content, sizeof(LSL_Leaf)); 969 memcpy(result, content, sizeof(LSL_Leaf));
970 970
@@ -984,7 +984,7 @@ static LSL_Leaf *evaluateOperationToken(LSL_Leaf *content, LSL_Leaf *left, LSL_L
984 fright = right->value.integerValue; 984 fright = right->value.integerValue;
985 if (OT_intFloat == content->basicType) 985 if (OT_intFloat == content->basicType)
986 fleft = left->value.integerValue; 986 fleft = left->value.integerValue;
987 switch (result->token->type) 987 switch (result->toKen->type)
988 { 988 {
989 case LSL_COMMA : 989 case LSL_COMMA :
990 case LSL_INCREMENT_PRE : 990 case LSL_INCREMENT_PRE :
@@ -1023,7 +1023,7 @@ static LSL_Leaf *evaluateOperationToken(LSL_Leaf *content, LSL_Leaf *left, LSL_L
1023 1023
1024 case OT_integer : 1024 case OT_integer :
1025 { 1025 {
1026 switch (result->token->type) 1026 switch (result->toKen->type)
1027 { 1027 {
1028 case LSL_COMMA : 1028 case LSL_COMMA :
1029 case LSL_INCREMENT_PRE : 1029 case LSL_INCREMENT_PRE :
@@ -1175,13 +1175,13 @@ static void outputLeaf(FILE *file, outputMode mode, LSL_Leaf *leaf)
1175 { 1175 {
1176 outputLeaf(file, mode, leaf->left); 1176 outputLeaf(file, mode, leaf->left);
1177#if LUASL_DIFF_CHECK 1177#if LUASL_DIFF_CHECK
1178 if ((!(LSL_NOIGNORE & leaf->token->flags)) && (leaf->ignorableText)) 1178 if ((!(LSL_NOIGNORE & leaf->toKen->flags)) && (leaf->ignorableText))
1179 fwrite(eina_strbuf_string_get(leaf->ignorableText), 1, eina_strbuf_length_get(leaf->ignorableText), file); 1179 fwrite(eina_strbuf_string_get(leaf->ignorableText), 1, eina_strbuf_length_get(leaf->ignorableText), file);
1180#endif 1180#endif
1181 if (leaf->token->output) 1181 if (leaf->toKen->output)
1182 leaf->token->output(file, mode, leaf); 1182 leaf->toKen->output(file, mode, leaf);
1183 else 1183 else
1184 fprintf(file, "%s", leaf->token->token); 1184 fprintf(file, "%s", leaf->toKen->toKen);
1185 outputLeaf(file, mode, leaf->right); 1185 outputLeaf(file, mode, leaf->right);
1186 } 1186 }
1187} 1187}
@@ -1315,45 +1315,45 @@ static void outputRawStatement(FILE *file, outputMode mode, LSL_Statement *state
1315 } 1315 }
1316 case LSL_DO : 1316 case LSL_DO :
1317 { 1317 {
1318 fprintf(file, "%s", tokens[statement->type - lowestToken]->token); 1318 fprintf(file, "%s", tokens[statement->type - lowestToken]->toKen);
1319 break; 1319 break;
1320 } 1320 }
1321 case LSL_FOR : 1321 case LSL_FOR :
1322 { 1322 {
1323 isBlock = TRUE; 1323 isBlock = TRUE;
1324 fprintf(file, "%s", tokens[statement->type - lowestToken]->token); 1324 fprintf(file, "%s", tokens[statement->type - lowestToken]->toKen);
1325 break; 1325 break;
1326 } 1326 }
1327 case LSL_IF : 1327 case LSL_IF :
1328 { 1328 {
1329 isBlock = TRUE; 1329 isBlock = TRUE;
1330 fprintf(file, "%s", tokens[statement->type - lowestToken]->token); 1330 fprintf(file, "%s", tokens[statement->type - lowestToken]->toKen);
1331 break; 1331 break;
1332 } 1332 }
1333 case LSL_ELSE : 1333 case LSL_ELSE :
1334 { 1334 {
1335 fprintf(file, "%s", tokens[statement->type - lowestToken]->token); 1335 fprintf(file, "%s", tokens[statement->type - lowestToken]->toKen);
1336 break; 1336 break;
1337 } 1337 }
1338 case LSL_JUMP : 1338 case LSL_JUMP :
1339 { 1339 {
1340 fprintf(file, "%s", tokens[statement->type - lowestToken]->token); 1340 fprintf(file, "%s", tokens[statement->type - lowestToken]->toKen);
1341 break; 1341 break;
1342 } 1342 }
1343 case LSL_RETURN : 1343 case LSL_RETURN :
1344 { 1344 {
1345 fprintf(file, "%s", tokens[statement->type - lowestToken]->token); 1345 fprintf(file, "%s", tokens[statement->type - lowestToken]->toKen);
1346 break; 1346 break;
1347 } 1347 }
1348 case LSL_STATE_CHANGE : 1348 case LSL_STATE_CHANGE :
1349 { 1349 {
1350 fprintf(file, "%s", tokens[statement->type - lowestToken]->token); 1350 fprintf(file, "%s", tokens[statement->type - lowestToken]->toKen);
1351 break; 1351 break;
1352 } 1352 }
1353 case LSL_WHILE : 1353 case LSL_WHILE :
1354 { 1354 {
1355 isBlock = TRUE; 1355 isBlock = TRUE;
1356 fprintf(file, "%s", tokens[statement->type - lowestToken]->token); 1356 fprintf(file, "%s", tokens[statement->type - lowestToken]->toKen);
1357 break; 1357 break;
1358 } 1358 }
1359 case LSL_IDENTIFIER : 1359 case LSL_IDENTIFIER :
@@ -1362,7 +1362,7 @@ static void outputRawStatement(FILE *file, outputMode mode, LSL_Statement *state
1362 } 1362 }
1363 default : 1363 default :
1364 { 1364 {
1365 fprintf(file, "@@Should not be here %s.@@", tokens[statement->type - lowestToken]->token); 1365 fprintf(file, "@@Should not be here %s.@@", tokens[statement->type - lowestToken]->toKen);
1366 break; 1366 break;
1367 } 1367 }
1368 } 1368 }
@@ -1481,7 +1481,7 @@ boolean compilerSetup(gameGlobals *game)
1481 int i; 1481 int i;
1482 1482
1483 // Figure out what numbers lemon gave to our tokens. 1483 // Figure out what numbers lemon gave to our tokens.
1484 for (i = 0; LSL_Tokens[i].token != NULL; i++) 1484 for (i = 0; LSL_Tokens[i].toKen != NULL; i++)
1485 { 1485 {
1486 if (lowestToken > LSL_Tokens[i].type) 1486 if (lowestToken > LSL_Tokens[i].type)
1487 lowestToken = LSL_Tokens[i].type; 1487 lowestToken = LSL_Tokens[i].type;
@@ -1492,7 +1492,7 @@ boolean compilerSetup(gameGlobals *game)
1492 char buf[PATH_MAX]; 1492 char buf[PATH_MAX];
1493 1493
1494 // Sort the token table. 1494 // Sort the token table.
1495 for (i = 0; LSL_Tokens[i].token != NULL; i++) 1495 for (i = 0; LSL_Tokens[i].toKen != NULL; i++)
1496 { 1496 {
1497 int j = LSL_Tokens[i].type - lowestToken; 1497 int j = LSL_Tokens[i].type - lowestToken;
1498 1498
@@ -1583,7 +1583,7 @@ boolean compileLSL(gameGlobals *game, char *script, boolean doConstants)
1583 { 1583 {
1584 call->function = func->value.functionValue; 1584 call->function = func->value.functionValue;
1585 call->call->value.functionCallValue = call; 1585 call->call->value.functionCallValue = call;
1586 call->call->token = tokens[LSL_FUNCTION_CALL - lowestToken]; 1586 call->call->toKen = tokens[LSL_FUNCTION_CALL - lowestToken];
1587 call->call->basicType = func->basicType; 1587 call->call->basicType = func->basicType;
1588 } 1588 }
1589 else 1589 else
@@ -1689,7 +1689,7 @@ int main(int argc, char **argv)
1689 int i; 1689 int i;
1690 1690
1691 // Figure out what numbers yacc gave to our tokens. 1691 // Figure out what numbers yacc gave to our tokens.
1692 for (i = 0; LSL_Tokens[i].token != NULL; i++) 1692 for (i = 0; LSL_Tokens[i].toKen != NULL; i++)
1693 { 1693 {
1694 if (lowestToken > LSL_Tokens[i].type) 1694 if (lowestToken > LSL_Tokens[i].type)
1695 lowestToken = LSL_Tokens[i].type; 1695 lowestToken = LSL_Tokens[i].type;
@@ -1700,7 +1700,7 @@ int main(int argc, char **argv)
1700 LuaSL_yyparseParam param; 1700 LuaSL_yyparseParam param;
1701 1701
1702 // Sort the token table. 1702 // Sort the token table.
1703 for (i = 0; LSL_Tokens[i].token != NULL; i++) 1703 for (i = 0; LSL_Tokens[i].toKen != NULL; i++)
1704 { 1704 {
1705 int j = LSL_Tokens[i].type - lowestToken; 1705 int j = LSL_Tokens[i].type - lowestToken;
1706 1706