private void LoadKeyWords() { KeyWord keywords = new KeyWord(); keywords.CreateKeyWords(); PrintLogProcess("-> Cargando palabras reservadas..!"); }
private void BtnKeyWords_Click(object sender, EventArgs e) { if (StatusKeyWords) { Helpers.MewtowMessage("😄 Ya hay palabras reservadas..!", "OK"); } else { Console.WriteLine("presionado para crear keywords"); bool result = KeyWord.LoadKeyword(); StatusKeyWords = result; StatusKeyWord(); } }
public void CreateWordCsharp() { var data = KeyWord.GetKeywordList(); foreach (var d in data) { string wordc = d.mwordCs.ToString(); switch (wordc) { case var gw when Regex.IsMatch(wordc, @"namespace"): MNamespace = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"class"): MClass = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"static"): MStatic = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"void"): MVoid = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"main"): MMain = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"int"): MInt = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"string"): MString = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"consolewriteline"): MConsole = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"consolereadline"): MReadline = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"switch"): MSwitch = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"case"): MCase = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"break"): MBreak = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"default"): MDefault = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"if"): MIf = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"do"): MDo = d.mkeyword.ToString(); break; case var gw when Regex.IsMatch(wordc, @"while"): MWhile = d.mkeyword.ToString(); break; default: Console.WriteLine("error" + wordc); ProcessLog.AddProcess("Advertencia.!.El: [" + wordc + "] No es valido para el lenguaje"); break; } } }
/// <summary> /// metodo compiler: se encarga de ejecutar todo el proceso de compilar el lenguaje. /// </summary> /// <param name="ContentFile"></param> recibe el string del archivo de texto. /// <returns></returns> retorna un true despues de haber culminado todo el proceso. public bool CompilerFile(string ContentFile) { ClearListToken(); ClearListSentence(); Grammar.clearListsemantic(); Mbracketclose = 0; Mbracketopen = 0; int x = 0; int y = 0; string[] DataSent = CreateSentence(ContentFile); char[] delimiterChar = { ' ' }; foreach (var mSent in DataSent) { x += 1; y += 1; var MSentence = mSent.Trim(); Grammar gra = new Grammar(); int result = gra.ValidSentence(MSentence, y); if (result == 1 || result == 0) { string[] mSen = MSentence.Split(delimiterChar); foreach (var mtok in mSen) { KeyWord kw = new KeyWord(); string typ = kw.IsValidToken(mtok); TokenMewtow NewToken = new TokenMewtow(mtok, x, y, typ, true, false, false); ListToken.Add(NewToken); x += 1; } } else if (result == 2) { TokenMewtow TokenComment = new TokenMewtow(mSent, x, y, "comentario", true, false, false); ListToken.Add(TokenComment); } else if (result == 3) { TokenMewtow TokenComment = new TokenMewtow(mSent, x, y, "Delimitador", true, false, false); ListToken.Add(TokenComment); Mbracketopen += 1; } else if (result == 4) { TokenMewtow TokenComment = new TokenMewtow(mSent, x, y, "Delimitador", true, false, false); ListToken.Add(TokenComment); Mbracketclose += 1; } x = 0; } int resultbracket = Mbracketopen - Mbracketclose; if (resultbracket > 0) { ErrorLog.AddError("-> Tienes (" + resultbracket + ") Delimitador abierto"); } else if (resultbracket < 0) { ErrorLog.AddError("-> Tienes (" + resultbracket * -1 + ") Delimitador cerrando"); } Grammar.Semantic(); return(true); }