Example #1
0
        public Rule_Assign(Rule_Context pContext, NonterminalToken pTokens)
            : base(pContext)
        {
            //ASSIGN <Qualified ID> '=' <Expression>
            //<Let_Statement> ::= LET Identifier '=' <Expression>
            //<Simple_Assign_Statement> ::= Identifier '=' <Expression>

            switch(pTokens.Rule.Lhs.ToString())
            {

                case "<Assign_Statement>":
                    NonterminalToken T = (NonterminalToken)pTokens.Tokens[1];
                    this.QualifiedId = T.Tokens[0].ToString();
                    //this.value = new Rule_Expression(pContext, (NonterminalToken)pTokens.Tokens[3]);
                    break;
                case "<Let_Statement>":
                    this.QualifiedId = pTokens.Tokens[1].ToString();
                    //this.value = new Rule_Expression(pContext, (NonterminalToken)pTokens.Tokens[3]);
                    break;
                case "<Simple_Assign_Statement>":
                    //Identifier '=' <Expression>
                    //T = (NonterminalToken)pTokens.Tokens[1];
                    this.QualifiedId = this.GetCommandElement(pTokens.Tokens, 0);
                    //this.value = new Rule_Expression(pContext, (NonterminalToken)pTokens.Tokens[2]);
                    break;
            }
        }
Example #2
0
        public Rule_Assign(Rule_Context pContext, NonterminalToken pTokens) : base(pContext)
        {
            //ASSIGN <Qualified ID> '=' <Expression>
            //<Let_Statement> ::= LET Identifier '=' <Expression>
            //<Simple_Assign_Statement> ::= Identifier '=' <Expression>

            switch (pTokens.Rule.Lhs.ToString())
            {
            case "<Assign_Statement>":
                NonterminalToken T = (NonterminalToken)pTokens.Tokens[1];
                this.QualifiedId = T.Tokens[0].ToString();
                //this.value = new Rule_Expression(pContext, (NonterminalToken)pTokens.Tokens[3]);
                break;

            case "<Let_Statement>":
                this.QualifiedId = pTokens.Tokens[1].ToString();
                //this.value = new Rule_Expression(pContext, (NonterminalToken)pTokens.Tokens[3]);
                break;

            case "<Simple_Assign_Statement>":
                //Identifier '=' <Expression>
                //T = (NonterminalToken)pTokens.Tokens[1];
                this.QualifiedId = this.GetCommandElement(pTokens.Tokens, 0);
                //this.value = new Rule_Expression(pContext, (NonterminalToken)pTokens.Tokens[2]);
                break;
            }
        }
Example #3
0
        public Rule_Value(Rule_Context pContext, Token pToken) : base(pContext)
        {
            /* ::= Identifier	| <Literal> | Boolean | '(' <Expr List> ')' */

            if (pToken is NonterminalToken)
            {
                NonterminalToken T = (NonterminalToken)pToken;
                if (T.Tokens.Length == 1)
                {
                    switch (T.Rule.Rhs[0].ToString())
                    {
                    case "Identifier":
                        this.Id = this.GetCommandElement(T.Tokens, 0);
                        break;

                    case "<FunctionCall>":
                        //this.value = new Rule_FunctionCall(pContext, (NonterminalToken)T.Tokens[0]);
                        break;

                    case "<Literal>":
                    case "Boolean":
                    default:
                        this.value = this.GetCommandElement(T.Tokens, 0);
                        break;
                    }
                }
                else
                {
                    //this.value = new Rule_ExprList(pContext, (NonterminalToken)T.Tokens[1]);
                }
            }
            else
            {
                TerminalToken TT = (TerminalToken)pToken;
                switch (TT.Symbol.ToString())
                {
                case "Boolean":
                    this.value = TT.Text;
                    break;

                default:
                    this.value = TT.Text;
                    break;
                }
            }

            if (this.Id == null && this.value == null)
            {
            }
        }
Example #4
0
        public Rule_Value(Rule_Context pContext, Token pToken)
            : base(pContext)
        {
            /* ::= Identifier	| <Literal> | Boolean | '(' <Expr List> ')' */

            if (pToken is NonterminalToken)
            {
                NonterminalToken T = (NonterminalToken)pToken;
                if (T.Tokens.Length == 1)
                {
                    switch (T.Rule.Rhs[0].ToString())
                    {
                        case "Identifier":
                            this.Id = this.GetCommandElement(T.Tokens, 0);
                            break;
                        case "<FunctionCall>":
                            //this.value = new Rule_FunctionCall(pContext, (NonterminalToken)T.Tokens[0]);
                            break;
                        case "<Literal>":
                        case "Boolean":
                        default:
                            this.value = this.GetCommandElement(T.Tokens, 0);
                            break;
                    }
                }
                else
                {
                    //this.value = new Rule_ExprList(pContext, (NonterminalToken)T.Tokens[1]);
                }
            }
            else
            {
                TerminalToken TT = (TerminalToken)pToken;
                switch (TT.Symbol.ToString())
                {
                    case "Boolean":
                        this.value = TT.Text;
                        break;
                    default:
                        this.value = TT.Text;
                        break;
                }
            }

            if (this.Id == null && this.value == null)
            {

            }
        }
        public Rule_If_Then_Else_End(Rule_Context pContext, NonterminalToken pToken)
            : base(pContext)
        {
            /*
             <If_Statement> ::=      IF <Expression> THEN NewLine <Statements> NewLine END
             <If_Else_Statement> ::= IF <Expression> THEN NewLine <Statements> NewLine ELSE NewLine <Statements> NewLine END
            */

            //IfClause = new Rule_Expression(pContext, (NonterminalToken)pToken.Tokens[1]);
            ThenClause = new Rule_Statements(pContext, (NonterminalToken)pToken.Tokens[4]);
            if (pToken.Tokens.Length > 7)
            {
                ElseClause = new Rule_Statements(pContext, (NonterminalToken)pToken.Tokens[8]);
            }
        }
        public Rule_If_Then_Else_End(Rule_Context pContext, NonterminalToken pToken) : base(pContext)
        {
            /*
             * <If_Statement> ::=      IF <Expression> THEN NewLine <Statements> NewLine END
             * <If_Else_Statement> ::= IF <Expression> THEN NewLine <Statements> NewLine ELSE NewLine <Statements> NewLine END
             */


            //IfClause = new Rule_Expression(pContext, (NonterminalToken)pToken.Tokens[1]);
            ThenClause = new Rule_Statements(pContext, (NonterminalToken)pToken.Tokens[4]);
            if (pToken.Tokens.Length > 7)
            {
                ElseClause = new Rule_Statements(pContext, (NonterminalToken)pToken.Tokens[8]);
            }
        }
Example #7
0
        private void Init(Stream stream)
        {
            CGTReader reader = new CGTReader(stream);

            parser = reader.CreateNewParser();
            parser.TrimReductions = false;
            parser.StoreTokens    = LALRParser.StoreTokensMode.NoUserObject;

            parser.OnReduce     += new LALRParser.ReduceHandler(ReduceEvent);
            parser.OnTokenRead  += new LALRParser.TokenReadHandler(TokenReadEvent);
            parser.OnAccept     += new LALRParser.AcceptHandler(AcceptEvent);
            parser.OnTokenError += new LALRParser.TokenErrorHandler(TokenErrorEvent);
            parser.OnParseError += new LALRParser.ParseErrorHandler(ParseErrorEvent);

            mContext = new Rule_Context();
        }
        public Rule_Statements(Rule_Context pContext, NonterminalToken pToken) : base(pContext)
        {
            //<Statements> ::= <Statements> NewLine <Statement> | <Statement>

            if (pToken.Tokens.Length > 1)
            {
                NonterminalToken T;
                T = (NonterminalToken)pToken.Tokens[0];
                this.statements = new Rule_Statements(pContext, T);

                T = ((NonterminalToken)pToken.Tokens[2]);
                this.statement = new Rule_Statement(pContext, T);
            }
            else
            {
                NonterminalToken T;
                T = (NonterminalToken)pToken.Tokens[0];
                this.statement = new Rule_Statement(pContext, T);
            }
        }
Example #9
0
        public Rule_Statements(Rule_Context pContext, NonterminalToken pToken)
            : base(pContext)
        {
            //<Statements> ::= <Statements> NewLine <Statement> | <Statement>

               if (pToken.Tokens.Length > 1)
               {
               NonterminalToken T;
               T = (NonterminalToken)pToken.Tokens[0];
               this.statements = new Rule_Statements(pContext, T);

               T = ((NonterminalToken)pToken.Tokens[2]);
               this.statement = new Rule_Statement(pContext, T);
               }
               else
               {
               NonterminalToken T;
               T = (NonterminalToken)pToken.Tokens[0];
               this.statement = new Rule_Statement(pContext, T);
               }
        }
Example #10
0
        /*
         * private VariableType GetVariableScopeIdByName(string name)
         * {
         *  string Query = "Name='" + name + "'";
         *  DataRow[] rows = AppData.Instance.VariableScopesDataTable.Select(Query);
         *  if (rows.GetUpperBound(0) >= 0)
         *  {
         *      return (VariableType)int.Parse(rows[0]["Id"].ToString());
         *  }
         *  else
         *  {
         *      return 0;       // Unknown
         *  }
         * }*/

        public Rule_Define(Rule_Context pContext, NonterminalToken pToken) : base(pContext)
        {
            //DEFINE Identifier <Variable_Scope> <VariableTypeIndicator> <Define_Prompt>
            //DEFINE Identifier '=' <Expression>

            Identifier = GetCommandElement(pToken.Tokens, 1);
            if (GetCommandElement(pToken.Tokens, 2) == "=")
            {
                //this.Expression = new Rule_Expression(pContext, (NonterminalToken)pToken.Tokens[3]);
                // set some defaults
                Variable_Scope        = "STANDARD";
                VariableTypeIndicator = "";
                Define_Prompt         = "";
            }
            else
            {
                Variable_Scope = GetCommandElement(pToken.Tokens, 2);//STANDARD | GLOBAL | PERMANENT |!NULL

                VariableTypeIndicator = GetCommandElement(pToken.Tokens, 3);
                Define_Prompt         = GetCommandElement(pToken.Tokens, 4);
            }
        }
Example #11
0
 public Rule(Rule_Context pContext)
 {
     this.Context = pContext;
 }
Example #12
0
 public Rule()
 {
     this.Context = new Rule_Context();
 }
Example #13
0
        public Rule_Statement(Rule_Context pContext, NonterminalToken pToken) : base(pContext)
        {
            NonterminalToken T = (NonterminalToken)pToken.Tokens[0];

            if (!this.Context.RunOneCommand)
            {
                this.Context.ProgramText.Append(pToken.Tokens[0].ToString());
            }
            else
            {
                if (!this.Context.IsFirstStatement)
                {
                    this.Context.ProgramText.Length = 0;
                    this.Context.ProgramText.Append(this.ExtractTokens(pToken.Tokens));
                    this.Context.IsFirstStatement = true;
                }
            }

            /*
             * switch (pToken.Rule.Rhs[0].ToString())
             * {
             *  // H1N1
             *  case "<Always_Statement>":
             *      this.reduction = new Rule_Always(pContext, T);
             *      break;
             *
             *  case "<Simple_Assign_Statement>":
             *  case "<Let_Statement>":
             *  case "<Assign_Statement>":
             *      this.reduction = new Rule_Assign(pContext, T);
             *      break;
             *
             *  case "<If_Statement>":
             *  case "<If_Else_Statement>":
             *      this.reduction = new Rule_If_Then_Else_End(pContext, T);
             *      break;
             *
             *  case "<Define_Variable_Statement>":
             *      this.reduction = new Rule_Define(pContext, T);
             *      break;
             *
             *  case "<FunctionCall>":
             *      this.reduction = new Rule_FunctionCall(pContext, T);
             *      break;
             *
             *  case "<Hide_Some_Statement>":
             *  case "<Hide_Except_Statement>":
             *      this.reduction = new Rule_Hide(pContext, T);
             *      break;
             *
             *  case "<Unhide_Some_Statement>":
             *  case "<Unhide_Except_Statement>":
             *      this.reduction = new Rule_UnHide(pContext, T);
             *      break;
             *
             *  case "<Go_To_Variable_Statement>":
             *  case "<Go_To_Page_Statement>":
             *      this.reduction = new Rule_GoTo(pContext, T);
             *      break;
             *
             *  case "<Simple_Dialog_Statement>":
             *  case "<Numeric_Dialog_Implicit_Statement>":
             *  case "<Numeric_Dialog_Explicit_Statement>":
             *  case "<TextBox_Dialog_Statement>":
             *  case "<Db_Values_Dialog_Statement>":
             *  case "<YN_Dialog_Statement>":
             *  case "<Db_Views_Dialog_Statement>":
             *  case "<Databases_Dialog_Statement>":
             *  case "<Db_Variables_Dialog_Statement>":
             *  case "<Multiple_Choice_Dialog_Statement>":
             *  case "<Dialog_Read_Statement>":
             *  case "<Dialog_Write_Statement>":
             *  case "<Dialog_Read_Filter_Statement>":
             *  case "<Dialog_Write_Filter_Statement>":
             *  case "<Dialog_Date_Statement>":
             *  case "<Dialog_Date_Mask_Statement>":
             *      this.reduction = new Rule_Dialog(pContext, T);
             *      break;
             *
             *  case "<Read_Epi_Statement>":
             *  case "<Simple_Read_Statement>":
             *  case "<Read_Epi_File_Spec_Statement>":
             *  case "<Read_Sql_Statement>":
             *  case "<Read_Excel_File_Statement>":
             *  case "<Read_Db_Table_Statement>":
             *      this.reduction = new Rule_Read_Epi_Statement(pContext, T);
             *      break;
             *
             *  case "<Merge_Table_Statement>":
             *  case "<Merge_Db_Table_Statement>":
             *  case "<Merge_File_Statement>":
             *  case "<Merge_Excel_File_Statement>":
             *      this.reduction = new Rule_Merge(pContext, T);
             *      break;
             *
             *  case "<Write_All_Statement>":
             *  case "<Write_Some_Statement>":
             *  case "<Write_Except_Statement>":
             *      this.reduction = new Rule_Write(pContext, T);
             *      break;
             *
             *  case "<Select_Statement>":
             *  case "<Cancel_Select_By_Selecting_Statement>":
             *  case "<Cancel_Select_Statement>":
             *      this.reduction = new Rule_Select(pContext, T);
             *      break;
             *
             *  case "<Recode_Statement>":
             *      this.reduction = new Rule_Recode(pContext, T);
             *      break;
             *  case "<Comment_Line>":
             *      this.reduction = new Rule_CommentLine(pContext, T);
             *      break;
             *
             *
             *  case "<Simple_Execute_Statement>":
             *  case "<Execute_File_Statement>":
             *  case "<Execute_Url_Statement>":
             *  case "<Execute_Wait_For_Exit_File_Statement>":
             *  case "<Execute_Wait_For_Exit_String_Statement>":
             *  case "<Execute_Wait_For_Exit_Url_Statement>":
             *  case "<Execute_No_Wait_For_Exit_File_Statement>":
             *  case "<Execute_No_Wait_For_Exit_String_Statement>":
             *  case "<Execute_No_Wait_For_Exit_Url_Statement>":
             *      this.reduction = new Rule_Execute(pContext, T);
             *      break;
             *
             *  case "<List_All_Except_Statement>":
             *  case "<List_All_Statement>":
             *  case "<List_Columns_Statement>":
             *  //case "<Simple_List_Statement>":
             *      this.reduction = new Rule_List(pContext, T);
             *      break;
             *
             *  case "<Simple_Tables_Statement>":
             *  case "<Tables_One_Variable_Statement>":
             *  case "<Row_All_Tables_Statement>":
             *  case "<Row_Except_Tables_Statement>":
             *  case "<Column_All_Tables_Statement>":
             *  case "<Column_Except_Tables_Statement>":
             *  case "<Row_Column_Tables_Statement>":
             *      this.reduction = new Rule_Tables(pContext, T);
             *      break;
             *
             *  case "<Freq_All_Statement>":
             *  case "<Freq_Columns_Statement>":
             *  case "<Freq_All_Except_Statement>":
             *      this.reduction = new Rule_Freq(pContext, T);
             *      break;
             *
             *  case "<Cancel_Sort_By_Sorting_Statement>":
             *  case "<Cancel_Sort_Statement>":
             *  case "<Sort_Statement>":
             *      this.reduction = new Rule_Sort(pContext, T);
             *      break;
             *
             *  case "<Simple_Means_Statement>":
             *  case "<Row_All_Means_Statement>":
             *  case "<Row_All_Column_Means_Statement>":
             *  case "<Row_Column_All_Means_Statement>":
             *  case "<Row_Column_Means_Statement>":
             *      this.reduction = new Rule_Means(pContext, T);
             *      break;
             *
             *  case "<Relate_Table_Statement>":
             *      this.reduction = new Rule_Relate_Table(pContext, T);
             *      break;
             *  case "<Relate_Db_Table_With_Identifier_Statement>":
             *      this.reduction = new Rule_Relate_Db_Table_Identifier(pContext, T);
             *      break;
             *  case "<Relate_Epi_Table_Statement>":
             *      this.reduction = new Rule_Relate_Epi_Table(pContext, T);
             *      break;
             *
             *  case "<Beep_Statement>":
             *      this.reduction = new Rule_Beep(pContext, T);
             *      break;
             *
             *  case "<Auto_Search_Statement>":
             *      this.reduction = new Rule_AutoSearch(pContext, T);
             *      break;
             *
             *  case "<Quit_Statement>":
             *      this.reduction = new Rule_Quit();
             *      break;
             *
             *  case "<Clear_Statement>":
             *      this.reduction = new Rule_Clear(pContext, T);
             *      break;
             *
             *  case "<Delete_Table_Long_Statement>":
             *      this.reduction = new Rule_Delete_Table_Long(pContext, T);
             *      break;
             *  case "<Delete_File_Statement>":
             *      this.reduction = new Rule_Delete_File(pContext, T);
             *      break;
             *  case "<Delete_Table_Statement>":
             *      this.reduction = new Rule_Delete_Table(pContext, T);
             *      break;
             *
             *  case "<Type_Out_String_Statement>":
             *  case "<Type_Out_File_Statement>":
             *  case "<Type_Out_String_With_Font_Statement>":
             *  case "<Type_Out_File_With_Font_Statement>":
             *      this.reduction = new Rule_Typeout(pContext, T);
             *      break;
             *
             *  case "<New_Record_Statement>":
             *      this.reduction = new Rule_NewRecord(pContext, T);
             *      break;
             *
             *  case "<Simple_Routeout_Statement>":
             *  case "<Replace_Routeout_Statement>":
             *  case "<Append_Routeout_Statement>":
             *      this.reduction = new Rule_RouteOut(pContext, T);
             *      break;
             *
             *  case "<Close_Out_Statement>":
             *      this.reduction = new Rule_CloseOut(pContext, T);
             *      break;
             *
             *  case "<Variables_Display_Statement>":
             *  case "<Views_Display_Statement>":
             *  case "<Tables_Display_Statement>":
             *      this.reduction = new Rule_Display(pContext, T);
             *      break;
             *
             *  case "<Header_Title_String_Statement>":
             *  case "<Header_Title_Font_Statement>":
             *  case "<Header_Title_String_And_Font_Statement>":
             *      this.reduction = new Rule_Header(pContext, T);
             *      break;
             *
             *
             *  case "<Simple_Undefine_Statement>":
             *      this.reduction = new Rule_Undefine(pContext, T);
             *      break;
             *
             *  case "<Run_File_PGM_Statement>":
             *      this.reduction = new Rule_Run_File_PGM_Statement(pContext, T);
             *      break;
             *  case "<Run_String_Statement>":
             *      this.reduction = new Rule_Run_String_Statement(pContext, T);
             *      break;
             *  case "<Run_PGM_In_Db_Statement>":
             *      this.reduction = new Rule_Run_PGM_In_Db_Statement(pContext, T);
             *      break;
             *
             *
             *  case "<Delete_Records_All_Statement>":
             *      this.reduction = new Rule_Delete_Records_All_Statement(pContext, T);
             *      break;
             *  case "<Delete_Records_Selected_Statement>":
             *      this.reduction = new Rule_Delete_Records_Selected_Statement(pContext, T);
             *      break;
             *
             *
             *  case "<Simple_Print_Out_Statement>":
             *  case "<File_Print_Out_Statement>":
             *      this.reduction = new Rule_Printout(pContext, T);
             *      break;
             *
             *  case "<Simple_Run_Statement>":
             *
             *  //**these are not yet implemented; move up when completed
             *  //**these are not yet implemented; move up when completed
             *  //**these are not yet implemented; move up when completed
             *  //**these are not yet implemented; move up when completed
             *  //**these are not yet implemented; move up when completed
             *
             *  case "<Undelete_All_Statement>":
             *  case "<Undelete_Selected_Statement>":
             *  // Build 6
             *
             *  case "<About_Statement>":
             *
             *  case "<Browser_Statement>":
             *  case "<Browser_Size_Statement>":
             *  case "<Button_Offset_Size_1_Statement>":
             *  case "<Button_Offset_Size_2_Statement>":
             *  case "<Button_Offset_1_Statement>":
             *  case "<Button_Offset_2_Statement>":
             *  case "<Call_Statement>":
             *
             *  case "<Simple_CMD_Statement>":
             *  case "<CMD_Line_Statement>":
             * //!                case "<Simple_Cox_Statement>":
             * //!                case "<Boolean_Cox_Statement>":
             *  case "<Define_Dll_Statement>":
             *  case "<Define_Group_Statement>":
             *  case "<Delete_Table_Short_Statement>":
             *
             *  case "<Exit_Statement>":
             *  case "<File_Dialog_Statement>":
             *  case "<Get_Path_Statement>":
             *  case "<Simple_Graph_Statement>":
             *  case "<Strata_Var_Graph_Statement>":
             *  case "<Weight_Var_Graph_Statement>":
             *  case "<Stra_Wei_Var_Graph_Statement>":
             *  case "<Graph_Opt_1_Statement>":
             *  case "<Graph_Opt_2_Statement>":
             *  case "<Graph_Opt_3_Statement>":
             *  case "<Graph_Opt_4_Statement>":
             *  case "<Graph_Opt_5_Statement>":
             *  case "<Graph_Generic_Opt_Statement>":
             *
             *  case "<Help_File_Statement>":
             *  case "<Simple_Help_Statement>":
             *  case "<Simple_KM_Survival_Statement>":
             *  case "<KM_Survival_Boolean_Statement>":
             *  case "<Logistic_Statement>":
             *  case "<Link_Statement>":
             *  case "<Link_Remove_Statement>":
             *  case "<Map_AVG_Statement>":
             *  case "<Map_Case_Statement>":
             *  case "<Map_Sum_Statement>":
             *  case "<Map_Count_Statement>":
             *  case "<Map_Min_Statement>":
             *  case "<Map_Max_Statement>":
             *  case "<Map_Opt_1_Statement>":
             *  case "<Map_Opt_2_Statement>":
             *  case "<Map_Opt_3_Statement>":
             *  case "<Map_Opt_4_Statement>":
             *  case "<Map_Opt_5_Statement>":
             *  case "<Match_Row_All_Statement>":
             *  case "<Match_Row_Except_Statement>":
             *  case "<Match_Column_All_Statement>":
             *  case "<Match_Column_Except_Statement>":
             *  case "<Match_Row_Column_Statement>":
             *
             *  case "<Menu_Statement>":
             *  case "<Menu_Command_Statement>":
             *  case "<Menu_Dialog_Statement>":
             *  case "<Menu_Execute_Statement>":
             * //!                case "<Menu_Help_Statement>":
             * //!                case "<Menu_If_Statement>":
             *  case "<Menu_Item_Block_Name_Statement>":
             *  case "<Menu_Item_Separator_Statement>":
             *  case "<Menu_Replace_Statement>":
             *  case "<Move_Buttons_Statement>":
             *  case "<New_Page_Statement>":
             *  case "<On_Browser_Exit_Block>":
             *  case "<Picture_Statement>":
             *  case "<Picture_Size_Statement>":
             *  case "<Popup_Statement>":
             *
             *  case "<Regress_Statement>":
             *  case "<Relate_Db_Table_Statement>":
             *  case "<Relate_File_Statement>":
             *  case "<Relate_Excel_File_Statement>":
             *  case "<Repeat_Statement>":
             * //!                case "<Replace_Statement>":
             *  case "<Screen_Text_Statement>":
             *
             *  case "<Set_Statement>":
             *  case "<Set_Buttons_Statement>":
             *  case "<Set_DB_Version_Statement>":
             *  case "<Set_DOS_Win_Statement>":
             *  case "<Set_Import_Year_Statement>":
             *  case "<Set_Ini_Dir_Statement>":
             *  case "<Set_Language_Statement>":
             *  case "<Set_Picture_Statement>":
             *  case "<Set_Work_Dir_Statement>":
             *  case "<ShutDown_Block>":
             *
             *  case "<Startup_Block>":
             *  case "<Summarize_Statement>":
             *  case "<Sys_Info_Statement>":
             *  case "<All_Standard_Undefine_Statement>":
             *  case "<All_Global_Undefine_Statement>":
             *  case "<Wait_For_Statement>":
             *  case "<Wait_For_Exit_Statement>":
             *  case "<Wait_For_File_Exists_Statement>":
             *
             *  case "<Command_Block>":
             *  case "<On_Browser_Exit_Empty_Block>":
             *  case "<Startup_Empty_Block>":
             *  case "<ShutDown_Empty_Block>":
             *  case "<Menu_Empty_Block>":
             *  case "<Popup_Empty_Block>":
             *  case "<Empty_Command_Block>":
             *  default:
             *      break;
             * }*/
        }
Example #14
0
 public Rule(Rule_Context pContext)
 {
     this.Context = pContext;
 }
Example #15
0
 public Rule()
 {
     this.Context = new Rule_Context();
 }
Example #16
0
        public Rule_Statement(Rule_Context pContext, NonterminalToken pToken)
            : base(pContext)
        {
            NonterminalToken T = (NonterminalToken) pToken.Tokens[0];

            if (!this.Context.RunOneCommand)
            {
                this.Context.ProgramText.Append(pToken.Tokens[0].ToString());

            }
            else
            {
                if (!this.Context.IsFirstStatement)
                {
                    this.Context.ProgramText.Length = 0;
                    this.Context.ProgramText.Append(this.ExtractTokens(pToken.Tokens));
                    this.Context.IsFirstStatement = true;
                }
            }

            /*
            switch (pToken.Rule.Rhs[0].ToString())
            {
                // H1N1
                case "<Always_Statement>":
                    this.reduction = new Rule_Always(pContext, T);
                    break;

                case "<Simple_Assign_Statement>":
                case "<Let_Statement>":
                case "<Assign_Statement>":
                    this.reduction = new Rule_Assign(pContext, T);
                    break;

                case "<If_Statement>":
                case "<If_Else_Statement>":
                    this.reduction = new Rule_If_Then_Else_End(pContext, T);
                    break;

                case "<Define_Variable_Statement>":
                    this.reduction = new Rule_Define(pContext, T);
                    break;

                case "<FunctionCall>":
                    this.reduction = new Rule_FunctionCall(pContext, T);
                    break;

                case "<Hide_Some_Statement>":
                case "<Hide_Except_Statement>":
                    this.reduction = new Rule_Hide(pContext, T);
                    break;

                case "<Unhide_Some_Statement>":
                case "<Unhide_Except_Statement>":
                    this.reduction = new Rule_UnHide(pContext, T);
                    break;

                case "<Go_To_Variable_Statement>":
                case "<Go_To_Page_Statement>":
                    this.reduction = new Rule_GoTo(pContext, T);
                    break;

                case "<Simple_Dialog_Statement>":
                case "<Numeric_Dialog_Implicit_Statement>":
                case "<Numeric_Dialog_Explicit_Statement>":
                case "<TextBox_Dialog_Statement>":
                case "<Db_Values_Dialog_Statement>":
                case "<YN_Dialog_Statement>":
                case "<Db_Views_Dialog_Statement>":
                case "<Databases_Dialog_Statement>":
                case "<Db_Variables_Dialog_Statement>":
                case "<Multiple_Choice_Dialog_Statement>":
                case "<Dialog_Read_Statement>":
                case "<Dialog_Write_Statement>":
                case "<Dialog_Read_Filter_Statement>":
                case "<Dialog_Write_Filter_Statement>":
                case "<Dialog_Date_Statement>":
                case "<Dialog_Date_Mask_Statement>":
                    this.reduction = new Rule_Dialog(pContext, T);
                    break;

                case "<Read_Epi_Statement>":
                case "<Simple_Read_Statement>":
                case "<Read_Epi_File_Spec_Statement>":
                case "<Read_Sql_Statement>":
                case "<Read_Excel_File_Statement>":
                case "<Read_Db_Table_Statement>":
                    this.reduction = new Rule_Read_Epi_Statement(pContext, T);
                    break;

                case "<Merge_Table_Statement>":
                case "<Merge_Db_Table_Statement>":
                case "<Merge_File_Statement>":
                case "<Merge_Excel_File_Statement>":
                    this.reduction = new Rule_Merge(pContext, T);
                    break;

                case "<Write_All_Statement>":
                case "<Write_Some_Statement>":
                case "<Write_Except_Statement>":
                    this.reduction = new Rule_Write(pContext, T);
                    break;

                case "<Select_Statement>":
                case "<Cancel_Select_By_Selecting_Statement>":
                case "<Cancel_Select_Statement>":
                    this.reduction = new Rule_Select(pContext, T);
                    break;

                case "<Recode_Statement>":
                    this.reduction = new Rule_Recode(pContext, T);
                    break;
                case "<Comment_Line>":
                    this.reduction = new Rule_CommentLine(pContext, T);
                    break;

                case "<Simple_Execute_Statement>":
                case "<Execute_File_Statement>":
                case "<Execute_Url_Statement>":
                case "<Execute_Wait_For_Exit_File_Statement>":
                case "<Execute_Wait_For_Exit_String_Statement>":
                case "<Execute_Wait_For_Exit_Url_Statement>":
                case "<Execute_No_Wait_For_Exit_File_Statement>":
                case "<Execute_No_Wait_For_Exit_String_Statement>":
                case "<Execute_No_Wait_For_Exit_Url_Statement>":
                    this.reduction = new Rule_Execute(pContext, T);
                    break;

                case "<List_All_Except_Statement>":
                case "<List_All_Statement>":
                case "<List_Columns_Statement>":
                //case "<Simple_List_Statement>":
                    this.reduction = new Rule_List(pContext, T);
                    break;

                case "<Simple_Tables_Statement>":
                case "<Tables_One_Variable_Statement>":
                case "<Row_All_Tables_Statement>":
                case "<Row_Except_Tables_Statement>":
                case "<Column_All_Tables_Statement>":
                case "<Column_Except_Tables_Statement>":
                case "<Row_Column_Tables_Statement>":
                    this.reduction = new Rule_Tables(pContext, T);
                    break;

                case "<Freq_All_Statement>":
                case "<Freq_Columns_Statement>":
                case "<Freq_All_Except_Statement>":
                    this.reduction = new Rule_Freq(pContext, T);
                    break;

                case "<Cancel_Sort_By_Sorting_Statement>":
                case "<Cancel_Sort_Statement>":
                case "<Sort_Statement>":
                    this.reduction = new Rule_Sort(pContext, T);
                    break;

                case "<Simple_Means_Statement>":
                case "<Row_All_Means_Statement>":
                case "<Row_All_Column_Means_Statement>":
                case "<Row_Column_All_Means_Statement>":
                case "<Row_Column_Means_Statement>":
                    this.reduction = new Rule_Means(pContext, T);
                    break;

                case "<Relate_Table_Statement>":
                    this.reduction = new Rule_Relate_Table(pContext, T);
                    break;
                case "<Relate_Db_Table_With_Identifier_Statement>":
                    this.reduction = new Rule_Relate_Db_Table_Identifier(pContext, T);
                    break;
                case "<Relate_Epi_Table_Statement>":
                    this.reduction = new Rule_Relate_Epi_Table(pContext, T);
                    break;

                case "<Beep_Statement>":
                    this.reduction = new Rule_Beep(pContext, T);
                    break;

                case "<Auto_Search_Statement>":
                    this.reduction = new Rule_AutoSearch(pContext, T);
                    break;

                case "<Quit_Statement>":
                    this.reduction = new Rule_Quit();
                    break;

                case "<Clear_Statement>":
                    this.reduction = new Rule_Clear(pContext, T);
                    break;

                case "<Delete_Table_Long_Statement>":
                    this.reduction = new Rule_Delete_Table_Long(pContext, T);
                    break;
                case "<Delete_File_Statement>":
                    this.reduction = new Rule_Delete_File(pContext, T);
                    break;
                case "<Delete_Table_Statement>":
                    this.reduction = new Rule_Delete_Table(pContext, T);
                    break;

                case "<Type_Out_String_Statement>":
                case "<Type_Out_File_Statement>":
                case "<Type_Out_String_With_Font_Statement>":
                case "<Type_Out_File_With_Font_Statement>":
                    this.reduction = new Rule_Typeout(pContext, T);
                    break;

                case "<New_Record_Statement>":
                    this.reduction = new Rule_NewRecord(pContext, T);
                    break;

                case "<Simple_Routeout_Statement>":
                case "<Replace_Routeout_Statement>":
                case "<Append_Routeout_Statement>":
                    this.reduction = new Rule_RouteOut(pContext, T);
                    break;

                case "<Close_Out_Statement>":
                    this.reduction = new Rule_CloseOut(pContext, T);
                    break;

                case "<Variables_Display_Statement>":
                case "<Views_Display_Statement>":
                case "<Tables_Display_Statement>":
                    this.reduction = new Rule_Display(pContext, T);
                    break;

                case "<Header_Title_String_Statement>":
                case "<Header_Title_Font_Statement>":
                case "<Header_Title_String_And_Font_Statement>":
                    this.reduction = new Rule_Header(pContext, T);
                    break;

                case "<Simple_Undefine_Statement>":
                    this.reduction = new Rule_Undefine(pContext, T);
                    break;

                case "<Run_File_PGM_Statement>":
                    this.reduction = new Rule_Run_File_PGM_Statement(pContext, T);
                    break;
                case "<Run_String_Statement>":
                    this.reduction = new Rule_Run_String_Statement(pContext, T);
                    break;
                case "<Run_PGM_In_Db_Statement>":
                    this.reduction = new Rule_Run_PGM_In_Db_Statement(pContext, T);
                    break;

                case "<Delete_Records_All_Statement>":
                    this.reduction = new Rule_Delete_Records_All_Statement(pContext, T);
                    break;
                case "<Delete_Records_Selected_Statement>":
                    this.reduction = new Rule_Delete_Records_Selected_Statement(pContext, T);
                    break;

                case "<Simple_Print_Out_Statement>":
                case "<File_Print_Out_Statement>":
                    this.reduction = new Rule_Printout(pContext, T);
                    break;

                case "<Simple_Run_Statement>":

                //**these are not yet implemented; move up when completed
                //**these are not yet implemented; move up when completed
                //**these are not yet implemented; move up when completed
                //**these are not yet implemented; move up when completed
                //**these are not yet implemented; move up when completed

                case "<Undelete_All_Statement>":
                case "<Undelete_Selected_Statement>":
                // Build 6

                case "<About_Statement>":

                case "<Browser_Statement>":
                case "<Browser_Size_Statement>":
                case "<Button_Offset_Size_1_Statement>":
                case "<Button_Offset_Size_2_Statement>":
                case "<Button_Offset_1_Statement>":
                case "<Button_Offset_2_Statement>":
                case "<Call_Statement>":

                case "<Simple_CMD_Statement>":
                case "<CMD_Line_Statement>":
            //!                case "<Simple_Cox_Statement>":
            //!                case "<Boolean_Cox_Statement>":
                case "<Define_Dll_Statement>":
                case "<Define_Group_Statement>":
                case "<Delete_Table_Short_Statement>":

                case "<Exit_Statement>":
                case "<File_Dialog_Statement>":
                case "<Get_Path_Statement>":
                case "<Simple_Graph_Statement>":
                case "<Strata_Var_Graph_Statement>":
                case "<Weight_Var_Graph_Statement>":
                case "<Stra_Wei_Var_Graph_Statement>":
                case "<Graph_Opt_1_Statement>":
                case "<Graph_Opt_2_Statement>":
                case "<Graph_Opt_3_Statement>":
                case "<Graph_Opt_4_Statement>":
                case "<Graph_Opt_5_Statement>":
                case "<Graph_Generic_Opt_Statement>":

                case "<Help_File_Statement>":
                case "<Simple_Help_Statement>":
                case "<Simple_KM_Survival_Statement>":
                case "<KM_Survival_Boolean_Statement>":
                case "<Logistic_Statement>":
                case "<Link_Statement>":
                case "<Link_Remove_Statement>":
                case "<Map_AVG_Statement>":
                case "<Map_Case_Statement>":
                case "<Map_Sum_Statement>":
                case "<Map_Count_Statement>":
                case "<Map_Min_Statement>":
                case "<Map_Max_Statement>":
                case "<Map_Opt_1_Statement>":
                case "<Map_Opt_2_Statement>":
                case "<Map_Opt_3_Statement>":
                case "<Map_Opt_4_Statement>":
                case "<Map_Opt_5_Statement>":
                case "<Match_Row_All_Statement>":
                case "<Match_Row_Except_Statement>":
                case "<Match_Column_All_Statement>":
                case "<Match_Column_Except_Statement>":
                case "<Match_Row_Column_Statement>":

                case "<Menu_Statement>":
                case "<Menu_Command_Statement>":
                case "<Menu_Dialog_Statement>":
                case "<Menu_Execute_Statement>":
            //!                case "<Menu_Help_Statement>":
            //!                case "<Menu_If_Statement>":
                case "<Menu_Item_Block_Name_Statement>":
                case "<Menu_Item_Separator_Statement>":
                case "<Menu_Replace_Statement>":
                case "<Move_Buttons_Statement>":
                case "<New_Page_Statement>":
                case "<On_Browser_Exit_Block>":
                case "<Picture_Statement>":
                case "<Picture_Size_Statement>":
                case "<Popup_Statement>":

                case "<Regress_Statement>":
                case "<Relate_Db_Table_Statement>":
                case "<Relate_File_Statement>":
                case "<Relate_Excel_File_Statement>":
                case "<Repeat_Statement>":
            //!                case "<Replace_Statement>":
                case "<Screen_Text_Statement>":

                case "<Set_Statement>":
                case "<Set_Buttons_Statement>":
                case "<Set_DB_Version_Statement>":
                case "<Set_DOS_Win_Statement>":
                case "<Set_Import_Year_Statement>":
                case "<Set_Ini_Dir_Statement>":
                case "<Set_Language_Statement>":
                case "<Set_Picture_Statement>":
                case "<Set_Work_Dir_Statement>":
                case "<ShutDown_Block>":

                case "<Startup_Block>":
                case "<Summarize_Statement>":
                case "<Sys_Info_Statement>":
                case "<All_Standard_Undefine_Statement>":
                case "<All_Global_Undefine_Statement>":
                case "<Wait_For_Statement>":
                case "<Wait_For_Exit_Statement>":
                case "<Wait_For_File_Exists_Statement>":

                case "<Command_Block>":
                case "<On_Browser_Exit_Empty_Block>":
                case "<Startup_Empty_Block>":
                case "<ShutDown_Empty_Block>":
                case "<Menu_Empty_Block>":
                case "<Popup_Empty_Block>":
                case "<Empty_Command_Block>":
                default:
                    break;
            }*/
        }