Ejemplo n.º 1
0
 public bool Parse(Variable v)
 {
     var c = new Code();
     c.PushCode(new PushVariable("arg"));
     c.PushCode(new Argument());
     while (t.checkNext() != "")
         ParseStatement(v, c);
     v.setCode(c);
     return error != 0;
 }
Ejemplo n.º 2
0
 public Variable GetVariable(string s)
 {
     var v = scope.GetVariable(s);
     if (v != null)
         return v;
     if (global.Exist(s))
         return global[s];
     v = new Variable();
     scope.AddLocal(s, v);
     return v;
 }
Ejemplo n.º 3
0
Archivo: PSL.cs Proyecto: Silica/CsPSL
 public bool LoadString(string str)
 {
     var t = new Tokenizer(str);
     var p = new Parser(t);
     var v = new Variable();
     if (p.Parse(v))
         return true;
     v.prepare(env);
     v["print"] = new Variable(print);
     env.Set(v);
     return false;
 }
Ejemplo n.º 4
0
 public override vBase substitution(Variable v)
 {
     x = v.toString(); return this;
 }
Ejemplo n.º 5
0
 public override bool eq(Variable v)
 {
     return x == v.toString();
 }
Ejemplo n.º 6
0
 public override void setchild(string s, Variable v)
 {
     if (!table.ContainsKey(s))
         table.Add(s, v);
     else
         table[s] = v;
 }
Ejemplo n.º 7
0
 public override void xor(Variable v)
 {
     x ^= v.toInt();
 }
Ejemplo n.º 8
0
 public override void or(Variable v)
 {
     x |= v.toInt();
 }
Ejemplo n.º 9
0
 public override Variable call(Environment env, Variable arg)
 {
     return x(arg);
 }
Ejemplo n.º 10
0
 public virtual void xor(Variable v)
 {
 }
Ejemplo n.º 11
0
 public virtual vBase substitution(Variable v)
 {
     return v.x.clone();
 }
Ejemplo n.º 12
0
 public virtual void sub(Variable v)
 {
 }
Ejemplo n.º 13
0
 public virtual void shr(Variable v)
 {
 }
Ejemplo n.º 14
0
 public virtual void setchild(string s, Variable v)
 {
     substitution(v);
 }
Ejemplo n.º 15
0
 public virtual bool ne(Variable v)
 {
     return false;
 }
Ejemplo n.º 16
0
 public override void mul(Variable v)
 {
     x *= v.toInt();
 }
Ejemplo n.º 17
0
 public override bool ne(Variable v)
 {
     return x != v.toInt();
 }
Ejemplo n.º 18
0
 public override void add(Variable v)
 {
     x += v.toInt();
 }
Ejemplo n.º 19
0
 public override void sub(Variable v)
 {
     x -= v.toInt();
 }
Ejemplo n.º 20
0
 public override void and(Variable v)
 {
     x &= v.toInt();
 }
Ejemplo n.º 21
0
 public override Variable call(Environment env, Variable arg)
 {
     if (code == null)
         return arg;
     env.AddScope(new FunctionScope(code));
     env.Push(arg);
     env.Run();
     return env.Pop();
 }
Ejemplo n.º 22
0
 public override void div(Variable v)
 {
     x /= v.toInt();
 }
Ejemplo n.º 23
0
 public override void add(Variable v)
 {
     x += v.toString();
 }
Ejemplo n.º 24
0
 public override bool eq(Variable v)
 {
     return x == v.toInt();
 }
Ejemplo n.º 25
0
 public override bool ne(Variable v)
 {
     return x != v.toString();
 }
Ejemplo n.º 26
0
 public override bool gt(Variable v)
 {
     return x > v.toInt();
 }
Ejemplo n.º 27
0
Archivo: PSL.cs Proyecto: Silica/CsPSL
 public static Variable print(Variable v)
 {
     Console.WriteLine(v.toString());
     return v;
 }
Ejemplo n.º 28
0
 public override bool lt(Variable v)
 {
     return x < v.toInt();
 }
Ejemplo n.º 29
0
Archivo: PSL.cs Proyecto: Silica/CsPSL
 public Variable Run(Variable v)
 {
     env.Push(v);
     env.Run();
     return env.Pop();
 }
Ejemplo n.º 30
0
 public override void mod(Variable v)
 {
     x %= v.toInt();
 }