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 classAsahiLexer.Companion
-
Method Summary
Modifier and Type Method Description abstract Booleanexpect(String expects)预期下一个token若 下一个token 预期正确 则 跳过下一个token 并返回true否则 不跳过下一个token 并返回false abstract BooleanhasNext()BooleanisEnd()abstract Stringcurrent()当前Token abstract Stringnext()下一个Token abstract Stringprevious()上一个Token 无上一个Token时为null abstract IntegercurrentIndex()当前Token下标 abstract StringpeekNextIgnoreBlank()查看下一个Token(忽略空字符) abstract Stringpeek()查看下一个Token(不忽略空字符) abstract BooleanskipTill(String from, String till)跳过一些Token abstract List<String>splitTill(String from, String to)将一些Token 分割出来 abstract List<String>splitBefore(String to)将一些Token 分割出来 abstract StringsplitBeforeString(String to)将一些Token 分割出来 并以' '做分隔符结合为字符串 abstract Unitreset()重置Reader,下标归0 abstract Stringinfo(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 UnitwithEach(Function2<String, Integer, Unit> receiver)将每个Token作为接收器 abstract Quester<Boolean>questCondition(String till, Function1<AsahiLexer, Quester<Boolean>> boolQuester)寻求条件表达式 abstract Voiderror(String message)报错,会打印当前读取位置与堆栈 abstract UnitdebugOn()开启编译时调试 abstract UnitdebugOff()关闭编译时调试 abstract UnitquestAllTo(AsahiCompiledScript script)将词法器中所有Quester都塞到脚本里 abstract AsahiCompiledScriptparseScript(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- 命名空间
-
-
-
-