コード例 #1
0
ファイル: AleLexer.cs プロジェクト: victacora/sifca
        protected virtual AleToken CreateToken(AleTokenType tokenType, int start, int length, string value = "", List<AleToken> container = null)
        {
            AleToken Token = new AleToken(tokenType, start, length, this);
            Token.Container = container;

            switch (tokenType)
            {
                case AleTokenType.UnknownText:
                case AleTokenType.DecimalNumber:
                case AleTokenType.FloatNumber:
                case AleTokenType.HexNumber:
                case AleTokenType.TextAtom:
                case AleTokenType.DateToken:
                case AleTokenType.Operation:
                case AleTokenType.Operator:
                case AleTokenType.Variable:
                    Token.Value = _Text.Substring(start, length);
                    break;
                case AleTokenType.TextConstant:
                    Token.Value = value;
                    break;
                case AleTokenType.Parentheses:
                case AleTokenType.Brackets:
                    Token.Value = _Text.Substring(start, 1);
                    break;
                case AleTokenType.ListToken:
                case AleTokenType.ListElement:
                    Token.Value = _ListSep;
                    break;
                case AleTokenType.KeyValue:
                    Token.Value = _KeyValueSep;
                    break;
                case AleTokenType.Pair:
                    Token.Value = _PairSep;
                    break;
                default:
                    Token.Value = value;
                    break;
            }

            return Token;
        }
コード例 #2
0
 public AleOperationToken(AleTokenType type, int start, int length, AleOperation op, AleSimpleLexer lexer = null)
     : base(type, start, length, lexer)
 {
     _Associativity = 0;
     _Operation     = op;
 }
コード例 #3
0
ファイル: AleLexer.cs プロジェクト: victacora/sifca
 public AleToken(AleTokenType type, int start, int length, AleSimpleLexer lexer = null)
 {
     _Type = type;
     _StartInOrigin = start;
     _LengthInOrigin = length;
     _SubElements = null;
     _Container = null;
     _Lexer = lexer;
     _Value = "";
 }
コード例 #4
0
ファイル: AleOperationToken.cs プロジェクト: victacora/sifca
 public AleOperationToken(AleTokenType type, int start, int length, AleOperation op, AleSimpleLexer lexer = null)
     : base(type, start, length, lexer)
 {
     _Associativity = 0;
     _Operation = op;
 }