appclass.sm

来自「SMC takes a state machine stored in a .s」· SM 代码 · 共 138 行

SM
138
字号
// -*- mode: text; mode: auto-fill; tab-width: 4; fill-column: 65; -*-%{'' The contents of this file are subject to the Mozilla Public' License Version 1.1 (the "License"); you may not use this file' except in compliance with the License. You may obtain a copy of' the License at http://www.mozilla.org/MPL/' ' Software distributed under the License is distributed on an "AS' IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or' implied. See the License for the specific language governing' rights and limitations under the License.' ' The Original Code is State Machine Compiler (SMC).' ' The Initial Developer of the Original Code is Charles W. Rapp.' Portions created by Charles W. Rapp are' Copyright (C) 2000 - 2003 Charles W. Rapp.' All Rights Reserved.' ' Contributor(s): '' State Machine'	AppClass'' Description'  This state machine is recognizes the regular expression wcw(r) or'  palindromes.'' RCS ID' $Id: AppClass.sm,v 1.2 2005/06/03 19:58:29 cwrapp Exp $'' CHANGE LOG' $Log: AppClass.sm,v $' Revision 1.2  2005/06/03 19:58:29  cwrapp' Further updates for release 4.0.0'' Revision 1.1  2005/05/28 18:15:25  cwrapp' Added VB.net examples 1 - 4.'' Revision 1.0  2004/05/30 21:35:40  charlesr' Initial revision'%}%start StartMap::PushIt%class AppClass%map ZerosMap%%// State	Transition		End State           Action(s)PushIt{        	Zero			push(PushIt)            {}			One				push(OnesMap::PushIt)		{}			C				PopIt					{}			OK				PopIt					{}			Error_			StartMap::Unacceptable  {EmptyStateStack();}}PopIt{			Zero			pop(OK)				{}			Default			pop(Error_)			{}}Default{			EOS				StartMap::Unacceptable {                                                EmptyStateStack();                                                Unacceptable();                                                }			Unknown			StartMap::Unacceptable  {EmptyStateStack();}}%%%map OnesMap%%// State	Transition		End State           Action(s)PushIt{			Zero			push(ZerosMap::PushIt)		{}			One				push(PushIt)            {}			C				PopIt					{}			OK				PopIt					{}			Error_			StartMap::Unacceptable  {EmptyStateStack();}}PopIt{			One				pop(OK)				{}			Default			pop(Error_)			{}}Default{			EOS				StartMap::Unacceptable  {                                                EmptyStateStack();                                                Unacceptable();                                                }			Unknown			StartMap::Unacceptable	{EmptyStateStack();}}%%%map StartMap%%// State	Transition		End State           Action(s)PushIt{			Zero			push(ZerosMap::PushIt)		{}			One				push(OnesMap::PushIt)		{}			C				PopIt					{}			OK				PopIt					{}			Error_			Unacceptable		{}}PopIt{			EOS				Acceptable			{Acceptable();}			Default			Unacceptable		{}}Acceptable{}Unacceptable{		 	Default			nil					{}}Default{			EOS				Unacceptable		{Unacceptable();}			Unknown			Unacceptable		{}}%%

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?