//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) { }
//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; }
public void visit(ILabelNode value) { string s = value.GetType().Name + "."; prepare_string_node(value.name, s + "name"); }
public void visit(ILabelNode value) { throw new System.NotSupportedException(value.GetType().ToString()); }