示例#1
0
    }         // NT_Experiments

    private static void NT_Experiment()
    {
        Experiment e = new Experiment();

        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                Lex.GETidentifierAttr(out name);
                break;

            case 2: // SEM
                e.Name = name;
                experiments.Add(e);

                break;

            case 3:
                NT_Ingredient(ref e);
                break;

            case 4:
                NT_Ingredient(ref e);
                break;
            } // switch
        }     // for
    }         // NT_Experiment
示例#2
0
    }         // Interpret

    public static bool Parse()
    {
        //-----------------------------------|----------------------------------------
        Lex.InitLex();
        sp           = 0;
        pc           = ROOTPC;
        altRoot      = pc;
        mustRead     = true;
        errDist      = MINERRDIST + 1;
        leaveOrEnter = false;
        leaveCnt     = 0;
        enterCnt     = 0;
        Sem.StartSem();
        return(Errors.NumOfSynErrors() == 0);
    } // Parse
示例#3
0
    }     // Pop

    private static void GetNextToken()
    {
        for (;;)
        {
            Lex.GetToken(); // updates Lex.token
            if (Lex.token <= LASTTERM)
            {
                return;
            }
  #if !CONTPRAGMAACTS
            if (NumOfSynErrors() == 0)
  #endif
            Sem.pragmaMethods[Lex.token - LASTTERM - 1]();
        } // for
    }     // GetNextToken
示例#4
0
    }         // NT_Experiment

    private static void NT_Ingredient(ref Experiment exp)
    {
        for (;;)
        {
            switch (Syn.Interpret())
            {
            case 0:
                return;

            case 1:
                Lex.GETidentifierAttr(out name);
                break;

            case 2:
                Lex.GETnumberAttr(out amount);
                break;

            case 3: // SEM
                exp.AddIngredient(new Ingredient(name, amount));

                break;
            } // switch
        }     // for
    }         // NT_Ingredient