Exemplo n.º 1
0
 public EndiannessDirective(DirectiveToken directive)
 {
     if (directive.DirectiveType == DirectiveType.LittleEndian)
     {
         Endianness = Endianness.LittleEndian;
     }
     else if (directive.DirectiveType == DirectiveType.BigEndian)
     {
         Endianness = Endianness.BigEndian;
     }
     else
     {
         throw new InvalidOperationException("Wrong directive type: " + directive.DirectiveType);
     }
 }
Exemplo n.º 2
0
 public BitnessDirectiveSymbol(
     DirectiveToken directive,
     IntegerToken bitness)
 {
     symbols.Add(directive);
     symbols.Add(bitness);
     Directive = directive.DirectiveType switch
     {
         DirectiveType.OperandSize => BitnessDirectiveType.Data,
         DirectiveType.AddressSize => BitnessDirectiveType.Address,
         _ => throw new InvalidOperationException($"Wrong directive type: {directive.DirectiveType}"),
     };
     Bitness = bitness.UnsignedValue switch
     {
         8 => DataWidth.Byte,
         16 => DataWidth.Word,
         32 => DataWidth.Dword,
         64 => DataWidth.Qword,
         _ => throw new InvalidOperationException($"Invalid bitness: {bitness.UnsignedValue}"),
     };
 }