public override State Build(FSMRepresentationBuilder fb) { var retval = new ConcreteStateImpl(this.StateName); fb.AddBuiltConcreteState(retval); return(retval); }
public override State Build(FSMRepresentationBuilder fb) { ConcreteSubStateImpl retval = null; var sr = fb.GetStateRep(this.SuperStateName); if (sr != null) { sr.Build(fb); SuperState superState = fb.GetBuiltSuperState(this.SuperStateName); if (superState != null) { retval = new ConcreteSubStateImpl(this.StateName, superState); fb.AddBuiltConcreteState(retval); } else { var e = $"Could not build sub state ({this.StateName}) because super state ({this.SuperStateName}) had an error."; fb.SetError(); fb.Error(sr.SyntaxLocation, e); } } else { var e = $"Super state ({this.SuperStateName}) was not declared."; fb.SetError(); fb.Error(null, e); } return(retval); }
public static FSMRepresentationBuilder GetDefaultTestConfig( bool usesExceptions = true, string version = "") { var builder = new FSMRepresentationBuilder(); builder.AddPragma("namespace TurnStyleExample"); builder.SetName("TurnStyle"); builder.SetContextName("TurnStyleContext"); builder.SetVersion(version); if (usesExceptions) { builder.SetException("Exception"); } builder.AddBuiltConcreteState(new ConcreteStateImpl("Locked")); builder.AddBuiltConcreteState(new ConcreteStateImpl("Unlocked")); builder.SetInitialState("Locked"); builder.AddTransition("Coin", "Unlocked", null); builder.AddTransition("Pass", "Locked", null); builder.AddAction("Unlock"); builder.AddAction("Lock"); builder.AddAction("Alarm"); builder.AddAction("Thankyou"); return(builder); }
protected static SMCSharpGenerator InitWithBuilder(FSMRepresentationBuilder fsmbld) { var retval = new SMCSharpGenerator(); retval.FSMInit(fsmbld.StateMap, "fileName"); retval.Initialize(); return(retval); }
public void NoNamespacePragma() { var fsmbld = new FSMRepresentationBuilder(); var actual = GenerateUsing(fsmbld); Assert.That(actual, Is.Empty); }
public static FSMRepresentationBuilder InitBuildStateWithTwoUsings() { var builder = new FSMRepresentationBuilder(); builder.AddPragma("using aClass"); builder.AddPragma("using bClass"); return(builder); }
private FSMRepresentationBuilder InitBuilderState() { var builder = new FSMRepresentationBuilder(); builder.AddBuiltConcreteState(new ConcreteStateImpl("Locked")); builder.AddBuiltConcreteState(new ConcreteStateImpl("Unlocked")); builder.Build(); return(builder); }
public void ConcreteStates() { FSMRepresentationBuilder fsmbld = InitBuilderState(); StateMap map = fsmbld.StateMap; FSMGenerator fsm = new SMCSharpGenerator(); fsm.FSMInit(map, "TurnStyle"); fsm.Initialize(); Assert.AreEqual(2, fsm.ConcreteStates.Count()); }
public override State Build(FSMRepresentationBuilder fb) { // SuperSub states depend upon other states, and so must request // that they be built first. Also, they are depended upon by other // states, so they must ignore duplicate requests for being built. State retval = null; if (!fb.IsStateBuilt(this.StateName)) { var sr = fb.GetStateRep(this.SuperStateName); if (sr != null) { sr.Build(fb); var superState = fb.GetBuiltSuperState(this.SuperStateName); if (superState != null) { var s = new SuperSubStateImpl(this.StateName, superState); retval = s; fb.AddBuiltSuperState(s); } else { var e = "Could not build super sub state (" + this.StateName + ") because super state (" + this.SuperStateName + ") had an error."; fb.SetError(); fb.Error(sr.SyntaxLocation, e); } } else { var e = $"Super state ({this.SuperStateName}) was not declared."; fb.SetError(); fb.Error(sr.SyntaxLocation, e); } } else { retval = fb.GetBuiltState(this.StateName); } return(retval); }
public override State Build(FSMRepresentationBuilder fb) { // Many other states may depend upon super states. Thus there may // be many requests for them to be built. Thus we have to check to // see if its has already been built, and ignore any subsequent // requests. // // Also, since super states do not depend upon anyone, they can be // built as soon as they are seen. SuperState retval; if (!fb.IsStateBuilt(this.StateName)) { var ss = new SuperStateImpl(this.StateName); fb.AddBuiltSuperState(ss); retval = ss; } else { retval = fb.GetBuiltSuperState(this.StateName); } return(retval); }
protected string GenerateUsing(FSMRepresentationBuilder fsmbld) { var fsm = InitWithBuilder(fsmbld); return(this.gen.GenerateCode(fsm)); }
public void SetUp() { this.stateRep = new SubStateRep(StateName, SuperStateName, null); this.builder = new FSMRepresentationBuilder(); }
public abstract State Build(FSMRepresentationBuilder fb);