コード例 #1
0
        public string Visit(Comp_ node, int modo)
        {
            var str = "";

            str = str + Visit((dynamic)node[0], 4) + "\n";
            str = str + Visit((dynamic)node[1], 4) + "\n";
            str = str + "\t\tceq\n";
            if (node.AnchorToken.lexeme == "!=")
            {
                str = str + "\t\tldc.i8 1\n";
                str = str + "\t\txor\n";
            }
            return(str);
        }
コード例 #2
0
        public Node expr_comp()
        {
            //Console.WriteLine("expr_comp");
            //Console.WriteLine("expr_comp");
            Node expr_rel_ = expr_rel();

            if (CurrentToken == TokenCategory.EQUAL || CurrentToken == TokenCategory.NOTEQUAL)
            {
                //Console.WriteLine("while4");
                var comp = new Comp_();
                var r    = op_comp();
                comp.AnchorToken = r;
                comp.Add(expr_rel_);
                comp.Add(expr_rel());
                return(comp);
            }
            return(expr_rel_);
        }
コード例 #3
0
 public void Visit(Comp_ node, int modo)
 {
     VisitChildren(node, modo);
 }