//------------------------------------------------------------ // OpFormat.STI形式のコンストラクタ。 public BCOpCode(OpType aOp, BCSymbolLink aSymbolLink) { // 設定 mFormat = OpFormat.STI; mOp = aOp; mSymbolLink = aSymbolLink; // チェック checkOpAndFormat(); }
//------------------------------------------------------------ // 適切なSymbolLinkを取得する。 public BCSymbolLink CheckAndGet(ISymbolNode aSymbol) { // 既に存在していればそれを取得する foreach (var entry in mList) { if (System.Object.ReferenceEquals(entry.TargetNode, aSymbol)) {// あった return(entry); } } // なければ追加してそれを返す // todo: 0xFFFFを越えたときの処理 var newLink = new BCSymbolLink(aSymbol, (ushort)mList.Count); mList.Add(newLink); return(newLink); }