Esempio 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;
 }
Esempio 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;
 }
Esempio n. 3
0
File: PSL.cs Progetto: 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;
 }
Esempio n. 4
0
 public override vBase substitution(Variable v)
 {
     x = v.toString(); return this;
 }
Esempio n. 5
0
 public override bool eq(Variable v)
 {
     return x == v.toString();
 }
Esempio n. 6
0
 public override void setchild(string s, Variable v)
 {
     if (!table.ContainsKey(s))
         table.Add(s, v);
     else
         table[s] = v;
 }
Esempio n. 7
0
 public override void xor(Variable v)
 {
     x ^= v.toInt();
 }
Esempio n. 8
0
 public override void or(Variable v)
 {
     x |= v.toInt();
 }
Esempio n. 9
0
 public override Variable call(Environment env, Variable arg)
 {
     return x(arg);
 }
Esempio n. 10
0
 public virtual void xor(Variable v)
 {
 }
Esempio n. 11
0
 public virtual vBase substitution(Variable v)
 {
     return v.x.clone();
 }
Esempio n. 12
0
 public virtual void sub(Variable v)
 {
 }
Esempio n. 13
0
 public virtual void shr(Variable v)
 {
 }
Esempio n. 14
0
 public virtual void setchild(string s, Variable v)
 {
     substitution(v);
 }
Esempio n. 15
0
 public virtual bool ne(Variable v)
 {
     return false;
 }
Esempio n. 16
0
 public override void mul(Variable v)
 {
     x *= v.toInt();
 }
Esempio n. 17
0
 public override bool ne(Variable v)
 {
     return x != v.toInt();
 }
Esempio n. 18
0
 public override void add(Variable v)
 {
     x += v.toInt();
 }
Esempio n. 19
0
 public override void sub(Variable v)
 {
     x -= v.toInt();
 }
Esempio n. 20
0
 public override void and(Variable v)
 {
     x &= v.toInt();
 }
Esempio 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();
 }
Esempio n. 22
0
 public override void div(Variable v)
 {
     x /= v.toInt();
 }
Esempio n. 23
0
 public override void add(Variable v)
 {
     x += v.toString();
 }
Esempio n. 24
0
 public override bool eq(Variable v)
 {
     return x == v.toInt();
 }
Esempio n. 25
0
 public override bool ne(Variable v)
 {
     return x != v.toString();
 }
Esempio n. 26
0
 public override bool gt(Variable v)
 {
     return x > v.toInt();
 }
Esempio n. 27
0
File: PSL.cs Progetto: Silica/CsPSL
 public static Variable print(Variable v)
 {
     Console.WriteLine(v.toString());
     return v;
 }
Esempio n. 28
0
 public override bool lt(Variable v)
 {
     return x < v.toInt();
 }
Esempio n. 29
0
File: PSL.cs Progetto: Silica/CsPSL
 public Variable Run(Variable v)
 {
     env.Push(v);
     env.Run();
     return env.Pop();
 }
Esempio n. 30
0
 public override void mod(Variable v)
 {
     x %= v.toInt();
 }