public void SetClassNodeAt(ClassNode node, int index) { classNodes[index] = node; Namespace.Symbol symbol = null; if (!symbolTable.TryGetExactSymbol(node.Name, out symbol)) symbol = symbolTable.AddSymbol(node.Name); symbol.Id = index; }
/// <summary> /// Tries to get the fully qualified name for the given name from this /// ClassTable. /// </summary> /// <param name="name">Partial name of the class for lookup</param> /// <param name="fullName">Fully qualified class name</param> /// <returns>True if the given name results a unique matching symbol in /// this ClassTable.</returns> public bool TryGetFullyQualifiedName(string name, out string fullName) { Validity.Assert(null != name); Namespace.Symbol symbol = null; fullName = string.Empty; if (symbolTable.TryGetUniqueSymbol(name, out symbol)) fullName = symbol.FullName; return !string.IsNullOrEmpty(fullName); }
/// <summary> /// Returns Class Id for the given fully qualified class name. /// </summary> /// <param name="fullname">Fully qualified class name</param> /// <returns>Class Id if found, else ProtoCore.DSASM.Constants.kInvalidIndex</returns> public int GetClassId(string fullname) { Validity.Assert(null != fullname); Namespace.Symbol symbol = null; if (symbolTable.TryGetExactSymbol(fullname, out symbol)) return symbol.Id; return ProtoCore.DSASM.Constants.kInvalidIndex; }
/// <summary> /// Find a matching class for given partial class name. /// </summary> /// <param name="partialName">Partial class name for lookup.</param> /// <returns>Class Id if found, else ProtoCore.DSASM.Constants.kInvalidIndex</returns> public int IndexOf(string partialName) { Validity.Assert(null != partialName); Namespace.Symbol symbol = null; if (symbolTable.TryGetUniqueSymbol(partialName, out symbol)) return symbol.Id; return ProtoCore.DSASM.Constants.kInvalidIndex; }
public int Append(ClassNode node) { Namespace.Symbol symbol = symbolTable.AddSymbol(node.name); if (null == symbol) { return(ProtoCore.DSASM.Constants.kInvalidIndex); } classNodes.Add(node); node.classId = classNodes.Count - 1; symbol.Id = node.classId; return(node.classId); }