using System;
namespace AnticipatingMinds.Genesis.CodeDOM{
/// <summary>
/// Represents a format in which primitive value has been expressed in the code.
/// </summary>
public enum CodePrimitiveExpressionFormat
{
/// <summary>
/// Default form of value representation.
/// </summary>
Default,
/// <summary>
/// Verbatim string @"".
/// </summary>
VerbatimString,
/// <summary>
/// Hexidecimal escape sequence '\x3'
/// </summary>
HexidecimalEscapeSequence,
/// <summary>
/// Unicode escape sequence '\u0x22'.
/// </summary>
UnicodeEscapeSequence,
/// <summary>
/// Hexidecimal format for number.
/// </summary>
HexidecimalNumber
}
/// <summary>
/// Represents a primitive (constant) expression.
/// </summary>
[Serializable]
public class CodePrimitiveExpression : CodeExpression
{
#region Instance constructors
/// <summary>
/// Initializes new instance of <see cref="CodePrimitiveExpression"/> class.
/// </summary>
public CodePrimitiveExpression():this(null)
{
}
/// <summary>
/// Initializes new instance of <see cref="CodePrimitiveExpression"/> class.
/// </summary>
/// <param name="value">Primitive expression.</param>
public CodePrimitiveExpression(object value)
{
Value = value;
}
#endregion Instance constructors
#region Public instance properties
/// <summary>
/// Gets or sets primitive expression value.
/// </summary>
public object Value
{
get
{
return this.value;
}
set
{
this.value = value;
}
}
/// <summary>
/// Returns primitive expression class.
/// </summary>
public CodePrimitiveExpressionFormat Format
{
get
{
return kind;
}
set
{
kind = value;
}
}
#endregion Public instance properties
#region Private instance fields
private object value;
private CodePrimitiveExpressionFormat kind = CodePrimitiveExpressionFormat.Default;
#endregion Private instance fields
}
}
|