Exemple #1
0
 /// <summary>
 /// Expands the token text
 /// </summary>
 /// <param name="table">the table used when creating the token text</param>
 /// <returns>the token with the expanded</returns>
 public ExpandedTokenData <StringSegment> Expand(TokenTextTable table)
 {
     Contract.RequiresNotNull(table);
     return(!IsValid
         ? default(ExpandedTokenData <StringSegment>)
         : new ExpandedTokenData <StringSegment>(Path, Line, Position, Text.ToString(table)));
 }
Exemple #2
0
        public static TokenText Create(TokenTextTable table, StringBuilderSegment text)
        {
            Contract.RequiresNotNull(table);
            Contract.Ensures(Contract.Result <TokenText>().IsValid);

            return(new TokenText(table.AddString(text)));
        }
 public void Write(TokenTextTable value)
 {
     Contract.RequiresNotNull(value);
     Start <TokenTextTable>();
     value.Serialize(this);
     End();
 }
        public static TokenText Create(TokenTextTable table, CharArraySegment text)
        {
            Contract.Requires(table != null);
            Contract.Ensures(Contract.Result <TokenText>().IsValid);

            return(new TokenText(table.AddString(text)));
        }
        public string ToString(TokenTextTable table)
        {
            Contract.Requires(table != null);
            Contract.Ensures(Contract.Result <string>() != null);

            return(!IsValid ? "{Invalid}" : table.GetString(Value));
        }
        /// <summary>
        /// Reads a TokenTextTable
        /// </summary>
        public TokenTextTable ReadTokenTextTable()
        {
            Start <TokenTextTable>();
            var value = TokenTextTable.Deserialize(this);

            End();
            return(value);
        }
Exemple #7
0
        public static BuildXLContext CreateInstanceForTesting()
        {
            var stringTable    = new StringTable();
            var pathTable      = new PathTable(stringTable);
            var symbolTable    = new SymbolTable(stringTable);
            var qualifierTable = new QualifierTable(stringTable);
            var tokenTextTable = new TokenTextTable();

            return(new TestContext(stringTable, pathTable, symbolTable, qualifierTable, tokenTextTable));
        }
Exemple #8
0
        public void CopyTo(TokenTextTable table, StringBuilder builder)
        {
            Contract.RequiresNotNull(table);
            Contract.RequiresNotNull(builder);

            if (!IsValid)
            {
                return;
            }

            table.CopyString(Value, builder);
        }
Exemple #9
0
 /// <summary>
 /// Constructs a new instance
 /// </summary>
 public TestContext(
     StringTable stringTable,
     PathTable pathTable,
     SymbolTable symbolTable,
     QualifierTable qualifierTable,
     TokenTextTable tokenTextTable)
     : base(
         CancellationToken.None,
         stringTable,
         pathTable,
         symbolTable,
         qualifierTable,
         tokenTextTable)
 {
 }
Exemple #10
0
 /// <summary>
 /// Constructs a new instance
 /// </summary>
 public BuildXLTestContext(
     StringTable stringTable,
     PathTable pathTable,
     SymbolTable symbolTable,
     QualifierTable qualifierTable,
     TokenTextTable tokenTextTable,
     CancellationToken cancellationToken)
     : base(
         cancellationToken,
         stringTable,
         pathTable,
         symbolTable,
         qualifierTable,
         tokenTextTable)
 {
 }
Exemple #11
0
        /// <summary>
        /// Must create a derived class for your component
        /// </summary>
        protected BuildXLContext(
            CancellationToken cancellationToken,
            StringTable stringTable,
            PathTable pathTable,
            SymbolTable symbolTable,
            QualifierTable qualifierTable,
            TokenTextTable tokenTextTable)
            : base(
                cancellationToken,
                stringTable,
                pathTable,
                symbolTable,
                qualifierTable)
        {
            Contract.Requires(tokenTextTable != null);

            m_tokenTextTable = tokenTextTable;
        }
Exemple #12
0
        /// <summary>
        /// Helper method that will try to map the position in the token string to the correct original line and position in the
        /// file.
        /// </summary>
        /// <remarks>
        /// It will start with the token as line and position info. It will scan through the actual text to find the lines and
        /// recomputes the location.
        /// </remarks>
        /// <param name="table">The table used when creating the token.</param>
        /// <param name="positionInToken">The actual character position int the text of the token.</param>
        /// <returns>An updated token with recomputed line information</returns>
        public TokenData UpdateLineInformationForPosition(TokenTextTable table, int positionInToken)
        {
            Contract.RequiresNotNull(table);
            Contract.Requires(positionInToken >= 0);
            Contract.Requires(positionInToken <= Text.GetLength(table));

            int line = Line;
            int pos  = Position;

            var  text    = Text.ToString(table);
            bool seenCr  = false;
            int  lastPos = Math.Min(positionInToken, Text.GetLength(table) - 1);

            for (int i = 0; i < lastPos; i++)
            {
                char c = text[i];
                if (c == '\n')
                {
                    if (!seenCr)
                    {
                        // in case of \n (not \r\n) start a new line.
                        line++;
                        pos = 0;
                    }
                }
                else if (c == '\r')
                {
                    // in case of \r start a new line.
                    seenCr = true;
                    line++;
                    pos = 0;
                }
                else
                {
                    seenCr = false;
                    pos++;
                }
            }

            return(new TokenData(Path, line, pos, Text));
        }
Exemple #13
0
        public int GetLength(TokenTextTable table)
        {
            Contract.RequiresNotNull(table);

            return(table.GetLength(Value));
        }
Exemple #14
0
        public string ToString(TokenTextTable table)
        {
            Contract.RequiresNotNull(table);

            return(!IsValid ? "{Invalid}" : table.GetString(Value));
        }
Exemple #15
0
        public static TokenText Create(TokenTextTable table, StringBuilderSegment text)
        {
            Contract.RequiresNotNull(table);

            return(new TokenText(table.AddString(text)));
        }