⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stoplight.sm

📁 SMC takes a state machine stored in a .sm file and generates a State pattern in twelve programming l
💻 SM
字号:
%{// -*- mode: text; 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): //// State Machine//  Stoplight//// Description//  This state machine changes the stop lights.//// RCS ID// $Id: Stoplight.sm,v 1.2 2007/08/05 13:30:48 cwrapp Exp $//// CHANGE LOG// $Log: Stoplight.sm,v $// Revision 1.2  2007/08/05 13:30:48  cwrapp// Version 5.0.1 check-in. See net/sf/smc/CODE_README.txt for more information.//// Revision 1.1  2005/05/28 12:49:21  cwrapp// Added Ant examples 1 - 7.//// Revision 1.0  2004/05/31 13:06:14  charlesr// Initial revision//%}%start StopMap::Stopped%class Stoplight%package smc_ex4%map StopMap%%Stopped{    Start        EastWestGreen        {            InitLights();            TurnLight("NSLIGHT", "RED");            TurnLight("EWLIGHT", "GREEN");            InformCanvas("EastWest");            SetTimer("EastWest");        }    // Ignore pause, continue and stop because we ain't running.    Pause        nil        {}    Continue        nil        {}    Stop        nil        {}}EastWestGreen{    Timeout        EastWestYellow        {            TurnLight("EWLIGHT", "YELLOW");            InformCanvas("YELLOW");            SetTimer("Yellow");        }}EastWestYellow{    Timeout        NorthSouthGreen        {            TurnLight("EWLIGHT", "RED");            TurnLight("NSLIGHT", "GREEN");            InformCanvas("NorthSouth");            SetTimer("NorthSouth");        }}NorthSouthGreen{    Timeout        NorthSouthYellow        {            TurnLight("NSLIGHT", "YELLOW");            InformCanvas("YELLOW");            SetTimer("Yellow");        }}NorthSouthYellow{    Timeout        EastWestGreen        {            TurnLight("NSLIGHT", "RED");            TurnLight("EWLIGHT", "GREEN");            InformCanvas("EastWest");            SetTimer("EastWest");        }}Default{    // Ignore start because this object is already running.    Start        nil        {}    Continue        nil        {}    // Don't stop timers. Let them expire. The pause map will    // catch them and pass them back when popped.    Pause        push(PauseMap1::Paused)        {            PauseTimer();        }    // Stop timers because this demo is stopping.    Stop        Stopped        {            StopTimer();            InitLights();        }}%%%map PauseMap1%%Paused{    Timeout        PauseTimeout        {}    Continue        pop(Continue)        {            ContinueTimer();        }}PauseTimeout{    Continue        pop(Timeout)        {}}Default{    // Ignore start and pause.    Start        nil        {}    Pause        nil        {}    Stop        pop(Stop)        {}}%%

⌨️ 快捷键说明

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