@InitVar:
@DefineFunc:
...
+ @DefineFunc:
@Interface_cluster:
...
@Happens-before:
SequentialDefineSubConstruct Global_define() :
{
ArrayList<String> initVar, defineFunc, code;
+ ArrayList<ArrayList<String>> defineFuncs;
ArrayList<VariableDeclaration> declareVars;
VariableDeclaration declareVar;
{
declareVars = null;
initVar = null;
- defineFunc = null;
+ defineFuncs = new ArrayList<ArrayList<String>>();
}
<GLOBAL_DEFINE>
(<DECLARE_VAR> ((declareVar = TypeParam() ";" {
declareVars.add(declareVar); } )*))?
(<INIT_VAR> (code = C_CPP_CODE(null) { initVar = code; } ))?
- (<DEFINE_FUNC> (code = C_CPP_CODE(null) { defineFunc = code; }))?
+ (<DEFINE_FUNC> (defineFunc = C_CPP_CODE(null) { defineFuncs.add(defineFunc); }))*
{
SequentialDefineSubConstruct res = new
- SequentialDefineSubConstruct(declareVars, initVar, defineFunc);
+ SequentialDefineSubConstruct(declareVars, initVar, defineFuncs);
//System.out.println(res);
return res;
}