Example #1
0
        public static void parseFile(Token token, EnegyData data, VariabelDatabase db)
        {
            if (parsers == null)
                setParser();

            token.next();
            while(data.State == RunningState.Normal && token.getCache().type() != TokenType.EOF)
            {
                ParserInterface p;

                switch (token.getCache().type())
                {
                    case TokenType.Use:
                    case TokenType.Class:
                    case TokenType.Function:
                        p = parsers[token.getCache().type()];
                        break;
                    case TokenType.Public:
                        p = pp;
                        break;
                    default:
                        data.setError(new ScriptError("In file you are only allow to use 'use', 'public', 'class' or 'function'", token.getCache().posision()), db);
                        return;
                }

                p.parse(data, db, token);
            }
        }
Example #2
0
        public static CVar convert(object c, EnegyData data, VariabelDatabase db)
        {
            if (c is string)
            {
                return Types.toString((string)c, data, db, new Posision(0,0));
            }
            else if (c is bool)
            {
                return new BooleanVariabel((bool)c);
            }
            else if (c is FunctionVariabel)
            {
                return (FunctionVariabel)c;
            }
            else if (c is double)
            {
                return Types.toInt((double)c, data, db, new Posision(0,0));
            }
            else if (c is int)
            {
                return Types.toInt(Convert.ToDouble((int)c), data, db, new Posision(0,0));
            }
            else if (c is ObjectVariabel)
                return (ObjectVariabel)c;
            else if(c is ClassVariabel)
            {
                return (ClassVariabel)c;
            }

            data.setError(new ScriptError("Unkown type: " + c.GetType().Name, new Posision(0, 0)), db);
            return new NullVariabel();
        }
Example #3
0
        public void controleOveride(string name, EnegyData data)
        {
            if (!global.ContainsKey(name))
                return;

            CVar var = global[name];
            data.setError(new ScriptError("You canĀ“t convert " + name + " becuse it is " + var.type(), new Posision(0, 0)), this);
        }
Example #4
0
        public CVar get(string name, EnegyData data)
        {
            if (global.ContainsKey(name))
                return global[name];

            if (container.ContainsKey(name))
                return container[name];

            data.setError(new ScriptError("Unknown variabel: " + name, new Posision(0, 0)), this);
            return new NullVariabel();
        }