aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/LuaSL/src/LuaSL_LSL_tree.c
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-12 05:05:03 +1000
committerDavid Walter Seikel2012-01-12 05:05:03 +1000
commitd343ceea759a437e9fd0b506f03046318ce9e1fe (patch)
tree175ef12855babde69e922c9d78d3d2567a019801 /LuaSL/src/LuaSL_LSL_tree.c
parentSome general cleanup. (diff)
downloadSledjHamr-d343ceea759a437e9fd0b506f03046318ce9e1fe.zip
SledjHamr-d343ceea759a437e9fd0b506f03046318ce9e1fe.tar.gz
SledjHamr-d343ceea759a437e9fd0b506f03046318ce9e1fe.tar.bz2
SledjHamr-d343ceea759a437e9fd0b506f03046318ce9e1fe.tar.xz
More clean up.
Diffstat (limited to 'LuaSL/src/LuaSL_LSL_tree.c')
-rw-r--r--LuaSL/src/LuaSL_LSL_tree.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/LuaSL/src/LuaSL_LSL_tree.c b/LuaSL/src/LuaSL_LSL_tree.c
index beae756..b441f0b 100644
--- a/LuaSL/src/LuaSL_LSL_tree.c
+++ b/LuaSL/src/LuaSL_LSL_tree.c
@@ -14,6 +14,7 @@ static void outputStatementToken(LSL_Leaf *content);
14 14
15LSL_Token LSL_Tokens[] = 15LSL_Token LSL_Tokens[] =
16{ 16{
17 // Various forms of "space".
17 {LSL_COMMENT, "/*", LSL_NONE, NULL, NULL, NULL}, 18 {LSL_COMMENT, "/*", LSL_NONE, NULL, NULL, NULL},
18 {LSL_COMMENT_LINE, "//", LSL_NONE, NULL, NULL, NULL}, 19 {LSL_COMMENT_LINE, "//", LSL_NONE, NULL, NULL, NULL},
19 {LSL_SPACE, " ", LSL_NONE, NULL, NULL, NULL}, 20 {LSL_SPACE, " ", LSL_NONE, NULL, NULL, NULL},
@@ -21,7 +22,6 @@ LSL_Token LSL_Tokens[] =
21 // Operators, in order of precedence, low to high 22 // Operators, in order of precedence, low to high
22 // Left to right, unless oterwise stated. 23 // Left to right, unless oterwise stated.
23 // According to http://wiki.secondlife.com/wiki/Category:LSL_Operators 24 // According to http://wiki.secondlife.com/wiki/Category:LSL_Operators
24
25 {LSL_BOOL_AND, "&&", LSL_LEFT2RIGHT, NULL, NULL, evaluateOperationToken}, 25 {LSL_BOOL_AND, "&&", LSL_LEFT2RIGHT, NULL, NULL, evaluateOperationToken},
26// QUIRK - Seems to be some disagreement about BOOL_AND/BOOL_OR precedence. Either they are equal, or OR is higher. 26// QUIRK - Seems to be some disagreement about BOOL_AND/BOOL_OR precedence. Either they are equal, or OR is higher.
27// QUIRK - No boolean short circuiting. 27// QUIRK - No boolean short circuiting.
@@ -74,7 +74,6 @@ LSL_Token LSL_Tokens[] =
74 {LSL_EXPRESSION, "expression", LSL_NONE, NULL, NULL, NULL}, 74 {LSL_EXPRESSION, "expression", LSL_NONE, NULL, NULL, NULL},
75 75
76 // Types. 76 // Types.
77
78 {LSL_FLOAT, "float", LSL_NONE, NULL, NULL, NULL}, 77 {LSL_FLOAT, "float", LSL_NONE, NULL, NULL, NULL},
79 {LSL_INTEGER, "integer", LSL_NONE, outputIntegerToken, NULL, evaluateIntegerToken}, 78 {LSL_INTEGER, "integer", LSL_NONE, outputIntegerToken, NULL, evaluateIntegerToken},
80// {LSL_KEY, "key", LSL_NONE, NULL, NULL, NULL}, 79// {LSL_KEY, "key", LSL_NONE, NULL, NULL, NULL},
@@ -84,7 +83,6 @@ LSL_Token LSL_Tokens[] =
84// {LSL_VECTOR, "vector", LSL_NONE, NULL, NULL, NULL}, 83// {LSL_VECTOR, "vector", LSL_NONE, NULL, NULL, NULL},
85 84
86 // Types names. 85 // Types names.
87
88 {LSL_TYPE_FLOAT, "float", LSL_NONE, NULL, NULL, NULL}, 86 {LSL_TYPE_FLOAT, "float", LSL_NONE, NULL, NULL, NULL},
89 {LSL_TYPE_INTEGER, "integer", LSL_NONE, NULL, NULL, NULL}, 87 {LSL_TYPE_INTEGER, "integer", LSL_NONE, NULL, NULL, NULL},
90 {LSL_TYPE_KEY, "key", LSL_NONE, NULL, NULL, NULL}, 88 {LSL_TYPE_KEY, "key", LSL_NONE, NULL, NULL, NULL},
@@ -94,7 +92,6 @@ LSL_Token LSL_Tokens[] =
94 {LSL_TYPE_VECTOR, "vector", LSL_NONE, NULL, NULL, NULL}, 92 {LSL_TYPE_VECTOR, "vector", LSL_NONE, NULL, NULL, NULL},
95 93
96 // Then the rest of the syntax tokens. 94 // Then the rest of the syntax tokens.
97
98 {LSL_IDENTIFIER, "identifier", LSL_NONE, NULL, NULL, NULL}, 95 {LSL_IDENTIFIER, "identifier", LSL_NONE, NULL, NULL, NULL},
99 96
100 {LSL_LABEL, "@", LSL_NONE, NULL, NULL, NULL}, 97 {LSL_LABEL, "@", LSL_NONE, NULL, NULL, NULL},
@@ -120,7 +117,6 @@ LSL_Token LSL_Tokens[] =
120 {LSL_UNKNOWN, "unknown", LSL_NONE, NULL, NULL, NULL}, 117 {LSL_UNKNOWN, "unknown", LSL_NONE, NULL, NULL, NULL},
121 118
122 // A sentinal. 119 // A sentinal.
123
124 {999999, NULL, LSL_NONE, NULL, NULL, NULL} 120 {999999, NULL, LSL_NONE, NULL, NULL, NULL}
125}; 121};
126 122
@@ -415,6 +411,7 @@ int main(int argc, char **argv)
415 char buffer[4096]; 411 char buffer[4096];
416 LuaSL_yyparseParam param; 412 LuaSL_yyparseParam param;
417 int file; 413 int file;
414 int count;
418 boolean badArgs = FALSE; 415 boolean badArgs = FALSE;
419 416
420 // Sort the token table. 417 // Sort the token table.
@@ -461,13 +458,13 @@ int main(int argc, char **argv)
461 printf("Usage: %s [-f filename]\n", programName); 458 printf("Usage: %s [-f filename]\n", programName);
462 printf(" -f: Script file to run.\n"); 459 printf(" -f: Script file to run.\n");
463 printf("Or pass filenames in stdin.\n"); 460 printf("Or pass filenames in stdin.\n");
464// return 1; 461 return 1;
465 } 462 }
466 463
467 if ('\0' == buffer[0]) 464 if ('\0' == buffer[0])
468 { 465 {
469strcpy(buffer, "test.lsl"); 466//strcpy(buffer, "test.lsl");
470/* 467
471 count = read(STDIN_FILENO, buffer, sizeof(buffer)); 468 count = read(STDIN_FILENO, buffer, sizeof(buffer));
472 if (0 > count) 469 if (0 > count)
473 { 470 {
@@ -484,7 +481,7 @@ strcpy(buffer, "test.lsl");
484 buffer[count] = '\0'; 481 buffer[count] = '\0';
485 printf("Filename %s in stdin.\n", buffer); 482 printf("Filename %s in stdin.\n", buffer);
486 } 483 }
487*/ 484
488 } 485 }
489 else 486 else
490 printf("Filename %s in argument.\n", buffer); 487 printf("Filename %s in argument.\n", buffer);
@@ -522,7 +519,6 @@ strcpy(buffer, "test.lsl");
522 // on EOF yylex will return 0 519 // on EOF yylex will return 0
523 while((yv = yylex(param.lval, param.scanner)) != 0) 520 while((yv = yylex(param.lval, param.scanner)) != 0)
524 { 521 {
525printf("******************************PARSING - %d %s\n", yv, param.lval->token->token);
526 Parse(pParser, yv, param.lval, &param); 522 Parse(pParser, yv, param.lval, &param);
527 if (LSL_SCRIPT == yv) 523 if (LSL_SCRIPT == yv)
528 break; 524 break;