예제 #1
0
        public static TextStyle From(Token token, CompilerBrowser compiler)
        {
            try
            {
                if(token.IsError)
                    return Error;
                if(token.IsBraceLike && compiler.FindAllBelongings(token).Skip(1).Any())
                    return token.IsBrace ? Brace : BraceLikeKeyWord;
                if(token.IsKeyword)
                    return KeyWord;
                if(token.IsComment || token.IsLineComment)
                    return Comment;
                if(token.IsNumber)
                    return Number;
                if(token.IsText)
                    return Text;

                return Default;
            }
            catch(Exception)
            {
                return Error;
            }
        }
예제 #2
0
파일: Token.cs 프로젝트: hahoyer/reni.cs
 internal Trimmed(Token token, SourcePart sourcePart)
 {
     Token = token;
     SourcePart = sourcePart.Intersect(Token.SourcePart)
         ?? Token.SourcePart.Start.Span(0);
 }
예제 #3
0
파일: Source.cs 프로젝트: hahoyer/reni.cs
 internal IEnumerable<SourcePart> BracesLike(Token current)
     => Compiler.FindAllBelongings(current);
예제 #4
0
파일: Token.cs 프로젝트: hahoyer/reni.cs
 bool Equals(Token other) => SourcePart == other.SourcePart;