public void Clone(IdentifierClass ic) { ID = ic.ID; Type = ic.Type; Name = ic.Name; DisplayName = ic.DisplayName; //Array_ID = new int[ic.Array_ID.Length]; //for (int i = 0; i < Array_ID.Length; i++) Array_ID[i] = ic.Array_ID[i]; }
public static Identifier Read(Stream stream) { byte firstOctet = (byte)stream.ReadByte(); if (WellKnownIdentifiers.ContainsKey(firstOctet)) { return(WellKnownIdentifiers[firstOctet]); } IdentifierClass identifierClass = (IdentifierClass)(firstOctet & 0b11000000); EncodingType encodingType = (EncodingType)(firstOctet & 0b00100000); int tag = firstOctet & 0b00011111; if (tag != 0b00011111) { var identifier = new Identifier { IdentifierClass = identifierClass, EncodingType = encodingType, Tag = tag }; return(identifier); } throw new NotImplementedException(); }
/// <summary> /// Добавить идентификатор /// </summary> /// <param name="symbol">Символ</param> /// <param name="classUsed">Класс</param> /// <returns>Идентификатор</returns> public Identifier Add(Symbol symbol, IdentifierClass classUsed) { var identifier = new Identifier { Symbol = symbol, Class = classUsed }; return(_identifiers.Add(identifier) ? identifier : null); }
public static void WriteIdentifier(Stream stream, IdentifierClass identifierClass, EncodingType encodingType, int tag) { var identifier = new Identifier { IdentifierClass = IdentifierClass.Universal, EncodingType = encodingType, Tag = tag }; identifier.Write(stream); }
// Создание определяющего вхождения идентификатора private IdentifierDesc CreateIdentifier(string identifierName, IdentifierClass identifierClass, TypeDesc identifierType = null) { if (CurrentScope.FindIdentifierInCurrentScope(identifierName) == null) { return(new IdentifierDesc(identifierName, identifierClass, identifierType)); } else { // Идентификатор уже определен в текущей области действия, ошибка Error(101); return(null); } }
// Поиск прикладного вхождения идентификатора private IdentifierDesc FindIdentifier(string identifierName, IdentifierClass identifierClass = IdentifierClass.Unknown) { var identifier = CurrentScope.FindIdentifier(identifierName); if (identifier != null) { return(identifier); } else { // Определяющее вхождение не найдено, занести в ТИ неопределенный идентификатор Error(104); identifier = new IdentifierDesc(identifierName, identifierClass, null); CurrentScope.IdentifierTable.Add(identifier); return(identifier); } }
public IdentifierClass(IdentifierClass ic) { Clone(ic); }
public IdentifierClass?SerializeDeserializeClass() { var t = new IdentifierClass(1234, 5678, 9101112, 13141516); return(TinyhandSerializer.Deserialize <IdentifierClass>(TinyhandSerializer.Serialize(t))); }
public IdentifierDesc(string name, IdentifierClass identifierClass, TypeDesc type) { this.name = name; this.identifierClass = identifierClass; this.type = type; }
public IdentifierDesc(string name, IdentifierClass identifierClass) { this.name = name; this.identifierClass = identifierClass; }