version 1.1, 1999/10/08 02:12:14 |
version 1.7, 2003/05/14 07:08:05 |
|
|
|
/* $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 1996, 1/1 --- 1/6 */ |
/* simple.y.ccc, 1996, 4/1 --- */ |
/* simple.y.ccc, 1996, 4/1 --- */ |
%{ |
%{ |
|
|
; |
; |
|
|
break : BREAK { pkkan(" exit "); } |
break : BREAK { pkkan(" exit "); } |
|
; |
|
|
list_prefix |
list_prefix |
: |
: |
'[' { pkkan("[ "); } |
'[' { pkkan("[ "); } |
; |
; |
|
|
: for_prefix curryBrace |
: for_prefix curryBrace |
{ pkkan("} %% end of B part. {B}\n"); |
{ pkkan("} %% end of B part. {B}\n"); |
pkkan(" 2 1 roll] {exec} map pop\n} loop %%end of for\n"); } |
pkkan(" 2 1 roll] {exec} map pop\n} loop %%end of for\n"); } |
|
; |
PSfor_prefix |
PSfor_prefix |
: PSFOR '(' ID '=' exp ';' |
: PSFOR '(' ID '=' exp ';' ID '<' exp ';' ID INCREMENT ')' |
{ pkkan("%%PSfor initvalue.\n (integer) data_conversion \n"); |
{ |
|
pkkan(" 2 -1 roll \n"); |
|
pkkan("%%PSfor initvalue.\n (integer) data_conversion \n"); |
|
pkkan(" 2 -1 roll \n"); |
ips($3); |
ips($3); |
} |
ips($7); ips($11); |
ID '<' exp ';' ID INCREMENT ')' |
|
{ ips($7); ips($10); |
|
/* They must be equal id, but it is not checked. */ |
/* They must be equal id, but it is not checked. */ |
pkkan(" (1).. sub (integer) data_conversion 1 2 -1 roll \n"); |
pkkan(" (1).. sub (integer) data_conversion 1 2 -1 roll \n"); |
pkkan("{ %% for body\n (universalNumber) data_conversion "); |
pkkan("{ %% for body\n (universalNumber) data_conversion "); |
|
|
| LOAD ID { loadFile($2); } |
| LOAD ID { loadFile($2); } |
| LOAD QUOTE { loadFile($2); } |
| LOAD QUOTE { loadFile($2); } |
| LOAD '[' QUOTE ']' { loadFileWithCpp($3); } |
| LOAD '[' QUOTE ']' { loadFileWithCpp($3); } |
|
; |
sm1ArgList : |
sm1ArgList : |
| sm1ArgList ',' QUOTE { pkkan(" "); printObjectSymbol($3); pkkan(" "); } |
| sm1ArgList ',' QUOTE { pkkan(" "); printObjectSymbol($3); pkkan(" "); } |
| QUOTE { pkkan(" "); printObjectSymbol($1); pkkan(" "); } |
| QUOTE { pkkan(" "); printObjectSymbol($1); pkkan(" "); } |
|
|
|
|
functionCall_prefix |
functionCall_prefix |
: |
: |
ID '(' { pkkan("this [ %% function args \n"); $$ = $1 } |
ID '(' { pkkan("this [ %% function args \n"); $$ = $1; } |
; |
; |
|
|
/* function call. cf. Schreiner 19p */ |
/* function call. cf. Schreiner 19p */ |
Line 449 member_functionCall |
|
Line 451 member_functionCall |
|
; |
; |
member_functionCall_prefix |
member_functionCall_prefix |
: |
: |
ID '(' { pkkan(" [ %% function args \n"); $$ = $1 } |
ID '(' { pkkan(" [ %% function args \n"); $$ = $1; } |
; |
; |
|
|
|
|
Line 460 class_definition |
|
Line 462 class_definition |
|
/* debug */ K00foo1(); |
/* debug */ K00foo1(); |
K00toPrimitiveClass(); |
K00toPrimitiveClass(); |
} |
} |
| |
|
class_definition_prefix globalstatements '}' |
|
{ pkkan(" PrimitiveContextp setcontext "); |
|
K00putIncetanceVariable(IEXIT," "); |
|
/* debug */ K00foo1(); |
|
K00toPrimitiveClass(); |
|
} |
|
; |
; |
|
|
class_definition_prefix |
class_definition_prefix |
Line 486 class_definition_prefix |
|
Line 481 class_definition_prefix |
|
K00putIncetanceVariable(IRESET," "); |
K00putIncetanceVariable(IRESET," "); |
} |
} |
} |
} |
|
; |
incetance_variables |
incetance_variables |
: LOCAL incetance_variables_list ';' |
: LOCAL incetance_variables_list ';' |
{ |
{ |
K00putIncetanceVariable(IEXIT," "); |
K00putIncetanceVariable(IEXIT," "); |
} |
} |
|
| LOCAL ';' |
|
{ |
|
K00putIncetanceVariable(IEXIT," "); |
|
} |
; |
; |
incetance_variables_list |
incetance_variables_list |
: incetance_variables_list ',' ID |
: incetance_variables_list ',' ID |
Line 502 incetance_variables_list |
|
Line 501 incetance_variables_list |
|
{ |
{ |
K00putIncetanceVariable(IPUT,objectSymbolToString($1)); |
K00putIncetanceVariable(IPUT,objectSymbolToString($1)); |
} |
} |
|
; |
operatorfunctionHead |
operatorfunctionHead |
: DEF OPERATOR ID |
: DEF OPERATOR ID |
{ pkkan("/"); printObjectSymbol($3); pkkan(" {\n"); ips($3); |
{ pkkan("/"); printObjectSymbol($3); pkkan(" {\n"); ips($3); |