void InitParser() { parser = new ExpParser("0"); parser.parameters.Add(t); x = "t"; y = "cos(t * pi)"; }
public override Exp Parse() { var wordTree = this.ExpContext.ExpWordDictionary; WordSegmenter segmenter = new WordSegmenter(wordTree); List <Token> tokens = new List <Token>(); foreach (var tok in RawTokens) { if (tok.Kind == TokenKind.Ident) { Token[] newTokens = segmenter.Split(tok); tokens.AddRange(newTokens); } else if (tok.Kind != TokenKind.NewLine) { tokens.Add(tok); } } ExpParser parser = new ExpParser(); Exp exp = parser.Parse(tokens, this.FileContext); //exp.ParentExp = this.ParentExp; exp.SetContext(this.ExpContext); return(exp); }
static void Main(string[] args) { var lexer = new ExpLexer(new System.IO.StreamReader("test.txt")); var parse = new ExpParser(lexer); var result = parse.s().res.Value; Console.WriteLine(result); Console.ReadKey(); }
public Exp Parse(ExpRaw rawExp, ContextExp expContext) { ExpContext = expContext; List <LexToken> tokens = Seg(rawExp.RawTokens); ExpParser parser = new ExpParser(); Exp exp = parser.Parse(tokens, ExpContext); Exp exp2 = exp.Analy(); return(exp2); }
public void Export() { string headerFile = VariableDefines.XML_PATH.Replace(".m2d", ".m2h"); List <PackFileEntry> files = FileList.ReadFile(File.OpenRead(headerFile)); MemoryMappedFile memFile = MemoryMappedFile.CreateFromFile(VariableDefines.XML_PATH); // Parse and save exp table from xml file List <ExpMetadata> entities = ExpParser.Parse(memFile, files); ExpParser.Write(entities); }
public static IEnumerable <Expression> GetExpression(string input) { var node = new ExpParser(new StringReader(input.TrailingNewline())).Parse(); var extractor = new ExprExtractor(); extractor.Analyze(node); // ExitFacts called backwards to line order because of recursive definition extractor.expressions.Reverse(); return(extractor.expressions); }
public static void Export(List <PackFileEntry> files, MemoryMappedFile memFile) { if (Hash.CheckHash(VariableDefines.OUTPUT + "ms2-exptable-metadata")) { Console.WriteLine("\rSkipping exp metadata!"); return; } // Parse and save exp table from xml file List <ExpMetadata> entities = ExpParser.Parse(memFile, files); ExpParser.Write(entities); Hash.WriteHash(VariableDefines.OUTPUT + "ms2-exptable-metadata"); }
public static void Test() { List <string> exps = new List <string> { "a + b", " a - -b", "43 + d * c", "2.3 * d + c ", "(a * b) + c ", "a * (b + c)", " a * b + c * (d + e) * f - 1 ", " a * (b + c) * (d + e) * (f - 1) ", " (a * ((b + c) + (d + e)) * 3 + (f - 1) * 5)) ", }; foreach (var e in exps) { var parser = new ExpParser(e); var exp = parser.Parse(); Debug.Log("src: \"" + e + "\" -> \"" + exp.ToString() + "\""); } Dictionary <string, double> results = new Dictionary <string, double> { { "2 * 3", 6.0 }, { "2 + 1", 3.0 }, { "-2 + 2", 0.0 }, { "+2 - -2", 4.0 }, { "-2 * -2", 4.0 }, { "+1 * +2", 2.0 }, { "2 + 3 * 6", 20.0 }, { "2 + (3 * 6)", 20.0 }, { "(2 + 3) * 6", 30.0 }, { "((2 + 3) * (6))", 30.0 }, { "cos(0)", 1.0 }, { "sqr(cos(2)) + sqr(sin(2))", 1.0 }, { "pi", Math.PI }, { "e", Math.E }, }; foreach (var e in results) { var parser = new ExpParser(e.Key); var exp = parser.Parse(); Debug.Log("src: \"" + e + "\" -> \"" + exp.ToString() + "\" = " + exp.Eval().ToStr()); if (exp.Eval() != e.Value) { Debug.Log("result fail: get \"" + exp.Eval() + "\" excepted: \"" + e.Value + "\""); } } }
static void Main(string[] args) { if (args.Length == 0) { Console.WriteLine("For run use: parsers <input file>"); return; } expNode root; using (StreamReader fin = new StreamReader(args[0])) { var lexer = new ExpLexer(fin); var parser = new ExpParser(lexer); root = parser.exp(); } Application.EnableVisualStyles(); Application.Run(new Form1(root)); }
public override Expr Parse() { return(ExpParser.OnParseFunctionDeclare()); }
public override void OnParseComplete(AstNode node) { var expr = node as Expr; ExpParser.OnParseForEachComplete(expr); }
public static string ParseArgs(Form1 form1) { string args = " "; bool extrArg = false; CommandDefs commandDefs = new CommandDefs(); ControlDefs controlDefs = new ControlDefs(form1); foreach (string key in commandDefs.getCommands().Keys) { if (key == "DOOM1" || key == "DOOM2") { if (DefaultCheck.checkControls(controlDefs, key, form1)) { continue; } switch (key) { case "DOOM1": args += "-doom "; break; case "DOOM2": args += "-doom2 "; break; } } foreach (string subKey in commandDefs.getCommands()[key].Keys) { switch (subKey) { case ArgKeys.AF: case ArgKeys.EXPOSURE: case ArgKeys.FA: if (form1.getCheckBox12().Checked) { string value = ((NumericUpDown)controlDefs.getControls()[key][subKey]).Value.ToString(CultureInfo.InvariantCulture); args += commandDefs.getCommands()[key][subKey] + value + " "; } break; case ArgKeys.CHEAT: if (!DefaultCheck.checkControl(controlDefs.getControls()[key][subKey], key, subKey, form1)) { args += commandDefs.getCommands()[key][subKey]; } break; case ArgKeys.CONSOLE: case ArgKeys.VIDEO: args += commandDefs.getCommands()[key][subKey] + $"{Convert.ToInt32(((CheckBox)controlDefs.getControls()[key][subKey]).Checked)} "; break; case ArgKeys.EPISODE: if (!DefaultCheck.checkControl(controlDefs.getControls()[key][subKey], key, subKey, form1)) { if (key == "DOOM1") { args += commandDefs.getCommands()[key][subKey] + $"{((ComboBox)controlDefs.getControls()[key][subKey]).SelectedIndex}" + $" {((ComboBox)controlDefs.getControls()[key][ArgKeys.MAP]).SelectedIndex} "; } else { int level = ((ComboBox)controlDefs.getControls()[key][ArgKeys.MAP]).SelectedIndex; if (level > 0) { args += commandDefs.getCommands()[key][subKey] + $"{ExpParser.getD2Exp(((ComboBox)controlDefs.getControls()[key][subKey]).SelectedItem.ToString())} "; } } } break; case ArgKeys.GAME_MODE: args += commandDefs.getCommands()[key][subKey] + $"{((ComboBox)controlDefs.getControls()[key][subKey]).SelectedIndex} "; break; case ArgKeys.HLL: case ArgKeys.SSGI: case ArgKeys.TF: if (form1.getCheckBox12().Checked) { args += commandDefs.getCommands()[key][subKey] + $"{Convert.ToInt32(((CheckBox)controlDefs.getControls()[key][subKey]).Checked)} "; } break; case ArgKeys.LANG: if (!form1.GetCheckBox6().Checked) { args += commandDefs.getCommands()[key][subKey] + $"{((string)((ComboBox)controlDefs.getControls()[key][subKey]).SelectedItem).ToLower()} "; } else { args += commandDefs.getCommands()[key][subKey] + $"{form1.GetTextBox1().Text.ToLower()} "; } break; case ArgKeys.MAP: case ArgKeys.SKILL: if (!DefaultCheck.checkControl(controlDefs.getControls()[key][subKey], key, subKey, form1)) { args += commandDefs.getCommands()[key][subKey] + $"{((ComboBox)controlDefs.getControls()[key][subKey]).SelectedIndex} "; } break; case ArgKeys.MOD: case ArgKeys.MOD_BASE: if (key == "DOOM3") { if (((ComboBox)controlDefs.getControls()[key][subKey]).SelectedIndex > 0) { if (!extrArg) { args += "+set fs_resourceLoadPriority 0 "; extrArg = true; } args += commandDefs.getCommands()[key][subKey] + $"{((ComboBox)controlDefs.getControls()[key][subKey]).SelectedItem.ToString()} "; } } else if (key == "DOOM2") { if (!DefaultCheck .checkControl(controlDefs.getControls()[key][subKey], key, subKey, form1)) { args += commandDefs.getCommands()[key][subKey]; for (int i = 0; i < form1.ml.Length; i++) { if (form1.ml[i].Count > 0) { args += $"ex {ExpParser.getD2MExp(ExpParser.setD2MExp(i)) + 1} "; foreach (string mod in form1.ml[i]) { args += $"\"{mod}\" "; } } } } } else { if (!DefaultCheck .checkControl(controlDefs.getControls()[key][subKey], key, subKey, form1)) { args += commandDefs.getCommands()[key][subKey]; foreach (string mod in ((ListBox)controlDefs.getControls()[key][subKey]).Items) { args += $"\"{mod}\" "; } } } break; case ArgKeys.MENU: args += commandDefs.getCommands()[key][subKey] + $"{ExpParser.getD2MenuExp(((ComboBox)controlDefs.getControls()[key][subKey]).SelectedItem.ToString())} "; break; } } if (!DefaultCheck.checkControl(controlDefs.getControls()[key][ArgKeys.EXTRA], key, ArgKeys.EXTRA, form1)) { args += controlDefs.getControls()[key][ArgKeys.EXTRA].Text + " "; } } return(args); }
public override void OnParseComplete(AstNode node) { var expr = node as Expr; ExpParser.OnParseFunctionDeclareComplete(expr); }
public override Expr Parse() { return(ExpParser.OnParseThrow()); }
public override Expr Parse() { return(ExpParser.OnParseLambda()); }
public void saveSettings(string path, Form1 form1) { try { StreamWriter sw = new StreamWriter(path); SettingDef settingDef = new SettingDef(form1); foreach (string key in settingDef.getDefs().Keys) { sw.WriteLine(key); foreach (string subkey in settingDef.getDefs()[key].Keys) { switch (subkey) { case "AA": case "EX": case "fo": sw.WriteLine(subkey + " = " + ((NumericUpDown)settingDef.getDefs()[key][subkey]).Value); break; case "classich": case "console": case "SM": case "HDR": case "SSAO": case "Skip Intro": case "as": case "USE_CUL": sw.WriteLine(subkey + " = " + ((CheckBox)settingDef.getDefs()[key][subkey]).Checked); break; case "Episode": if (key == "[DOOMII]") { sw.WriteLine(subkey + " = " + ExpParser.getD2Exp(((ComboBox)settingDef.getDefs()[key][subkey]).SelectedItem.ToString())); } else { sw.WriteLine(subkey + " = " + ((ComboBox)settingDef.getDefs()[key][subkey]).SelectedIndex); } break; case "Map": case "Skill": case "Game": case "CL": sw.WriteLine(subkey + " = " + ((ComboBox)settingDef.getDefs()[key][subkey]).SelectedIndex); break; case "marg": case "CUL": sw.WriteLine(subkey + " = " + ((TextBox)settingDef.getDefs()[key][subkey]).Text); break; case "mods": if (key == "[DOOMII]") { modParser.saveD2Mods(form1, sw, settingDef); } else if (key == "[DOOM3]") { sw.WriteLine(subkey + " = " + ((ComboBox)settingDef.getDefs()[key][subkey]).SelectedItem.ToString()); } else { sw.WriteLine(subkey + " = " + modParser.serializeMods(((ListBox)settingDef.getDefs()[key][subkey]).Items.Cast <string>().ToArray())); } break; case "modbase": sw.WriteLine(subkey + " = " + ((ComboBox)settingDef.getDefs()[key][subkey]).SelectedItem.ToString()); break; } } } sw.WriteLine(""); //Close the file sw.Close(); form1.getLabel10().Text = path; } catch (Exception ex) { Console.WriteLine("Exception: " + ex.Message); } }
public override Expr Parse() { return(ExpParser.OnParseTryCatch()); }
/// <summary> /// Called by the framework after the parse method is called /// </summary> /// <param name="node">The node returned by this implementations Parse method</param> public override void OnParseComplete(AstNode node) { ExpParser.OnParseAssignComplete(node as Expr); }
public override Expr Parse() { return(ExpParser.OnParseWhile()); }
public override Expr Parse() { return(ExpParser.OnParseBreak()); }
public override Expr Parse() { return(ExpParser.OnParseForEach()); }
public override Expr Parse() { return(ExpParser.OnParseContinue()); }