Logo Search packages:      
Sourcecode: maude version File versions  Download package

Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes

MixfixParser Class Reference

Collaboration diagram for MixfixParser:
Collaboration graph
[legend]

List of all members.

Classes

struct  Action

Public Types

enum  SemanticActions {
  NOP, PASS_THRU, MAKE_TERM, ASSOC_LIST,
  MAKE_VARIABLE, MAKE_VARIABLE_FROM_ALIAS, MAKE_NATURAL, MAKE_INTEGER,
  MAKE_RATIONAL, MAKE_FLOAT, MAKE_QUOTED_IDENTIFIER, MAKE_STRING,
  MAKE_SORT_TEST, MAKE_POLYMORPH, MAKE_ITER, MAKE_BUBBLE,
  MAKE_MB, MAKE_CMB, MAKE_EQ, MAKE_CEQ,
  MAKE_RL, MAKE_CRL, MAKE_LABEL, MAKE_ATTRIBUTE_PART,
  FRAGMENT_LIST, MAKE_TRUE, MAKE_EQUALITY, MAKE_ASSIGNMENT,
  MAKE_REWRITE, MAKE_LABEL_ATTRIBUTE, MAKE_METADATA_ATTRIBUTE, MAKE_NONEXEC_ATTRIBUTE,
  MAKE_OWISE_ATTRIBUTE, MAKE_PRINT_ATTRIBUTE, MAKE_ATTRIBUTE_LIST, CONDITIONAL_COMMAND,
  UNIFY_LIST, MAKE_TRIVIAL, MAKE_ALL, MAKE_APPLICATION,
  MAKE_TOP, MAKE_CONCATENATION, MAKE_UNION, MAKE_ITERATION,
  MAKE_BRANCH, MAKE_TEST, MAKE_STRATEGY_LIST, MAKE_SUBSTITUTION,
  MAKE_PRINT_LIST
}

Public Member Functions

int getNrProductions ()
const IntSetgetTokenSet ()
void insertBubbleProduction (int lhs, int lowerBound, int upperBound, int leftParenCode, int rightParenCode, const Vector< int > &excluded, int bubbleSpecIndex)
void insertIterSymbolTerminal (int iterSymbolNameCode, int codeToUse)
void insertProduction (int lhs, const Vector< int > &rhs, int prec, const Vector< int > &gather, int action=NOP, int data=NONE, int data2=NONE)
void insertSpecialTerminal (int tokenProperty, int codeToUse)
void insertStatement ()
void insertVariableTerminal (int sortNameCode, int codeToUse)
void makeAssignment (int node, Vector< Term * > &variables, Vector< Term * > &values)
void makeMatchCommand (Term *&pattern, Term *&subject, Vector< ConditionFragment * > &condition)
void makeSearchCommand (Term *&initial, int &searchType, Term *&target, Vector< ConditionFragment * > &condition)
void makeStrategyCommand (Term *&subject, StrategyExpression *&strategy)
void makeSubstitution (int node, Vector< Term * > &variables, Vector< Term * > &values)
void makeTerms (Term *&first, Term *&second)
void makeUnifyCommand (Vector< Term * > &lhs, Vector< Term * > &rhs)
 MixfixParser (MixfixModule &client)
int parseSentence (const Vector< Token > &original, int root, int &firstBad, int begin, int nrTokens)

Private Types

enum  Flags { NONEXEC = 1, OWISE = 2, PRINT = 4 }
typedef map< int, int > IntMap

Private Member Functions

SortgetSort (int node)
void makeAttributePart (int node, int &label, int &metadata, FlagSet &flags, Vector< int > &printNames, Vector< Sort * > &printSorts)
void makeCondition (int node, Vector< ConditionFragment * > &condition)
ConditionFragmentmakeConditionFragment (int node)
void makePrintList (int node, Vector< int > &names, Vector< Sort * > &sorts)
void makeStatement (int node)
void makeStatementPart (int node, int label, int metadata, FlagSet &flags, const Vector< int > &printNames, const Vector< Sort * > &printSorts)
StrategyExpressionmakeStrategy (int node)
void makeStrategyList (int node, Vector< StrategyExpression * > &strategies)
TermmakeTerm (int node)
 NO_COPYING (MixfixParser)
int translateSpecialToken (int code)

Private Attributes

Vector< Actionactions
bool bubblesAllowed
MixfixModuleclient
int currentOffset
const Vector< Token > * currentSentence
IntMap iterSymbolTerminals
int nrParses
Parser parser
Vector< int > sentence
Vector< int > specialTerminals
IntSet tokens
IntMap variableTerminals

Detailed Description

Definition at line 37 of file mixfixParser.hh.


The documentation for this class was generated from the following files:

Generated by  Doxygen 1.6.0   Back to index