Esempio n. 1
0
        //ssyy
        public Label GetLabel(ILabelNode label, ILGenerator il)
        {
            if (defs.ContainsKey(label))
            {
                return((Label)(defs[label]));
            }
            Label lab = il.DefineLabel();

            defs.Add(label, lab);
            return(lab);
        }
 public virtual void visit(ILabelNode value)
 {
 }
Esempio n. 3
0
 //ssyy
 public Label GetLabel(ILabelNode label, ILGenerator il)
 {
     if (defs.ContainsKey(label))
     {
         return (Label)(defs[label]);
     }
     Label lab = il.DefineLabel();
     defs.Add(label, lab);
     return lab;
 }
        public ParseTreeNode<ITreeNode> extractLabels(ILabelNode node)
        {
            bool labelFound = false;
            int position = 0;
            List<ITreeNode> curBlock = node.getBlock(); //the highest block, with possible nested blocks
            String curLabel = node.getLabel();
            ParseTreeNode<ITreeNode> labelNode;//the node we return
            ParseTreeNode<ITreeNode> nextLabelNode = new ParseTreeNode<ITreeNode>(null, null, node);

            while (position < curBlock.Count)
            {
                if (curBlock[position].getLexemeType() == LexemeType.LABELED_BLOCK)
                {
                    ILabelNode tempNode = (ILabelNode)curBlock[position];
                    //create a new ParseTreeNode, with that element as a component
                    //and with the result of extractLabels() as a right node
                    labelFound = true;
                    ILabelNode subNode = new LabelNode(tempNode.getLabel(), tempNode.getBlock());
                    nextLabelNode = extractLabels(subNode);
                }
                position++;
            }
            if (labelFound)
            {
                labelNode = new ParseTreeNode<ITreeNode>(null, nextLabelNode, node);
            }
            else
            {
                labelNode = new ParseTreeNode<ITreeNode>(null, null, node);
            }
            return labelNode;
        }
Esempio n. 5
0
 public void visit(ILabelNode value)
 {
     string s = value.GetType().Name + ".";
     prepare_string_node(value.name, s + "name");
 }
Esempio n. 6
0
 public virtual void visit(ILabelNode value)
 {
 	
 }
Esempio n. 7
0
 public void visit(ILabelNode value)
 {
     throw new System.NotSupportedException(value.GetType().ToString());
 }