X-Git-Url: http://plrg.eecs.uci.edu/git/?p=cdsspec-compiler.git;a=blobdiff_plain;f=grammer%2Fspec_compiler.jj;h=305eabf7ce927ca58f0711193f103a95d40146c4;hp=575dcf32b569fcf2aec4b24a1ebea85031760497;hb=60246219b510f28980a6f93f615458e41262a23f;hpb=9811b5edc5910159c1248ca2745f83ff5edc1e0d diff --git a/grammer/spec_compiler.jj b/grammer/spec_compiler.jj index 575dcf3..305eabf 100644 --- a/grammer/spec_compiler.jj +++ b/grammer/spec_compiler.jj @@ -366,6 +366,8 @@ SKIP : { | +| + | | @@ -984,7 +986,7 @@ GlobalConstruct Global_construct() : SequentialDefineSubConstruct Global_define() : { - ArrayList initVar, defineFunc, code, declareStruct; + ArrayList initVar, cleanup, defineFunc, code, declareStruct; ArrayList> defineFuncs; ArrayList declareVars; ArrayList> declareStructs; @@ -994,7 +996,8 @@ SequentialDefineSubConstruct Global_define() : { { declareVars = new ArrayList(); - initVar = null; + initVar = new ArrayList(); + cleanup = new ArrayList(); defineFuncs = new ArrayList>(); declareStructs = new ArrayList>(); } @@ -1004,10 +1007,11 @@ SequentialDefineSubConstruct Global_define() : ( ((declareVar = TypeParam() { declareVars.add(declareVar); } )*))? ( (code = C_CPP_CODE(null) { initVar = code; } ))? + ( (code = C_CPP_CODE(null) { cleanup = code; } ))? ( (defineFunc = C_CPP_CODE(null) { defineFuncs.add(defineFunc); }))* { SequentialDefineSubConstruct res = new - SequentialDefineSubConstruct(declareStructs, declareVars, initVar, defineFuncs); + SequentialDefineSubConstruct(declareStructs, declareVars, initVar, cleanup, defineFuncs); //System.out.println(res); return res; }