static void OldMain(string[] args) { System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start(); int count = 100000000; double answer = 0; watch.Start(); for (int i = 0; i < count; i++) { answer = Math.Sqrt(Math.Tan(i)); } watch.Stop(); Console.WriteLine(watch.ElapsedMilliseconds); watch.Reset(); watch.Start(); Parallel.For(0, count, (i) => answer = Math.Sqrt(Math.Tan(i))); watch.Stop(); Console.WriteLine(watch.ElapsedMilliseconds); Console.ReadKey(); return; //"var number:int:=.0\nvar text:string:=\"yo yo yo, this shouldn't match a var\"" var file = new System.IO.StreamReader("test.t"); var output = new System.IO.StreamWriter("test.txt"); string input = file.ReadToEnd() + " "; file.Close(); //Console.WriteLine(input); var grammar = BuildGrammar(); var lexicalTokens = BuildTSharpLexer(); List <Token> tokens = LexicalAnalyzer(lexicalTokens, input); PrintLexicalAnalysis(tokens, output); output.Close(); GrammarTokenMatch.Matches(grammar, lexicalTokens, tokens, 0, tokens.Count, "expression"); //string line = ConvertToCSharpPreDef(LexicalAnalyzer(BuildTSharpLexer(), input)); //Console.WriteLine(line); //output.WriteLine(line); Console.WriteLine("=============================================="); Console.WriteLine("done"); Console.ReadKey(); }
static List <GrammarTokenMatch> BuildGrammar() { List <GrammarTokenMatch> grammarMatches = new List <GrammarTokenMatch>(); var file = new System.IO.StreamReader("grammar.txt"); while (!file.EndOfStream) { string[] line = file.ReadLine().Split('=', ':'); if (line.Length > 0) { GrammarTokenMatch match = new GrammarTokenMatch(); match.type = line[0].Trim(); match.precedence = line.Length > 2 ? int.Parse(line[2]) : int.MaxValue; match.matches = line[1].Split(' ').Select((x) => x.Trim()).Where((x) => x != "").ToArray(); grammarMatches.Add(match); } } file.Close(); return(grammarMatches); }