diff options
Diffstat (limited to '')
-rw-r--r-- | LuaSL/src/LuaSL_LSL_tree.h | 4 | ||||
-rw-r--r-- | LuaSL/src/LuaSL_compile.c | 106 | ||||
-rw-r--r-- | LuaSL/src/LuaSL_lemon_yaccer.y | 18 | ||||
-rw-r--r-- | LuaSL/src/LuaSL_lexer.l | 2 |
4 files changed, 65 insertions, 65 deletions
diff --git a/LuaSL/src/LuaSL_LSL_tree.h b/LuaSL/src/LuaSL_LSL_tree.h index 349d74f..24f838a 100644 --- a/LuaSL/src/LuaSL_LSL_tree.h +++ b/LuaSL/src/LuaSL_LSL_tree.h | |||
@@ -154,7 +154,7 @@ struct _LSL_Token | |||
154 | { | 154 | { |
155 | LSL_Type type; | 155 | LSL_Type type; |
156 | opSubType subType; | 156 | opSubType subType; |
157 | const char *token; | 157 | const char *toKen; |
158 | LSL_Flags flags; | 158 | LSL_Flags flags; |
159 | outputToken output; | 159 | outputToken output; |
160 | evaluateToken evaluate; | 160 | evaluateToken evaluate; |
@@ -164,7 +164,7 @@ struct _LSL_Leaf | |||
164 | { | 164 | { |
165 | LSL_Leaf *left; | 165 | LSL_Leaf *left; |
166 | LSL_Leaf *right; | 166 | LSL_Leaf *right; |
167 | LSL_Token *token; | 167 | LSL_Token *toKen; |
168 | #if LUASL_DIFF_CHECK | 168 | #if LUASL_DIFF_CHECK |
169 | Eina_Strbuf *ignorableText; | 169 | Eina_Strbuf *ignorableText; |
170 | #endif | 170 | #endif |
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 | ||
diff --git a/LuaSL/src/LuaSL_lemon_yaccer.y b/LuaSL/src/LuaSL_lemon_yaccer.y index 73ef673..125b384 100644 --- a/LuaSL/src/LuaSL_lemon_yaccer.y +++ b/LuaSL/src/LuaSL_lemon_yaccer.y | |||
@@ -67,23 +67,23 @@ statementList(A) ::= . { A = collectStatements(compiler, NULL, NULL); } | |||
67 | 67 | ||
68 | %nonassoc LSL_DO LSL_FOR LSL_ELSE_IF LSL_IF LSL_JUMP LSL_RETURN LSL_STATE_CHANGE LSL_WHILE. | 68 | %nonassoc LSL_DO LSL_FOR LSL_ELSE_IF LSL_IF LSL_JUMP LSL_RETURN LSL_STATE_CHANGE LSL_WHILE. |
69 | %nonassoc LSL_ELSE. | 69 | %nonassoc LSL_ELSE. |
70 | statement(A) ::= LSL_DO(F) block(B) LSL_WHILE(W) LSL_PARENTHESIS_OPEN(L) expr(E) LSL_PARENTHESIS_CLOSE(R) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->token->type, L, E, R, B, W); } | 70 | statement(A) ::= LSL_DO(F) block(B) LSL_WHILE(W) LSL_PARENTHESIS_OPEN(L) expr(E) LSL_PARENTHESIS_CLOSE(R) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->toKen->type, L, E, R, B, W); } |
71 | statement(A) ::= LSL_FOR(F) LSL_PARENTHESIS_OPEN(L) expr(E0) LSL_STATEMENT(S0) expr(E1) LSL_STATEMENT(S1) expr(E2) LSL_PARENTHESIS_CLOSE(R) block(B). { A = addStatement(compiler, NULL, F->token->type, L, NULL, R, B, NULL); } // three expressions, two semi colons | 71 | statement(A) ::= LSL_FOR(F) LSL_PARENTHESIS_OPEN(L) expr(E0) LSL_STATEMENT(S0) expr(E1) LSL_STATEMENT(S1) expr(E2) LSL_PARENTHESIS_CLOSE(R) block(B). { A = addStatement(compiler, NULL, F->toKen->type, L, E1, R, B, NULL); } // three expressions, two semi colons |
72 | 72 | ||
73 | ifBlock ::= ifBlock LSL_ELSE block. | 73 | ifBlock ::= ifBlock LSL_ELSE block. |
74 | ifBlock ::= block. | 74 | ifBlock ::= block. |
75 | // The [LSL_ELSE] part causes a conflict. | 75 | // The [LSL_ELSE] part causes a conflict. |
76 | statement(A) ::= LSL_IF(F) LSL_PARENTHESIS_OPEN(L) expr(E) LSL_PARENTHESIS_CLOSE(R) ifBlock(B). [LSL_ELSE] { A = addStatement(compiler, NULL, F->token->type, L, E, R, B, NULL); } // optional else, optional else if | 76 | statement(A) ::= LSL_IF(F) LSL_PARENTHESIS_OPEN(L) expr(E) LSL_PARENTHESIS_CLOSE(R) ifBlock(B). [LSL_ELSE] { A = addStatement(compiler, NULL, F->token->type, L, E, R, B, NULL); } // optional else, optional else if |
77 | 77 | ||
78 | statement(A) ::= LSL_JUMP(F) LSL_IDENTIFIER(I) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->token->type, NULL, NULL, NULL, NULL, I); } | 78 | statement(A) ::= LSL_JUMP(F) LSL_IDENTIFIER(I) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->toKen->type, NULL, NULL, NULL, NULL, I); } |
79 | statement(A) ::= LSL_RETURN(F) expr(E) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->token->type, NULL, E, NULL, NULL, NULL); } | 79 | statement(A) ::= LSL_RETURN(F) expr(E) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->toKen->type, NULL, E, NULL, NULL, NULL); } |
80 | statement(A) ::= LSL_RETURN(F) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->token->type, NULL, NULL, NULL, NULL, NULL); } | 80 | statement(A) ::= LSL_RETURN(F) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->toKen->type, NULL, NULL, NULL, NULL, NULL); } |
81 | statement(A) ::= LSL_STATE_CHANGE(F) LSL_DEFAULT(I) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->token->type, NULL, NULL, NULL, NULL, I); } | 81 | statement(A) ::= LSL_STATE_CHANGE(F) LSL_DEFAULT(I) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->toKen->type, NULL, NULL, NULL, NULL, I); } |
82 | statement(A) ::= LSL_STATE_CHANGE(F) LSL_IDENTIFIER(I) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->token->type, NULL, NULL, NULL, NULL, I); } | 82 | statement(A) ::= LSL_STATE_CHANGE(F) LSL_IDENTIFIER(I) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->toKen->type, NULL, NULL, NULL, NULL, I); } |
83 | statement(A) ::= LSL_WHILE(F) LSL_PARENTHESIS_OPEN(L) expr(E) LSL_PARENTHESIS_CLOSE(R) block(B). { A = addStatement(compiler, NULL, F->token->type, L, E, R, B, NULL); } | 83 | statement(A) ::= LSL_WHILE(F) LSL_PARENTHESIS_OPEN(L) expr(E) LSL_PARENTHESIS_CLOSE(R) block(B). { A = addStatement(compiler, NULL, F->toKen->type, L, E, R, B, NULL); } |
84 | 84 | ||
85 | %nonassoc LSL_LABEL. | 85 | %nonassoc LSL_LABEL. |
86 | statement(A) ::= LSL_LABEL(F) LSL_IDENTIFIER(I) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->token->type, NULL, NULL, NULL, NULL, I); } | 86 | statement(A) ::= LSL_LABEL(F) LSL_IDENTIFIER(I) LSL_STATEMENT(S). { A = addStatement(compiler, S, F->toKen->type, NULL, NULL, NULL, NULL, I); } |
87 | 87 | ||
88 | // This might be bogus, or might be valid LSL, but it lets us test the expression parser by evaluating them. | 88 | // This might be bogus, or might be valid LSL, but it lets us test the expression parser by evaluating them. |
89 | statement(A) ::= expr(E) LSL_STATEMENT(S). { A = addStatement(compiler, S, LSL_EXPRESSION, NULL, E, NULL, NULL, NULL); } | 89 | statement(A) ::= expr(E) LSL_STATEMENT(S). { A = addStatement(compiler, S, LSL_EXPRESSION, NULL, E, NULL, NULL, NULL); } |
diff --git a/LuaSL/src/LuaSL_lexer.l b/LuaSL/src/LuaSL_lexer.l index 0a14c2b..c66a3a8 100644 --- a/LuaSL/src/LuaSL_lexer.l +++ b/LuaSL/src/LuaSL_lexer.l | |||
@@ -120,7 +120,7 @@ int common(YYSTYPE *lval, char *text, int len, LuaSL_compiler *compiler, boolean | |||
120 | { | 120 | { |
121 | char *p; | 121 | char *p; |
122 | 122 | ||
123 | lval->token = tokens[type - lowestToken]; | 123 | lval->toKen = tokens[type - lowestToken]; |
124 | lval->line = compiler->line; | 124 | lval->line = compiler->line; |
125 | lval->column = compiler->column; | 125 | lval->column = compiler->column; |
126 | lval->len = len; | 126 | lval->len = len; |