/* * xtc - The eXTensible Compiler * Copyright (C) 2009-2012 New York University * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * version 2 as published by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, * USA. */ package xtc.lang.cpp; import xtc.lang.cpp.ForkMergeParser.Subparser; /* from expression.prologue */ /** * This class is generated from grammar annotations and provides semantic * action support. */ public class ExpressionActions implements SemanticActions { /** The instance of this class */ private static ExpressionActions ref; /** Get the instance of this class */ public static ExpressionActions getInstance() { if (null == ref) { ref = new ExpressionActions(); } return ref; } public Object action(int production, Subparser subparser, Object value) { switch (production) { } return value; } public void dispatch(int id, Subparser subparser) { switch(id) { case 145: CheckDefined(subparser); break; default: // Do nothing break; } } /* from expression.epilogue */ public void CheckDefined(Subparser subparser) { if (! "defined".equals(subparser.stack.get(2).value.toString())) { subparser.lookahead.setError(); } } }