类 TokenStream

java.lang.Object
org.ssssssss.script.parsing.TokenStream

public class TokenStream extends Object
对List进行封装,提供匹配相关方法,方便语法解析
  • 构造器详细资料

    • TokenStream

      public TokenStream(List<Token> tokens)
  • 方法详细资料

    • hasMore

      public boolean hasMore()
      当前是否可读
    • hasNext

      public boolean hasNext()
      是否有下一个Token
    • hasPrev

      public boolean hasPrev()
      是否有前一个Token
    • makeIndex

      public int makeIndex()
      标记当前位置,和resetIndex搭配使用。
    • resetIndex

      public void resetIndex(int index)
      重置当前位置,和makeIndex搭配使用
    • consume

      public Token consume()
      无条件消耗掉当前Token
    • next

      public Token next()
      获取下一个Token并改变当前位置
    • prev

      public Token prev()
      获取前一个Token并改变当前位置
    • getPrev

      public Token getPrev()
      获取前一个Token,不改变当前位置
    • expect

      public Token expect(TokenType... types)
      期待下一个Token是给定的类型中之一
    • comments

      public List<Span> comments()
      获取全部注释
    • expect

      public Token expect(TokenType type)
      期待下一个Token为指定类型
    • expect

      public Token expect(String text)
      期待匹配字符串
    • expect

      public Token expect(String text, boolean ignoreCase)
      期待匹配字符串
      参数:
      ignoreCase - 是否忽略大小写
    • match

      public boolean match(TokenType type, boolean consume)
      匹配指定类型Token
      参数:
      consume - 匹配成功后是否改变当前位置
    • match

      public boolean match(List<String> texts, boolean consume)
      匹配指定类型Token
      参数:
      consume - 匹配成功后是否改变当前位置
    • match

      public boolean match(List<String> texts, boolean consume, boolean ignoreCase)
      匹配指定字符串
      参数:
      consume - 匹配成功后是否改变当前位置
      ignoreCase - 是否忽略大小写
    • match

      public boolean match(String text, boolean consume, boolean ignoreCase)
      匹配指定字符串
      参数:
      consume - 匹配成功后是否改变当前位置
      ignoreCase - 是否忽略大小写
    • match

      public boolean match(String text, boolean consume)
      匹配指定字符串
      参数:
      consume - 匹配成功后是否改变当前位置
    • match

      public boolean match(boolean consume, TokenType... types)
      匹配指定Token
      参数:
      consume - 匹配成功后是否改变当前位置
    • match

      public boolean match(boolean consume, String... tokenTexts)
      匹配指定字符串
      参数:
      consume - 匹配成功后是否改变当前位置
    • match

      public boolean match(boolean consume, boolean ignoreCase, String... tokenTexts)
      匹配指定字符串
      参数:
      consume - 匹配成功后是否改变当前位置
      ignoreCase - 是否忽略大小写