appclass.sm

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

SM
135
字号
// -*- tab-width: 4; -*-//// 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)://      Port to C by Francois Perrad, francois.perrad@gadz.org//// State Map//  This state map is recognizes the regular expression wcw(r) or//  palindromes.//// RCS ID// $Id: AppClass.sm,v 1.2 2007/08/05 13:41:14 cwrapp Exp $//// CHANGE LOG// $Log: AppClass.sm,v $// Revision 1.2  2007/08/05 13:41:14  cwrapp// Version 5.0.1 check-in. See net/sf/smc/CODE_README.txt for more information.//// Revision 1.1  2005/06/16 18:00:35  fperrad// Added C examples 1 - 4////%start StartMap::PushIt%class AppClass%header AppClass.h%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 {}}%%%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 {}}%%%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 + -
显示快捷键?