예제 #1
0
		public void visit(matching_expression _matching_expression)
		{
			bw.Write((Int16)197);
			write_matching_expression(_matching_expression);
		}
예제 #2
0
		public void write_matching_expression(matching_expression _matching_expression)
		{
			write_addressed_value(_matching_expression);
			if (_matching_expression.left == null)
			{
				bw.Write((byte)0);
			}
			else
			{
				bw.Write((byte)1);
				_matching_expression.left.visit(this);
			}
			if (_matching_expression.right == null)
			{
				bw.Write((byte)0);
			}
			else
			{
				bw.Write((byte)1);
				_matching_expression.right.visit(this);
			}
		}
 public override void visit(matching_expression _matching_expression)
 {
     SyntaxTree.procedure_call pc = new SyntaxTree.procedure_call();
     SyntaxTree.method_call mc = new SyntaxTree.method_call();
     dot_node dot = new dot_node(new ident("PABCSystem"), new ident("KV"));
     mc.dereferencing_value = dot;
     pc.func_name = mc;
     pc.source_context = _matching_expression.source_context;
     SyntaxTree.expression_list exl = new PascalABCCompiler.SyntaxTree.expression_list();
     exl.Add(_matching_expression.left);
     exl.Add(_matching_expression.right);
     mc.parameters = exl;
     visit(pc);
 }
		public void read_matching_expression(matching_expression _matching_expression)
		{
			read_addressed_value(_matching_expression);
			_matching_expression.left = _read_node() as expression;
			_matching_expression.right = _read_node() as expression;
		}
		public void visit(matching_expression _matching_expression)
		{
			read_matching_expression(_matching_expression);
		}
예제 #6
0
 public override void visit(matching_expression node)
 {
     prepare_node(node.left, "left");
     prepare_node(node.right, "right");
 }
 public override void visit(matching_expression _matching_expression)
 {
     visit_node(_matching_expression.left);
     visit_node(_matching_expression.right);
 }