-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
51 lines (44 loc) · 1.8 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using Parser;
using Syntax_Analizer;
using Lexer_Analizer;
namespace Run
{
class Program
{
public static void Main(string[] args)
{
Dictionary<string, Function> Saving_Functions = new Dictionary<string, Function>();
while(true)
{
System.Console.Write("> ");
string texto = Console.ReadLine();
if (texto == "")
{
System.Console.WriteLine("Recuerde que si toca Enter con una entrada vacía es para salir,");
System.Console.WriteLine("Si realmente desea salir toque Enter nuevamente, si no desea salir escriba cualquier cosa y toque Enter");
string entrada = Console.ReadLine();
if (entrada == "") break;
else continue;
}
try
{
Tokenizer Prueba = new Tokenizer(texto);
Syntax CheckSyntax = new Syntax(Prueba.TokenSet, Saving_Functions);
TokenType Result = CheckSyntax.Start();
if (Prueba.TokenSet[0].Type!=TokenType.Function_Keyword)
{//En caso de que esto ocurra es porque la entrada no fue una declaracion de funcion
Parser.Parser Interprete = new Parser.Parser(Prueba.TokenSet, Saving_Functions);
object result = Interprete.Start();
System.Console.WriteLine(result);
}
Saving_Functions = CheckSyntax.Get_New_Functions();
}
catch (Exception text)
{
System.Console.WriteLine(text);
continue;
}
}
}
}
}