Interface AsahiLexer
-
- All Implemented Interfaces:
-
com.skillw.asahi.api.member.namespace.NamespaceHolder
public interface AsahiLexer implements NamespaceHolder<AsahiLexer>
AsahiLexer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description public class
AsahiLexer.Companion
-
Method Summary
Modifier and Type Method Description abstract Boolean
expect(String expects)
预期下一个token若 下一个token 预期正确 则 跳过下一个token 并返回true否则 不跳过下一个token 并返回false abstract Boolean
hasNext()
Boolean
isEnd()
abstract String
current()
当前Token abstract String
next()
下一个Token abstract String
previous()
上一个Token 无上一个Token时为null abstract Integer
currentIndex()
当前Token下标 abstract String
peekNextIgnoreBlank()
查看下一个Token(忽略空字符) abstract String
peek()
查看下一个Token(不忽略空字符) abstract Boolean
skipTill(String from, String till)
跳过一些Token abstract List<String>
splitTill(String from, String to)
将一些Token 分割出来 abstract List<String>
splitBefore(String to)
将一些Token 分割出来 abstract String
splitBeforeString(String to)
将一些Token 分割出来 并以' '做分隔符结合为字符串 abstract Unit
reset()
重置Reader,下标归0 abstract String
info(String message, Integer index)
当前信息(包括脚本,下标) Quester<String>
questString()
寻求字符串 Quester<Integer>
questInt()
寻求 int Quester<Double>
questDouble()
寻求 double Quester<Float>
questFloat()
寻求 float Quester<Byte>
questByte()
寻求 byte Quester<Short>
questShort()
寻求 short Quester<Boolean>
questBoolean()
寻求 boolean Quester<Long>
questLong()
寻求 long Quester<List<Object>>
questList()
寻求 list Quester<Array<Object>>
questArray()
寻求 array Quester<Map<String, Object>>
questMap()
寻求 map Quester<Object>
questObj()
寻求 tokenizer Quester<Object>
questAny()
寻求 tokenizer Quester<LazyQuester<Object>>
questLazy()
寻求 代码块 Quester<Time>
questTime()
寻求 Time Quester<Object>
skip()
跳过下一个语句 Quester<Long>
questTick()
寻求 Tick Quester<Map<String, Object>>
questTypeMap()
通过Map类型解释器寻求Map Quester<List<Object>>
questTypeList()
通过List类型解释器寻求List Quester<Array<Object>>
questTypeArray()
寻通过Array类型解释器寻求Array abstract Unit
withEach(Function2<String, Integer, Unit> receiver)
将每个Token作为接收器 abstract Quester<Boolean>
questCondition(String till, Function1<AsahiLexer, Quester<Boolean>> boolQuester)
寻求条件表达式 abstract Void
error(String message)
报错,会打印当前读取位置与堆栈 abstract Unit
debugOn()
开启编译时调试 abstract Unit
debugOff()
关闭编译时调试 abstract Unit
questAllTo(AsahiCompiledScript script)
将词法器中所有Quester都塞到脚本里 abstract AsahiCompiledScript
parseScript(String namespaces)
解析一段无参函数 -
-
Method Detail
-
expect
abstract Boolean expect(String expects)
预期下一个token
若 下一个token 预期正确 则 跳过下一个token 并返回true
否则 不跳过下一个token 并返回false
- Returns:
下一个token是否符合预期
-
currentIndex
abstract Integer currentIndex()
当前Token下标
- Returns:
当前Token下标
-
peekNextIgnoreBlank
abstract String peekNextIgnoreBlank()
查看下一个Token(忽略空字符)
- Returns:
下一个Token(忽略空字符)
-
skipTill
abstract Boolean skipTill(String from, String till)
跳过一些Token
- Parameters:
from
- 开头Tokentill
- 结尾Token- Returns:
是否跳过成功
-
splitTill
abstract List<String> splitTill(String from, String to)
将一些Token 分割出来
- Parameters:
from
- 开头Tokento
- 结尾Token- Returns:
中间的Tokens
-
splitBefore
abstract List<String> splitBefore(String to)
将一些Token 分割出来
- Parameters:
to
- 结尾Token- Returns:
to前的Tokens
-
splitBeforeString
abstract String splitBeforeString(String to)
将一些Token 分割出来 并以' '做分隔符结合为字符串
- Parameters:
to
- 结尾Token- Returns:
to前的Tokens以' '做分隔符结合为的字符串
-
questString
Quester<String> questString()
寻求字符串
- Returns:
Quester<String>
-
questDouble
Quester<Double> questDouble()
寻求 double
-
questFloat
Quester<Float> questFloat()
寻求 float
-
questShort
Quester<Short> questShort()
寻求 short
-
questBoolean
Quester<Boolean> questBoolean()
寻求 boolean
-
questArray
Quester<Array<Object>> questArray()
寻求 array
-
questLazy
Quester<LazyQuester<Object>> questLazy()
寻求 代码块
-
questTypeMap
Quester<Map<String, Object>> questTypeMap()
通过Map类型解释器寻求Map
-
questTypeList
Quester<List<Object>> questTypeList()
通过List类型解释器寻求List
-
questTypeArray
Quester<Array<Object>> questTypeArray()
寻通过Array类型解释器寻求Array
-
questCondition
abstract Quester<Boolean> questCondition(String till, Function1<AsahiLexer, Quester<Boolean>> boolQuester)
寻求条件表达式
- Parameters:
till
- 截止TokenboolQuester
- 自定义bool寻求函数- Returns:
条件表达式Quester
-
questAllTo
abstract Unit questAllTo(AsahiCompiledScript script)
将词法器中所有Quester都塞到脚本里
- Parameters:
script
- 脚本
-
parseScript
abstract AsahiCompiledScript parseScript(String namespaces)
解析一段无参函数
- Parameters:
namespaces
- 命名空间
-
-
-
-