=================================================================== RCS file: /home/cvs/OpenXM/src/k097/simple.y,v retrieving revision 1.3 retrieving revision 1.7 diff -u -p -r1.3 -r1.7 --- OpenXM/src/k097/simple.y 2001/01/13 12:40:56 1.3 +++ OpenXM/src/k097/simple.y 2003/05/14 07:08:05 1.7 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/k097/simple.y,v 1.2 2000/01/21 03:01:26 takayama Exp $ */ +/* $OpenXM: OpenXM/src/k097/simple.y,v 1.6 2003/04/30 06:17:57 takayama Exp $ */ /* simple.y 1996, 1/1 --- 1/6 */ /* simple.y.ccc, 1996, 4/1 --- */ %{ @@ -93,8 +93,9 @@ return : ; break : BREAK { pkkan(" exit "); } +; -list_prefix +list_prefix : '[' { pkkan("[ "); } ; @@ -145,14 +146,15 @@ for : for_prefix curryBrace { pkkan("} %% end of B part. {B}\n"); pkkan(" 2 1 roll] {exec} map pop\n} loop %%end of for\n"); } - +; PSfor_prefix - : PSFOR '(' ID '=' exp ';' - { pkkan("%%PSfor initvalue.\n (integer) data_conversion \n"); + : PSFOR '(' ID '=' exp ';' ID '<' exp ';' ID INCREMENT ')' + { + pkkan(" 2 -1 roll \n"); + pkkan("%%PSfor initvalue.\n (integer) data_conversion \n"); + pkkan(" 2 -1 roll \n"); ips($3); - } - ID '<' exp ';' ID INCREMENT ')' - { ips($7); ips($10); + ips($7); ips($11); /* They must be equal id, but it is not checked. */ pkkan(" (1).. sub (integer) data_conversion 1 2 -1 roll \n"); pkkan("{ %% for body\n (universalNumber) data_conversion "); @@ -192,7 +194,7 @@ load : | LOAD ID { loadFile($2); } | LOAD QUOTE { loadFile($2); } | LOAD '[' QUOTE ']' { loadFileWithCpp($3); } - +; sm1ArgList : | sm1ArgList ',' QUOTE { pkkan(" "); printObjectSymbol($3); pkkan(" "); } | QUOTE { pkkan(" "); printObjectSymbol($1); pkkan(" "); } @@ -227,7 +229,7 @@ primitive functionCall_prefix : - ID '(' { pkkan("this [ %% function args \n"); $$ = $1 } + ID '(' { pkkan("this [ %% function args \n"); $$ = $1; } ; /* function call. cf. Schreiner 19p */ @@ -449,7 +451,7 @@ member_functionCall ; member_functionCall_prefix : - ID '(' { pkkan(" [ %% function args \n"); $$ = $1 } + ID '(' { pkkan(" [ %% function args \n"); $$ = $1; } ; @@ -479,7 +481,7 @@ class_definition_prefix K00putIncetanceVariable(IRESET," "); } } - +; incetance_variables : LOCAL incetance_variables_list ';' { @@ -499,7 +501,7 @@ incetance_variables_list { K00putIncetanceVariable(IPUT,objectSymbolToString($1)); } - +; operatorfunctionHead : DEF OPERATOR ID { pkkan("/"); printObjectSymbol($3); pkkan(" {\n"); ips($3);