Files
UnityExplorer_Fix/src/UI/Main/Console/Lexer/MatchLexer.cs

32 lines
853 B
C#
Raw Normal View History

using System.Collections.Generic;
using ExplorerBeta.Unstrip.ColorUtility;
using UnityEngine;
namespace ExplorerBeta.UI.Main.Console.Lexer
{
public abstract class MatchLexer
{
2020-10-26 01:07:59 +11:00
public abstract Color HighlightColor { get; }
2020-10-26 01:07:59 +11:00
public string HexColor => htmlColor ?? (htmlColor = "<#" + HighlightColor.ToHex() + ">");
private string htmlColor = null;
2020-10-26 01:07:59 +11:00
public virtual IEnumerable<char> StartChars { get { yield break; } }
public virtual IEnumerable<char> EndChars { get { yield break; } }
public abstract bool IsImplicitMatch(ILexer lexer);
public bool IsMatch(ILexer lexer)
{
2020-10-26 01:07:59 +11:00
if (IsImplicitMatch(lexer))
{
lexer.Commit();
2020-10-26 01:07:59 +11:00
return true;
}
2020-10-26 01:07:59 +11:00
lexer.Rollback();
return false;
}
}
}