public override void EnterIfDef(VariableStateCalculatorGrammarParser.IfDefContext context) { Int32 usedParameter = Int32.Parse(context.NUMBER().GetText()); FrameStack.Push(new ExecutionFrame(usedParameter)); base.EnterIfDef(context); }
public static FrameStack reloadFrame(FrameStack fs, SysLinkedNode xs) { Frame fr = Frame.create(xs); FrameStack nextFS = fs.getNext(); return FrameStack.cons(nextFS, fr); }
public override void ExitIfDef(VariableStateCalculatorGrammarParser.IfDefContext context) { ExecutionFrame frame = FrameStack.Pop(); FrameStack.Peek().Merge(frame); base.ExitIfDef(context); }
public override void VisitLocalDeclarationStatement(LocalDeclarationStatementSyntax node) { if (node.Declaration.Variables.Count != 1) { // unexpected case throw new NotSupportedException(); } VariableDeclaratorSyntax variable = node.Declaration.Variables[0]; String variableId = variable.Identifier.Text; if (variableId != VariableName) { // unexpected case throw new NotSupportedException(); } IList <SyntaxNode> variableChildren = variable.ChildNodes().ToList(); if (variableChildren.Count == 1 && variableChildren[0] is EqualsValueClauseSyntax) { EqualsValueClauseSyntax value = (EqualsValueClauseSyntax)variableChildren[0]; FrameStack.Peek().States.Clear(); FrameStack.Peek().States.Add(new ExecutionState(Int32.Parse(value.Value.GetText().ToString()))); } base.VisitLocalDeclarationStatement(node); }
public override void EnterAssignmentDef(VariableStateCalculatorGrammarParser.AssignmentDefContext context) { Int32 value = Int32.Parse(context.NUMBER().GetText()); FrameStack.Peek().States.Clear(); FrameStack.Peek().States.Add(new ExecutionState(value)); base.EnterAssignmentDef(context); }
public static FrameStack retopr(FrameStack fs, ref Object v) { Frame x = fs.getAtPos(0); v = x.getFromTop(0); fs = fs.getNext(); return fs; }
public static FrameStack push(FrameStack fs, Object v) { Frame x = fs.getValue(); FrameStack sStack = fs.getNext(); Frame x2 = Frame.push(x, v); return FrameStack.cons(sStack, x2); }
public override void EnterXVariableDef(VariableStateCalculatorGrammarParser.XVariableDefContext context) { ITerminalNode valueNode = context.NUMBER(); if (valueNode != null) { Int32 value = Int32.Parse(valueNode.GetText()); FrameStack.Peek().States.Clear(); FrameStack.Peek().States.Add(new ExecutionState(value)); } base.EnterXVariableDef(context); }
internal void StopAndPop(Frame frame) { var removed = FrameStack.Pop(); if (removed != frame) { throw new Exception($"Profiler stack mismatch! {removed.Node} != {frame.Node}!"); } removed.Stop(); if (FrameStack.Count > 0) { var top = FrameStack.Peek(); top.Resume(); } }
internal Frame PushAndStart(Node node) { var top = FrameStack.Peek(); if (!top.ChildFrames.TryGetValue(node, out var frame)) { frame = new Frame(node, this); top.ChildFrames.Add(node, frame); } top.Pause(); FrameStack.Push(frame); frame.Start(); return(frame); }
public override void VisitIfStatement(IfStatementSyntax node) { if (node.Else != null) { // unexpected case throw new NotSupportedException(); } Int32 usedParameter = ExtractParameterFromCondition(node.Condition); FrameStack.Push(new ExecutionFrame(usedParameter)); base.VisitIfStatement(node); ExecutionFrame frame = FrameStack.Pop(); FrameStack.Peek().Merge(frame); }
public Stream GetSuspensionStream() { var stack = new FrameStack { Back = (from pse in BackStack select pse.Parameter + "").ToList(), Current = CurrentPageStackEntry.Parameter + "", Forward = (from pse in ForwardStack select pse.Parameter + "").ToList(), }; var ms = new MemoryStream(); var serializer = new DataContractJsonSerializer(typeof(FrameStack), new DataContractJsonSerializerSettings()); serializer.WriteObject(ms, stack); ms.Position = 0; return(ms); }
public override void VisitAssignmentExpression(AssignmentExpressionSyntax node) { IdentifierNameSyntax left = node.Left as IdentifierNameSyntax; LiteralExpressionSyntax right = node.Right as LiteralExpressionSyntax; if (left == null || right == null) { // unexpected case throw new NotSupportedException(); } String identifier = left.Identifier.Text; Object value = right.Token.Value; if (identifier != VariableName) { // unexpected case throw new NotSupportedException(); } FrameStack.Peek().States.Clear(); FrameStack.Peek().States.Add(new ExecutionState((Int32)value)); base.VisitAssignmentExpression(node); }
public static FrameStack addFrame(FrameStack fs, SysLinkedNode xs) { Frame fr = Frame.create(xs); return FrameStack.cons(fs, fr); }
public static FrameStack deleteFrame(FrameStack fs) { return fs.getNext(); }
public static Object get(FrameStack fs, int frameno, int index) { Frame x = fs.getAtPos(frameno); return x.getFromBottom(index); }
public ThreadInfo(Node root) { Root = new Frame(root, this); Root.Start(); FrameStack.Push(Root); }
public static FrameStack newFrame(FrameStack fs) { return FrameStack.cons(fs, Frame.create()); }
public override void EnterEvaluateBodyDef(VariableStateCalculatorGrammarParser.EvaluateBodyDefContext context) { FrameStack.Push(new ExecutionFrame()); base.EnterEvaluateBodyDef(context); }