+2003-05-06 Jackson Harper <jackson@latitudegeo.com>
+
+ * ILParser.jay: Emit INSTR_I8 instructions as int
+ instructions. Implement label lists, emit switch instruction.
+
2003-05-05 Jackson Harper <jackson@latitudegeo.com>
* ILParser.jay: Add labels to methods, add branching instructions.
| INSTR_I id /* Allow variable names */\r
| INSTR_I8 int64\r
{\r
- \r
+ codegen.CurrentMethodDef.AddInstr (new\r
+ IntInstr ((IntOp) $1, (int) $2));\r
}\r
| INSTR_R float64\r
{\r
| INSTR_R OPEN_PARENS bytes CLOSE_PARENS\r
| INSTR_BRTARGET int32\r
{\r
- \r
+ // Need to add this to PEAPI \r
}\r
| INSTR_BRTARGET id\r
{\r
| INSTR_SIG call_conv type OPEN_PARENS sig_args CLOSE_PARENS\r
| INSTR_TOK owner_type\r
| INSTR_SWITCH OPEN_PARENS labels CLOSE_PARENS\r
+ {\r
+ codegen.CurrentMethodDef.AddInstr (new SwitchInstr ((ArrayList) $3,\r
+ codegen.CurrentMethodDef));\r
+ }\r
;\r
\r
method_ref : call_conv type type_spec DOUBLE_COLON method_name \r
\r
labels : /* EMPTY */\r
| id\r
+ {\r
+ ArrayList label_list = new ArrayList ();\r
+ label_list.Add ($1);\r
+ $$ = label_list;\r
+ }\r
| int32\r
+ {\r
+ ArrayList label_list = new ArrayList ();\r
+ label_list.Add ($1);\r
+ $$ = label_list;\r
+ }\r
| labels COMMA id\r
+ {\r
+ ArrayList label_list = (ArrayList) $1;\r
+ label_list.Add ($3);\r
+ }\r
| labels COMMA int32\r
+ {\r
+ ArrayList label_list = (ArrayList) $1;\r
+ label_list.Add ($3);\r
+ }\r
;\r
\r
owner_type : type_spec\r