FortranParserActionNew.java
package edu.udel.cis.vsl.abc.front.fortran.parse;
import java.io.File;
import java.util.Stack;
import org.antlr.runtime.Token;
import edu.udel.cis.vsl.abc.ast.IF.AST;
import edu.udel.cis.vsl.abc.ast.IF.ASTFactory;
import edu.udel.cis.vsl.abc.ast.IF.ASTs;
import edu.udel.cis.vsl.abc.ast.node.IF.NodeFactory;
import edu.udel.cis.vsl.abc.ast.node.IF.Nodes;
import edu.udel.cis.vsl.abc.ast.type.IF.TypeFactory;
import edu.udel.cis.vsl.abc.ast.type.IF.Types;
import edu.udel.cis.vsl.abc.ast.value.IF.ValueFactory;
import edu.udel.cis.vsl.abc.ast.value.IF.Values;
import edu.udel.cis.vsl.abc.config.IF.Configuration;
import edu.udel.cis.vsl.abc.config.IF.Configurations;
import edu.udel.cis.vsl.abc.front.fortran.astgen.MFASTBuilder;
import edu.udel.cis.vsl.abc.front.fortran.astgen.MFASTBuilderWorker;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFPUtils;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFPUtils.CPLXP;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFPUtils.DIGS;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFPUtils.EWS;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFPUtils.PRPair;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFPUtils.TBPB;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFPUtils.TPD_OR_CD;
import edu.udel.cis.vsl.abc.front.fortran.ptree.MFTree;
import edu.udel.cis.vsl.abc.token.IF.CivlcToken;
import edu.udel.cis.vsl.abc.token.IF.Formation;
import edu.udel.cis.vsl.abc.token.IF.SourceFile;
import edu.udel.cis.vsl.abc.token.IF.TokenFactory;
import edu.udel.cis.vsl.abc.token.IF.Tokens;
class FortranParserActionNew {
private boolean isAST = true;
private MFTree root;
private Stack<MFTree> stack = new Stack<MFTree>();
private AST ast;
private TokenFactory tokenF = Tokens.newTokenFactory();
private Formation curFmt = null;
private Stack<Formation> fmtStack = new Stack<Formation>();
private MFTree absent() {
return new MFTree(MFPUtils.ABSENT);
}
// Called by MFP
void inclusion(String string, String fileName) {
}
// Called by MFP, MFortranParser2018
void start_of_file(String fileName, String pathName) {
curFmt = tokenF.newInclusion(new SourceFile(new File(pathName), 0));
fmtStack.push(curFmt);
if (root == null)
root = new MFTree(MFPUtils.ROOT, fileName);
}
// Called by MFP, MFortranParser2018
void end_of_file(String fileName, String pathName) {
fmtStack.pop();
if (!fmtStack.empty()) {
curFmt = fmtStack.peek();
} else if (isAST) {
Configuration config = Configurations.newMinimalConfiguration();
TypeFactory typeF = Types.newTypeFactory();
ValueFactory valF = Values.newValueFactory(config, typeF);
NodeFactory nodeF = Nodes.newNodeFactory(config, typeF, valF);
ASTFactory astF = ASTs.newASTFactory(nodeF, tokenF, typeF);
MFASTBuilder builder = new MFASTBuilder(config, astF, fileName);
MFASTBuilderWorker worker = builder.getWorker(root);
try {
ast = worker.generateAST();
// Analysis.performStandardAnalysis(config, ast);
// System.out.println("AbstractSyntaxTree:");
// ast.print(System.out);
} catch (Exception e) {
e.printStackTrace();
}
} else
assert false;
}
// Called by MFPAbstract
AST getAST() {
return ast;
}
MFTree getFortranParseTree() {
return root;
}
private boolean validActionStmt() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.ALLOCATE_STMT || //
prp == MFPUtils.ASSIGNMENT_STMT || //
prp == MFPUtils.BACKSPACE_STMT || //
prp == MFPUtils.CALL_STMT || //
prp == MFPUtils.CLOSE_STMT || //
prp == MFPUtils.COMPUTED_GOTO_STMT || //
prp == MFPUtils.CONTINUE_STMT || //
prp == MFPUtils.CYCLE_STMT || //
prp == MFPUtils.DEALLOCATE_STMT || //
prp == MFPUtils.ENDFILE_STMT || //
prp == MFPUtils.EXIT_STMT || //
prp == MFPUtils.FLUSH_STMT || //
prp == MFPUtils.FORALL_STMT || //
prp == MFPUtils.GOTO_STMT || //
prp == MFPUtils.IF_STMT || //
prp == MFPUtils.INQUIRE_STMT || //
prp == MFPUtils.LOCK_STMT || //
prp == MFPUtils.NULLIFY_STMT || //
prp == MFPUtils.OPEN_STMT || //
prp == MFPUtils.POINTER_ASSIGNMENT_STMT || //
prp == MFPUtils.PRINT_STMT || //
prp == MFPUtils.READ_STMT || //
prp == MFPUtils.RETURN_STMT || //
prp == MFPUtils.REWIND_STMT || //
prp == MFPUtils.STOP_STMT || //
prp == MFPUtils.SYNC_ALL_STMT || //
prp == MFPUtils.SYNC_IMAGES_STMT || //
prp == MFPUtils.SYNC_MEMORY_STMT || //
prp == MFPUtils.UNLOCK_STMT || //
prp == MFPUtils.WAIT_STMT || //
prp == MFPUtils.WHERE_STMT || //
prp == MFPUtils.WRITE_STMT || //
prp == MFPUtils.FAIL_IMAGE_STMT || //
prp == MFPUtils.SYNC_TEAM_STMT || //
prp == MFPUtils.EVENT_POST_STMT || //
prp == MFPUtils.EVENT_WAIT_STMT || //
prp == MFPUtils.FORM_TEAM_STMT //
;
}
}
private boolean validConstant() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.INT_LITERAL_CONSTANT || //
prp == MFPUtils.SIGNED_INT_LITERAL_CONSTANT || //
prp == MFPUtils.REAL_LITERAL_CONSTANT || //
prp == MFPUtils.SIGNED_REAL_LITERAL_CONSTANT || //
prp == MFPUtils.COMPLEX_LITERAL_CONSTANT || //
prp == MFPUtils.LOGICAL_LITERAL_CONSTANT || //
prp == MFPUtils.CHAR_LITERAL_CONSTANT || //
prp == MFPUtils.BOZ_LITERAL_CONSTANT //
// DELETED prp == MFPUtils.HOLLERITH_LITERAL_CONSTANT.getRule() ||
;
}
}
private boolean validDeclConstruct() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.ACCESS_STMT || //
prp == MFPUtils.ALLOCATABLE_STMT || //
prp == MFPUtils.ASYNCHRONOUS_STMT || //
prp == MFPUtils.BIND_STMT || //
prp == MFPUtils.CODIMENSION_STMT || //
prp == MFPUtils.COMMON_STMT || //
prp == MFPUtils.DATA_STMT || //
prp == MFPUtils.DERIVED_TYPE_DEF || //
prp == MFPUtils.DIMENSION_STMT || //
prp == MFPUtils.ENTRY_STMT || //
prp == MFPUtils.ENUM_DEF || //
prp == MFPUtils.EQUIVALENCE_STMT || //
prp == MFPUtils.EXTERNAL_STMT || //
prp == MFPUtils.FORMAT_STMT || //
prp == MFPUtils.INTENT_STMT || //
prp == MFPUtils.INTERFACE_BLOCK || //
prp == MFPUtils.INTRINSIC_STMT || //
prp == MFPUtils.NAMELIST_STMT || //
prp == MFPUtils.OPTIONAL_STMT || //
prp == MFPUtils.PARAMETER_STMT || //
prp == MFPUtils.POINTER_STMT || //
prp == MFPUtils.PROCEDURE_DECLARATION_STMT || //
prp == MFPUtils.PROTECTED_STMT || //
prp == MFPUtils.SAVE_STMT || //
prp == MFPUtils.TARGET_STMT || //
prp == MFPUtils.TYPE_DECLARATION_STMT || //
prp == MFPUtils.VOLATILE_STMT || //
prp == MFPUtils.VALUE_STMT || //
prp == MFPUtils.STMT_FUCNTION_STMT || //
prp == MFPUtils.PRAGMA_TYPE_QUALIFIER_STMT;
}
}
private boolean validDesignatorOrFuncRef() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.DATA_REF || //
prp == MFPUtils.DESIGNATOR || //
prp == MFPUtils.FUNCTION_REFERENCE || //
prp == MFPUtils.SUBSTRING;
}
}
@SuppressWarnings("unused")
private boolean validDecl(int rule) {
// declaration_construct
// parameter_stmt
// format_stmt
// entry_stmt
return false;
}
private boolean validExec() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.EXECUTABLE_CONSTRUCT || //
prp == MFPUtils.DATA_STMT || //
prp == MFPUtils.FORMAT_STMT || //
prp == MFPUtils.ENTRY_STMT;
}
}
private boolean validExecConstruct() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.ACTION_STMT || //
prp == MFPUtils.ASSOCIATE_CONSTRUCT || //
prp == MFPUtils.BLOCK_CONSTRUCT || //
prp == MFPUtils.CASE_CONSTRUCT || //
prp == MFPUtils.CRITICAL_CONSTRUCT || //
prp == MFPUtils.DO_CONSTRUCT || //
prp == MFPUtils.FORALL_CONSTRUCT || //
prp == MFPUtils.IF_CONSTRUCT || //
prp == MFPUtils.SELECT_RANK_CONSTRUCT || //
prp == MFPUtils.WHERE_CONSTRUCT || //
prp == MFPUtils.PRAGMA_STMT //
;
}
}
private boolean validExpr() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.DESIGNATOR_OR_FUNC_REF || //
prp == MFPUtils.LITERAL_CONSTANT || //
prp == MFPUtils.ARRAY_CONSTRUCTOR || //
prp == MFPUtils.STRUCTURE_CONSTRUCTOR || //
prp == MFPUtils.QUANTIFIED_EXPR || //
(prp.getRule() >= MFPUtils.PRIMARY.getRule() && //
prp.getRule() <= MFPUtils.INT_CONSTANT_EXPR
.getRule());
}
}
private boolean validExprOperand(PRPair parentPrp) {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.DESIGNATOR_OR_FUNC_REF || //
prp == MFPUtils.LITERAL_CONSTANT || //
prp == MFPUtils.ARRAY_CONSTRUCTOR || //
prp == MFPUtils.STRUCTURE_CONSTRUCTOR || //
(prp.getRule() >= MFPUtils.PRIMARY.getRule() && //
prp.getRule() <= parentPrp.getRule());
}
}
private boolean validImplicitPart() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.IMPLICIT_STMT || //
prp == MFPUtils.PARAMETER_STMT || //
prp == MFPUtils.FORMAT_STMT || //
prp == MFPUtils.ENTRY_STMT;
}
}
private boolean validSuccessor(PRPair prp) {
return !stack.isEmpty() && stack.peek().prp() == prp;
}
private boolean validValue() {
if (stack.isEmpty()) {
return false;
} else {
PRPair prp = stack.peek().prp();
return prp == MFPUtils.DESIGNATOR || //
prp == MFPUtils.STRUCTURE_CONSTRUCTOR || //
// DELETED
// prp == MFPUtils.HOLLERITH_LITERAL_CONSTANT.getRule() ||
validConstant();
}
}
private void genListBackward(int size, PRPair prp) {
int ctr = size;
MFTree list = new MFTree(prp, "[" + size + "]");
while (ctr > 0) {
assert validSuccessor(prp);
list.addChild(0, stack.pop());
ctr--;
}
stack.push(list);
}
// R501: program
// R502: program unit
/**
* R503: external subprogram
*
* @param hasPrefix
*/
void ext_function_subprogram(boolean hasPrefix) {
assert validSuccessor(MFPUtils.FUNCTION_SUBPROGRAM);
MFTree function_subprogram = stack.pop();
if (hasPrefix) {
assert validSuccessor(MFPUtils.PREFIX_SPEC);
function_subprogram.addChild(0, stack.pop());
} else {
function_subprogram.addChild(0, absent());
}
root.addChild(function_subprogram); // ROOT: Program_Main
}
/**
* R504: specification part
*
* @param num_use
* @param num_import
* @param num_implicit
* @param num_decl
*/
void specification_part(int numUse, int numImport, int numImplicit,
int numDecl) {
int ctr = 0;
MFTree specification_part = new MFTree(MFPUtils.SPECIFICATION_PART);
ctr = numDecl;
while (ctr > 0) {
assert !stack.empty();
if (stack.peek().prp() == MFPUtils.PARAMETER_STMT)
declaration_construct();
assert stack.peek().prp() == MFPUtils.DECLARATION_CONSTRUCT;
specification_part.addChild(0, stack.pop());
ctr--;
}
ctr = numImplicit;
while (ctr > 0) {
// incomplete
assert validImplicitPart();
specification_part.addChild(0, stack.pop());
ctr--;
}
ctr = numImport;
while (ctr > 0) {
// incomplete
assert !stack.empty() && stack.peek().prp() == MFPUtils.IMPORT_STMT;
specification_part.addChild(0, stack.pop());
ctr--;
}
ctr = numUse;
while (ctr > 0) {
// incomplete
assert !stack.empty() && stack.peek().prp() == MFPUtils.USE_STMT;
specification_part.addChild(0, stack.pop());
ctr--;
}
stack.push(specification_part);
}
/**
* R505: implicit part</br>
* R506: implicit part stmt
*/
void declaration_construct() {
MFTree declaration_construct = new MFTree(
MFPUtils.DECLARATION_CONSTRUCT);
assert validDeclConstruct();
declaration_construct.addChild(stack.pop());
stack.push(declaration_construct);
}
/**
* R507: declaration construct</br>
* R508: specification construct</br>
* R513: other specification stmt
*
*/
void execution_part(int numExec) {
int ctr = numExec;
MFTree execution_part = new MFTree(MFPUtils.EXECUTION_PART);
while (ctr > 0) {
assert validExec();
execution_part.addChild(0, stack.pop());
ctr--;
}
stack.push(execution_part);
}
/**
* R509: execution part
*/
void execution_part_construct() {
// Omitted, in R507
}
/**
* R511: internal subprogram part
*
* @param num_internal_subprogram
*/
void internal_subprogram_part(int numInternalSubprogram) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R512: internal subprogram
*/
void internal_subprogram() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R514: executable construct
*/
void executable_construct() {
MFTree executable_construct = new MFTree(MFPUtils.EXECUTABLE_CONSTRUCT);
assert validExecConstruct();
executable_construct.addChild(stack.pop());
stack.push(executable_construct);
}
/**
* R515: action stmt
*/
void action_stmt() {
MFTree action_stmt = new MFTree(MFPUtils.ACTION_STMT);
assert validActionStmt();
action_stmt.addChild(stack.pop());
stack.push(action_stmt);
}
/**
* R516: keyword
*/
void keyword() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R601: alphanumeric character
// R602: underscore
/**
* R603: name
*
* @param name
*/
void name(Token name) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R604: constant<br>
*
* @param constant
*/
void constant(Token constant) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R605: literal constant
*/
void literal_constant() {
MFTree literal_constant = new MFTree(MFPUtils.LITERAL_CONSTANT);
assert validConstant();
literal_constant.addChild(stack.pop());
stack.push(literal_constant);
}
/**
* R607: int constant
*
* @param constant
*/
void int_constant(Token constant) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R608: intrinsic operator
*/
void intrinsic_operator() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R609 defined operator
*
* @param t_definedOp
* The {@link Token} used for being
* defined.
* @param isExtendedIntrinsicOp
* <code>true</code> iff
* <code>t_definedOp</code> is an intrinsic
* operator extended by the source
* code;<br>
* <code>false</code> iff the token defined
* is not an intrinsic operator.
*/
void defined_operator(Token definedOp, boolean isExtendedIntrinsicOp) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R610: extended intrinsic op
*/
void extended_intrinsic_op() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R611: label
*
* @param t
*/
void label(Token lbl) {
stack.push(new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
}
/**
* L611: label list
*
* @param numLbl
*/
void label_list(int numLbl) {
genListBackward(numLbl, MFPUtils.LABEL);
}
/**
* R701: type param value
*
* @param type_param_value_kind
*/
void type_param_value(int kindTypeParamValue) {
MFTree type_param_value = new MFTree(MFPUtils.TYPE_PARAM_VALUE,
kindTypeParamValue);
if (kindTypeParamValue == MFPUtils.TYPE_PARAM_EXPR) {
assert validExpr();
type_param_value.addChild(stack.pop());
}
stack.push(type_param_value);
}
/**
* R702: type spec
*/
void type_spec() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R703: declaration type spec
*
* @param typePrefix
* is `CLASS` or `TYPE`
* @param decl_type_spec_kind
*/
void declaration_type_spec(Token typePrefix, Token asterisk,
int kindDeclTypeSpec) {
MFTree declaration_type_spec = new MFTree(
MFPUtils.DECLARATION_TYPE_SPEC, kindDeclTypeSpec);
if (kindDeclTypeSpec == MFPUtils.F_INTRNSIC) {
assert validSuccessor(MFPUtils.INTRINSIC_TYPE_SPEC);
declaration_type_spec.addChild(stack.pop());
} else if (kindDeclTypeSpec == MFPUtils.TYPE_INTRN) {
declaration_type_spec.addChild(
new MFTree(MFPUtils.T_TYPE, (CivlcToken) typePrefix));
assert validSuccessor(MFPUtils.INTRINSIC_TYPE_SPEC);
declaration_type_spec.addChild(stack.pop());
} else if (kindDeclTypeSpec == MFPUtils.TYPE_DERIV) {
declaration_type_spec.addChild(
new MFTree(MFPUtils.T_TYPE, (CivlcToken) typePrefix));
assert validSuccessor(MFPUtils.DERIVED_TYPE_SPEC);
declaration_type_spec.addChild(stack.pop());
} else if (kindDeclTypeSpec == MFPUtils.TYPE_UNLMT) {
declaration_type_spec.addChild(
new MFTree(MFPUtils.T_TYPE, (CivlcToken) typePrefix));
declaration_type_spec.addChild(
new MFTree(MFPUtils.T_ASTERISK, (CivlcToken) asterisk));
} else if (kindDeclTypeSpec == MFPUtils.CLSS_DERIV) {
declaration_type_spec.addChild(
new MFTree(MFPUtils.T_CLASS, (CivlcToken) typePrefix));
assert validSuccessor(MFPUtils.DERIVED_TYPE_SPEC);
declaration_type_spec.addChild(stack.pop());
} else if (kindDeclTypeSpec == MFPUtils.CLSS_UNLMT) {
declaration_type_spec.addChild(
new MFTree(MFPUtils.T_CLASS, (CivlcToken) typePrefix));
declaration_type_spec.addChild(
new MFTree(MFPUtils.T_ASTERISK, (CivlcToken) asterisk));
} else
assert false;
stack.push(declaration_type_spec);
}
/**
* R704: intrinsic type spec <br>
* R705: integer type spec
*
* @param type
* @param precision
* @param kindIntrTypeSpec
* @param hasKindSelector
*/
void intrinsic_type_spec(Token type, Token precision, int kindIntrTypeSpec,
boolean hasKindSelector) {
MFTree intrinsic_type_spec = new MFTree(MFPUtils.INTRINSIC_TYPE_SPEC,
kindIntrTypeSpec);
intrinsic_type_spec.addChildren(//
new MFTree(MFPUtils.TOKEN, (CivlcToken) type), //
new MFTree(MFPUtils.T_PRECISION, (CivlcToken) precision));
if (hasKindSelector) {
assert MFPUtils.TYPE_CHAR == kindIntrTypeSpec
? validSuccessor(MFPUtils.CHAR_SELECTOR)
: validSuccessor(MFPUtils.KIND_SELECTOR);
intrinsic_type_spec.addChild(stack.pop());
}
stack.push(intrinsic_type_spec);
}
/**
* R706: kind selector
*
* @param token0
* is either T_KIND or T_ASTERISK
* @param token1
* is T_SELECT (if <code>token0</code> is
* T_KIND), or is T_DIGIT_STRING (if
* <code>token0</code> is T_ASTERISK)
* @param hasKindSelectExpr
*/
void kind_selector(Token token0, Token token1, boolean hasKindSelectExpr) {
MFTree kind_selector = new MFTree(MFPUtils.KIND_SELECTOR);
if (hasKindSelectExpr) {
kind_selector.addChildren(//
new MFTree(MFPUtils.T_KIND, (CivlcToken) token0), //
new MFTree(MFPUtils.T_SELECT, (CivlcToken) token1));
assert validExpr();
kind_selector.addChild(stack.pop());
} else {
kind_selector.addChildren(//
new MFTree(MFPUtils.T_ASTERISK, (CivlcToken) token0), //
new MFTree(MFPUtils.DIGIT_STRING, (CivlcToken) token1));
}
stack.push(kind_selector);
}
/**
* R708: int literal constant
*
* @param sign
*/
void signed_int_literal_constant(Token sign) {
MFTree signed_int_literal_constant = new MFTree(
MFPUtils.SIGNED_INT_LITERAL_CONSTANT);
assert validSuccessor(MFPUtils.INT_LITERAL_CONSTANT);
if (sign == null)
signed_int_literal_constant.addChildren(stack.pop());
else if (sign.getType() == MFPUtils.T_PLUS.getRule())
signed_int_literal_constant.addChildren(
new MFTree(MFPUtils.T_PLUS, (CivlcToken) sign), //
stack.pop());
else
signed_int_literal_constant.addChildren(
new MFTree(MFPUtils.T_MINUS, (CivlcToken) sign), //
stack.pop());
stack.push(signed_int_literal_constant);
}
/**
* R708: int literal constant
*
* @param digits
* @param kind
*/
void int_literal_constant(Token digits, Token kind) {
MFTree int_literal_constant = new MFTree(MFPUtils.INT_LITERAL_CONSTANT);
int_literal_constant.addChildren(//
new MFTree(MFPUtils.DIGIT_STRING, (CivlcToken) digits), //
new MFTree(MFPUtils.DIGIT_STRING, (CivlcToken) kind));
stack.push(int_literal_constant);
}
/**
* R709: kind param
*
* @param param
*/
void kind_param(Token param) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R711: digit string
/**
* R713: signed real literal constant
*
* @param sign
*/
void signed_real_literal_constant(Token sign) {
MFTree signed_real_literal_constant = new MFTree(
MFPUtils.SIGNED_REAL_LITERAL_CONSTANT);
assert validSuccessor(MFPUtils.REAL_LITERAL_CONSTANT);
if (sign == null)
signed_real_literal_constant.addChildren(stack.pop());
else if (sign.getType() == MFPUtils.T_PLUS.getRule())
signed_real_literal_constant.addChildren(
new MFTree(MFPUtils.T_PLUS, (CivlcToken) sign), //
stack.pop());
else
signed_real_literal_constant.addChildren(
new MFTree(MFPUtils.T_MINUS, (CivlcToken) sign), //
stack.pop());
stack.push(signed_real_literal_constant);
}
/**
* R714: real literal constant
*
* @param constant
* @param kind
*/
void real_literal_constant(Token constant, Token kind) {
MFTree real_literal_constant = new MFTree(
MFPUtils.REAL_LITERAL_CONSTANT);
real_literal_constant.addChildren(//
new MFTree(MFPUtils.T_M_REAL_CONST, (CivlcToken) constant), //
new MFTree(MFPUtils.KIND_PARAM, (CivlcToken) kind));
stack.push(real_literal_constant);
}
// R715: significand
// R716: exponent letter
// R717: exponent
/**
* R718: complex literal constant
*/
void complex_literal_constant() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R719: real part
*
* @param ident
* @param kindCplx
*/
void real_part(Token ident, CPLXP kindCplx) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R720: imag part
*
* @param ident
* @param kindCplx
*/
void imag_part(Token ident, CPLXP kindCplx) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R721: char selector
*
* @param len
* @param kind
* @param kindCharSelector0
* @param kindCharSelector1
*/
void char_selector(Token len, Token kind, int kindCharSelector0,
int kindCharSelector1) {
MFTree char_selector = new MFTree(MFPUtils.CHAR_SELECTOR);
if (kindCharSelector1 == MFPUtils.CHAR_SELECTOR_NONE) {
char_selector.addChild(absent());
} else if (kindCharSelector1 == MFPUtils.CHAR_SELECTOR_KINDEXPR) {
assert validExpr();
char_selector.addChild(stack.pop());
} else if (kindCharSelector1 == MFPUtils.CHAR_SELECTOR_TYPEVAL) {
assert validSuccessor(MFPUtils.TYPE_PARAM_VALUE);
char_selector.addChild(stack.pop());
} else
assert false;
if (kindCharSelector0 == MFPUtils.CHAR_SELECTOR_CHARLEN) {
assert kindCharSelector1 == MFPUtils.CHAR_SELECTOR_NONE;
assert validSuccessor(MFPUtils.CHAR_LENGTH);
char_selector.addChild(0, stack.pop());
} else if (kindCharSelector0 == MFPUtils.CHAR_SELECTOR_KINDEXPR) {
assert validExpr();
char_selector.addChild(stack.pop());
} else if (kindCharSelector0 == MFPUtils.CHAR_SELECTOR_TYPEVAL) {
assert validSuccessor(MFPUtils.TYPE_PARAM_VALUE);
char_selector.addChild(0, stack.pop());
} else
assert false;
stack.push(char_selector);
}
/**
* R722: length selector
*
* @param len
* @param kindCharSelector
*/
void length_selector(Token len, int kindCharSelector) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R723: char length
*
* @param isTypeParamVal
*/
void char_length(boolean isTypeParamVal) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R724: char literal constant
*
* @param digits
* @param constant
*/
void char_literal_constant(Token prefix, Token constant) {
MFTree char_literal_constant = new MFTree(
MFPUtils.CHAR_LITERAL_CONSTANT);
MFTree t_charconst = new MFTree(MFPUtils.T_CHAR_CONST,
(CivlcToken) constant);
if (prefix != null) {
if (prefix.getType() == MFPUtils.T_DIGIT_STR.getRule())
char_literal_constant.addChild(
new MFTree(MFPUtils.T_DIGIT_STR, (CivlcToken) prefix));
else
char_literal_constant.addChild(
new MFTree(MFPUtils.T_IDENT, (CivlcToken) prefix));
}
char_literal_constant.addChild(t_charconst);
stack.push(char_literal_constant);
}
/**
* R725: logical literal constant
*
* @param val
* @param kind
*/
void logical_literal_constant(Token val, Token kind) {
MFTree logical_literal_constant = new MFTree(
MFPUtils.LOGICAL_LITERAL_CONSTANT);
assert (val != null);
if (val.getType() == MFPUtils.T_TRUE.getRule())
logical_literal_constant
.addChild(new MFTree(MFPUtils.T_TRUE, (CivlcToken) val));
else
logical_literal_constant
.addChild(new MFTree(MFPUtils.T_FALSE, (CivlcToken) val));
if (kind != null)
logical_literal_constant.addChild(
new MFTree(MFPUtils.KIND_PARAM, (CivlcToken) kind));
stack.push(logical_literal_constant);
}
/**
* R726: derived type def
*/
void derived_type_def() {
MFTree derived_type_def = new MFTree(MFPUtils.DERIVED_TYPE_DEF);
assert validSuccessor(MFPUtils.END_TYPE_STMT);
derived_type_def.addChild(stack.pop()); // end type
while (!validSuccessor(MFPUtils.DERIVED_TYPE_STMT)) {
assert validSuccessor(MFPUtils.TYPE_PARAM_DEF_STMT) || //
validSuccessor(MFPUtils.PRIVATE_OR_SEQUENCE) || //
validSuccessor(MFPUtils.DATA_COMPONENT_DEF_STMT) || //
validSuccessor(MFPUtils.PROC_COMPONENT_DEF_STMT) || //
validSuccessor(MFPUtils.TYPE_BOUND_PROCEDURE_PART);
derived_type_def.addChild(0, stack.pop());
}
derived_type_def.addChild(0, stack.pop());
stack.push(derived_type_def);
}
/**
* R727: derived type stmt
*
* @param lbl
* @param type
* @param ident
* @param eos
* @param hasTypeAttrSpecList
* @param hasTypeParamNameList
*/
void derived_type_stmt(Token lbl, Token type, Token ident, Token eos,
boolean hasTypeAttrSpecList, boolean hasTypeParamNameList) {
MFTree derived_type_stmt = new MFTree(MFPUtils.DERIVED_TYPE_STMT);
derived_type_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_TYPE, (CivlcToken) type), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
if (hasTypeParamNameList) {
assert validSuccessor(MFPUtils.GENERIC_NAME);
derived_type_stmt.addChild(stack.pop());
} else
derived_type_stmt.addChild(absent());
if (hasTypeAttrSpecList) {
assert validSuccessor(MFPUtils.TYPE_ATTR_SPEC);
derived_type_stmt.addChild(stack.pop());
} else
derived_type_stmt.addChild(absent());
stack.push(derived_type_stmt);
}
/**
* D603: generic name
*
* @param ident
*/
void generic_name(Token ident) {
MFTree generic_name = new MFTree(MFPUtils.GENERIC_NAME);
generic_name.addChild(new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(generic_name);
}
/**
* L603: generic name list
*
* @param numGName
*/
void generic_name_list(int numGName) {
genListBackward(numGName, MFPUtils.GENERIC_NAME);
}
/**
* R728: type attr spec
*
* @param keyword
* @param ident
* @param kindTypeAttrSpec
*/
void type_attr_spec(Token keyword, Token ident, int kindTypeAttrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L728: type attr spec list
*
* @param numTypeAttr
*/
void type_attr_spec_list(int numTypeAttr) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R729: private or sequence
*/
void private_or_sequence() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R730: end type stmt
*
* @param lbl
* @param end
* @param type
* @param id
* @param eos
*/
void end_type_stmt(Token lbl, Token end, Token type, Token ident,
Token eos) {
MFTree end_type_stmt = new MFTree(MFPUtils.END_TYPE_STMT);
end_type_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_END, (CivlcToken) end), //
new MFTree(MFPUtils.T_TYPE, (CivlcToken) type), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(end_type_stmt);
}
/**
* R731: sequence stmt
*
* @param lbl
* @param sequence
* @param eos
*/
void sequence_stmt(Token lbl, Token sequence, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R732: type param def stmt<br>
* R736: component def stmt
*
* @param eos
* @param kindOfStmt
*/
void type_param_or_comp_def_stmt(Token eos, TPD_OR_CD kindOfStmt) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L732: type param or comp def stmt_list
*/
void type_param_or_comp_def_stmt_list() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R733: type param decl
*
* @param ident
* @param hasInit
*/
void type_param_decl(Token ident, boolean hasInit) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L733: type param decl list
*
* @param numTypeParamDecl
*/
void type_param_decl_list(int numTypeParamDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R734: type param attr spec
*
* @param kind
* @param kindTypeParamAttrSpec
*/
void type_param_attr_spec(Token kind, int kindTypeParamAttrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R735: component part
/**
* R736: component def stmt
*
* @param kindCompDef
*/
// void component_def_stmt() {
// Omitted, do nothing.
// }
/**
* R737: data component def stmt
*
* @param lbl
* @param eos
* @param hasCompAttrSpec
*/
void data_component_def_stmt(Token lbl, Token eos,
boolean hasCompAttrSpec) {
MFTree data_component_def_stmt = new MFTree(
MFPUtils.DATA_COMPONENT_DEF_STMT);
assert validSuccessor(MFPUtils.COMPONENT_DECL);
data_component_def_stmt.addChild(stack.pop());
if (hasCompAttrSpec) {
assert validSuccessor(MFPUtils.COMPONENT_ATTR_SPEC);
data_component_def_stmt.addChild(stack.pop());
} else
data_component_def_stmt.addChild(absent());
assert validSuccessor(MFPUtils.DECLARATION_TYPE_SPEC);
data_component_def_stmt.addChild(0, stack.pop());
data_component_def_stmt.addChild(0,
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(data_component_def_stmt);
}
/**
* R738: component attr spec
*
* @param keyword
* @param kindAcessSpec
*/
void component_attr_spec(Token keyword, int kindCompAttrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L738: component attr spec list
*
* @param numCompAttrSpec
*/
void component_attr_spec_list(int numCompAttrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R739: component decl
*
* @param ident
* @param hasCompArrSpec
* @param hasCoarrSpec
* @param hasCharLen
* @param hasInit
*/
void component_decl(Token ident, boolean hasCompArrSpec,
boolean hasCoarrSpec, boolean hasCharLen, boolean hasInit) {
MFTree component_decl = new MFTree(MFPUtils.COMPONENT_DECL);
if (hasInit) {
assert validSuccessor(MFPUtils.COMPONENT_INITIALIZATION);
component_decl.addChild(0, stack.pop());
} else
component_decl.addChild(0, absent());
if (hasCharLen) {
assert validSuccessor(MFPUtils.CHAR_LENGTH);
component_decl.addChild(0, stack.pop());
} else
component_decl.addChild(0, absent());
if (hasCoarrSpec) {
assert validSuccessor(MFPUtils.COARRAY_SPEC);
component_decl.addChild(0, stack.pop());
} else
component_decl.addChild(0, absent());
if (hasCompArrSpec) {
assert validSuccessor(MFPUtils.COMPONENT_ARRAY_SPEC);
component_decl.addChild(0, stack.pop());
} else
component_decl.addChild(0, absent());
component_decl.addChild(0,
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(component_decl);
}
/**
* L739: component decl list
*
* @param numCompDecl
*/
void component_decl_list(int numCompDecl) {
genListBackward(numCompDecl, MFPUtils.COMPONENT_DECL);
}
/**
* R740: component array spec
*
* @param isExplicitShapeSpec
* <code>false</code> iff this spec is
* deferred shape spec list
*/
void component_array_spec(boolean isExplicitShapeSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R741: proc component def stmt
*
* @param lbl
* @param procedure
* @param eos
* @param hasInterface
*/
void proc_component_def_stmt(Token lbl, Token procedure, Token eos,
boolean hasInterface) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R742: proc component attr spec
*
* @param pointer
* @param ident
* @param kindProcCompAttrSpec
*/
void proc_component_attr_spec(Token pointer, Token ident,
int kindProcCompAttrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L742: proc component attr spec list
*
* @param numProcCompAttrSpec
*/
void proc_component_attr_spec_list(int numProcCompAttrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R743: component initialization <br>
* R744: initial data target
*/
void component_initialization() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R745: private components stmt
*
* @param lbl
* @param tPrivate
* @param eos
*/
void private_components_stmt(Token lbl, Token tPrivate, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R746: type bound procedure part
*
* @param numTypeBoundProc
* @param hasBindingPrivateStmt
*/
void type_bound_procedure_part(int numTypeBoundProc,
boolean hasBindingPrivateStmt) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R747: binding private stmt
*
* @param lbl
* @param tPrivate
* @param eos
*/
void binding_private_stmt(Token lbl, Token tPrivate, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R748: type bound proc binding
*
* @param lbl
* @param kindTypeBoundProcBinding
* @param eos
*/
void type_bound_proc_binding(Token lbl, TBPB kindTypeBoundProcBinding,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R749: type bound procedure stmt
*
* @param procedure
* @param ident
* @param hasBindAttrList
* @param hasColonColon
*/
void type_bound_procedure_stmt(Token procedure, Token ident,
boolean hasBindAttrList, boolean hasColonColon) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R750: type bound proc decl
*
* @param ident0
* @param ident1
*/
void type_bound_proc_decl(Token ident0, Token ident1) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L750: type bound proc decl list
*
* @param numTypeBoundProcDecl
*/
void type_bound_proc_decl_list(int numTypeBoundProcDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R751: type bound generic stmt
*
* @param generic
* @param hasAccessSpec
*/
void type_bound_generic_stmt(Token generic, boolean hasAccessSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R752: binding attr
*
* @param keyword
* @param kindBindAttrSpec
* @param ident
*/
void binding_attr(Token keyword, int kindBindAttrSpec, Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L752: binding attr list
*
* @param numBindAttr
*/
void binding_attr_list(int numBindAttr) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R753: final procedure stmt
*
* @param tFinal
*/
void final_procedure_stmt(Token tFinal) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R754: derived type spec
*
* @param ident
* @param hasTypeParamSpecList
*/
void derived_type_spec(Token ident, boolean hasTypeParamSpecList) {
MFTree derived_type_spec = new MFTree(MFPUtils.DERIVED_TYPE_SPEC);
derived_type_spec
.addChild(new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
if (hasTypeParamSpecList) {
assert validSuccessor(MFPUtils.TYPE_PARAM_SPEC);
derived_type_spec.addChild(stack.pop());
}
stack.push(derived_type_spec);
}
/**
* R755: type param spec
*
* @param keyWord
*/
void type_param_spec(Token keyWord) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L755: type param spec lists
*
* @param numTypeParamSpec
*/
void type_param_spec_list(int numTypeParamSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R756: structure constructor
*
* @param ident
*/
void structure_constructor(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R757: component spec
*
* @param keyword
*/
void component_spec(Token keyword) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L757: component spec list
*
* @param numCompSpec
*/
void component_spec_list(int numCompSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R758: component data source
*/
void component_data_source() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R759: enum def
*
* @param numEnumerator
*/
void enum_def(int numEnumeratorDef) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R760: enum def stmt
*
* @param lbl
* @param tEnum
* @param bind
* @param ident
* @param eos
*/
void enum_def_stmt(Token lbl, Token tEnum, Token bind, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R761: enumerator def stmt
*
* @param lbl
* @param enumerator
* @param eos
*/
void enumerator_def_stmt(Token lbl, Token enumerator, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R762: enumerator
*
* @param ident
* @param hasExpr
*/
void enumerator(Token ident, boolean hasExpr) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L762: enumerator list
*
* @param numEnumerator
*/
void enumerator_list(int numEnumerator) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R763: end enum stmt
*
* @param lbl
* @param end
* @param tEnum
* @param eos
*/
void end_enum_stmt(Token lbl, Token end, Token tEnum, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R764: boz literal constant <br>
* (bin, oct or hex)
*
* @param keyword
*/
void boz_literal_constant(Token keyword) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R765: binary constant
// R766: octal constant
// R767: hex constant
// R768: hex digit
/**
* R769: array constructor
*/
void array_constructor() {
MFTree array_constructor = new MFTree(MFPUtils.ARRAY_CONSTRUCTOR);
assert validSuccessor(MFPUtils.AC_SPEC);
array_constructor.addChild(stack.pop());
stack.push(array_constructor);
}
/**
* R770: ac spec
*/
void ac_spec(boolean hasTypeSpec, boolean hasACValues) {
MFTree ac_spec = new MFTree(MFPUtils.AC_SPEC);
if (hasACValues) {
assert validSuccessor(MFPUtils.AC_VALUE);
ac_spec.addChild(stack.pop());
}
if (hasTypeSpec) {
assert validSuccessor(MFPUtils.TYPE_SPEC);
ac_spec.addChild(0, stack.pop());
} else {
assert hasACValues;
ac_spec.addChild(0, absent());
}
stack.push(ac_spec);
}
// R771: lbracket
// R772: rbracket
/**
* R773: ac value
*/
void ac_value() {
MFTree ac_value = new MFTree(MFPUtils.AC_VALUE);
assert validExpr() || validSuccessor(MFPUtils.AC_IMPLIED_DO);
ac_value.addChild(stack.pop());
stack.push(ac_value);
}
/**
* L773: ac value list
*
* @param numAcVal
*/
void ac_value_list(int numAcVal) {
genListBackward(numAcVal, MFPUtils.AC_VALUE);
}
/**
* R774: ac implied do
*/
void ac_implied_do() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R775: ac implied do control <br>
* R776: ac do variable
*
* @param hasStride
*/
void ac_implied_do_control(Token doVar, boolean hasStride) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R801: type declaration stmt
*
* @param lbl
* @param numAttrSpec
* @param eos
*/
void type_declaration_stmt(Token lbl, int numAttrSpec, Token eos) {
int ctr = numAttrSpec;
MFTree type_declaration_stmt = new MFTree(
MFPUtils.TYPE_DECLARATION_STMT, ", Attr[" + numAttrSpec + "]");
assert validSuccessor(MFPUtils.ENTITY_DECL);
type_declaration_stmt.addChild(stack.pop());
while (ctr > 0) {
assert validSuccessor(MFPUtils.ATTR_SPEC);
type_declaration_stmt.addChild(0, stack.pop());
ctr--;
}
assert validSuccessor(MFPUtils.DECLARATION_TYPE_SPEC);
type_declaration_stmt.addChild(0, stack.pop());
type_declaration_stmt.addChild(0,
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(type_declaration_stmt);
}
/**
* R802: attr spec
*
* @param keyword
* @param kindAttrSpec
*/
void attr_spec(Token keyword, int kindAttrSpec) {
MFTree attr_spec = new MFTree(MFPUtils.ATTR_SPEC, kindAttrSpec);
attr_spec.addChild(new MFTree(MFPUtils.T_IDENT));
switch (kindAttrSpec) {
case MFPUtils.ATTR_ACCESS :
assert validSuccessor(MFPUtils.ACCESS_SPEC);
attr_spec.addChild(stack.pop());
break;
case MFPUtils.ATTR_BIND :
assert validSuccessor(MFPUtils.LANGUAGE_BINDING_SPEC);
attr_spec.addChild(stack.pop());
break;
case MFPUtils.ATTR_CODIMENSION :
assert validSuccessor(MFPUtils.COARRAY_SPEC);
attr_spec.addChild(stack.pop());
break;
case MFPUtils.ATTR_DIMENSION :
assert validSuccessor(MFPUtils.ARRAY_SPEC);
attr_spec.addChild(stack.pop());
break;
case MFPUtils.ATTR_INTENT :
assert validSuccessor(MFPUtils.INTENT_SPEC);
attr_spec.addChild(stack.pop());
break;
case MFPUtils.ATTR_OTHER :
assert validSuccessor(MFPUtils.ATTR_SPEC_EXT);
attr_spec.addChild(stack.pop());
break;
default :
// do nothing
}
stack.push(attr_spec);
}
/**
* R803: entity decl
*
* @param name
* @param hasArrSpec
* @param hasCoarrSpec
* @param hasCharLength
* @param hasInit
*/
void entity_decl(Token name, boolean hasArrSpec, boolean hasCoarrSpec,
boolean hasCharLength, boolean hasInit) {
MFTree entity_decl = new MFTree(MFPUtils.ENTITY_DECL);
MFTree t_name = new MFTree(MFPUtils.T_IDENT, (CivlcToken) name);
if (hasInit) {
assert validSuccessor(MFPUtils.INITIALIZATION);
entity_decl.addChild(0, stack.pop());
}
if (hasCharLength) {
assert validSuccessor(MFPUtils.CHAR_LENGTH);
entity_decl.addChild(0, stack.pop());
}
if (hasCoarrSpec) {
assert validSuccessor(MFPUtils.COARRAY_SPEC);
entity_decl.addChild(0, stack.pop());
}
if (hasArrSpec) {
assert validSuccessor(MFPUtils.ARRAY_SPEC);
entity_decl.addChild(0, stack.pop());
}
entity_decl.addChild(0, t_name);
stack.push(entity_decl);
}
/**
* L803: entity decl list
*
* @param numEntityDecl
*/
void entity_decl_list(int numEntityDecl) {
genListBackward(numEntityDecl, MFPUtils.ENTITY_DECL);
}
// R804: object name
/**
* R805: initialization
*
* @param val
*/
void initialization(int kindInit) {
MFTree initialization = new MFTree(MFPUtils.INITIALIZATION);
if (kindInit == MFPUtils.INIT_VAL) {
assert validExpr();
initialization.addChild(stack.pop());
} else if (kindInit == MFPUtils.INIT_NUL) {
assert false;
} else
assert false;
stack.push(initialization);
}
/**
* R806: null init
*
* @param ident
* shall be 'NULL'
*/
void null_init(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R807: access spec
*
* @param keyword
* @param kindAccessSpec
*/
void access_spec(Token keyword, int kindAccessSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R808: language binding spec
*
* @param bind
* @param ident
* @param hasName
*/
void language_binding_spec(Token bind, Token ident, boolean hasName) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R809: coarray spec (replaced by array_spec) <br>
* R810: deferred coshape spec (replaced by array_spec) <br>
* R811: explicit coshape spec (replaced by array_spec) <br>
* R812: lower cobound (see rule 817 lower bound) <br>
* R813: upper cobound (see rule 818 upper bound)
*
* @param numCoarrSpec
*/
void coarray_spec(int numCoarrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R814: dimension spec
*
* @param dimension
*/
void dimension_spec(Token dimension) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R815: array spec <br>
* R819: assumed shape spec <br>
* R821: assumed implied spec <br>
* R822: assumed size spec <br>
* R823: implied shape or assumed size spec <br>
* R824: implied shape spec <br>
* R825: assumed rank spec
*
* @param numArrSpec
*/
void array_spec(int numArrSpec) {
genListBackward(numArrSpec, MFPUtils.ARRAY_SPEC);
}
/**
* D815: array spec
*
* @param type
*/
void array_spec_element(int kindArrSpecElem) {
MFTree array_spec_element = new MFTree(MFPUtils.ARRAY_SPEC,
kindArrSpecElem);
if (kindArrSpecElem == MFPUtils.ASE_1U || /* UB */
kindArrSpecElem == MFPUtils.ASE_LN || /* LB : */
kindArrSpecElem == MFPUtils.ASE_LX /* LB : * */) {
assert validExpr();
array_spec_element.addChild(stack.pop());
} else if (kindArrSpecElem == MFPUtils.ASE_LU /* LB : UB */) {
assert validExpr();
array_spec_element.addChild(stack.pop());
assert validExpr();
array_spec_element.addChild(0, stack.pop());
}
stack.push(array_spec_element);
}
/**
* R816: explicit shape spec
*
* @param hasUpperBound
*/
void explicit_shape_spec(boolean hasUpperBound) {
MFTree explicit_shape_spec = new MFTree(MFPUtils.EXPLICIT_SHAPE_SPEC);
assert validExpr();
explicit_shape_spec.addChild(stack.pop());
if (hasUpperBound) {
assert validExpr();
explicit_shape_spec.addChild(0, stack.pop());
}
stack.push(explicit_shape_spec);
}
/**
* L816: explicit shape spec list
*
* @param numExplicitShapeSpec
*/
void explicit_shape_spec_list(int numExplicitShapeSpec) {
genListBackward(numExplicitShapeSpec, MFPUtils.EXPLICIT_SHAPE_SPEC);
}
// R817: lower bound
// R818: upper bound
/**
* L820: deferred shape spec list<br>
* R820: deferred shape spec
*
* @param numDeferredShapeSpec
*/
void deferred_shape_spec_list(int numDeferredShapeSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R826: intent spec
*
* @param in
* @param out
* @param kindIntentSpec
*/
void intent_spec(Token in, Token out) {
MFTree intent_spec = new MFTree(MFPUtils.INTENT_SPEC);
if (in != null)
intent_spec.addChild(new MFTree(MFPUtils.T_IN, (CivlcToken) in));
if (out != null)
intent_spec.addChild(new MFTree(MFPUtils.T_OUT, (CivlcToken) out));
stack.push(intent_spec);
}
/**
* R827: access stmt
*
* @param lbl
* @param eos
* @param hasAccessIdList
*/
void access_stmt(Token lbl, Token eos, boolean hasAccessIdList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R828: access id
*/
void access_id() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L828: access id list
*
* @param numAccessId
*/
void access_id_list(int numAccessId) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R829: allocatable stmt
*
* @param lbl
* @param allocatable
* @param eos
*/
void allocatable_stmt(Token lbl, Token allocatable, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R830: allocatable decl
*
* @param ident
* @param hasArrSpec
* @param hasCoarrSpec
*/
void allocatable_decl(Token ident, boolean hasArrSpec,
boolean hasCoarrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L830: allocatable decl list
*
* @param numAllocDecl
*/
void allocatable_decl_list(int numAllocDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R831: asynchronous stmt
*
* @param lbl
* @param asynchronous
* @param eos
*/
void asynchronous_stmt(Token lbl, Token asynchronous, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R832: bind stmt
*
* @param lbl
* @param eos
*/
void bind_stmt(Token lbl, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R833: bind entity
*
* @param ident
* @param isCommonBlockIdent
*/
void bind_entity(Token ident, boolean isCommonBlockIdent) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L833: bind entity list
*
* @param numBindEntity
*/
void bind_entity_list(int numBindEntity) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R834: codimension stmt
*
* @param lbl
* @param codimension
* @param eos
*/
void codimension_stmt(Token lbl, Token codimension, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R835: codimension decl
*
* @param ident
* @param lbracket
* @param rbracket
*/
void codimension_decl(Token ident, Token lbracket, Token rbracket) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L835: codimension decl list
*
* @param numCodimDecl
*/
void codimension_decl_list(int numCodimDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R836: contiguous stmt
*
* @param lbl
* @param contiguous
* @param eos
*/
void contiguous_stmt(Token lbl, Token contiguous, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R837: data stmt
*
* @param lbl
* @param tData
* @param eos
* @param numDataStmtSet
*/
void data_stmt(Token lbl, Token tData, Token eos, int numDataStmtSet) {
int ctr = numDataStmtSet;
MFTree data_stmt = new MFTree(MFPUtils.DATA_STMT);
while (ctr > 0) {
assert validSuccessor(MFPUtils.DATA_STMT_SET);
data_stmt.addChild(0, stack.pop());
ctr--;
}
data_stmt.addChild(0, new MFTree(MFPUtils.T_DATA, (CivlcToken) tData));
data_stmt.addChild(0, new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(data_stmt);
}
/**
* R838: data stmt set
*/
void data_stmt_set() {
MFTree data_stmt_set = new MFTree(MFPUtils.DATA_STMT_SET);
assert validSuccessor(MFPUtils.DATA_STMT_VALUE);
data_stmt_set.addChild(stack.pop());
assert validSuccessor(MFPUtils.DATA_STMT_OBJECT);
data_stmt_set.addChild(stack.pop());
stack.push(data_stmt_set);
}
/**
* R839: data stmt object
*/
void data_stmt_object() {
MFTree data_stmt_object = new MFTree(MFPUtils.DATA_STMT_OBJECT);
assert validSuccessor(MFPUtils.VARIABLE) || //
validSuccessor(MFPUtils.DATA_IMPLIED_DO);
data_stmt_object.addChild(stack.pop());
stack.push(data_stmt_object);
}
/**
* L839: data stmt object list
*
* @param numDataStmtObj
*/
void data_stmt_object_list(int numDataStmtObj) {
genListBackward(numDataStmtObj, MFPUtils.DATA_STMT_OBJECT);
}
/**
* R840: data implied do <br>
* R842: data i do variable
*
* @param ident
* @param hasStride
*/
void data_implied_do(Token ident, boolean hasStride) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R841: data i do object
*/
void data_i_do_object() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L841: data i do object list
*
* @param numDataIDoObj
*/
void data_i_do_object_list(int numDataIDoObj) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R843: data stmt value<br>
* R844: data stmt repeat<br>
* R846: int constant subobject<br>
* R847: constant subobject
*
* @param tAsterisk
*/
void data_stmt_value(Token tAsterisk) {
MFTree data_stmt_value = new MFTree(MFPUtils.DATA_STMT_VALUE);
if (tAsterisk != null) {
assert validSuccessor(MFPUtils.DATA_STMT_CONSTANT);
data_stmt_value.addChild(stack.pop());
}
assert validValue();
data_stmt_value.addChild(0, stack.pop());
stack.push(data_stmt_value);
}
/**
* L843: data stmt value list
*
* @param numDataStmtVal
*/
void data_stmt_value_list(int numDataStmtVal) {
genListBackward(numDataStmtVal, MFPUtils.DATA_STMT_VALUE);
}
/**
* R845: data stmt constant
*/
void data_stmt_constant() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R848: dimension stmt
*
* @param lbl
* @param dimension
* @param eos
* @param numDimDecl
*/
void dimension_stmt(Token lbl, Token dimension, Token eos, int numDimDecl) {
genListBackward(numDimDecl, MFPUtils.DIMENSION_DECL);
MFTree dimension_stmt = new MFTree(MFPUtils.DIMENSION_STMT);
dimension_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_DIMENSION, (CivlcToken) dimension), //
stack.pop());
stack.push(dimension_stmt);
}
/**
* D848: dimension decl
*
* @param ident
*/
void dimension_decl(Token ident) {
MFTree dimension_decl = new MFTree(MFPUtils.DIMENSION_DECL);
assert validSuccessor(MFPUtils.ARRAY_SPEC);
dimension_decl.addChildren(
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident), //
stack.pop());
stack.push(dimension_decl);
}
/**
* R849: intent stmt
*
* @param lbl
* @param intent
* @param eos
*/
void intent_stmt(Token lbl, Token intent, Token eos) {
MFTree intent_stmt = new MFTree(MFPUtils.INTENT_STMT);
assert validSuccessor(MFPUtils.GENERIC_NAME);
intent_stmt.addChild(stack.pop());
assert validSuccessor(MFPUtils.INTENT_SPEC);
intent_stmt.addChild(0, stack.pop());
intent_stmt.addChild(0, //
new MFTree(MFPUtils.T_INTENT, (CivlcToken) intent));
intent_stmt.addChild(0, //
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(intent_stmt);
}
/**
* R850: optional stmt
*
* @param lbl
* @param optional
* @param eos
*/
void optional_stmt(Token lbl, Token optional, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R851: parameter stmt
*
* @param lbl
* @param parameter
* @param eos
*/
void parameter_stmt(Token lbl, Token parameter, Token eos) {
MFTree parameter_stmt = new MFTree(MFPUtils.PARAMETER_STMT);
assert stack.peek().prp() == MFPUtils.NAMED_CONSTANT_DEF;
parameter_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_PARAMETER, (CivlcToken) parameter), //
stack.pop());
stack.push(parameter_stmt);
}
/**
* R852: named constaant def
*
* @param ident
*/
void named_constant_def(Token ident) {
MFTree named_constant_def = new MFTree(MFPUtils.NAMED_CONSTANT_DEF);
assert validExpr();
named_constant_def.addChildren(//
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident), //
stack.pop());
stack.push(named_constant_def);
}
/**
* L852: named constaant def list
*
* @param numNamedConstDef
*/
void named_constant_def_list(int numNamedConstDef) {
genListBackward(numNamedConstDef, MFPUtils.NAMED_CONSTANT_DEF);
}
/**
* R853: pinter stmt
*
* @param lbl
* @param pointer
* @param eos
*/
void pointer_stmt(Token lbl, Token pointer, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* D853: pinter stmt (cray pointer)
*
* @param lbl
* @param pointer
* @param eos
*/
void cray_pointer_stmt(Token lbl, Token pointer, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R854: pointer decl
*
* @param ident
* @param hasDeferredShapeSpecList
*/
void pointer_decl(Token ident, boolean hasDeferredShapeSpecList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* D854: pointer decl (cray pointer association)
*
* @param pointer
* @param pointee
*/
void cray_pointer_assoc(Token pointer, Token pointee) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L854: pointer decl list
*
* @param numPtrDecl
*/
void pointer_decl_list(int numPtrDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L854: pointer decl list (cray pointer association list)
*
* @param numCrayPtrDecl
*/
void cray_pointer_assoc_list(int numCrayPtrDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R855: protected stmt
*
* @param lbl
* @param tProtected
* @param eos
*/
void protected_stmt(Token lbl, Token tProtected, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R856: save stmt
*
* @param lbl
* @param save
* @param eos
* @param hasSavedEntityList
*/
void save_stmt(Token lbl, Token save, Token eos,
boolean hasSavedEntityList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R857: saved entity <br>
* R858: proc pointer name
*
* @param ident
* @param isCommonBlockIdent
*/
void saved_entity(Token ident, boolean isCommonBlockIdent) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L857: saved entity list
*
* @param numSavedEntity
*/
void saved_entity_list(int numSavedEntity) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R859: target stmt
*
* @param lbl
* @param target
* @param eos
*/
void target_stmt(Token lbl, Token target, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R860: target decl
*
* @param ident
* @param hasArrSpec
* @param hasCoarrSpec
*/
void target_decl(Token ident, boolean hasArrSpec, boolean hasCoarrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L860: target decl list
*
* @param numTargetDecl
*/
void target_decl_list(int numTargetDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R861: value stmt
*
* @param lbl
* @param value
* @param eos
*/
void value_stmt(Token lbl, Token value, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R862: volatile stmt
*
* @param lbl
* @param tVolatile
* @param eos
*/
void volatile_stmt(Token lbl, Token tVolatile, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R863: implicit stmt
*
* @param lbl
* @param implicit
* @param none
* @param none_spec
* @param eos
*/
void implicit_stmt(Token lbl, Token implicit, Token none, Token none_spec,
Token eos) {
MFTree implicit_stmt = new MFTree(MFPUtils.IMPLICIT_STMT);
implicit_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_IMPLICIT, (CivlcToken) implicit));
if (none == null) {
assert stack.peek().prp() == MFPUtils.IMPLICIT_SPEC;
implicit_stmt.addChild(stack.pop());
} else if (none_spec == null)
implicit_stmt.addChild(new MFTree(MFPUtils.IMPLICIT_NONE_SPEC,
MFPUtils.NONE_PURE, (CivlcToken) none));
else if (none_spec.getType() == MFPUtils.T_TYPE.getRule())
implicit_stmt.addChild(
new MFTree(MFPUtils.IMPLICIT_NONE_SPEC, MFPUtils.NONE_TYPE,
(CivlcToken) none, (CivlcToken) none_spec));
else if (none_spec.getType() == MFPUtils.T_EXTERNAL.getRule())
implicit_stmt.addChild(
new MFTree(MFPUtils.IMPLICIT_NONE_SPEC, MFPUtils.NONE_EXTN,
(CivlcToken) none, (CivlcToken) none_spec));
else
assert false;
stack.push(implicit_stmt);
}
/**
* R864: implicit spec
*/
void implicit_spec() {
MFTree implicit_spec = new MFTree(MFPUtils.IMPLICIT_SPEC);
assert validSuccessor(MFPUtils.LETTER_SPEC);
implicit_spec.addChild(stack.pop());
assert validSuccessor(MFPUtils.DECLARATION_TYPE_SPEC);
implicit_spec.addChild(0, stack.pop());
stack.push(implicit_spec);
}
/**
* L864: implicit spec list
*
* @param numImplicitSpec
*/
void implicit_spec_list(int numImplicitSpec) {
genListBackward(numImplicitSpec, MFPUtils.IMPLICIT_SPEC);
}
/**
* R865: letter spec
*
* @param ident0
* @param ident1
*/
void letter_spec(Token charStart, Token charEnd) {
MFTree letter_spec = new MFTree(MFPUtils.LETTER_SPEC);
letter_spec.addChildren(//
new MFTree(MFPUtils.T_IDENT, (CivlcToken) charStart), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) charEnd));
stack.push(letter_spec);
}
/**
* L865: letter spec list
*
* @param numLetterSpec
*/
void letter_spec_list(int numLetterSpec) {
genListBackward(numLetterSpec, MFPUtils.LETTER_SPEC);
}
/**
* R866: implicit none spec
*
* @param external
*/
void implicit_none_spec(Token external) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R867: import stmt
*
* @param lbl
* @param tImport
* @param keyword
* @param eos
* @param hasImportNameList
*/
void import_stmt(Token lbl, Token tImport, Token keyword, Token eos,
boolean hasImportNameList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* D868: namelist group name
*
* @param ident
*/
void namelist_group_name(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R868: namelist stmt
*
* @param lbl
* @param ident
* @param eos
* @param numNamelistGroupName
*/
void namelist_stmt(Token lbl, Token ident, Token eos,
int numNamelistGroupName) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R869: namelist group object
*
* @param ident
*/
void namelist_group_object(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L869: namelist group object list
*
* @param numNlGroupObj
*/
void namelist_group_object_list(int numNlGroupObj) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R870: equivalence stmt
*
* @param lbl
* @param equivalence
* @param eos
*/
void equivalence_stmt(Token lbl, Token equivalence, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R871: euivalence set
*/
void equivalence_set() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L871: euivalence set list
*
* @param numEquivalenceSet
*/
void equivalence_set_list(int numEquivalenceSet) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R872: equivalence object
*/
void equivalence_object() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L872: equivalence object list
*
* @param numEquivObj
*/
void equivalence_object_list(int numEquivObj) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R873: common stmt
*
* @param lbl
* @param tCommon
* @param eos
* @param numBlocks
*/
void common_stmt(Token lbl, Token tCommon, Token eos, int numBlocks) {
int ctr = numBlocks;
MFTree block;
MFTree members;
MFTree common_stmt = new MFTree(MFPUtils.COMMON_STMT);
while (ctr > 0) {
assert validSuccessor(MFPUtils.COMMON_BLOCK_OBJECT);
members = stack.pop();
assert validSuccessor(MFPUtils.T_IDENT);
block = stack.pop();
block.addChild(members);
common_stmt.addChild(0, block);
ctr--;
}
common_stmt.addChild(0, //
new MFTree(MFPUtils.T_COMMON, (CivlcToken) tCommon));
common_stmt.addChild(0, //
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(common_stmt);
}
/**
* D873: common stmt
*
* @param ident
*/
void common_block_name(Token ident) {
MFTree common_block_name = new MFTree(MFPUtils.T_IDENT,
(CivlcToken) ident);
stack.push(common_block_name);
}
/**
* R874: common block object
*
* @param ident
* @param hasExplicitShapeSpecList
*/
void common_block_object(Token ident, boolean hasExplicitShapeSpecList) {
MFTree common_block_member_name = new MFTree(MFPUtils.T_IDENT,
(CivlcToken) ident);
MFTree data_stmt_object = new MFTree(MFPUtils.COMMON_BLOCK_OBJECT);
data_stmt_object.addChild(common_block_member_name);
if (hasExplicitShapeSpecList) {
assert validSuccessor(MFPUtils.EXPLICIT_SHAPE_SPEC);
data_stmt_object.addChild(stack.pop());
}
stack.push(data_stmt_object);
}
/**
* L874: common block object list
*
* @param numCommBlockObj
*/
void common_block_object_list(int numCommBlockObj) {
genListBackward(numCommBlockObj, MFPUtils.COMMON_BLOCK_OBJECT);
}
/**
* R896: quantified_expr CIVL extension
*/
void quantified_expr(Token quatifier, boolean hasRestrict) {
MFTree quantified_expr = new MFTree(MFPUtils.QUANTIFIED_EXPR);
assert validExpr();
quantified_expr.addChild(stack.pop());
if (hasRestrict) {
assert validExpr();
quantified_expr.addChild(0, stack.pop());
}
assert validSuccessor(MFPUtils.ENTITY_DECL);
quantified_expr.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.INTRINSIC_TYPE_SPEC);
quantified_expr.addChild(0, stack.pop());
quantified_expr.addChild(0,
new MFTree(MFPUtils.CIVL_PRIMITIVE, (CivlcToken) quatifier));
stack.push(quantified_expr);
}
/**
* R897: civl_stmt CIVL extension
*/
void civl_stmt(Token civl_primitive, int numArgs) {
MFTree civl_stmt = new MFTree(MFPUtils.CIVL_STMT);
civl_stmt.addChild(new MFTree(MFPUtils.CIVL_PRIMITIVE,
(CivlcToken) civl_primitive));
if (numArgs == 1) {
assert validExpr();
civl_stmt.addChild(stack.pop());
} else if (numArgs != 0)
assert false;
stack.push(civl_stmt);
}
/**
* R897: pragma_type_qualifier_stmt (CIVL extensions)
*
* @param type_qualifier
*/
void pragma_type_qualifier_stmt(Token pragmaName, Token type_qualifier) {
MFTree pragma_type_qualifier_stmt = new MFTree(
MFPUtils.PRAGMA_TYPE_QUALIFIER_STMT);
pragma_type_qualifier_stmt.addChildren(
new MFTree(MFPUtils.T_IDENT, (CivlcToken) pragmaName), //
new MFTree(MFPUtils.PRAGMA_TYPE_QUALIFIER,
(CivlcToken) type_qualifier));
stack.push(pragma_type_qualifier_stmt);
}
/**
* R898: pragma_stmt (CIVL extensions)
*
* @param ident
* @param eos
*/
void pragma_stmt(boolean isCIVL, Token ident, Token eos) {
MFTree pragma_stmt = new MFTree(MFPUtils.PRAGMA_STMT);
assert validSuccessor(MFPUtils.PRAGMA_TOKEN) || //
validSuccessor(MFPUtils.CIVL_STMT);
pragma_stmt.addChildren(//
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident), //
stack.pop(), //
new MFTree(MFPUtils.T_EOS, (CivlcToken) eos));
stack.push(pragma_stmt);
}
/**
* R899: pragma token (CIVL extensions)
*
* @param pragmaToken
*/
void pragma_token(Token pragmaToken) {
MFTree pragma_token = new MFTree(MFPUtils.PRAGMA_TOKEN,
(CivlcToken) pragmaToken);
stack.push(pragma_token);
}
/**
* L899: pragma token list (CIVL extensions)
*
* @param numPragmaToken
*/
void pragma_token_list(int numPragmaToken) {
genListBackward(numPragmaToken, MFPUtils.PRAGMA_TOKEN);
}
/**
* R901: designator
*
* @param hasSubStrRange
*/
void designator(boolean hasSubStrRange) {
MFTree designator = new MFTree(MFPUtils.DESIGNATOR);
assert validSuccessor(MFPUtils.DATA_REF) || //
validSuccessor(MFPUtils.CHAR_LITERAL_CONSTANT);
designator.addChild(stack.pop());
if (hasSubStrRange) {
assert validSuccessor(MFPUtils.SUBSTRING_RANGE);
designator.addChild(stack.pop());
}
stack.push(designator);
}
/**
* R902: variable
*/
void variable() {
MFTree variable = new MFTree(MFPUtils.VARIABLE);
assert validSuccessor(MFPUtils.DESIGNATOR);
variable.addChild(stack.pop());
stack.push(variable);
}
// R903: variable name
/**
* R904: logical variable
*/
void logical_variable() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R905: char variable
*/
void char_variable() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R906: default char variable
*/
void default_char_variable() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R907: int variable
*/
void int_variable() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R908: substring
*
* @param hasSubStrRange
*/
void substring(boolean hasSubStrRange) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R909: parent string
/**
* R910: substring range
*
* @param hasLowerBound
* @param hasUpperBound
*/
void substring_range(boolean hasLowerBound, boolean hasUpperBound) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R911: data ref
*
* @param numPartRef
*/
void data_ref(int numPartRef) {
int ctr = numPartRef;
MFTree data_ref = new MFTree(MFPUtils.DATA_REF, "[" + numPartRef + "]");
while (ctr > 0) {
assert validSuccessor(MFPUtils.PART_REF);
data_ref.addChild(0, stack.pop());
ctr--;
}
stack.push(data_ref);
}
/**
* R912: part ref
*
* @param id
* @param hasSectionSubscriptList
* @param hasImageSelector
*/
void part_ref(Token id, boolean hasSectionSubscriptList,
boolean hasImageSelector) {
MFTree part_ref = new MFTree(MFPUtils.PART_REF);
MFTree name = new MFTree(MFPUtils.T_IDENT, (CivlcToken) id);
if (hasImageSelector) {
assert validSuccessor(MFPUtils.IMAGE_SELECTOR);
part_ref.addChild(stack.pop());
}
if (hasSectionSubscriptList) {
assert validSuccessor(MFPUtils.SECTION_SUBSCRIPT);
part_ref.addChild(0, stack.pop());
}
part_ref.addChild(0, name);
stack.push(part_ref);
}
// R913: structure component
// R914: coindexed named object
// R915: complex part designator
// R916: type param inquiry
// R917: array element
// R918: array section
// R919: subscript
/**
* R920: section subscript
*
* @param hasLowerBound
* @param hasUpperBound
* @param hasStride
* @param isAmbiguous
*/
void section_subscript(boolean hasLowerBound, boolean hasUpperBound,
boolean hasStride, boolean isAmbiguous) {
String ambiguous = isAmbiguous ? "Ambiguous" : "";
MFTree section_subscript = new MFTree(MFPUtils.SECTION_SUBSCRIPT,
ambiguous);
if (hasStride) {
assert validExpr();
section_subscript.addChild(stack.pop());
}
if (hasUpperBound) {
assert validExpr();
section_subscript.addChild(0, stack.pop());
}
if (hasLowerBound) {
assert validExpr();
section_subscript.addChild(0, stack.pop());
}
stack.push(section_subscript);
}
/**
* L920: section subscript list
*
* @param numSectionSubscript
*/
void section_subscript_list(int numSectionSubscript) {
genListBackward(numSectionSubscript, MFPUtils.SECTION_SUBSCRIPT);
}
// R921: subscript triplet
// R922: stride
// R923: vector subscript
/**
* R924: image selector
*
* @param hasImageSelectorSpecList
*/
void image_selector(boolean hasImageSelectorSpecList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R925: cosubscript<br>
* L925: cosubscript list
*
* @param numCosubscript
*/
void cosubscript_list(int numCosubscript) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R926: image selector spec
*
* @param keyword
* @param kindImageSelectorSpec
*/
void image_selector_spec(Token keyword, int kindImageSelectorSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L926: image selector spec list
*
* @param numImageSelectorSpec
*/
void image_selector_spec_list(int numImageSelectorSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R927: allocate stmt
*
* @param lbl
* @param allocate
* @param eos
* @param hasTypeSpec
* @param hasAllocOptList
*/
void allocate_stmt(Token lbl, Token allocate, Token eos,
boolean hasTypeSpec, boolean hasAllocOptList) {
MFTree allocate_stmt = new MFTree(MFPUtils.ALLOCATE_STMT);
if (hasAllocOptList) {
assert validSuccessor(MFPUtils.ALLOC_OPT);
allocate_stmt.addChild(stack.pop());
} else {
allocate_stmt.addChild(absent());
}
assert validSuccessor(MFPUtils.ALLOCATION);
allocate_stmt.addChild(0, stack.pop());
if (hasTypeSpec) {
assert validSuccessor(MFPUtils.TYPE_SPEC);
allocate_stmt.addChild(1, stack.pop());
} else {
allocate_stmt.addChild(1, absent());
}
allocate_stmt.addChild(0,
new MFTree(MFPUtils.T_ALLOCATE, (CivlcToken) allocate));
allocate_stmt.addChild(0, new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(allocate_stmt);
}
/**
* R928: alloc opt <br>
* R929: errmsg variable <br>
* R930: source expr
*
* @param keyword
* @param kindAllocOpt
*/
void alloc_opt(Token keyword, int kindAllocOpt) {
MFTree alloc_opt = new MFTree(MFPUtils.ALLOC_OPT, kindAllocOpt);
if (kindAllocOpt == MFPUtils.ALLOC_OPT_ERRMSG) {
assert validSuccessor(MFPUtils.DEFAULT_CHAR_VARIABLE);
} else if (kindAllocOpt == MFPUtils.ALLOC_OPT_MOLD
|| kindAllocOpt == MFPUtils.ALLOC_OPT_SOURCE) {
assert validExpr();
} else if (kindAllocOpt == MFPUtils.ALLOC_OPT_STAT) {
assert validSuccessor(MFPUtils.DESIGNATOR);
} else {
assert false;
}
alloc_opt.addChild(stack.pop());
stack.push(alloc_opt);
}
/**
* L928: alloc opt list
*
* @param numAllocOpt
*/
void alloc_opt_list(int numAllocOpt) {
genListBackward(numAllocOpt, MFPUtils.ALLOC_OPT);
}
/**
* R931: allocation
*
* @param hasAllocShapeSpec
* @param hasAllocCoarrSpec
*/
void allocation(boolean hasAllocShapeSpec, boolean hasAllocCoArrSpec) {
MFTree allocation = new MFTree(MFPUtils.ALLOCATION);
if (hasAllocCoArrSpec) {
assert validSuccessor(MFPUtils.ALLOCATE_COARRAY_SPEC);
allocation.addChild(stack.pop());
}
assert validSuccessor(MFPUtils.ALLOCATE_OBJECT);
allocation.addChild(0, stack.pop());
stack.push(allocation);
}
/**
* L931: allocation list
*
* @param numAlloc
*/
void allocation_list(int numAlloc) {
genListBackward(numAlloc, MFPUtils.ALLOCATION);
}
/**
* R932: allocate object
*/
void allocate_object() {
MFTree allocate_object = new MFTree(MFPUtils.ALLOCATE_OBJECT);
assert validSuccessor(MFPUtils.DATA_REF);
allocate_object.addChild(stack.pop());
stack.push(allocate_object);
}
/**
* L932: allocate object list
*
* @param numAllocObj
*/
void allocate_object_list(int numAllocObj) {
genListBackward(numAllocObj, MFPUtils.ALLOCATE_OBJECT);
}
/**
* R933: allocate shape spec
*
* @param hasLowerBound
* @param hasUpperBound
*/
void allocate_shape_spec(boolean hasLowerBound, boolean hasUpperBound) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L933: allocate shape spec list
*
* @param numAllocShapeSpec
*/
void allocate_shape_spec_list(int numAllocShapeSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R934: lower bound expr
// R935: upper bound expr
/**
* R936: allocate coarray spec
*/
void allocate_coarray_spec() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R937: allocate coshape spec
*
* @param hasLowerBound
*/
void allocate_coshape_spec(boolean hasLowerBound) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L937: allocate coshape spec list
*
* @param numAllocCoshapeSpec
*/
void allocate_coshape_spec_list(int numAllocCoshapeSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R938: nullify stmt
*
* @param lbl
* @param nullify
* @param eos
*/
void nullify_stmt(Token lbl, Token nullify, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R939: pointer object
*/
void pointer_object() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L939: pointer object list
*
* @param numPtrObj
*/
void pointer_object_list(int numPtrObj) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R940: deallocate stmt
*
* @param lbl
* @param deallocate
* @param eos
* @param hasDeallocOptList
*/
void deallocate_stmt(Token lbl, Token deallocate, Token eos,
boolean hasDeallocOptList) {
MFTree deallocate_stmt = new MFTree(MFPUtils.DEALLOCATE_STMT);
if (hasDeallocOptList) {
assert validSuccessor(MFPUtils.DEALLOC_OPT);
deallocate_stmt.addChild(stack.pop());
} else {
deallocate_stmt.addChild(absent());
}
assert validSuccessor(MFPUtils.ALLOCATE_OBJECT);
deallocate_stmt.addChild(0, stack.pop());
deallocate_stmt.addChild(0,
new MFTree(MFPUtils.T_DEALLOCATE, (CivlcToken) deallocate));
deallocate_stmt.addChild(0,
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(deallocate_stmt);
}
/**
* R941: dealloc opt <br>
* R942: stat variable
*
* @param keyword
* @param kindDeallocOpt
*/
void dealloc_opt(Token keyword, int kindDeallocOpt) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L941: dealloc opt list
*
* @param numDeallocOpt
*/
void dealloc_opt_list(int numDeallocOpt) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R996: designator or func ref (OFP modification)
*/
void designator_or_func_ref(int subType) {
MFTree designator_or_func_ref = new MFTree(
MFPUtils.DESIGNATOR_OR_FUNC_REF);
assert validDesignatorOrFuncRef();
designator_or_func_ref.addChild(stack.pop());
stack.push(designator_or_func_ref);
}
/**
* R997: function reference (OFP modification)
*/
void function_reference() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R998: substring range or arg list (OFP modification)
*/
void substring_range_or_arg_list() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R999: substring range or arg list suffix (OFP modification)
*/
void substr_range_or_arg_list_suffix() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1001: primary<br>
*/
void primary() {
MFTree primary = new MFTree(MFPUtils.PRIMARY);
assert validExpr();
primary.addChild(stack.pop());
stack.push(primary);
}
/**
* R1002: level 1 expr<br>
* CIVL: Children are 0). unary_op; 1). operand
*
* @param unOp
*/
void level_1_expr(Token definedUnaryOp) {
if (definedUnaryOp != null) {
MFTree level_1_expr = new MFTree(MFPUtils.LEVEL_1_EXPR);
level_1_expr.addChild(new MFTree(MFPUtils.T_DEFINED_OP,
(CivlcToken) definedUnaryOp));
assert validSuccessor(MFPUtils.PRIMARY);
level_1_expr.addChild(stack.pop());
stack.push(level_1_expr);
}
// else it is a 'primary' (rule 1001).
}
// R1003: defined unary op: '.Letter+.'
/**
* D1004: mult operand (pow) <br>
* CIVL: Children are 0). base; 1). op; 2). expo;
*
* @param hasPow
*/
void power_operand(Token powerOp) {
if (powerOp != null) {
MFTree power_operand = new MFTree(MFPUtils.MULT_OPERAND,
"POW_OPERAND", MFPUtils.MULT_OPERAND_POW);
power_operand.addChild(
new MFTree(MFPUtils.T_POWER, (CivlcToken) powerOp));
assert validExprOperand(MFPUtils.MULT_OPERAND);
power_operand.addChild(stack.pop());
assert validExprOperand(MFPUtils.MULT_OPERAND);
power_operand.addChild(0, stack.pop());
stack.push(power_operand);
}
// else it could be a 'level_1_expr' (rule 1002)
}
/**
* D1004: mult operand<br>
* CIVL: Children are 0). op; 1). operand;
*
* @param multOp
*/
void mult_operand__mult_op(Token multOp) {
if (multOp != null) {
MFTree mult_operand__mult_op = new MFTree(MFPUtils.MULT_OPERAND,
MFPUtils.MULT_OPERAND_MULT);
if (multOp.getType() == MFPUtils.T_ASTERISK.getRule())
mult_operand__mult_op.addChild(
new MFTree(MFPUtils.T_ASTERISK, (CivlcToken) multOp));
else
mult_operand__mult_op.addChild(
new MFTree(MFPUtils.T_SLASH, (CivlcToken) multOp));
assert validExprOperand(MFPUtils.MULT_OPERAND);
mult_operand__mult_op.addChild(stack.pop());
stack.push(mult_operand__mult_op);
}
}
/**
* R1004: mult operand(s)
*
* @param numMO
*/
void mult_operand(int numMultOperand) {
if (numMultOperand > 0) {
int ctr = numMultOperand;
MFTree mult_operand = new MFTree(MFPUtils.MULT_OPERAND,
"MULT_OPERAND[" + (numMultOperand + 1) + "]");
assert validExprOperand(MFPUtils.MULT_OPERAND);
mult_operand.addChild(stack.pop());
while (ctr > 0) {
assert validExprOperand(MFPUtils.MULT_OPERAND);
mult_operand.addChild(0, stack.pop());
ctr--;
}
stack.push(mult_operand);
}
}
/**
* D1005: add operand
*
* @param sign
*/
void signed_operand(Token signOp) {
if (signOp != null) {
MFTree signed_operand = new MFTree(MFPUtils.ADD_OPERAND,
"SIGNED_OPERAND", MFPUtils.ADD_OPERAND_SIGN);
if (signOp.getType() == MFPUtils.T_PLUS.getRule())
signed_operand.addChild(
new MFTree(MFPUtils.T_PLUS, (CivlcToken) signOp));
else
signed_operand.addChild(
new MFTree(MFPUtils.T_MINUS, (CivlcToken) signOp));
assert validExprOperand(MFPUtils.ADD_OPERAND);
signed_operand.addChild(stack.pop());
stack.push(signed_operand);
}
}
/**
* D1005: add operand
*
* @param addOp
*/
void add_operand__add_op(Token addOp) {
if (addOp != null) {
MFTree add_operand__add_op = new MFTree(MFPUtils.ADD_OPERAND,
MFPUtils.ADD_OPERAND_ADD);
if (addOp.getType() == MFPUtils.T_PLUS.getRule())
add_operand__add_op.addChild(
new MFTree(MFPUtils.T_PLUS, (CivlcToken) addOp));
else
add_operand__add_op.addChild(
new MFTree(MFPUtils.T_MINUS, (CivlcToken) addOp));
assert validExprOperand(MFPUtils.ADD_OPERAND);
add_operand__add_op.addChild(stack.pop());
stack.push(add_operand__add_op);
}
}
/**
* R1005: add operand(s)
*
* @param numAddOperand
*/
void add_operand(int numAddOperand) {
if (numAddOperand > 0) {
int ctr = numAddOperand;
MFTree add_operand = new MFTree(MFPUtils.ADD_OPERAND,
"ADD_OPERAND[" + (numAddOperand + 1) + "]");
assert validExprOperand(MFPUtils.ADD_OPERAND);
add_operand.addChild(stack.pop());
while (ctr > 0) {
assert validExprOperand(MFPUtils.ADD_OPERAND);
add_operand.addChild(0, stack.pop());
ctr--;
}
stack.push(add_operand);
}
}
/**
* R1006: level 2 expr<br>
* CIVL: concatenate operation
*
* @param numConcatOp
*/
void level_2_expr(int numConcatOp) {
if (numConcatOp > 0) {
int ctr = numConcatOp;
MFTree level_2_expr = new MFTree(MFPUtils.LEVEL_2_EXPR,
"LEVEL_2_EXPR[" + (numConcatOp + 1) + "]");
assert validExprOperand(MFPUtils.LEVEL_2_EXPR);
level_2_expr.addChild(stack.pop());
while (ctr > 0) {
assert validExprOperand(MFPUtils.LEVEL_2_EXPR);
level_2_expr.addChild(0, stack.pop());
ctr--;
}
stack.push(level_2_expr);
}
}
// R1007: power op: '**'
// R1008: mult op: '*' or '/'
// R1009: add op: '+' or '-'
/**
* R1010: level 3 expr
*
* @param relOp
*/
void level_3_expr(Token relOp) {
if (relOp != null) {
int opRule = relOp.getType();
MFTree level_3_expr = new MFTree(MFPUtils.LEVEL_3_EXPR);
if (opRule == MFPUtils.T_EQ.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_EQ, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_NE.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_NE, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_LT.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_LT, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_LE.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_LE, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_GT.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_GT, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_GE.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_GE, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_EQ_EQ.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_EQ_EQ, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_SLASH_EQ.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_SLASH_EQ, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_LESSTHAN.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_LESSTHAN, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_LESSTHAN_EQ.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_LESSTHAN_EQ, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_GREATERTHAN.getRule())
level_3_expr.addChild(
new MFTree(MFPUtils.T_GREATERTHAN, (CivlcToken) relOp));
else if (opRule == MFPUtils.T_GREATERTHAN_EQ.getRule())
level_3_expr.addChild(new MFTree(MFPUtils.T_GREATERTHAN_EQ,
(CivlcToken) relOp));
else
assert false; // Invalid relation operator
assert validExprOperand(MFPUtils.LEVEL_2_EXPR);
level_3_expr.addChild(stack.pop());
assert validExprOperand(MFPUtils.LEVEL_2_EXPR);
level_3_expr.addChild(0, stack.pop());
stack.push(level_3_expr);
}
}
// R1011: concat op: '//'
// R1012: level 4 expr
// R1013: rel op:
// .EQ. (==) or .NE.(/=) or .LT. (<) or .LE. (<=) or .GT. (>) or .GE. (>=)
/**
* R1014: and operand
*
* @param hasNotOp
*/
void and_operand__not_op(Token notOp) {
if (notOp != null) {
MFTree and_operand__not_op = new MFTree(MFPUtils.AND_OPERAND,
MFPUtils.LAO_NOT);
and_operand__not_op
.addChild(new MFTree(MFPUtils.T_NOT, (CivlcToken) notOp));
assert validExprOperand(MFPUtils.LEVEL_3_EXPR);
and_operand__not_op.addChild(stack.pop());
stack.push(and_operand__not_op);
}
}
/**
* R1014: and operand(s)
*
* @param hasNotOp
* @param numAndOperand
*/
void and_operand(Token notOp, int numAndOperand) {
// Add n additional operands
if (numAndOperand > 0) {
int ctr = numAndOperand;
MFTree and_operand = new MFTree(MFPUtils.AND_OPERAND,
"AND_OPERAND[" + (numAndOperand + 1) + "]",
MFPUtils.LAO_LST);
while (ctr > 0) {
assert validExprOperand(MFPUtils.AND_OPERAND);
and_operand.addChild(0, stack.pop());
ctr--;
}
and_operand__not_op(notOp);
assert validExprOperand(MFPUtils.AND_OPERAND);
and_operand.addChild(0, stack.pop());
stack.push(and_operand);
} else
and_operand__not_op(notOp);
}
/**
* R1015: or operand(s)
*
* @param numOrOp
*/
void or_operand(int numOrOperand) {
if (numOrOperand > 0) {
int ctr = numOrOperand;
MFTree or_operand = new MFTree(MFPUtils.OR_OPERAND,
"OR_OPERAND[" + (numOrOperand + 1) + "]");
assert validExprOperand(MFPUtils.AND_OPERAND);
or_operand.addChild(stack.pop());
while (ctr > 0) {
assert validExprOperand(MFPUtils.AND_OPERAND);
or_operand.addChild(0, stack.pop());
ctr--;
}
stack.push(or_operand);
}
}
/**
* D1016: equiv operand
*
* @param equivOp
*/
void equiv_operand__equiv_op(Token equivOp) {
assert equivOp != null;
MFTree equiv_operand__equiv_op = new MFTree(MFPUtils.EQUIV_OP);
if (equivOp.getType() == MFPUtils.T_EQV.getRule())
equiv_operand__equiv_op
.addChild(new MFTree(MFPUtils.T_EQV, (CivlcToken) equivOp));
else
equiv_operand__equiv_op.addChild(
new MFTree(MFPUtils.T_NEQV, (CivlcToken) equivOp));
assert validExprOperand(MFPUtils.OR_OPERAND);
equiv_operand__equiv_op.addChild(stack.pop());
stack.push(equiv_operand__equiv_op);
}
/**
* R1016: equiv operand(s)
*
* @param numEquivOperand
*/
void equiv_operand(int numEquivOperand) {
if (numEquivOperand > 0) {
int ctr = numEquivOperand;
MFTree equiv_operand = new MFTree(MFPUtils.EQUIV_OPERAND,
"EQUIV_OPERAND[" + (numEquivOperand + 1) + "]");
assert validExprOperand(MFPUtils.EQUIV_OPERAND);
equiv_operand.addChild(stack.pop());
while (ctr > 0) {
assert validExprOperand(MFPUtils.EQUIV_OPERAND);
equiv_operand.addChild(0, stack.pop());
ctr--;
}
stack.push(equiv_operand);
}
}
/**
* D1017: level 5 expr
*
* @param defBinOp
*/
void level_5_expr__defined_binary_op(Token defBinOp) {
assert defBinOp != null;
MFTree level_5_expr__defined_binary_op = new MFTree(
MFPUtils.LEVEL_5_EXPR);
level_5_expr__defined_binary_op.addChild(
new MFTree(MFPUtils.T_DEFINED_OP, (CivlcToken) defBinOp));
assert validExprOperand(MFPUtils.EQUIV_OPERAND);
level_5_expr__defined_binary_op.addChild(stack.pop());
stack.push(level_5_expr__defined_binary_op);
}
/**
* R1017: level 5 expr(s)
*
* @param numDefBinOperand
*/
void level_5_expr(int numDefBinOperand) {
if (numDefBinOperand > 0) {
int ctr = numDefBinOperand;
MFTree level_5_expr = new MFTree(MFPUtils.EXPR,
"LEVEL_5_EXPR[" + (numDefBinOperand + 1) + "]");
assert validExprOperand(MFPUtils.LEVEL_5_EXPR);
level_5_expr.addChild(stack.pop());
while (ctr > 0) {
assert validExprOperand(MFPUtils.LEVEL_5_EXPR);
level_5_expr.addChild(0, stack.pop());
ctr--;
}
stack.push(level_5_expr);
}
}
/**
* R1022: expr
*/
void expr() {
assert validExprOperand(MFPUtils.LEVEL_5_EXPR);
}
/**
* R1023: defined binary op <br>
* .T_IDENT.
*
* @param defBinOp
*/
void defined_binary_op(Token defBinOp) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1024: logical expr
// R1025: default char expr
// R1026: int expr
// R1027: numeric expr
// R1028: specification expr
// R1029: constant expr
// R1030: default char constant expr
// R1031: int constant expr
/**
* R1032: assignment stmt
*
* @param lbl
* @param eos
*/
void assignment_stmt(Token lbl, Token eos) {
MFTree assignment_stmt = new MFTree(MFPUtils.ASSIGNMENT_STMT);
MFTree t_label = new MFTree(MFPUtils.LABEL, (CivlcToken) lbl);
assert validExpr();
assignment_stmt.addChild(stack.pop());
assert validSuccessor(MFPUtils.VARIABLE);
assignment_stmt.addChild(0, stack.pop());
assignment_stmt.addChild(0, t_label);
stack.push(assignment_stmt);
}
/**
* R1033: pointer assignment stmt
*
* @param lbl
* @param eos
* @param kindPtrAssignment
*/
void pointer_assignment_stmt(Token lbl, Token eos, int ptrAssignKind) {
MFTree pointer_assignment_stmt = new MFTree(
MFPUtils.POINTER_ASSIGNMENT_STMT);
assert validExpr();
pointer_assignment_stmt.addChild(stack.pop());
if (ptrAssignKind == MFPUtils.PAS_BOUND_SPEC) {
assert validSuccessor(MFPUtils.BOUNDS_SPEC);
pointer_assignment_stmt.addChild(stack.pop());
}
if (ptrAssignKind == MFPUtils.PAS_BOUND_REMAP) {
assert validSuccessor(MFPUtils.BOUNDS_REMAPPING);
pointer_assignment_stmt.addChild(stack.pop());
}
assert validSuccessor(MFPUtils.DATA_REF);
pointer_assignment_stmt.addChild(0, stack.pop());
pointer_assignment_stmt.addChild(0,
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(pointer_assignment_stmt);
}
/**
* R1034: data pointer object
*/
void data_pointer_object() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1035: bounds spec
*/
void bounds_spec() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1035: bounds spec
*
* @param numBoundsSpec
*/
void bounds_spec_list(int numBoundsSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1036: bounds remapping
*/
void bounds_remapping() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1036: bounds remapping
*
* @param numBoundRemap
*/
void bounds_remapping_list(int numBoundRemap) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1037: data target
/**
* R1038: proc pointer object
*/
void proc_pointer_object() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1039: proc component ref
// R1040: proc target
/**
* R1041: where stmt
*
* @param lbl
* @param where
*/
void where_stmt(Token lbl, Token where) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* D1042: where construct
*
* @param numMaskedEw
*/
void masked_elsewhere_stmt__end(int numMaskedEw) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* D1042: where construct
*
* @param NumEw
*/
void elsewhere_stmt__end(int NumEw) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1042: where construct
*
* @param numWBody
* @param hasMaskedEw
* @param hasEw
*/
void where_construct(int numWBody, boolean hasMaskedEw, boolean hasEw) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1043: where construct stmt
*
* @param ident
* @param where
* @param eos
*/
void where_construct_stmt(Token ident, Token where, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1044: where body construct
*/
void where_body_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1045: where assignment stmt
// R1046: mask expr
/**
* R1047: masked elsewhere stmt
*
* @param lbl
* @param tElse
* @param where
* @param ident
* @param eos
*/
void masked_elsewhere_stmt(Token lbl, Token tElse, Token where, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1048: elsewhere stmt
*
* @param lbl
* @param tElse
* @param where
* @param ident
* @param eos
*/
void elsewhere_stmt(Token lbl, Token tElse, Token where, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1049: end where stmt
*
* @param lbl
* @param end
* @param where
* @param ident
* @param eos
*/
void end_where_stmt(Token lbl, Token end, Token where, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1050: forall construct
*/
void forall_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1051: forall construct stmt
*
* @param lbl
* @param ident
* @param forall
* @param eos
*/
void forall_construct_stmt(Token lbl, Token ident, Token forall,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1052: forall body construct
*/
void forall_body_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1053: forall assignment stmt
*
* @param isPtr
*/
void forall_assignment_stmt(boolean isPtr) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1054: end forall stmt
*
* @param lbl
* @param end
* @param forall
* @param ident
* @param eos
*/
void end_forall_stmt(Token lbl, Token end, Token forall, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1055: forall stmt
*
* @param lbl
* @param forall
*/
void forall_stmt(Token lbl, Token forall) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1101: block
*/
void block(int numExec) {
int ctr = numExec;
MFTree block = new MFTree(MFPUtils.BLOCK);
while (ctr > 0) {
assert validExec();
block.addChild(0, stack.pop());
ctr--;
}
stack.push(block);
}
/**
* R1102: associate construct
*/
void associate_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1103: associate stmt
*
* @param lbl
* @param ident
* @param associate
* @param eos
*/
void associate_stmt(Token lbl, Token ident, Token associate, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1104: association
*
* @param ident
*/
void association(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1104: association list
*
* @param numAssoc
*/
void association_list(int numAssoc) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1105: selector
*/
void selector() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1106: end associate stmt
*
* @param lbl
* @param end
* @param associate
* @param ident
* @param eos
*/
void end_associate_stmt(Token lbl, Token end, Token associate, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1107: block construct
*/
void block_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1108: block stmt
*
* @param lbl
* @param ident
* @param block
* @param eos
*/
void block_stmt(Token lbl, Token ident, Token block, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1109: block specification part
*
* @param numUse
* @param numImport
* @param numDecl
*/
void specification_part_and_block(int numUse, int numImport, int numDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1110: end block stmt
*
* @param lbl
* @param ident
* @param end
* @param block
* @param eos
*/
void end_block_stmt(Token lbl, Token ident, Token end, Token block,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1111: change team construct
*/
void change_team_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1112: change team stmt
*
* @param lbl
* @param ident
* @param change
* @param team
* @param hasCoarrAssocList
* @param hasSyncStatList
*/
void change_team_stmt(Token lbl, Token ident, Token change, Token team,
boolean hasCoarrAssocList, boolean hasSyncStatList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1113: coarray association
*/
void coarray_association() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1113: coarray association list
*
* @param numCoarrAssoc
*/
void coarray_association_list(int numCoarrAssoc) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1114: end change team stmt
*
* @param lbl
* @param end
* @param team
* @param ident
* @param hasSyncStatList
*/
void end_change_team_stmt(Token lbl, Token end, Token team, Token ident,
boolean hasSyncStatList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1116: critical construct
*/
void critical_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1117: critical stmt
*
* @param lbl
* @param ident
* @param critical
* @param eos
*/
void critical_stmt(Token lbl, Token ident, Token critical, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1118: end critical stmt
*
* @param lbl
* @param ident
* @param end
* @param critical
* @param eos
*/
void end_critical_stmt(Token lbl, Token ident, Token end, Token critical,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1119: do construct
*/
void do_construct() {
MFTree do_construct = new MFTree(MFPUtils.DO_CONSTRUCT);
assert validSuccessor(MFPUtils.END_DO);
do_construct.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.BLOCK);
do_construct.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.DO_STMT);
do_construct.addChild(0, stack.pop());
stack.push(do_construct);
}
/**
* R1120: do stmt <br>
* R1121: label do stmt <br>
* R1122: nonlabel do stmt
*
* @param lbl
* @param ident
* @param tDo
* @param doLbl
* @param eos
* @param hasLoopCtrl
*/
void do_stmt(Token lbl, Token ident, Token tDo, Token doLbl, Token eos,
boolean hasLoopCtrl) {
MFTree do_stmt = new MFTree(MFPUtils.DO_STMT);
do_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident), //
new MFTree(MFPUtils.T_DO, (CivlcToken) tDo), //
new MFTree(MFPUtils.LABEL, (CivlcToken) doLbl));
if (hasLoopCtrl) {
assert validSuccessor(MFPUtils.LOOP_CONTROL);
do_stmt.addChild(stack.pop());
}
stack.push(do_stmt);
}
/**
* R1123: loop control <br>
* R1124: do variable
*
* @param keyword
* @param hasOptExpr
*/
void loop_control(Token keyword, boolean hasOptExpr) {
MFTree loop_control = new MFTree(MFPUtils.LOOP_CONTROL);
if (keyword.getType() == MFPUtils.T_IDENT.getRule()) {
if (hasOptExpr) {
assert validExpr();
loop_control.addChild(0, stack.pop());
}
assert validExpr();
loop_control.addChild(0, stack.pop());
assert validExpr();
loop_control.addChild(0, stack.pop());
loop_control.addChild(0,
new MFTree(MFPUtils.T_IDENT, (CivlcToken) keyword));
} else if (keyword.getType() == MFPUtils.T_WHILE.getRule()) {
assert validExpr();
loop_control.addChildren(//
new MFTree(MFPUtils.T_WHILE, (CivlcToken) keyword), //
stack.pop());
} else if (keyword.getType() == MFPUtils.T_CONCURRENT.getRule()) {
assert validSuccessor(MFPUtils.CONCURRENT_HEADER);
loop_control.addChildren(//
new MFTree(MFPUtils.T_CONCURRENT, (CivlcToken) keyword), //
stack.pop());
}
stack.push(loop_control);
}
/**
* R1125: concurrent header
*
* @param hasIntrinsicTypeSpec
* @param hasMaskExpr
*/
void concurrent_header(boolean hasIntrinsicTypeSpec, boolean hasMaskExpr) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1126: concurrent control
*
* @param ident
* @param hasStride
*/
void concurrent_control(Token ident, boolean hasStride) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1126: concurrent control list
*
* @param numConCtrl
*/
void concurrent_control_list(int numConCtrl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1127: concurrent limit
// R1128: concurrent step
/**
* R1129: concurrent locality
*
* @param numLocalSpec
*/
void concurrent_locality(int numLocalSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1130: locality spec
*
* @param local
* @param none
*/
void locality_spec(Token local, Token none) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1131: end do
*/
void end_do() {
MFTree end_do = new MFTree(MFPUtils.END_DO);
assert validSuccessor(MFPUtils.END_DO_STMT) || //
/* D1131 */ validSuccessor(MFPUtils.END_DO);
end_do.addChild(stack.pop());
stack.push(end_do);
}
/**
* D1131: do term action stmt
*
* @param lbl
* @param name
* @param end
* @param tDo
* @param eos
*/
void do_term_action_stmt(Token lbl, Token name, Token end, Token tDo,
Token eos) {
MFTree do_term_action_stmt = new MFTree(MFPUtils.END_DO);
assert validSuccessor(MFPUtils.ACTION_STMT);
do_term_action_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) name), //
new MFTree(MFPUtils.T_END, (CivlcToken) end), //
new MFTree(MFPUtils.T_DO, (CivlcToken) tDo), //
stack.pop());
stack.push(do_term_action_stmt);
}
/**
* R1132: end do stmt
*
* @param lbl
* @param name
* @param end
* @param tDo
* @param eos
*/
void end_do_stmt(Token lbl, Token name, Token end, Token tDo, Token eos) {
MFTree end_do_stmt = new MFTree(MFPUtils.END_DO);
end_do_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) name), //
new MFTree(MFPUtils.T_END, (CivlcToken) end), //
new MFTree(MFPUtils.T_DO, (CivlcToken) tDo));
stack.push(end_do_stmt);
}
/**
* R1133: cycle stmt
*
* @param lbl
* @param cycle
* @param ident
* @param eos
*/
void cycle_stmt(Token lbl, Token cycle, Token ident, Token eos) {
MFTree cycle_stmt = new MFTree(MFPUtils.CYCLE_STMT);
cycle_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_CYCLE, (CivlcToken) cycle), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(cycle_stmt);
}
/**
* R1134: if construct
*/
void if_construct(int numBlock) {
int ctr = numBlock;
MFTree if_construct = new MFTree(MFPUtils.IF_CONSTRUCT);
assert validSuccessor(MFPUtils.END_IF_STMT);
if_construct.addChild(0, stack.pop());
if (ctr > 1) {
assert validSuccessor(MFPUtils.BLOCK);
if_construct.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.ELSE_STMT);
if_construct.addChild(0, stack.pop());
ctr--;
}
while (ctr > 1) {
assert validSuccessor(MFPUtils.BLOCK);
if_construct.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.ELSE_IF_STMT);
if_construct.addChild(0, stack.pop());
ctr--;
}
assert validSuccessor(MFPUtils.BLOCK);
if_construct.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.IF_THEN_STMT);
if_construct.addChild(0, stack.pop());
stack.push(if_construct);
}
/**
* R1135: if then stmt
*
* @param lbl
* @param name
* @param tIf
* @param then
* @param eos
*/
void if_then_stmt(Token lbl, Token name, Token tIf, Token then, Token eos) {
MFTree if_then_stmt = new MFTree(MFPUtils.IF_THEN_STMT);
assert validExpr();
if_then_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) name), //
new MFTree(MFPUtils.T_IF, (CivlcToken) tIf), //
stack.pop(), //
new MFTree(MFPUtils.T_THEN, (CivlcToken) then));
stack.push(if_then_stmt);
}
/**
* R1136: else if stmt
*
* @param lbl
* @param name
* @param tElse
* @param tIf
* @param then
* @param eos
*/
void else_if_stmt(Token lbl, Token name, Token tElse, Token tIf, Token then,
Token eos) {
MFTree else_if_stmt = new MFTree(MFPUtils.ELSE_IF_STMT);
assert validExpr();
else_if_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) name), //
new MFTree(MFPUtils.T_ELSE, (CivlcToken) tElse), //
new MFTree(MFPUtils.T_IF, (CivlcToken) tIf), //
stack.pop(), //
new MFTree(MFPUtils.T_THEN, (CivlcToken) then));
stack.push(else_if_stmt);
}
/**
* R1137: else stmt
*
* @param lbl
* @param name
* @param tElse
* @param eos
*/
void else_stmt(Token lbl, Token name, Token tElse, Token eos) {
MFTree else_stmt = new MFTree(MFPUtils.ELSE_STMT);
else_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) name), //
new MFTree(MFPUtils.T_ELSE, (CivlcToken) tElse));
stack.push(else_stmt);
}
/**
* R1138: end if stmt
*
* @param lbl
* @param name
* @param end
* @param tIf
* @param eos
*/
void end_if_stmt(Token lbl, Token name, Token end, Token tIf, Token eos) {
MFTree end_if_stmt = new MFTree(MFPUtils.END_IF_STMT);
end_if_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) name), //
new MFTree(MFPUtils.T_END, (CivlcToken) end), //
new MFTree(MFPUtils.T_IF, (CivlcToken) tIf));
stack.push(end_if_stmt);
}
/**
* R1139: if stmt
*
* @param lbl
* @param tIf
*/
void if_stmt(Token lbl, Token tIf) {
MFTree if_stmt = new MFTree(MFPUtils.IF_STMT);
assert validSuccessor(MFPUtils.ACTION_STMT);
if_stmt.addChild(0, stack.pop());
assert validExpr();
if_stmt.addChild(0, stack.pop());
if_stmt.addChild(0, new MFTree(MFPUtils.T_IF, (CivlcToken) tIf));
if_stmt.addChild(0, new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(if_stmt);
}
/**
* R1140: case construct
*/
void case_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1141: select case stmt
*
* @param lbl
* @param ident
* @param select
* @param tCase
* @param eos
*/
void select_case_stmt(Token lbl, Token ident, Token select, Token tCase,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1142: case stmt
*
* @param lbl
* @param tCase
* @param ident
* @param eos
*/
void case_stmt(Token lbl, Token tCase, Token ident, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1143: end select stmt
*
* @param lbl
* @param end
* @param select
* @param ident
* @param eos
*/
void end_select_stmt(Token lbl, Token end, Token select, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1144: case expr
/**
* R1145: case selector
*
* @param tDefault
*/
void case_selector(Token tDefault) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1146: case value range
*/
void case_value_range() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* D1146: case_value_range_suffix
*/
void case_value_range_suffix() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1146: case value range
*
* @param numCaseValRange
*/
void case_value_range_list(int numCaseValRange) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1147: case value
*/
void case_value() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1148: select rank construct
*/
void select_rank_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1149: select rank stmt
*
* @param lbl
* @param selectConstructIdent
* @param select
* @param rank
* @param assocIdent
* @param eos
*/
void select_rank_stmt(Token lbl, Token selectConstructIdent, Token select,
Token rank, Token assocIdent, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1150: select rank case stmt
*
* @param lbl
* @param rank
* @param keyword
* @param ident
*/
void select_rank_case_stmt(Token lbl, Token rank, Token keyword,
Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1151: end select rank stmt
*
* @param lbl
* @param end
* @param select
* @param ident
* @param eos
*/
void end_select_rank_stmt(Token lbl, Token end, Token select, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1152: select type construct
*/
void select_type_construct() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1153: select type stmt
*
* @param lbl
* @param selectIdent
* @param select
* @param type
* @param assocIdent
* @param eos
*/
void select_type_stmt(Token lbl, Token selectIdent, Token select,
Token type, Token assocIdent, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1154: type guard stmt
*
* @param lbl
* @param type
* @param is
* @param selectIdent
* @param eos
*/
void type_guard_stmt(Token lbl, Token type, Token is, Token selectIdent,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1155: end select type stmt
*
* @param lbl
* @param end
* @param select
* @param ident
* @param eos
*/
void end_select_type_stmt(Token lbl, Token end, Token select, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1156: exit stmt
*
* @param lbl
* @param exit
* @param name
* @param eos
*/
void exit_stmt(Token lbl, Token exit, Token name, Token eos) {
MFTree exit_stmt = new MFTree(MFPUtils.EXIT_STMT);
exit_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_EXIT, (CivlcToken) exit), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) name));
stack.push(exit_stmt);
}
/**
* R1157: goto stmt
*
* @param lbl
* @param go
* @param to
* @param digits
* @param eos
*/
void goto_stmt(Token lbl, Token go, Token to, Token digits, Token eos) {
MFTree goto_stmt = new MFTree(MFPUtils.GOTO_STMT);
goto_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_GO, (CivlcToken) go), //
new MFTree(MFPUtils.T_TO, (CivlcToken) to), //
new MFTree(MFPUtils.LABEL, (CivlcToken) digits));
stack.push(goto_stmt);
}
/**
* R1158: computed goto stmt
*
* @param lbl
* @param go
* @param to
* @param eos
*/
void computed_goto_stmt(Token lbl, Token go, Token to, Token eos) {
MFTree computed_goto_stmt = new MFTree(MFPUtils.COMPUTED_GOTO_STMT);
assert validExpr();
computed_goto_stmt.addChild(stack.pop());
assert validSuccessor(MFPUtils.LABEL);
computed_goto_stmt.addChild(0, stack.pop());
computed_goto_stmt.addChild(0,
new MFTree(MFPUtils.T_TO, (CivlcToken) to));
computed_goto_stmt.addChild(0,
new MFTree(MFPUtils.T_GO, (CivlcToken) go));
computed_goto_stmt.addChild(0,
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(computed_goto_stmt);
}
/**
* R1159: continue stmt
*
* @param lbl
* @param tContinue
* @param eos
*/
void continue_stmt(Token lbl, Token tContinue, Token eos) {
MFTree continue_stmt = new MFTree(MFPUtils.CONTINUE_STMT);
continue_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_CONTINUE, (CivlcToken) tContinue));
stack.push(continue_stmt);
}
/**
* R1160: stop stmt
*
* @param lbl
* @param stop
* @param quiet
* @param eos
* @param hasStopCode
*/
void stop_stmt(Token lbl, Token tStop, Token tQuiet, Token eos,
boolean hasStopCode) {
MFTree stop_stmt = new MFTree(MFPUtils.STOP_STMT);
stop_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_STOP, (CivlcToken) tStop));
if (tQuiet != null) {
assert validExpr();
stop_stmt.addChild(stack.pop());
}
if (hasStopCode) {
assert validSuccessor(MFPUtils.STOP_CODE);
stop_stmt.addChild(stack.pop());
}
stack.push(stop_stmt);
}
/**
* R1161: error stop stmt
*
* @param lbl
* @param error
* @param stop
* @param quiet
* @param eos
* @param hasStopCode
*/
void error_stop_stmt(Token lbl, Token error, Token stop, Token quiet,
Token eos, boolean hasStopCode) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1162: stop code
*
* @param digits
*/
void stop_code(Token digits) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1163: fail image stmt
*
* @param lbl
* @param fail
* @param image
*/
void fail_image_stmt(Token lbl, Token fail, Token image) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1164: sync all stmt
*
* @param lbl
* @param sync
* @param all
* @param eos
* @param hasSyncStatList
*/
void sync_all_stmt(Token lbl, Token sync, Token all, Token eos,
boolean hasSyncStatList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1165: sync stat
*
* @param ident
*/
void sync_stat(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1165: sync stat list
*
* @param numSyncStat
*/
void sync_stat_list(int numSyncStat) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1166: sync images stmt
*
* @param lbl
* @param sync
* @param image
* @param eos
* @param hasSyncStatList
*/
void sync_images_stmt(Token lbl, Token sync, Token image, Token eos,
boolean hasSyncStatList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1167: image set
*
* @param asterisk
*/
void image_set(Token asterisk) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1168: sync memory stmt
*
* @param lbl
* @param sync
* @param memory
* @param eos
* @param hasSyncStatList
*/
void sync_memory_stmt(Token lbl, Token sync, Token memory, Token eos,
boolean hasSyncStatList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1169: sync team stmt
*
* @param lbl
* @param sync
* @param team
* @param hasSyncStatList
* @param eos
*/
void sync_team_stmt(Token lbl, Token sync, Token team,
boolean hasSyncStatList, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1170: event post stmt
*
* @param lbl
* @param event
* @param post
* @param hasSyncStatList
* @param eos
*/
void event_post_stmt(Token lbl, Token event, Token post,
boolean hasSyncStatList, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1172: event wait stmt
*
* @param lbl
* @param event
* @param wait
* @param hasEventWaitSpecList
* @param eos
*/
void event_wait_stmt(Token lbl, Token event, Token wait,
boolean hasEventWaitSpecList, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1173: event wait spec
*
* @param kindEventWaitSpec
*/
void event_wait_spec(EWS kindEventWaitSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1173: event wait spec list
*
* @param numEventWaitSpec
*/
void event_wait_spec_list(int numEventWaitSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1174: until spec
*
* @param untilCount
*/
void until_spec(Token untilCount) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1175: form team stmt
*
* @param lbl
* @param form
* @param team
* @param hasFormTeamSpecList
* @param eos
*/
void form_team_stmt(Token lbl, Token form, Token team,
boolean hasFormTeamSpecList, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1176: team number
// R1177: team variable
/**
* R1178: form team spec
*
* @param newIndex
*/
void form_team_spec(Token newIndex) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1178: form team spec
*
* @param numFormTeamSpec
*/
void form_team_spec_list(int numFormTeamSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1179: lock stmt
*
* @param lbl
* @param lock
* @param eos
* @param hasLockStatList
*/
void lock_stmt(Token lbl, Token lock, Token eos, boolean hasLockStatList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1180: lock stat
*
* @param acquiredLock
*/
void lock_stat(Token acquiredLock) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1180: lock stat list
*
* @param numLockStat
*/
void lock_stat_list(int numLockStat) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1181: unlcok stmt <br>
* R1182: lock variable
*
* @param lbl
* @param unlock
* @param eos
* @param hasSyncStatList
*/
void unlock_stmt(Token lbl, Token unlock, Token eos,
boolean hasSyncStatList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1201: io unit
*
* @param asterisk
*/
void io_unit(Token asterisk) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1202: file until number
*/
void file_unit_number() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1203: internal file variable
/**
* R1204: open stmt
*
* @param lbl
* @param open
* @param eos
*/
void open_stmt(Token lbl, Token open, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1205: connect spec
*
* @param ident
*/
void connect_spec(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1205: connect spec list
*
* @param numConnSpec
*/
void connect_spec_list(int numConnSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1206: file name expr
// R1207: iomsg variable
/**
* R1208: close stmt
*
* @param lbl
* @param close
* @param eos
*/
void close_stmt(Token lbl, Token close, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1209: close spec
*
* @param ident
*/
void close_spec(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1209: close spec list
*
* @param numCloseSpec
*/
void close_spec_list(int numCloseSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1210: read stmt
*
* @param lbl
* @param read
* @param eos
* @param hasInputItemList
*/
void read_stmt(Token lbl, Token read, Token eos, boolean hasInputItemList) {
MFTree read_stmt = new MFTree(MFPUtils.READ_STMT);
if (hasInputItemList) {
assert validSuccessor(MFPUtils.INPUT_ITEM);
read_stmt.addChild(stack.pop());
} else {
read_stmt.addChild(absent());
}
assert validSuccessor(MFPUtils.FORMAT) || //
validSuccessor(MFPUtils.IO_CONTROL_SPEC);
read_stmt.addChild(0, stack.pop());
read_stmt.addChild(0, new MFTree(MFPUtils.T_READ, (CivlcToken) read));
read_stmt.addChild(0, new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(read_stmt);
}
/**
* R1211: write stmt
*
* @param lbl
* @param write
* @param eos
* @param hasOutputItemList
*/
void write_stmt(Token lbl, Token write, Token eos,
boolean hasOutputItemList) {
MFTree write_stmt = new MFTree(MFPUtils.WRITE_STMT);
write_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_WRITE, (CivlcToken) write));
if (hasOutputItemList) {
assert validSuccessor(MFPUtils.OUTPUT_ITEM);
write_stmt.addChild(stack.pop());
}
assert validSuccessor(MFPUtils.IO_CONTROL_SPEC);
write_stmt.addChild(write_stmt.numChildren() - 1, stack.pop());
stack.push(write_stmt);
}
/**
* R1212: print stmt
*
* @param lbl
* @param print
* @param eos
* @param hasOutputItemList
*/
void print_stmt(Token lbl, Token print, Token eos,
boolean hasOutputItemList) {
MFTree print_stmt = new MFTree(MFPUtils.PRINT_STMT);
print_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_PRINT, (CivlcToken) print));
if (hasOutputItemList) {
assert validSuccessor(MFPUtils.OUTPUT_ITEM);
print_stmt.addChild(stack.pop());
}
assert validSuccessor(MFPUtils.FORMAT);
print_stmt.addChild(print_stmt.numChildren() - 1, stack.pop());
stack.push(print_stmt);
}
/**
* R1213: io control spec <br>
* R1214: id variable
*
* @param ident
* @param asterisk
*/
void io_control_spec(Token ident, Token asterisk) {
MFTree io_control_spec = new MFTree(MFPUtils.IO_CONTROL_SPEC);
io_control_spec
.addChild(new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
if (asterisk == null) {
assert validExpr();
io_control_spec.addChild(stack.pop());
} else
io_control_spec.addChild(
new MFTree(MFPUtils.T_ASTERISK, (CivlcToken) asterisk));
stack.push(io_control_spec);
}
/**
* L1213: io control spec list
*
* @param numCtrlSpecList
*/
void io_control_spec_list(int numCtrlSpecList) {
genListBackward(numCtrlSpecList, MFPUtils.IO_CONTROL_SPEC);
}
/**
* R1215: format
*/
void format(Token tasterisk) {
MFTree format = new MFTree(MFPUtils.FORMAT);
if (tasterisk == null) {
assert validExprOperand(MFPUtils.EXPR);
format.addChild(stack.pop());
} else
format.addChild(
new MFTree(MFPUtils.T_ASTERISK, (CivlcToken) tasterisk));
stack.push(format);
}
/**
* R1216: input item
*/
void input_item() {
MFTree input_item = new MFTree(MFPUtils.INPUT_ITEM);
assert validSuccessor(MFPUtils.VARIABLE) //
|| validSuccessor(MFPUtils.IO_IMPLIED_DO);
input_item.addChild(stack.pop());
stack.push(input_item);
}
/**
* L1216: input item list
*
* @param numInputItem
*/
void input_item_list(int numInputItem) {
genListBackward(numInputItem, MFPUtils.INPUT_ITEM);
}
/**
* R1217: output item
*/
void output_item() {
MFTree output_item = new MFTree(MFPUtils.OUTPUT_ITEM);
assert validExpr() || validSuccessor(MFPUtils.IO_IMPLIED_DO);
output_item.addChild(stack.pop());
stack.push(output_item);
}
/**
* L1217: output item list
*
* @param numOutputItem
*/
void output_item_list(int numOutputItem) {
genListBackward(numOutputItem, MFPUtils.OUTPUT_ITEM);
}
/**
* R1218: io implied do
*/
void io_implied_do() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1219: io implied do object
*/
void io_implied_do_object() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1220: io implied do control
*
* @param hsaStride
*/
void io_implied_do_control(Token doVar, boolean hsaStride) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1221: dtv type spec
*
* @param keyword
* Either TYPE or CLASS
*/
void dtv_type_spec(Token keyword) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1222: wait stmt
*
* @param lbl
* @param wait
* @param eos
*/
void wait_stmt(Token lbl, Token wait, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1223: wait spec
*
* @param ident
*/
void wait_spec(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1223: wait spec list
*
* @param numWaitSpec
*/
void wait_spec_list(int numWaitSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1224: backspace stmt
*
* @param lbl
* @param backspace
* @param eos
* @param hasPosSpecList
*/
void backspace_stmt(Token lbl, Token backspace, Token eos,
boolean hasPosSpecList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1225: endfile stmt
*
* @param lbl
* @param end
* @param file
* @param eos
* @param hasPosSpecList
*/
void endfile_stmt(Token lbl, Token end, Token file, Token eos,
boolean hasPosSpecList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1226: rewind stmt
*
* @param lbl
* @param rewind
* @param eos
* @param hasPosSpecList
*/
void rewind_stmt(Token lbl, Token rewind, Token eos,
boolean hasPosSpecList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1227: position spec
*
* @param ident
*/
void position_spec(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* LR1227: position spec list
*
* @param numPosSpec
*/
void position_spec_list(int numPosSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1228: flush stmt
*
* @param lbl
* @param flush
* @param eos
* @param hasFlushSpecList
*/
void flush_stmt(Token lbl, Token flush, Token eos,
boolean hasFlushSpecList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1229: flush spec
*
* @param ident
*/
void flush_spec(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1229: flush spec list
*
* @param numFlushSpec
*/
void flush_spec_list(int numFlushSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1230: inquire stmt
*
* @param lbl
* @param inquire
* @param ident
* @param eos
* @param isOutputItemList
* <code>false</code> for inquireSpecList (rule
* 1231)
*/
void inquire_stmt(Token lbl, Token inquire, Token ident, Token eos,
boolean isOutputItemList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1231: inquire spec
*
* @param ident
*/
void inquire_spec(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1231: inquire spec list
*
* @param numInquireSpecList
*/
void inquire_spec_list(int numInquireSpecList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1301: format stmt
*
* @param lbl
* @param format
* @param eos
*/
void format_stmt(Token lbl, Token format, Token eos) {
MFTree format_stmt = new MFTree(MFPUtils.FORMAT_STMT);
format_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_FORMAT, (CivlcToken) format));
assert validSuccessor(MFPUtils.FORMAT_SPECIFICATION);
format_stmt.addChild(stack.pop());
stack.push(format_stmt);
}
/**
* R1302: format specification
*
* @param hasFormatItemList
* @param hasUnlimitedFormatItem
*/
void format_specification(boolean hasFormatItemList,
boolean hasUnlimitedFormatItem) {
MFTree format_specification = new MFTree(MFPUtils.FORMAT_SPECIFICATION);
if (hasUnlimitedFormatItem) {
assert validSuccessor(MFPUtils.UNLIMITED_FORMAT_ITEM);
format_specification.addChild(stack.pop());
}
if (hasFormatItemList) {
assert validSuccessor(MFPUtils.FORMAT_ITEM);
format_specification.addChild(0, stack.pop());
}
stack.push(format_specification);
}
/**
* R1303: format items
*
* @param idOrContent
* @param hasFormatItemList
*/
void format_item(Token idOrContent, boolean hasFormatItemList) {
MFTree format_item = new MFTree(MFPUtils.FORMAT_ITEM);
if (hasFormatItemList) {
// The header of a format item with its unique ID
format_item.addChild(new MFTree(MFPUtils.DIGIT_STRING,
(CivlcToken) idOrContent));
assert validSuccessor(MFPUtils.FORMAT_ITEM);
format_item.addChild(stack.pop());
} else {
// An element in format item list
format_item.addChild(new MFTree(MFPUtils.T_CHAR_CONST,
(CivlcToken) idOrContent));
}
stack.push(format_item);
}
/**
* L1303: format items list
*
* @param numFormatItem
*/
void format_item_list(int numFormatItem) {
genListBackward(numFormatItem, MFPUtils.FORMAT_ITEM);
}
// R1304: format item
/**
* R1305: unlimited format item
*/
void unlimited_format_item() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1306: r
// R1307: data edit spec
// R1308: w
// R1309: m
// R1310: d
// R1311: e
// R1312: v
// R1313: control edit spec
// R1314: k
// R1315: position edit spec
// R1316: n
// R1317: sign edit desc
// R1318: blank interp edit desc
// R1319: round edit desc
// R1320: decimal edit desc
// R1321: char string edit spec
/**
* R1401: main program
*
* @param hasExecPart
* @param hasInternalSubprogramPart
*/
void main_program(boolean hasExecPart, boolean hasInternalSubprogramPart) {
MFTree main_program = new MFTree(MFPUtils.MAIN_PROGRAM);
// EndProgramStmt
assert validSuccessor(MFPUtils.END_PROGRAM_STMT);
main_program.addChild(stack.pop());
// (InternalSubprogram)
if (hasInternalSubprogramPart) {
assert validSuccessor(MFPUtils.INTERNAL_SUBPROGRAM_PART);
main_program.addChild(0, stack.pop());
}
// (ExecutionPart)
if (hasExecPart) {
assert validSuccessor(MFPUtils.EXECUTION_PART);
main_program.addChild(0, stack.pop());
}
// SpecificationPart
assert validSuccessor(MFPUtils.SPECIFICATION_PART);
main_program.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.PROGRAM_STMT);
main_program.addChild(0, stack.pop());
// ROOT: Program_Main
root.addChild(main_program);
}
/**
* R1402: program stmt
*
* @param lbl
* @param program
* @param ident
* @param eos
*/
void program_stmt(Token lbl, Token program, Token ident, Token eos) {
MFTree program_stmt = new MFTree(MFPUtils.PROGRAM_STMT);
program_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_PROGRAM, (CivlcToken) program), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(program_stmt);
}
/**
* R1403: end program stmt
*
* @param lbl
* @param end
* @param program
* @param ident
* @param eos
*/
void end_program_stmt(Token lbl, Token end, Token program, Token ident,
Token eos) {
MFTree end_program_stmt = new MFTree(MFPUtils.END_PROGRAM_STMT);
end_program_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_END, (CivlcToken) end), //
new MFTree(MFPUtils.T_PROGRAM, (CivlcToken) program), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(end_program_stmt);
}
/**
* R1404: module
*/
void module() {
MFTree module = new MFTree(MFPUtils.MODULE);
// end_module_stmt
assert validSuccessor(MFPUtils.END_MODULE_STMT);
module.addChild(stack.pop());
// (module_subprogram_part)?
if (validSuccessor(MFPUtils.MODULE_SUBPROGRAM_PART)) {
module.addChild(0, stack.pop());
} else {
module.addChild(absent());
}
// specification_part
assert validSuccessor(MFPUtils.SPECIFICATION_PART);
module.addChild(0, stack.pop());
// module_stmt
assert validSuccessor(MFPUtils.MODULE_STMT);
module.addChild(0, stack.pop());
// ROOT: module
root.addChild(module);
}
/**
* R1405: module stmt
*
* @param lbl
* @param module
* @param ident
* @param eos
*/
void module_stmt(Token lbl, Token module, Token ident, Token eos) {
MFTree module_stmt = new MFTree(MFPUtils.MODULE_STMT);
module_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_MODULE, (CivlcToken) module), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(module_stmt);
}
/**
* R1406: end module stmt
*
* @param lbl
* @param end
* @param module
* @param ident
* @param eos
*/
void end_module_stmt(Token lbl, Token end, Token module, Token ident,
Token eos) {
MFTree end_module_stmt = new MFTree(MFPUtils.END_MODULE_STMT);
end_module_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_END, (CivlcToken) end), //
new MFTree(MFPUtils.MODULE, (CivlcToken) module), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(end_module_stmt);
}
/**
* R1407: module subprogram part
*
* @param numModuleSubprogram
*/
void module_subprogram_part(int numModuleSubprogram) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1408: module subprogram
*
* @param hasPrefix
*/
void module_subprogram(boolean hasPrefix) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1409: use stmt
*
* @param lbl
* @param use
* @param ident
* @param only
* @param eos
* @param hasModuleNature
* @param hasRenameList
* @param hasOnlyList
*/
void use_stmt(Token lbl, Token use, Token ident, Token only, Token eos,
boolean hasModuleNature, boolean hasRenameList,
boolean hasOnlyList) {
MFTree use_stmt = new MFTree(MFPUtils.USE_STMT);
use_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_USE, (CivlcToken) use), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
if (hasOnlyList) {
assert validSuccessor(MFPUtils.ONLY);
use_stmt.addChild(stack.pop());
} else if (hasRenameList) {
assert validSuccessor(MFPUtils.RENAME);
use_stmt.addChild(stack.pop());
}
if (hasModuleNature) {
assert stack.peek().prp() == MFPUtils.MODULE_NATURE;
use_stmt.addChild(3, stack.pop());
}
stack.push(use_stmt);
}
/**
* R1410: module nature
*
* @param keyword
*/
void module_nature(Token keyword) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1411: rename <br>
* R1414: local defined operator <br>
* R1415: use defined operator
*
* @param ident0
* @param ident1
* @param op0
* @param defOp0
* @param op1
* @param defOp1
*/
void rename(Token ident0, Token ident1, Token op0, Token defOp0, Token op1,
Token defOp1) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1411: rename list
*
* @param numRename
*/
void rename_list(int numRename) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1412: only <br>
* R1413: only use stmt
*
* @param hasGenericSpec
* @param hasRename
*/
void only(boolean isRenamed) {
MFTree only = new MFTree(MFPUtils.ONLY);
if (isRenamed) {
assert validSuccessor(MFPUtils.RENAME);
} else {
assert validSuccessor(MFPUtils.GENERIC_SPEC);
}
only.addChild(stack.pop());
stack.push(only);
}
/**
* L1412: only list
*
* @param numOnly
*/
void only_list(int numOnly) {
genListBackward(numOnly, MFPUtils.ONLY);
}
/**
* R1416: submodule
*
* @param hasModuleSubprogramPart
*/
void submodule(boolean hasModuleSubprogramPart) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1417: submodule stmt
*
* @param lbl
* @param submodule
* @param ident
* @param eos
*/
void submodule_stmt(Token lbl, Token submodule, Token ident, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1418: parent identifier
*
* @param ancestor
* @param parent
*/
void parent_identifier(Token ancestor, Token parent) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1419: end submodule stmt
*
* @param lbl
* @param end
* @param submodule
* @param ident
* @param eos
*/
void end_submodule_stmt(Token lbl, Token end, Token submodule, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1420: block data
*/
void block_data() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1421: block data stmt
*
* @param lbl
* @param block
* @param data
* @param ident
* @param eos
*/
void block_data_stmt(Token lbl, Token block, Token data, Token ident,
Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1422: end block data stmt
*
* @param lbl
* @param end
* @param block
* @param data
* @param ident
* @param eos
*/
void end_block_data_stmt(Token lbl, Token end, Token block, Token data,
Token ident, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1501: interface block
*/
void interface_block() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1502: interface specification
*/
void interface_specification() {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1503: interface stmt
*
* @param lbl
* @param tAbstract
* @param tInterface
* @param eos
* @param hasGenericSpec
*/
void interface_stmt(Token lbl, Token tAbstract, Token tInterface, Token eos,
boolean hasGenericSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1504: end interface stmt
*
* @param lbl
* @param end
* @param tInterface
* @param eos
* @param hasGenericSpec
*/
void end_interface_stmt(Token lbl, Token end, Token tInterface, Token eos,
boolean hasGenericSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1505: interface body
*
* @param isFunction
* @param hasPrefix
*/
void interface_body(boolean isFunction, boolean hasPrefix) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1506: procedure stmt
*
* @param lbl
* @param module
* @param procedure
* @param eos
*/
void procedure_stmt(Token lbl, Token module, Token procedure, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1508: generic spec
*
* @param keyword
* @param ident
* @param kindGenericSpec
*/
void generic_spec(Token keyword, Token ident, int kindGenericSpec) {
MFTree generic_spec = new MFTree(MFPUtils.GENERIC_SPEC,
kindGenericSpec);
switch (kindGenericSpec) {
case MFPUtils.GS_NAME :
generic_spec.addChild(
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
break;
case MFPUtils.GS_OPERATOR :
assert validSuccessor(MFPUtils.DEFINED_OPERATOR);
generic_spec.addChild(stack.pop());
break;
case MFPUtils.GS_ASSIGNMENT :
generic_spec.addChild(new MFTree(MFPUtils.T_ASSIGNMENT,
(CivlcToken) keyword));
break;
case MFPUtils.GS_IO_SPEC :
assert validSuccessor(MFPUtils.DEFINED_IO_GENERIC_SPEC);
generic_spec.addChild(stack.pop());
break;
default :
}
stack.push(generic_spec);
}
/**
* R1509: defined io generic spec
*
* @param read
* @param format
* @param kindDGenericSpec
*/
void defined_io_generic_spec(Token read, Token format, DIGS kindDIOGSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1510: generic stmt
*
* @param generic
* @param hasAccessSpec
*/
void generic_stmt(Token generic, boolean hasAccessSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1511: external stmt
*
* @param lbl
* @param external
* @param eos
*/
void external_stmt(Token lbl, Token external, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1512: procedure declaration stmt
*
* @param lbl
* @param procedure
* @param eos
* @param hasProcInterface
* @param numProcAttrSpec
*/
void procedure_declaration_stmt(Token lbl, Token procedure, Token eos,
boolean hasProcInterface, int numProcAttrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1513: proc interface
*
* @param t_IDENT681
*/
void proc_interface(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1514: proc attr spec
*
* @param keyword
* @param kindProcAttrSpec
*/
void proc_attr_spec(Token keyword, int kindProcAttrSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1515: proc decl
*
* @param ident
* @param hasProcPtrInit
*/
void proc_decl(Token ident, boolean hasProcPtrInit) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* L1515: proc decl list
*
* @param numProcDecl
*/
void proc_decl_list(int numProcDecl) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1517: proc pointer init <br>
* R1518: initial proc target
*
* @param ident
*/
void proc_pointer_init(Token ident) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1519: intrinsic stmt
*
* @param lbl
* @param intrinsic
* @param eos
*/
void intrinsic_stmt(Token lbl, Token intrinsic, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R1520: function reference
/**
* R1521: call stmt
*
* @param lbl
* @param tCall
* @param eos
* @param hasActualArgSpecList
*/
void call_stmt(Token lbl, Token tCall, Token eos,
boolean hasActualArgSpecList) {
MFTree call_stmt = new MFTree(MFPUtils.CALL_STMT);
call_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_CALL, (CivlcToken) tCall));
if (hasActualArgSpecList) {
assert validSuccessor(MFPUtils.ACTUAL_ARG_SPEC);
call_stmt.addChild(stack.pop());
}
assert validSuccessor(MFPUtils.PROCEDURE_DESIGNATOR);
call_stmt.addChild(2, stack.pop());
stack.push(call_stmt);
}
/**
* R1522: procedure designator
*/
void procedure_designator() {
MFTree procedure_designator = new MFTree(MFPUtils.PROCEDURE_DESIGNATOR);
assert validSuccessor(MFPUtils.DATA_REF);
procedure_designator.addChild(stack.pop());
stack.push(procedure_designator);
}
/**
* R1523: actual arg spec <br>
* R1524: actual arg <br>
* R1525: alt return spec
*
* @param keyword
*/
void actual_arg_spec(Token keyword, Token tAsterisk, Token alt_rtn_lbl) {
MFTree actual_arg_spec = new MFTree(MFPUtils.ACTUAL_ARG_SPEC);
if (alt_rtn_lbl == null) {
// Standard Argument Expression (may have keyword)
assert validExpr();
actual_arg_spec.addChildren(//
new MFTree(MFPUtils.T_IDENT, (CivlcToken) keyword), //
stack.pop());
} else
// Obsoleted Alternated Return Label
actual_arg_spec.addChildren(//
new MFTree(MFPUtils.T_IDENT, (CivlcToken) keyword), //
new MFTree(MFPUtils.T_ASTERISK, (CivlcToken) tAsterisk), //
new MFTree(MFPUtils.LABEL, (CivlcToken) alt_rtn_lbl));
stack.push(actual_arg_spec);
}
/**
* L1523: actual arg spec list
*
* @param numActualArgSpec
* <code>-1</code> for a parsing error in rule:
* R990 - designator_or_func_ref
*/
void actual_arg_spec_list(int numActualArgSpec) {
genListBackward(numActualArgSpec, MFPUtils.ACTUAL_ARG_SPEC);
}
/**
* R1526: prefix
*
* @param numPrefix
*/
void prefix(int numPrefix) {
genListBackward(numPrefix, MFPUtils.PREFIX_SPEC);
}
/**
* R1527: prefix spec
*
* @param keyword
*/
void prefix_spec(Token keyword, int prefix_spec_kind) {
MFTree prefix_spec = new MFTree(MFPUtils.PREFIX_SPEC, prefix_spec_kind,
(CivlcToken) keyword);
if (keyword == null) {
assert validSuccessor(MFPUtils.DECLARATION_TYPE_SPEC);
prefix_spec.addChild(stack.pop());
}
stack.push(prefix_spec);
}
// R1528: proc language binding spec
/**
* R1529: function subprogram
*
* @param hasExecPart
* @param hasInternalSubprogramPart
*/
void function_subprogram(boolean hasExecPart,
boolean hasInternalSubprogramPart) {
MFTree function_subprogram = new MFTree(MFPUtils.FUNCTION_SUBPROGRAM);
// EndProgramStmt
assert validSuccessor(MFPUtils.END_FUNCTION_STMT);
function_subprogram.addChild(stack.pop());
// (InternalSubprogram)
if (hasInternalSubprogramPart) {
assert validSuccessor(MFPUtils.INTERNAL_SUBPROGRAM_PART);
function_subprogram.addChild(0, stack.pop());
}
// (ExecutionPart)
if (hasExecPart) {
assert validSuccessor(MFPUtils.EXECUTION_PART);
function_subprogram.addChild(0, stack.pop());
}
// SpecificationPart
assert validSuccessor(MFPUtils.SPECIFICATION_PART);
function_subprogram.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.FUNCTION_STMT);
function_subprogram.addChild(0, stack.pop());
stack.push(function_subprogram);
}
/**
* R1530: function stmt
*
* @param lbl
* @param function
* @param ident
* @param eos
*/
void function_stmt(Token lbl, Token function, Token ident, Token eos,
boolean hasGenericNameList, boolean hasSuffix) {
MFTree function_stmt = new MFTree(MFPUtils.FUNCTION_STMT);
if (hasSuffix) {
assert validSuccessor(MFPUtils.SUFFIX);
function_stmt.addChild(0, stack.pop());
}
if (hasGenericNameList) {
assert validSuccessor(MFPUtils.GENERIC_NAME);
function_stmt.addChild(0, stack.pop());
}
function_stmt.addChild(0,
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
function_stmt.addChild(0,
new MFTree(MFPUtils.T_FUNCTION, (CivlcToken) function));
function_stmt.addChild(0, new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(function_stmt);
}
// R1531: dummy arg stmt
/**
* R1532: suffix
*
* @param ident
* @param hasLangBindSpec
*/
void suffix(Token ident, boolean hasLangBindSpec) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1533: end function stmt
*
* @param lbl
* @param end
* @param function
* @param ident
* @param eos
*/
void end_function_stmt(Token lbl, Token end, Token function, Token ident,
Token eos) {
MFTree end_function_stmt = new MFTree(MFPUtils.END_FUNCTION_STMT);
end_function_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_END, (CivlcToken) end), //
new MFTree(MFPUtils.T_FUNCTION, (CivlcToken) function), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(end_function_stmt);
}
/**
* R1534: subroutine subprogram
*
* @param hasExecPart
* @param hasInternalSubprogramPart
*/
void subroutine_subprogram(boolean hasExecPart,
boolean hasInternalSubprogramPart) {
MFTree subroutine_subprogram = new MFTree(
MFPUtils.SUBROUTINE_SUBPROGRAM);
// EndProgramStmt
assert validSuccessor(MFPUtils.END_SUBROUTINE_STMT);
subroutine_subprogram.addChild(stack.pop());
// (InternalSubprogram)
if (hasInternalSubprogramPart) {
assert validSuccessor(MFPUtils.INTERNAL_SUBPROGRAM_PART);
subroutine_subprogram.addChild(0, stack.pop());
}
// (ExecutionPart)
if (hasExecPart) {
assert validSuccessor(MFPUtils.EXECUTION_PART);
subroutine_subprogram.addChild(0, stack.pop());
}
// SpecificationPart
assert validSuccessor(MFPUtils.SPECIFICATION_PART);
subroutine_subprogram.addChild(0, stack.pop());
assert validSuccessor(MFPUtils.SUBROUTINE_STMT);
subroutine_subprogram.addChild(0, stack.pop());
// ROOT: Program_Main
root.addChild(subroutine_subprogram);
}
/**
* R1535: subroutine stmt
*
* @param lbl
* @param subroutine
* @param ident
* @param eos
* @param hasPrefix
* @param hasDummyArgList
* @param hasLangBindSpec
* @param hasArgSpec
*/
void subroutine_stmt(Token lbl, Token subroutine, Token ident, Token eos,
boolean hasPrefix, boolean hasDummyArgList, boolean hasLangBindSpec,
boolean hasArgSpec) {
MFTree subroutine_stmt = new MFTree(MFPUtils.SUBROUTINE_STMT);
if (hasLangBindSpec) {
assert validSuccessor(MFPUtils.LANGUAGE_BINDING_SPEC);
subroutine_stmt.addChild(0, stack.pop());
}
if (hasDummyArgList) {
assert validSuccessor(MFPUtils.DUMMY_ARG);
subroutine_stmt.addChild(0, stack.pop());
}
if (hasPrefix) {
assert validSuccessor(MFPUtils.PREFIX);
subroutine_stmt.addChild(0, stack.pop());
}
subroutine_stmt.addChild(0,
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
subroutine_stmt.addChild(0,
new MFTree(MFPUtils.T_SUBROUTINE, (CivlcToken) subroutine));
subroutine_stmt.addChild(0,
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl));
stack.push(subroutine_stmt);
}
/**
* R1536: dummy arg
*
* @param ident
*/
void dummy_arg(Token ident) {
MFTree dummy_arg = new MFTree(MFPUtils.DUMMY_ARG, (CivlcToken) ident);
stack.push(dummy_arg);
}
/**
* L1536: dummy arg list
*
* @param numDummyArg
*/
void dummy_arg_list(int numDummyArg) {
genListBackward(numDummyArg, MFPUtils.DUMMY_ARG);
}
/**
* R1537: end subroutine stmt
*
* @param lbl
* @param end
* @param subroutine
* @param ident
* @param eos
*/
void end_subroutine_stmt(Token lbl, Token end, Token subroutine,
Token ident, Token eos) {
MFTree end_subroutine_stmt = new MFTree(MFPUtils.END_SUBROUTINE_STMT);
end_subroutine_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_END, (CivlcToken) end), //
new MFTree(MFPUtils.T_SUBROUTINE, (CivlcToken) subroutine), //
new MFTree(MFPUtils.T_IDENT, (CivlcToken) ident));
stack.push(end_subroutine_stmt);
}
/**
* R1538: separate module subprogram
*
* @param hasExecPart
* @param hasInternalSubprogramPart
*/
void separate_module_subprogram(boolean hasExecPart,
boolean hasInternalSubprogramPart) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1539: mp subprogram stmt
*
* @param lbl
* @param module
* @param procedure
* @param ident
* @param eos
*/
void mp_subprogram_stmt(Token lbl, Token module, Token procedure,
Token ident, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1540: end mp subprogram stmt
*
* @param lbl
* @param end
* @param procedure
* @param ident
* @param eos
*/
void end_mp_subprogram_stmt(Token lbl, Token end, Token procedure,
Token ident, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1541: entry stmt
*
* @param lbl
* @param entry
* @param ident
* @param eos
* @param hasDummyArgList
* @param hasSuffix
*/
void entry_stmt(Token lbl, Token entry, Token ident, Token eos,
boolean hasDummyArgList, boolean hasSuffix) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1542: return stmt
*
* @param lbl
* @param tReturn
* @param eos
* @param hasExpr
*/
void return_stmt(Token lbl, Token tReturn, Token eos, boolean hasExpr) {
MFTree return_stmt = new MFTree(MFPUtils.RETURN_STMT);
return_stmt.addChildren(//
new MFTree(MFPUtils.LABEL, (CivlcToken) lbl), //
new MFTree(MFPUtils.T_RETURN, (CivlcToken) tReturn));
if (hasExpr) {
assert validExpr();
return_stmt.addChild(stack.pop());
}
return_stmt.addChild(new MFTree(MFPUtils.T_EOS, (CivlcToken) eos));
stack.push(return_stmt);
}
/**
* R1543: contains stmt
*
* @param lbl
* @param contains
* @param eos
*/
void contains_stmt(Token lbl, Token contains, Token eos) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
/**
* R1544: stmt fucntion stmt
*
* @param lbl
* @param ident
* @param eos
* @param hasGenericNameList
*/
void stmt_function_stmt(Token lbl, Token ident, Token eos,
boolean hasGenericNameList) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
// R-1: end of stmt: A dummy rule used for marking the end of a statement.
void attr_spec_extension(Token ext_keyword, int kindAttrSpecExt) {
// TODO Auto-generated method stub
System.out.println(new Throwable().getStackTrace()[0].getMethodName());
assert false;
}
}