private static bool DoMath(Interpreter interpreter, Token <R> firstToken, PatternReader reader, State state) { bool isStatement = reader.Take(R.At); var tokens = reader.ReadToScopeClose(R.LeftParen, R.RightParen, Brackets.All); interpreter.PushState(State.CreateSub(reader.Source, tokens, interpreter)); state.AddPreBlueprint(new DelegateBlueprint(interpreter, _ => { var v = Parser.Calculate(_, _.PopResultString()); if (!isStatement) { _.Print(_.FormatNumber(v)); } return(false); })); return(true); }