Exemple #1
0
        private void LoadKeyWords()
        {
            KeyWord keywords = new KeyWord();

            keywords.CreateKeyWords();
            PrintLogProcess("-> Cargando palabras reservadas..!");
        }
Exemple #2
0
 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();
     }
 }
Exemple #3
0
        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;
                }
            }
        }
Exemple #4
0
        /// <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);
        }