亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? parser.h

?? Full support for extended regular expressions (those with intersection and complement); Support for
?? H
?? 第 1 頁 / 共 2 頁
字號:

/* An SLR(1) parser generated by Whale */

#ifndef WHALE_GENERATED_PARSER__PARSER_H

#define WHALE_GENERATED_PARSER__PARSER_H

#include <iostream>
#include <vector>

namespace Whale
{
	struct Symbol;
	struct Terminal;
	struct Nonterminal;
	struct TerminalEOF;
	struct TerminalError;
	struct TerminalId;
	struct TerminalString;
	struct TerminalNumber;
	struct TerminalHexNumber;
	struct TerminalCode;
	struct TerminalArrow;
	struct TerminalSemicolon;
	struct TerminalImplication;
	struct TerminalAssign;
	struct TerminalComma;
	struct TerminalSlash;
	struct TerminalOr;
	struct TerminalAnd;
	struct TerminalNot;
	struct TerminalLeftParenthesis;
	struct TerminalRightParenthesis;
	struct TerminalLeftBracket;
	struct TerminalRightBracket;
	struct TerminalLoneAsterisk;
	struct TerminalLonePlus;
	struct TerminalSharpSign;
	struct TerminalCommercialAt;
	struct TerminalTwoDots;
	struct TerminalE;
	struct TerminalLess;
	struct TerminalGreater;
	struct TerminalLessOrEqual;
	struct TerminalGreaterOrEqual;
	struct TerminalEqual;
	struct TerminalNotEqual;
	struct TerminalKwReturn;
	struct TerminalKwSkip;
	struct TerminalKwAppend;
	struct TerminalKwCode;
	struct TerminalKwCall;
	struct TerminalKwCondition;
	struct TerminalKwRange;
	struct TerminalKwContains;
	struct TerminalKwIn;
	struct TerminalKwEof;
	struct TerminalKwError;
	struct TerminalKwTrue;
	struct TerminalKwFalse;
	struct TerminalKwStartConditions;
	
	struct NonterminalS;
	struct NonterminalRuleStatement;
	struct NonterminalActionStatement;
	struct NonterminalStartConditionsStatement;
	struct NonterminalOptionStatement;
	struct NonterminalInvalidStatement;
	struct NonterminalExpression;
	struct NonterminalExpressionDisjunction;
	struct NonterminalExpressionConjunction;
	struct NonterminalExpressionConcatenation;
	struct NonterminalExpressionComplement;
	struct NonterminalExpressionOmittable;
	struct NonterminalExpressionInParentheses;
	struct NonterminalExpressionIteration;
	struct NonterminalExpressionCondition;
	struct NonterminalExpressionRange;
	struct NonterminalExpressionContains;
	struct NonterminalExpressionEpsilon;
	struct NonterminalExpressionSymbol;
	struct NonterminalExpressionSharpSign;
	struct NonterminalExpressionS;
	struct NonterminalExpressionC;
	struct NonterminalExpressionC_Disjunction;
	struct NonterminalExpressionC_Conjunction;
	struct NonterminalExpressionC_Complement;
	struct NonterminalExpressionC_InParentheses;
	struct NonterminalExpressionC_Comparison;
	struct NonterminalExpressionC_In;
	struct NonterminalExpressionC_Constant;
	struct NonterminalPairOfExpressions;
	struct NonterminalStartConditionsExpression;
	struct NonterminalStartConditionsExpressionList;
	struct NonterminalStartConditionsExpressionAsterisk;
	struct NonterminalAction;
	struct NonterminalActionReturn;
	struct NonterminalActionSkip;
	struct NonterminalActionCodeII;
	struct Symbol
	{
		Symbol() : next_sibling(0) {}
		virtual bool is_terminal() const =0;
		virtual bool is_nonterminal() const =0;
		virtual ~Symbol() {}

		Symbol *next_sibling;
	};
	struct Terminal : Symbol
	{
		int line, column;
		char *text;
		
		void print_location(std::ostream &os) const
		{
			os << "line " << line << " column " << column;
		}
		bool is_terminal() const { return true; }
		bool is_nonterminal() const { return false; }
		virtual int number() const =0;
		~Terminal();
	};
	struct Nonterminal : Symbol
	{
		Nonterminal() : first_child(0) {}
		bool is_terminal() const { return false; }
		bool is_nonterminal() const { return true; }
		virtual int number() const =0;

		Symbol *first_child;
		~Nonterminal();
	};
	template<class Body> struct Iterator : Nonterminal
	{
		std::vector<Body *> body;
	};
	template<class BodyA, class BodyB> struct PairIterator : Nonterminal
	{
		std::vector<BodyA *> body_a;
		std::vector<BodyB *> body_b;
	};
	

} // namespace Whale

#include "dolphout.h"


#include "intervals.h"
#include <string>


namespace Whale
{
	struct Symbol;
	struct Terminal;
	struct Nonterminal;
	struct TerminalEOF : Terminal
	{
		int number() const { return 0; }
	};
	struct TerminalError : Terminal
	{
		int number() const { return 1; }
		
		std::vector<Symbol *> garbage;
		int error_position;
	};
	struct TerminalId : Terminal
	{
		int number() const { return 2; }
	};
	struct TerminalString : Terminal
	{
		int number() const { return 3; }
	};
	struct TerminalNumber : Terminal
	{
		int number() const { return 4; }
	};
	struct TerminalHexNumber : Terminal
	{
		int number() const { return 5; }
	};
	struct TerminalCode : Terminal
	{
		int number() const { return 6; }
	};
	struct TerminalArrow : Terminal
	{
		int number() const { return 7; }
	};
	struct TerminalSemicolon : Terminal
	{
		int number() const { return 8; }
	};
	struct TerminalImplication : Terminal
	{
		int number() const { return 9; }
	};
	struct TerminalAssign : Terminal
	{
		int number() const { return 10; }
	};
	struct TerminalComma : Terminal
	{
		int number() const { return 11; }
	};
	struct TerminalSlash : Terminal
	{
		int number() const { return 12; }
	};
	struct TerminalOr : Terminal
	{
		int number() const { return 13; }
	};
	struct TerminalAnd : Terminal
	{
		int number() const { return 14; }
	};
	struct TerminalNot : Terminal
	{
		int number() const { return 15; }
	};
	struct TerminalLeftParenthesis : Terminal
	{
		int number() const { return 16; }
	};
	struct TerminalRightParenthesis : Terminal
	{
		int number() const { return 17; }
	};
	struct TerminalLeftBracket : Terminal
	{
		int number() const { return 18; }
	};
	struct TerminalRightBracket : Terminal
	{
		int number() const { return 19; }
	};
	struct TerminalLoneAsterisk : Terminal
	{
		int number() const { return 20; }
	};
	struct TerminalLonePlus : Terminal
	{
		int number() const { return 21; }
	};
	struct TerminalSharpSign : Terminal
	{
		int number() const { return 22; }
	};
	struct TerminalCommercialAt : Terminal
	{
		int number() const { return 23; }
	};
	struct TerminalTwoDots : Terminal
	{
		int number() const { return 24; }
	};
	struct TerminalE : Terminal
	{
		int number() const { return 25; }
	};
	struct TerminalLess : Terminal
	{
		int number() const { return 26; }
	};
	struct TerminalGreater : Terminal
	{
		int number() const { return 27; }
	};
	struct TerminalLessOrEqual : Terminal
	{
		int number() const { return 28; }
	};
	struct TerminalGreaterOrEqual : Terminal
	{
		int number() const { return 29; }
	};
	struct TerminalEqual : Terminal
	{
		int number() const { return 30; }
	};
	struct TerminalNotEqual : Terminal
	{
		int number() const { return 31; }
	};
	struct TerminalKwReturn : Terminal
	{
		int number() const { return 32; }
	};
	struct TerminalKwSkip : Terminal
	{
		int number() const { return 33; }
	};
	struct TerminalKwAppend : Terminal
	{
		int number() const { return 34; }
	};
	struct TerminalKwCode : Terminal
	{
		int number() const { return 35; }
	};
	struct TerminalKwCall : Terminal
	{
		int number() const { return 36; }
	};
	struct TerminalKwCondition : Terminal
	{
		int number() const { return 37; }
	};
	struct TerminalKwRange : Terminal
	{
		int number() const { return 38; }
	};
	struct TerminalKwContains : Terminal
	{
		int number() const { return 39; }
	};
	struct TerminalKwIn : Terminal
	{
		int number() const { return 40; }
	};
	struct TerminalKwEof : Terminal
	{
		int number() const { return 41; }
	};
	struct TerminalKwError : Terminal
	{
		int number() const { return 42; }
	};
	struct TerminalKwTrue : Terminal
	{
		int number() const { return 43; }
	};
	struct TerminalKwFalse : Terminal
	{
		int number() const { return 44; }
	};
	struct TerminalKwStartConditions : Terminal
	{
		int number() const { return 45; }
	};
	
	struct NonterminalS : Nonterminal
	{
		struct BodyI : Nonterminal
		{
			int number() const { return 13; }
			
			Nonterminal *statements;
		};
		struct IteratorI : Iterator<NonterminalS::BodyI>
		{
			int number() const { return 14; }
		};
		
		int number() const { return 1; }
		
		std::vector<Nonterminal *> statements;
	};
	struct NonterminalRuleStatement : Nonterminal
	{
		int number() const { return 2; }
		
		TerminalId *left;
		TerminalArrow *arrow;
		NonterminalExpression *right;
	};
	struct NonterminalActionStatement : Nonterminal
	{
		int number() const { return 3; }
		
		Symbol *expr;
		TerminalLess *a4;
		NonterminalStartConditionsExpression *start_conditions;
		TerminalGreater *a6;
		TerminalImplication *arrow;
		NonterminalAction *action;
	};
	struct NonterminalStartConditionsStatement : Nonterminal
	{
		struct BodyIa : Nonterminal
		{
			int number() const { return 15; }
			
			TerminalId *names;
		};
		struct BodyIb : Nonterminal
		{
			int number() const { return 16; }
		};
		struct IteratorI : PairIterator<NonterminalStartConditionsStatement::BodyIa, NonterminalStartConditionsStatement::BodyIb>
		{
			int number() const { return 17; }
		};
		
		int number() const { return 4; }
		
		TerminalKwStartConditions *a1;
		std::vector<TerminalId *> names;
		TerminalSemicolon *a4;
	};
	struct NonterminalOptionStatement : Nonterminal
	{
		struct BodyIa : Nonterminal
		{
			int number() const { return 18; }
			
			Terminal *right;
		};
		struct BodyIb : Nonterminal

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品香蕉一区二区三区| 五月天激情综合网| 日韩三级视频在线看| 欧美视频在线播放| 在线亚洲高清视频| 欧美在线视频全部完| 久久综合九色综合97婷婷女人 | 日本一二三不卡| 久久久久9999亚洲精品| 国产亚洲精品免费| 中文字幕日本乱码精品影院| 亚洲欧美另类小说视频| 亚洲一区二区在线免费观看视频| 亚洲午夜免费福利视频| 图片区小说区国产精品视频| 蜜臀av一区二区| 国产精品资源网| 91亚洲精品久久久蜜桃| 欧美丝袜丝nylons| 欧美成人免费网站| 17c精品麻豆一区二区免费| 亚洲蜜桃精久久久久久久| 五月天激情综合| 国产高清久久久久| 色丁香久综合在线久综合在线观看| 91激情在线视频| 日韩精品一区二区三区视频 | 综合电影一区二区三区 | 欧美成人在线直播| 中国色在线观看另类| 亚洲国产精品一区二区www在线| 日本不卡中文字幕| 不卡免费追剧大全电视剧网站| 欧美自拍丝袜亚洲| 国产午夜精品一区二区| 亚洲一区在线视频| 国产在线观看免费一区| 91久久免费观看| 精品国产精品网麻豆系列| 亚洲欧美自拍偷拍| 黄色精品一二区| 欧美日韩一二三| 国产精品全国免费观看高清| 日本网站在线观看一区二区三区| 欧美日韩国产一二三| 久久色视频免费观看| 一区二区三区精品在线| 国产一区二区三区国产| 欧美午夜精品久久久久久孕妇 | 欧美老年两性高潮| 国产精品入口麻豆九色| 免费成人在线播放| 欧美视频你懂的| 国产精品黄色在线观看| 国产精品一卡二卡在线观看| 在线综合视频播放| 亚洲最新视频在线观看| 成人av电影在线播放| 精品国产乱码久久久久久闺蜜| 亚洲福利视频三区| 色94色欧美sute亚洲线路一久| 久久久久九九视频| 精品一区二区三区在线观看| 欧美日韩高清一区| 亚洲最大成人网4388xx| 91麻豆国产香蕉久久精品| 国产精品美女久久久久av爽李琼| 久久se精品一区二区| 精品国产伦一区二区三区免费| 三级欧美韩日大片在线看| 欧美调教femdomvk| 一区二区三区精品久久久| 在线看国产一区| 午夜激情一区二区| 精品视频全国免费看| 一二三区精品视频| 欧美午夜片在线看| 图片区小说区国产精品视频| 欧美精品99久久久**| 天堂一区二区在线免费观看| 欧美精品xxxxbbbb| 美女尤物国产一区| 久久免费美女视频| 高清不卡一二三区| 国产精品久久久久永久免费观看 | 在线看国产日韩| 亚洲成人一二三| 欧美一区二区日韩| 国产在线不卡视频| 久久蜜桃av一区二区天堂 | 91麻豆免费观看| 亚洲在线观看免费视频| 欧美绝品在线观看成人午夜影视| 婷婷综合另类小说色区| 欧美电影免费观看高清完整版在线观看| 日本亚洲三级在线| 国产亚洲精品免费| 欧美中文字幕一区| 久久精品av麻豆的观看方式| 中文字幕 久热精品 视频在线| 91色|porny| 99精品视频一区二区三区| 洋洋成人永久网站入口| 欧美大黄免费观看| 风间由美一区二区av101| 亚洲乱码国产乱码精品精98午夜| 欧美人伦禁忌dvd放荡欲情| 蜜臀av国产精品久久久久| 国产女同互慰高潮91漫画| 欧美日韩免费高清一区色橹橹 | 亚洲国产高清在线| 欧美亚男人的天堂| 国产美女精品在线| 亚洲第一激情av| 中文字幕一区二区三区在线播放 | 欧美r级电影在线观看| 99久久精品免费看| 蜜桃一区二区三区在线观看| 17c精品麻豆一区二区免费| 日韩一区二区三区四区 | 一区二区三区欧美亚洲| 亚洲精品一区二区在线观看| 欧美亚洲高清一区| 国产成人午夜精品影院观看视频| 三级在线观看一区二区| 亚洲人精品一区| 国产午夜亚洲精品午夜鲁丝片| 欧美片网站yy| 一本大道av一区二区在线播放 | 1024精品合集| 国产亚洲精品中文字幕| 日韩精品中文字幕在线不卡尤物| 欧美在线综合视频| 99精品久久99久久久久| 国产成人在线网站| 久久成人羞羞网站| 男男视频亚洲欧美| 亚洲电影中文字幕在线观看| 综合久久久久久久| 中文字幕亚洲区| 中文字幕第一区二区| 国产亚洲精品7777| 亚洲精品一区二区三区99| 日韩视频在线你懂得| 欧美精品电影在线播放| 欧美美女一区二区| 欧美日韩国产区一| 欧美日韩免费不卡视频一区二区三区 | 麻豆91在线看| 蜜桃一区二区三区在线| 性感美女极品91精品| 亚洲电影一级黄| 亚洲精品国产成人久久av盗摄 | 亚洲一区二区三区视频在线播放| 中文字幕亚洲视频| 1024成人网| 一区二区三区四区高清精品免费观看 | 在线一区二区三区四区| 91免费在线播放| 欧美在线视频日韩| 69p69国产精品| 26uuu欧美| 国产精品麻豆99久久久久久| 中文字幕字幕中文在线中不卡视频| 中文字幕亚洲电影| 亚洲午夜国产一区99re久久| 奇米影视一区二区三区| 国产一区欧美二区| 91在线你懂得| 欧美日韩精品电影| www亚洲一区| 亚洲欧美日韩中文播放| 亚洲成人一区二区在线观看| 玖玖九九国产精品| 成人av在线看| 欧美日韩你懂得| 欧美成人三级在线| 中文字幕一区二区三区不卡在线| 一区二区在线看| 精品一区二区三区在线播放| 岛国av在线一区| 欧美唯美清纯偷拍| 26uuu欧美| 亚洲一区二区三区在线看| 久久精品国产免费| 99精品欧美一区二区蜜桃免费| 欧美精品久久一区二区三区| 2023国产精华国产精品| 亚洲精品免费在线观看| 另类欧美日韩国产在线| 99精品在线观看视频| 精品日韩一区二区三区免费视频| 国产精品国产三级国产普通话三级 | 精品1区2区3区| 久久久精品黄色| 天天操天天干天天综合网| 成人晚上爱看视频| 日韩视频一区二区三区在线播放| 自拍视频在线观看一区二区| 蜜桃视频在线一区|