public bool TryInterpret(CodeInterpreter compiler, CodeReader reader, out IProcess process) { var backup = reader.Backup(); process = null; if (compiler.TryInterpret(reader, Priority, out var before)) { if (reader.ReadOperator(out var operatorText) && OperatorText == operatorText) { if (compiler.TryInterpret(reader, Priority, out var after)) { process = CreateProcess(before, after); return(true); } } } backup.Restore(); return(false); }