SerpentCompiler adjust:

+ send() func op order fixed and the option with no assigned added
This commit is contained in:
romanman 2014-06-12 17:08:02 +01:00
parent 8cad126c0c
commit 211dac858e
7 changed files with 1237 additions and 1135 deletions

View File

@ -34,7 +34,7 @@ parse: block EOF
parse_init_code_block : 'init' ':' INDENT block DEDENT 'code' ':' INDENT block DEDENT;
block: ( asm | array_assign | assign | contract_storage_assign | special_func | if_elif_else_stmt |
while_stmt | ret_func_1 | ret_func_2 | suicide_func | stop_func)* ;
while_stmt | ret_func_1 | ret_func_2 | suicide_func | stop_func | single_send_fund)* ;
asm: '[asm' asm_symbol 'asm]' NL;
@ -107,6 +107,7 @@ block_gaslimit
msg_func: 'msg' '(' int_val ',' int_val ',' int_val ',' int_val ',' int_val ')' ;
send_func: 'send' '(' int_val ',' int_val ',' int_val ')';
single_send_fund: send_func NL;
msg_data: 'msg.data' '[' expression ']' ;

View File

@ -51,32 +51,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitIf_elif_else_stmt(@NotNull SerpentParser.If_elif_else_stmtContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterGet_var(@NotNull SerpentParser.Get_varContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitGet_var(@NotNull SerpentParser.Get_varContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterBlock(@NotNull SerpentParser.BlockContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitBlock(@NotNull SerpentParser.BlockContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -116,19 +90,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitContract_storage_assign(@NotNull SerpentParser.Contract_storage_assignContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterTx_gas(@NotNull SerpentParser.Tx_gasContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitTx_gas(@NotNull SerpentParser.Tx_gasContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -142,19 +103,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitBlock_number(@NotNull SerpentParser.Block_numberContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -168,32 +116,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitAdd_expr(@NotNull SerpentParser.Add_exprContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -207,19 +129,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitBlock_difficulty(@NotNull SerpentParser.Block_difficultyContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterArray_assign(@NotNull SerpentParser.Array_assignContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitArray_assign(@NotNull SerpentParser.Array_assignContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -233,19 +142,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitArray_retreive(@NotNull SerpentParser.Array_retreiveContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -272,19 +168,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitContract_storage_load(@NotNull SerpentParser.Contract_storage_loadContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -311,6 +194,253 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitRel_exp(@NotNull SerpentParser.Rel_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterHex_num(@NotNull SerpentParser.Hex_numContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitHex_num(@NotNull SerpentParser.Hex_numContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterEq_exp(@NotNull SerpentParser.Eq_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitEq_exp(@NotNull SerpentParser.Eq_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterCondition(@NotNull SerpentParser.ConditionContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitCondition(@NotNull SerpentParser.ConditionContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterSend_func(@NotNull SerpentParser.Send_funcContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitSend_func(@NotNull SerpentParser.Send_funcContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMul_expr(@NotNull SerpentParser.Mul_exprContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMul_expr(@NotNull SerpentParser.Mul_exprContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMsg_data(@NotNull SerpentParser.Msg_dataContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMsg_data(@NotNull SerpentParser.Msg_dataContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterAsm(@NotNull SerpentParser.AsmContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitAsm(@NotNull SerpentParser.AsmContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMsg_value(@NotNull SerpentParser.Msg_valueContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMsg_value(@NotNull SerpentParser.Msg_valueContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterGet_var(@NotNull SerpentParser.Get_varContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitGet_var(@NotNull SerpentParser.Get_varContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterBlock(@NotNull SerpentParser.BlockContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitBlock(@NotNull SerpentParser.BlockContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterTx_gas(@NotNull SerpentParser.Tx_gasContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitTx_gas(@NotNull SerpentParser.Tx_gasContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterArray_assign(@NotNull SerpentParser.Array_assignContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitArray_assign(@NotNull SerpentParser.Array_assignContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterSingle_send_fund(@NotNull SerpentParser.Single_send_fundContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitSingle_send_fund(@NotNull SerpentParser.Single_send_fundContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -350,19 +480,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitSuicide_func(@NotNull SerpentParser.Suicide_funcContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterHex_num(@NotNull SerpentParser.Hex_numContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitHex_num(@NotNull SerpentParser.Hex_numContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -376,32 +493,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitContract_balance(@NotNull SerpentParser.Contract_balanceContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterCondition(@NotNull SerpentParser.ConditionContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitCondition(@NotNull SerpentParser.ConditionContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterEq_exp(@NotNull SerpentParser.Eq_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitEq_exp(@NotNull SerpentParser.Eq_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -446,13 +537,13 @@ public class SerpentBaseListener implements SerpentListener {
* <p/>
* The default implementation does nothing.
*/
@Override public void enterSend_func(@NotNull SerpentParser.Send_funcContext ctx) { }
@Override public void enterWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitSend_func(@NotNull SerpentParser.Send_funcContext ctx) { }
@Override public void exitWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx) { }
/**
* {@inheritDoc}
@ -467,19 +558,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitArr_def(@NotNull SerpentParser.Arr_defContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -532,32 +610,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitAnd_exp(@NotNull SerpentParser.And_expContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMul_expr(@NotNull SerpentParser.Mul_exprContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMul_expr(@NotNull SerpentParser.Mul_exprContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -571,19 +623,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitInt_val(@NotNull SerpentParser.Int_valContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMsg_data(@NotNull SerpentParser.Msg_dataContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMsg_data(@NotNull SerpentParser.Msg_dataContext ctx) { }
/**
* {@inheritDoc}
* <p/>
@ -597,32 +636,6 @@ public class SerpentBaseListener implements SerpentListener {
*/
@Override public void exitRet_func_2(@NotNull SerpentParser.Ret_func_2Context ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterMsg_value(@NotNull SerpentParser.Msg_valueContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitMsg_value(@NotNull SerpentParser.Msg_valueContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void enterAsm(@NotNull SerpentParser.AsmContext ctx) { }
/**
* {@inheritDoc}
* <p/>
* The default implementation does nothing.
*/
@Override public void exitAsm(@NotNull SerpentParser.AsmContext ctx) { }
/**
* {@inheritDoc}
* <p/>

View File

@ -36,22 +36,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitIf_elif_else_stmt(@NotNull SerpentParser.If_elif_else_stmtContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitGet_var(@NotNull SerpentParser.Get_varContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitBlock(@NotNull SerpentParser.BlockContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -76,14 +60,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitContract_storage_assign(@NotNull SerpentParser.Contract_storage_assignContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitTx_gas(@NotNull SerpentParser.Tx_gasContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -92,14 +68,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitBlock_number(@NotNull SerpentParser.Block_numberContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -108,22 +76,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitAdd_expr(@NotNull SerpentParser.Add_exprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -132,14 +84,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitBlock_difficulty(@NotNull SerpentParser.Block_difficultyContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitArray_assign(@NotNull SerpentParser.Array_assignContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -148,14 +92,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitArray_retreive(@NotNull SerpentParser.Array_retreiveContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -172,14 +108,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitContract_storage_load(@NotNull SerpentParser.Contract_storage_loadContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -196,6 +124,158 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitRel_exp(@NotNull SerpentParser.Rel_expContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitHex_num(@NotNull SerpentParser.Hex_numContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitEq_exp(@NotNull SerpentParser.Eq_expContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitCondition(@NotNull SerpentParser.ConditionContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitSend_func(@NotNull SerpentParser.Send_funcContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMul_expr(@NotNull SerpentParser.Mul_exprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMsg_data(@NotNull SerpentParser.Msg_dataContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitAsm(@NotNull SerpentParser.AsmContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMsg_value(@NotNull SerpentParser.Msg_valueContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitGet_var(@NotNull SerpentParser.Get_varContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitBlock(@NotNull SerpentParser.BlockContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitTx_gas(@NotNull SerpentParser.Tx_gasContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitArray_assign(@NotNull SerpentParser.Array_assignContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitSingle_send_fund(@NotNull SerpentParser.Single_send_fundContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -220,14 +300,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitSuicide_func(@NotNull SerpentParser.Suicide_funcContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitHex_num(@NotNull SerpentParser.Hex_numContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -236,22 +308,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitContract_balance(@NotNull SerpentParser.Contract_balanceContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitCondition(@NotNull SerpentParser.ConditionContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitEq_exp(@NotNull SerpentParser.Eq_expContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -282,7 +338,7 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitSend_func(@NotNull SerpentParser.Send_funcContext ctx) { return visitChildren(ctx); }
@Override public T visitWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
@ -292,14 +348,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitArr_def(@NotNull SerpentParser.Arr_defContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -332,22 +380,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitAnd_exp(@NotNull SerpentParser.And_expContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMul_expr(@NotNull SerpentParser.Mul_exprContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -356,14 +388,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitInt_val(@NotNull SerpentParser.Int_valContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMsg_data(@NotNull SerpentParser.Msg_dataContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
@ -372,22 +396,6 @@ public class SerpentBaseVisitor<T> extends AbstractParseTreeVisitor<T> implement
*/
@Override public T visitRet_func_2(@NotNull SerpentParser.Ret_func_2Context ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitMsg_value(@NotNull SerpentParser.Msg_valueContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>
* The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.
*/
@Override public T visitAsm(@NotNull SerpentParser.AsmContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
* <p/>

View File

@ -41,28 +41,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitIf_elif_else_stmt(@NotNull SerpentParser.If_elif_else_stmtContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#get_var}.
* @param ctx the parse tree
*/
void enterGet_var(@NotNull SerpentParser.Get_varContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#get_var}.
* @param ctx the parse tree
*/
void exitGet_var(@NotNull SerpentParser.Get_varContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#block}.
* @param ctx the parse tree
*/
void enterBlock(@NotNull SerpentParser.BlockContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#block}.
* @param ctx the parse tree
*/
void exitBlock(@NotNull SerpentParser.BlockContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#tx_origin}.
* @param ctx the parse tree
@ -96,17 +74,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitContract_storage_assign(@NotNull SerpentParser.Contract_storage_assignContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#tx_gas}.
* @param ctx the parse tree
*/
void enterTx_gas(@NotNull SerpentParser.Tx_gasContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#tx_gas}.
* @param ctx the parse tree
*/
void exitTx_gas(@NotNull SerpentParser.Tx_gasContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#block_number}.
* @param ctx the parse tree
@ -118,17 +85,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitBlock_number(@NotNull SerpentParser.Block_numberContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#in_or_exp}.
* @param ctx the parse tree
*/
void enterIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#in_or_exp}.
* @param ctx the parse tree
*/
void exitIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#add_expr}.
* @param ctx the parse tree
@ -140,28 +96,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitAdd_expr(@NotNull SerpentParser.Add_exprContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_datasize}.
* @param ctx the parse tree
*/
void enterMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#msg_datasize}.
* @param ctx the parse tree
*/
void exitMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_sender}.
* @param ctx the parse tree
*/
void enterMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#msg_sender}.
* @param ctx the parse tree
*/
void exitMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#block_difficulty}.
* @param ctx the parse tree
@ -173,17 +107,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitBlock_difficulty(@NotNull SerpentParser.Block_difficultyContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#array_assign}.
* @param ctx the parse tree
*/
void enterArray_assign(@NotNull SerpentParser.Array_assignContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#array_assign}.
* @param ctx the parse tree
*/
void exitArray_assign(@NotNull SerpentParser.Array_assignContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#array_retreive}.
* @param ctx the parse tree
@ -195,17 +118,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitArray_retreive(@NotNull SerpentParser.Array_retreiveContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#parse_init_code_block}.
* @param ctx the parse tree
*/
void enterParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#parse_init_code_block}.
* @param ctx the parse tree
*/
void exitParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#tx_gasprice}.
* @param ctx the parse tree
@ -228,17 +140,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitContract_storage_load(@NotNull SerpentParser.Contract_storage_loadContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#ex_or_exp}.
* @param ctx the parse tree
*/
void enterEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#ex_or_exp}.
* @param ctx the parse tree
*/
void exitEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#block_gaslimit}.
* @param ctx the parse tree
@ -261,6 +162,215 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitRel_exp(@NotNull SerpentParser.Rel_expContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#hex_num}.
* @param ctx the parse tree
*/
void enterHex_num(@NotNull SerpentParser.Hex_numContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#hex_num}.
* @param ctx the parse tree
*/
void exitHex_num(@NotNull SerpentParser.Hex_numContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#eq_exp}.
* @param ctx the parse tree
*/
void enterEq_exp(@NotNull SerpentParser.Eq_expContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#eq_exp}.
* @param ctx the parse tree
*/
void exitEq_exp(@NotNull SerpentParser.Eq_expContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#condition}.
* @param ctx the parse tree
*/
void enterCondition(@NotNull SerpentParser.ConditionContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#condition}.
* @param ctx the parse tree
*/
void exitCondition(@NotNull SerpentParser.ConditionContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#send_func}.
* @param ctx the parse tree
*/
void enterSend_func(@NotNull SerpentParser.Send_funcContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#send_func}.
* @param ctx the parse tree
*/
void exitSend_func(@NotNull SerpentParser.Send_funcContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#block_prevhash}.
* @param ctx the parse tree
*/
void enterBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#block_prevhash}.
* @param ctx the parse tree
*/
void exitBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#mul_expr}.
* @param ctx the parse tree
*/
void enterMul_expr(@NotNull SerpentParser.Mul_exprContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#mul_expr}.
* @param ctx the parse tree
*/
void exitMul_expr(@NotNull SerpentParser.Mul_exprContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_data}.
* @param ctx the parse tree
*/
void enterMsg_data(@NotNull SerpentParser.Msg_dataContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#msg_data}.
* @param ctx the parse tree
*/
void exitMsg_data(@NotNull SerpentParser.Msg_dataContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#asm}.
* @param ctx the parse tree
*/
void enterAsm(@NotNull SerpentParser.AsmContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#asm}.
* @param ctx the parse tree
*/
void exitAsm(@NotNull SerpentParser.AsmContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_value}.
* @param ctx the parse tree
*/
void enterMsg_value(@NotNull SerpentParser.Msg_valueContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#msg_value}.
* @param ctx the parse tree
*/
void exitMsg_value(@NotNull SerpentParser.Msg_valueContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#get_var}.
* @param ctx the parse tree
*/
void enterGet_var(@NotNull SerpentParser.Get_varContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#get_var}.
* @param ctx the parse tree
*/
void exitGet_var(@NotNull SerpentParser.Get_varContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#block}.
* @param ctx the parse tree
*/
void enterBlock(@NotNull SerpentParser.BlockContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#block}.
* @param ctx the parse tree
*/
void exitBlock(@NotNull SerpentParser.BlockContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#tx_gas}.
* @param ctx the parse tree
*/
void enterTx_gas(@NotNull SerpentParser.Tx_gasContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#tx_gas}.
* @param ctx the parse tree
*/
void exitTx_gas(@NotNull SerpentParser.Tx_gasContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#in_or_exp}.
* @param ctx the parse tree
*/
void enterIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#in_or_exp}.
* @param ctx the parse tree
*/
void exitIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_datasize}.
* @param ctx the parse tree
*/
void enterMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#msg_datasize}.
* @param ctx the parse tree
*/
void exitMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_sender}.
* @param ctx the parse tree
*/
void enterMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#msg_sender}.
* @param ctx the parse tree
*/
void exitMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#array_assign}.
* @param ctx the parse tree
*/
void enterArray_assign(@NotNull SerpentParser.Array_assignContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#array_assign}.
* @param ctx the parse tree
*/
void exitArray_assign(@NotNull SerpentParser.Array_assignContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#parse_init_code_block}.
* @param ctx the parse tree
*/
void enterParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#parse_init_code_block}.
* @param ctx the parse tree
*/
void exitParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#single_send_fund}.
* @param ctx the parse tree
*/
void enterSingle_send_fund(@NotNull SerpentParser.Single_send_fundContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#single_send_fund}.
* @param ctx the parse tree
*/
void exitSingle_send_fund(@NotNull SerpentParser.Single_send_fundContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#ex_or_exp}.
* @param ctx the parse tree
*/
void enterEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#ex_or_exp}.
* @param ctx the parse tree
*/
void exitEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_func}.
* @param ctx the parse tree
@ -294,17 +404,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitSuicide_func(@NotNull SerpentParser.Suicide_funcContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#hex_num}.
* @param ctx the parse tree
*/
void enterHex_num(@NotNull SerpentParser.Hex_numContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#hex_num}.
* @param ctx the parse tree
*/
void exitHex_num(@NotNull SerpentParser.Hex_numContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#contract_balance}.
* @param ctx the parse tree
@ -316,28 +415,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitContract_balance(@NotNull SerpentParser.Contract_balanceContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#condition}.
* @param ctx the parse tree
*/
void enterCondition(@NotNull SerpentParser.ConditionContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#condition}.
* @param ctx the parse tree
*/
void exitCondition(@NotNull SerpentParser.ConditionContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#eq_exp}.
* @param ctx the parse tree
*/
void enterEq_exp(@NotNull SerpentParser.Eq_expContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#eq_exp}.
* @param ctx the parse tree
*/
void exitEq_exp(@NotNull SerpentParser.Eq_expContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#stop_func}.
* @param ctx the parse tree
@ -372,15 +449,15 @@ public interface SerpentListener extends ParseTreeListener {
void exitBlock_timestamp(@NotNull SerpentParser.Block_timestampContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#send_func}.
* Enter a parse tree produced by {@link SerpentParser#while_stmt}.
* @param ctx the parse tree
*/
void enterSend_func(@NotNull SerpentParser.Send_funcContext ctx);
void enterWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#send_func}.
* Exit a parse tree produced by {@link SerpentParser#while_stmt}.
* @param ctx the parse tree
*/
void exitSend_func(@NotNull SerpentParser.Send_funcContext ctx);
void exitWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#arr_def}.
@ -393,17 +470,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitArr_def(@NotNull SerpentParser.Arr_defContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#while_stmt}.
* @param ctx the parse tree
*/
void enterWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#while_stmt}.
* @param ctx the parse tree
*/
void exitWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#special_func}.
* @param ctx the parse tree
@ -448,28 +514,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitAnd_exp(@NotNull SerpentParser.And_expContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#block_prevhash}.
* @param ctx the parse tree
*/
void enterBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#block_prevhash}.
* @param ctx the parse tree
*/
void exitBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#mul_expr}.
* @param ctx the parse tree
*/
void enterMul_expr(@NotNull SerpentParser.Mul_exprContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#mul_expr}.
* @param ctx the parse tree
*/
void exitMul_expr(@NotNull SerpentParser.Mul_exprContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#int_val}.
* @param ctx the parse tree
@ -481,17 +525,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitInt_val(@NotNull SerpentParser.Int_valContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_data}.
* @param ctx the parse tree
*/
void enterMsg_data(@NotNull SerpentParser.Msg_dataContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#msg_data}.
* @param ctx the parse tree
*/
void exitMsg_data(@NotNull SerpentParser.Msg_dataContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#ret_func_2}.
* @param ctx the parse tree
@ -503,28 +536,6 @@ public interface SerpentListener extends ParseTreeListener {
*/
void exitRet_func_2(@NotNull SerpentParser.Ret_func_2Context ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#msg_value}.
* @param ctx the parse tree
*/
void enterMsg_value(@NotNull SerpentParser.Msg_valueContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#msg_value}.
* @param ctx the parse tree
*/
void exitMsg_value(@NotNull SerpentParser.Msg_valueContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#asm}.
* @param ctx the parse tree
*/
void enterAsm(@NotNull SerpentParser.AsmContext ctx);
/**
* Exit a parse tree produced by {@link SerpentParser#asm}.
* @param ctx the parse tree
*/
void exitAsm(@NotNull SerpentParser.AsmContext ctx);
/**
* Enter a parse tree produced by {@link SerpentParser#ret_func_1}.
* @param ctx the parse tree

View File

@ -599,7 +599,7 @@ public class SerpentToAssemblyCompiler extends SerpentBaseVisitor<String> {
String operand2 = visit(ctx.int_val(2));
// OUTDATASIZE OUTDATASTART INDATASIZE INDATASTART VALUE TO GAS CALL
return String.format("0 0 0 0 %s %s %s CALL ", operand1, operand0, operand2);
return String.format("0 0 0 0 %s %s %s CALL ", operand2, operand1, operand0);
}
@Override

View File

@ -32,20 +32,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitIf_elif_else_stmt(@NotNull SerpentParser.If_elif_else_stmtContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#get_var}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitGet_var(@NotNull SerpentParser.Get_varContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#block}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlock(@NotNull SerpentParser.BlockContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#tx_origin}.
* @param ctx the parse tree
@ -67,13 +53,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitContract_storage_assign(@NotNull SerpentParser.Contract_storage_assignContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#tx_gas}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitTx_gas(@NotNull SerpentParser.Tx_gasContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#block_number}.
* @param ctx the parse tree
@ -81,13 +60,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitBlock_number(@NotNull SerpentParser.Block_numberContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#in_or_exp}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#add_expr}.
* @param ctx the parse tree
@ -95,20 +67,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitAdd_expr(@NotNull SerpentParser.Add_exprContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_datasize}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_sender}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#block_difficulty}.
* @param ctx the parse tree
@ -116,13 +74,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitBlock_difficulty(@NotNull SerpentParser.Block_difficultyContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#array_assign}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitArray_assign(@NotNull SerpentParser.Array_assignContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#array_retreive}.
* @param ctx the parse tree
@ -130,13 +81,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitArray_retreive(@NotNull SerpentParser.Array_retreiveContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#parse_init_code_block}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#tx_gasprice}.
* @param ctx the parse tree
@ -151,13 +95,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitContract_storage_load(@NotNull SerpentParser.Contract_storage_loadContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#ex_or_exp}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#block_gaslimit}.
* @param ctx the parse tree
@ -172,6 +109,139 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitRel_exp(@NotNull SerpentParser.Rel_expContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#hex_num}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitHex_num(@NotNull SerpentParser.Hex_numContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#eq_exp}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitEq_exp(@NotNull SerpentParser.Eq_expContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#condition}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitCondition(@NotNull SerpentParser.ConditionContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#send_func}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitSend_func(@NotNull SerpentParser.Send_funcContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#block_prevhash}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#mul_expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMul_expr(@NotNull SerpentParser.Mul_exprContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_data}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMsg_data(@NotNull SerpentParser.Msg_dataContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#asm}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitAsm(@NotNull SerpentParser.AsmContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_value}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMsg_value(@NotNull SerpentParser.Msg_valueContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#get_var}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitGet_var(@NotNull SerpentParser.Get_varContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#block}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlock(@NotNull SerpentParser.BlockContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#tx_gas}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitTx_gas(@NotNull SerpentParser.Tx_gasContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#in_or_exp}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitIn_or_exp(@NotNull SerpentParser.In_or_expContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_datasize}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMsg_datasize(@NotNull SerpentParser.Msg_datasizeContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_sender}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMsg_sender(@NotNull SerpentParser.Msg_senderContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#array_assign}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitArray_assign(@NotNull SerpentParser.Array_assignContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#parse_init_code_block}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitParse_init_code_block(@NotNull SerpentParser.Parse_init_code_blockContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#single_send_fund}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitSingle_send_fund(@NotNull SerpentParser.Single_send_fundContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#ex_or_exp}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitEx_or_exp(@NotNull SerpentParser.Ex_or_expContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_func}.
* @param ctx the parse tree
@ -193,13 +263,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitSuicide_func(@NotNull SerpentParser.Suicide_funcContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#hex_num}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitHex_num(@NotNull SerpentParser.Hex_numContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#contract_balance}.
* @param ctx the parse tree
@ -207,20 +270,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitContract_balance(@NotNull SerpentParser.Contract_balanceContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#condition}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitCondition(@NotNull SerpentParser.ConditionContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#eq_exp}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitEq_exp(@NotNull SerpentParser.Eq_expContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#stop_func}.
* @param ctx the parse tree
@ -243,11 +292,11 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
T visitBlock_timestamp(@NotNull SerpentParser.Block_timestampContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#send_func}.
* Visit a parse tree produced by {@link SerpentParser#while_stmt}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitSend_func(@NotNull SerpentParser.Send_funcContext ctx);
T visitWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#arr_def}.
@ -256,13 +305,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitArr_def(@NotNull SerpentParser.Arr_defContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#while_stmt}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitWhile_stmt(@NotNull SerpentParser.While_stmtContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#special_func}.
* @param ctx the parse tree
@ -291,20 +333,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitAnd_exp(@NotNull SerpentParser.And_expContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#block_prevhash}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlock_prevhash(@NotNull SerpentParser.Block_prevhashContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#mul_expr}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMul_expr(@NotNull SerpentParser.Mul_exprContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#int_val}.
* @param ctx the parse tree
@ -312,13 +340,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitInt_val(@NotNull SerpentParser.Int_valContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_data}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMsg_data(@NotNull SerpentParser.Msg_dataContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#ret_func_2}.
* @param ctx the parse tree
@ -326,20 +347,6 @@ public interface SerpentVisitor<T> extends ParseTreeVisitor<T> {
*/
T visitRet_func_2(@NotNull SerpentParser.Ret_func_2Context ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#msg_value}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMsg_value(@NotNull SerpentParser.Msg_valueContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#asm}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitAsm(@NotNull SerpentParser.AsmContext ctx);
/**
* Visit a parse tree produced by {@link SerpentParser#ret_func_1}.
* @param ctx the parse tree