Files
kraken/include/ParseAction.h

34 lines
744 B
C
Raw Normal View History

2013-05-23 01:35:54 -04:00
#ifndef PARSE_ACTION_H
#define PARSE_ACTION_H
#ifndef NULL
#define NULL ((void*)0)
2013-05-23 01:35:54 -04:00
#endif
#include "util.h"
2013-05-23 01:35:54 -04:00
#include "ParseRule.h"
#include <vector>
#include <string>
class ParseAction {
public:
enum ActionType { INVALID, REDUCE, SHIFT, ACCEPT, REJECT };
ParseAction(ActionType action);
ParseAction(ActionType action, ParseRule* reduceRule);
ParseAction(ActionType action, int shiftState);
2013-05-23 01:35:54 -04:00
~ParseAction();
bool const equalsExceptLookahead(const ParseAction &other);
bool const operator==(const ParseAction &other);
bool const operator!=(const ParseAction &other);
2013-05-23 01:35:54 -04:00
std::string toString();
static std::string actionToString(ActionType action);
ActionType action;
ParseRule* reduceRule;
int shiftState;
};
#endif