/* Web Polygraph       http://www.web-polygraph.org/
 * (C) 2003-2006 The Measurement Factory
 * Licensed under the Apache License, Version 2.0 */

#ifndef POLYGRAPH__PGL_PGLPARSER_H
#define POLYGRAPH__PGL_PGLPARSER_H

#include "xparser/GParser.h"

class PglParser : public GParser {
	public:
		PglParser(Lexer *l);
		virtual ~PglParser();

	protected:
		virtual int actionTable(int, int);
		virtual ReduceInfo *reduceTable(int);
};

// these are needed by lexer, argh!
/* internal _tokens */
#define _ERR_TOKEN (0)
#define _EOF_TOKEN (1)
/* tokens defined in the language specs */
#define ID_TOKEN (2)
#define INT_TOKEN (3)
#define NUM_TOKEN (4)
#define TIME_TOKEN (5)
#define SIZE_TOKEN (6)
#define BOOL_TRUE_TOKEN (7)
#define BOOL_FALSE_TOKEN (8)
#define SQW_STR_TOKEN (9)
#define DQW_STR_TOKEN (10)
#define BQW_STR_TOKEN (11)
#define NUM_PERC_TOKEN (12)
#define CMNT_LINE_TOKEN (13)
#define CMNT_OPEN_TOKEN (14)
#define CMNT_CLOSE_TOKEN (15)
#define EQUAL_TOKEN (16)
#define NEQUAL_TOKEN (17)
#define LT_TOKEN (18)
#define LTE_TOKEN (19)
#define GT_TOKEN (20)
#define GTE_TOKEN (21)
#define BOOL_AND_TOKEN (22)
#define BOOL_OR_TOKEN (23)
#define BOOL_XOR_TOKEN (24)
#define NOT_TOKEN (25)
#define PLUS_TOKEN (26)
#define MINUS_TOKEN (27)
#define MUL_TOKEN (28)
#define DIV_TOKEN (29)
#define POWER_TOKEN (30)
#define ASGN_TOKEN (31)
#define LEFTPARENT_TOKEN (32)
#define RIGHTPARENT_TOKEN (33)
#define RIGHTBRACKET_TOKEN (34)
#define LEFTBRACKET_TOKEN (35)
#define LEFTBRACE_TOKEN (36)
#define RIGHTBRACE_TOKEN (37)
#define PERIOD_TOKEN (38)
#define SEMICOLON_TOKEN (39)
#define COLON_TOKEN (40)
#define COMMA_TOKEN (41)
#define POUND_TOKEN (42)
#define THRU_TOKEN (43)
#define CLONE_TOKEN (44)
#define kw_lmt_TOKEN (45)
#define kw_now_TOKEN (46)
#define kw_nmt_TOKEN (47)
#define kw_if_TOKEN (48)
#define kw_then_TOKEN (49)
#define kw_else_TOKEN (50)
#define kw_every_TOKEN (51)
#define kw_do_TOKEN (52)
#define RE_CUSTOM_TOKEN (53)
#define RE_DEFAULT_TOKEN (54)


#endif


syntax highlighted by Code2HTML, v. 0.9.1