Changeset f6b8679f96ca75d2bf72c8c1eebf66f6fa14095d
- Timestamp:
- 05/13/10 16:30:56 (2 years ago)
- Author:
- redbrain <redbrain@…>
- Parents:
- 1710cc5d8a4fce3ce313112154534f649970f232
- Children:
- 3562ab60496cd6b7915f3fa98581db759b627673
- git-committer:
- redbrain <redbrain@crules.org> / 2010-05-13T16:30:56Z+0100
- Message:
-
removing print as keyword
- Location:
- src
- Files:
-
Legend:
- Unmodified
- Added
- Removed
-
|
r2ab78c4
|
rf6b8679
|
|
| 112 | 112 | elif { return ELIF; } |
| 113 | 113 | else { return ELSE; } |
| 114 | | print { return PRINT; } |
| 115 | 114 | |
| 116 | 115 | true { return TRUE; } |
-
|
r2ab78c4
|
rf6b8679
|
|
| 85 | 85 | %token ELIF "elif" |
| 86 | 86 | %token ELSE "else" |
| 87 | | %token PRINT "print" |
| 88 | 87 | %token TRUE "true" |
| 89 | 88 | %token FALSE "false" |
| … |
… |
|
| 130 | 129 | %type<symbol> express |
| 131 | 130 | %type<symbol> statement |
| 132 | | %type<symbol> print_keyword |
| 133 | 131 | %type<symbol> arbitrary_call |
| 134 | 132 | %type<symbol> break_keyword |
| … |
… |
|
| 895 | 893 | |
| 896 | 894 | statement: expression ';' |
| 897 | | | print_keyword ';' |
| 898 | 895 | | break_keyword ';' |
| 899 | 896 | | return_keyword ';' |
| … |
… |
|
| 953 | 950 | $$= sym; |
| 954 | 951 | } |
| 955 | | ; |
| 956 | | |
| 957 | | print_keyword: PRINT arguments |
| 958 | | { |
| 959 | | crl_symbol_obj *sym; |
| 960 | | crl_symbol_init( sym ); |
| 961 | | |
| 962 | | sym->type= OP_CALL_GOTO; |
| 963 | | sym->op_a_t= TYPE_STRING; |
| 964 | | sym->op_b_t= TYPE_ARGUMENTS; |
| 965 | | |
| 966 | | sym->op_a.string= crl_strdup( "print" ); |
| 967 | | sym->op_b.stack_table= $2; |
| 968 | | |
| 969 | | crl_symbol_obj *acc; |
| 970 | | crl_symbol_init( acc ); |
| 971 | | acc->type = SYMBOL_REFERENCE; |
| 972 | | acc->op_a_t = TYPE_STRING; |
| 973 | | acc->op_a.string = crl_strdup( "__builtin__" ); |
| 974 | | |
| 975 | | crl_symbol_obj *print_call; |
| 976 | | crl_symbol_init( print_call ); |
| 977 | | |
| 978 | | print_call->type = OP_BIN_ACCESSOR; |
| 979 | | print_call->op_a_t = TYPE_SYMBOL; |
| 980 | | print_call->op_b_t = TYPE_SYMBOL; |
| 981 | | print_call->op_a.symbol_table = acc; |
| 982 | | print_call->op_b.symbol_table = sym; |
| 983 | | |
| 984 | | $$ = print_call; |
| 985 | | } |
| 986 | 952 | ; |
| 987 | 953 | |