当前位置: 首页>>代码示例>>C++>>正文


C++ DFA::Print方法代码示例

本文整理汇总了C++中DFA::Print方法的典型用法代码示例。如果您正苦于以下问题:C++ DFA::Print方法的具体用法?C++ DFA::Print怎么用?C++ DFA::Print使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DFA的用法示例。


在下文中一共展示了DFA::Print方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Run

	int Program::Run(int argc, char* argv[])
	{
		string regex = "";
		bool showDiag = false;
		switch (argc)
		{
		case 1:
			// empty regular expression
			break;
		case 2:
			// one regular expression
			regex = argv[1];
			break;
		case 3:
			// -a <regexp>
			// 'debug' mode
			regex = argv[1];
			if (strcmp("-a", argv[2]) != 0)
			{
				cout << argv[0] << " error: wrong argument '" << argv[2] << "'. Please specify '-a' to enter debug mode." << endl;
				regex = argv[1];
				return 1;
			}
			showDiag = true;
			break;
		default:
			// too many arguments
			cout << argv[0] << " error: too many arguments." << endl;
			return 1;
		}
		try
		{
			if (regex == "")
				regex = "()";
			LexerSequence sequence = Lexer::parse(regex);
			DFA dfa = RegexpSyntaxAnalyzer::parse(sequence);
			string s;
			if (showDiag)
			{
				dfa.Print();
			}
			else
			{
			while (getline(cin, s))
				{
					if (dfa.Match(s))
						cout << s << endl;
				}
			}
		}
		catch (LexerException e)
		{
			cout << argv[0] << " error: lexical parser exception: '" << e.message().c_str() << "'." << endl;
			return 1;
		}
		catch (SyntaxException e)
		{
			cout << argv[0] << " error: syntax analyzer exception: '" << e.message().c_str() << "'." << endl;
			return 1;
		}
		catch (RegexpException e)
		{
			cout << argv[0] << " error: unknown filter exception: '" << e.message().c_str() << "'." << endl;
			return 1;
		}
		catch (const char* s)
		{
			cout << argv[0] << " error: const char* exception: '" << s << "'." << endl;
			return 1;
		}
		catch (...)
		{
			cout << argv[0] << " error: unknown exception." << endl;
			return 1;
		}
		return 0;
	}
开发者ID:tombouctou,项目名称:msu-cmc-practice,代码行数:77,代码来源:Program.cpp


注:本文中的DFA::Print方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。