示例#1
0
 /// <summary>
 /// Creates a new primitive register description based on the given type.
 /// </summary>
 /// <param name="primitiveType">The primitive type to store.</param>
 /// <param name="kind">The register kind to use.</param>
 /// <returns>The created register description.</returns>
 public static RegisterDescription Create(
     PrimitiveType primitiveType,
     TKind kind) =>
 new RegisterDescription(
     primitiveType,
     primitiveType.BasicValueType,
     kind);
 public Recognizer(TextParser <Unit> parser, bool isIgnored, TKind kind, bool isDelimiter)
 {
     Parser      = parser;
     IsIgnored   = isIgnored;
     Kind        = kind;
     IsDelimiter = isDelimiter;
 }
示例#3
0
 /// <summary>
 /// Creates a new advanced register description based on the given type.
 /// </summary>
 /// <param name="typeNode">The underlying type to store.</param>
 /// <param name="basicValueType">
 /// The base value type of the stored register.
 ///</param>
 /// <param name="kind">The register kind to use.</param>
 /// <returns>The created register description.</returns>
 public static RegisterDescription Create(
     TypeNode typeNode,
     BasicValueType basicValueType,
     TKind kind) =>
 new RegisterDescription(
     typeNode,
     basicValueType,
     kind);
示例#4
0
 /// <summary>
 /// Constructs a new register description.
 /// </summary>
 /// <param name="type">The type.</param>
 /// <param name="basicValueType">
 /// The representative basic value type.
 /// </param>
 /// <param name="kind">The register kind.</param>
 /// <remarks>
 /// Notet that the basic value type can differ from type.BasicValueType.
 /// This is due the fact that more advanced types like views or pointers
 /// can be represented by a single platform specific integer register,
 /// for instance. This also holds true for strings or reference types.
 /// </remarks>
 private RegisterDescription(
     TypeNode type,
     BasicValueType basicValueType,
     TKind kind)
 {
     Type           = type;
     BasicValueType = basicValueType;
     Kind           = kind;
 }
示例#5
0
 public TCharacter(TKind Kind) : base(Kind)
 {
 }
示例#6
0
 public TInteger(TKind Kind) : base(Kind)
 {
 }
示例#7
0
 public TRealFloat(TKind Kind) : base(Kind)
 {
 }
示例#8
0
 public TComplex(TKind Kind) : base(Kind)
 {
 }
示例#9
0
 public TReal(TKind Kind) : base(Kind)
 {
 }
示例#10
0
 public TStructUnion(TKind Kind, string tag, IEnumerable <Field> fields = null) : base(Kind)
 {
     this.tag    = tag;
     this.fields = fields;
 }
示例#11
0
 public TScalar(TKind Kind) : base(Kind)
 {
 }
示例#12
0
 public TObject(TKind Kind) : base(Kind)
 {
 }
示例#13
0
 public TUnqualified(TKind Kind)
 {
     this.Kind = Kind;
 }
示例#14
0
 public TArr(TKind Kind, T element) : base(Kind)
 {
     this.element = element;
 }
示例#15
0
 public TArithmetic(TKind Kind) : base(Kind)
 {
 }
示例#16
0
 /// <summary>
 /// Constructs a new register description.
 /// </summary>
 /// <param name="basicValueType">The basic value type.</param>
 /// <param name="kind">The register kind.</param>
 public RegisterDescription(BasicValueType basicValueType, TKind kind)
 {
     BasicValueType = basicValueType;
     Kind           = kind;
 }
示例#17
0
 public TBitField(TKind Kind, int bits) : base(Kind)
 {
     this.bits = bits;
 }