public BinExprNode(ProtoCore.DSASM.Operator optr, Node leftNode, Node rightNode)
     : base(leftNode.Name, leftNode.Guid)
 {
     this.Optr  = optr;
     this.left  = leftNode;
     this.right = rightNode;
 }
Exemplo n.º 2
0
 public BinExprNode(ProtoCore.DSASM.Operator optr, Node leftNode, Node rightNode)
     : base(leftNode.Name, leftNode.Guid)
 {
     this.Optr = optr;
     this.left = leftNode;
     this.right = rightNode;
 }
 //
 // TODO Jun: Deprecate the overloaded constructors.
 // All assignment nodes must be instantiated with this constructor
 public Assignment(Node left, Node right)
     : base("", left.Guid)
 {
     Optr       = ProtoCore.DSASM.Operator.assign;
     base.Name  = ProtoCore.Utils.CoreUtils.GetOperatorString(Optr);
     this.left  = left;
     this.right = right;
 }
Exemplo n.º 4
0
 void logicalop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 44)
     {
         Get();
         op = Operator.and;
     }
     else if (la.kind == 45)
     {
         Get();
         op = Operator.or;
     }
     else
     {
         SynErr(61);
     }
 }
Exemplo n.º 5
0
 void addop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 46)
     {
         Get();
         op = Operator.add;
     }
     else if (la.kind == 38)
     {
         Get();
         op = Operator.sub;
     }
     else
     {
         SynErr(63);
     }
 }
Exemplo n.º 6
0
 void mulop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 39)
     {
         Get();
         op = Operator.mul;
     }
     else if (la.kind == 40)
     {
         Get();
         op = Operator.div;
     }
     else
     {
         SynErr(64);
     }
 }
Exemplo n.º 7
0
        void relop(out Operator op)
        {
            op = Operator.none;
            switch (la.kind)
            {
            case 10: {
                Get();
                op = Operator.gt;
                break;
            }

            case 11: {
                Get();
                op = Operator.lt;
                break;
            }

            case 12: {
                Get();
                op = Operator.ge;
                break;
            }

            case 13: {
                Get();
                op = Operator.le;
                break;
            }

            case 14: {
                Get();
                op = Operator.eq;
                break;
            }

            case 15: {
                Get();
                op = Operator.nq;
                break;
            }

            default: SynErr(62); break;
            }
        }
Exemplo n.º 8
0
 void bitop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 41)
     {
         Get();
         op = Operator.bitwiseand;
     }
     else if (la.kind == 42)
     {
         Get();
         op = Operator.bitwiseor;
     }
     else if (la.kind == 43)
     {
         Get();
         op = Operator.bitwisexor;
     }
     else
     {
         SynErr(66);
     }
 }
Exemplo n.º 9
0
 void Imperative_addop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 57) {
     Get();
     op = Operator.add;
     } else if (la.kind == 12) {
     Get();
     op = Operator.sub;
     } else SynErr(126);
 }
Exemplo n.º 10
0
	void AddOp(out Operator op) {
		op = Operator.add; 
		if (la.kind == 50) {
			Get();
		} else if (la.kind == 14) {
			Get();
			op = Operator.sub; 
		} else SynErr(74);
	}
Exemplo n.º 11
0
	void BinaryOps(out Operator op) {
		op = Operator.none; 
		if (la.kind == 14 || la.kind == 50) {
			AddOp(out op);
		} else if (la.kind == 51 || la.kind == 52) {
			MulOp(out op);
		} else if (StartOf(9)) {
			ComparisonOp(out op);
		} else if (la.kind == 55 || la.kind == 56) {
			LogicalOp(out op);
		} else SynErr(73);
	}
Exemplo n.º 12
0
	private string GetArithmeticFunction(Operator op)
	{
	    return "";
	}
Exemplo n.º 13
0
	void MulOp(out Operator op) {
		op = Operator.mul; 
		if (la.kind == 51) {
			Get();
		} else if (la.kind == 52) {
			Get();
			op = Operator.div; 
		} else SynErr(75);
	}
Exemplo n.º 14
0
 void logicalop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 44) {
     Get();
     op = Operator.and;
     } else if (la.kind == 45) {
     Get();
     op = Operator.or;
     } else SynErr(61);
 }
Exemplo n.º 15
0
 void addop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 46) {
     Get();
     op = Operator.add;
     } else if (la.kind == 38) {
     Get();
     op = Operator.sub;
     } else SynErr(63);
 }
Exemplo n.º 16
0
	void ComparisonOp(out Operator op) {
		op = Operator.none; 
		switch (la.kind) {
		case 17: {
			Get();
			op = Operator.gt; 
			break;
		}
		case 44: {
			Get();
			op = Operator.ge; 
			break;
		}
		case 16: {
			Get();
			op = Operator.lt; 
			break;
		}
		case 45: {
			Get();
			op = Operator.le; 
			break;
		}
		case 46: {
			Get();
			op = Operator.eq; 
			break;
		}
		case 47: {
			Get();
			op = Operator.nq; 
			break;
		}
		default: SynErr(76); break;
		}
	}
Exemplo n.º 17
0
	void LogicalOp(out Operator op) {
		op = Operator.and; 
		if (la.kind == 55) {
			Get();
		} else if (la.kind == 56) {
			Get();
			op = Operator.or; 
		} else SynErr(77);
	}
Exemplo n.º 18
0
 //
 // TODO Jun: Deprecate the overloaded constructors. 
 // All assignment nodes must be instantiated with this constructor
 public Assignment(Node left, Node right)
     : base("", left.Guid)
 {
     Optr = ProtoCore.DSASM.Operator.assign;
     base.Name = ProtoCore.Utils.CoreUtils.GetOperatorString(Optr);
     this.left = left;
     this.right = right;
 }
Exemplo n.º 19
0
 void Imperative_bitop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 61) {
     Get();
     op = Operator.bitwiseand;
     } else if (la.kind == 13) {
     Get();
     op = Operator.bitwiseor;
     } else if (la.kind == 62) {
     Get();
     op = Operator.bitwisexor;
     } else SynErr(128);
 }
Exemplo n.º 20
0
 void Imperative_logicalop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 63) {
     Get();
     op = Operator.and;
     } else if (la.kind == 64) {
     Get();
     op = Operator.or;
     } else SynErr(124);
 }
Exemplo n.º 21
0
 void relop(out Operator op)
 {
     op = Operator.none;
     switch (la.kind) {
     case 10: {
     Get();
     op = Operator.gt;
     break;
     }
     case 11: {
     Get();
     op = Operator.lt;
     break;
     }
     case 12: {
     Get();
     op = Operator.ge;
     break;
     }
     case 13: {
     Get();
     op = Operator.le;
     break;
     }
     case 14: {
     Get();
     op = Operator.eq;
     break;
     }
     case 15: {
     Get();
     op = Operator.nq;
     break;
     }
     default: SynErr(62); break;
     }
 }
Exemplo n.º 22
0
 void Imperative_mulop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 58) {
     Get();
     op = Operator.mul;
     } else if (la.kind == 59) {
     Get();
     op = Operator.div;
     } else if (la.kind == 60) {
     Get();
     op = Operator.mod;
     } else SynErr(127);
 }
Exemplo n.º 23
0
 void bitop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 41) {
     Get();
     op = Operator.bitwiseand;
     } else if (la.kind == 42) {
     Get();
     op = Operator.bitwiseor;
     } else if (la.kind == 43) {
     Get();
     op = Operator.bitwisexor;
     } else SynErr(66);
 }
Exemplo n.º 24
0
 void Imperative_relop(out Operator op)
 {
     op = Operator.none;
     switch (la.kind) {
     case 15: {
     Get();
     op = Operator.gt;
     break;
     }
     case 14: {
     Get();
     op = Operator.lt;
     break;
     }
     case 17: {
     Get();
     op = Operator.ge;
     break;
     }
     case 16: {
     Get();
     op = Operator.le;
     break;
     }
     case 18: {
     Get();
     op = Operator.eq;
     break;
     }
     case 19: {
     Get();
     op = Operator.nq;
     break;
     }
     default: SynErr(125); break;
     }
 }
Exemplo n.º 25
0
 void mulop(out Operator op)
 {
     op = Operator.none;
     if (la.kind == 39) {
     Get();
     op = Operator.mul;
     } else if (la.kind == 40) {
     Get();
     op = Operator.div;
     } else SynErr(64);
 }
Exemplo n.º 26
0
	void BitOp(out Operator op) {
		op = Operator.bitwiseand; 
		if (la.kind == 53) {
			Get();
		} else if (la.kind == 54) {
			Get();
			op = Operator.bitwisexor; 
		} else if (la.kind == 15) {
			Get();
			op = Operator.bitwiseor; 
		} else SynErr(79);
	}