Exemplo n.º 1
0
    public KurumiScript(KurumiStorage storage, KurumiValueList expression)
    {
        int storage_size = storage.size();

        this.storage    = storage;
        this.expression = expression;
        data            = new KurumiReference[storage_size];
        for (int i = 0; i < storage_size; i++)
        {
            data[i] = new KurumiReference(i);
        }
        init_library();
    }
Exemplo n.º 2
0
    parse(string string_data)
    {
        try {
            expression         = new KurumiValueList();
            goto_storage       = new KurumiGotoStarage();
            value_i            = 0;
            if_statement_count = 0;
            storage            = new KurumiStorage();
            IterableString s = new IterableString(string_data);
            list = s.tokenize();
            generate_code();

            return(new KurumiScript(storage, expression));
        } catch (Exception e) {
            Console.WriteLine("{0}", e.Message);
            return(null);
        }
    }
Exemplo n.º 3
0
    add(KurumiToken token, KurumiStorage storage)
    {
        switch (token.type)
        {
        case TokenType.String:
            add(new KurumiString(token.data));
            break;

        case TokenType.Number:
            add(new KurumiNumber(token.data));
            break;

        case TokenType.Identifier:
            add(new KurumiCommand(KurumiCommandType.REF));
            add(new KurumiNumber(storage.get_index_from_name(token.data)));
            break;

        case TokenType.Operator:
            add(new KurumiCommand(token.optype_to_command()));
            break;

        default: break;
        }
    }