Refactor risuChatParser
This commit is contained in:
@@ -1941,6 +1941,7 @@ export function risuChatParser(da:string, arg:{
|
|||||||
callStack: arg.callStack,
|
callStack: arg.callStack,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
da = da.replace(/\<(user|char|bot)\>/gi, '{{$1}}')
|
||||||
|
|
||||||
const isPureMode = () => {
|
const isPureMode = () => {
|
||||||
return pureModeNest.size > 0
|
return pureModeNest.size > 0
|
||||||
@@ -1963,15 +1964,6 @@ export function risuChatParser(da:string, arg:{
|
|||||||
stackType[nested.length] = 1
|
stackType[nested.length] = 1
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case '<':{
|
|
||||||
if(stackType[nested.length] === 1){
|
|
||||||
nested[0] += da[pointer]
|
|
||||||
break
|
|
||||||
}
|
|
||||||
nested.unshift('')
|
|
||||||
stackType[nested.length] = 2
|
|
||||||
break
|
|
||||||
}
|
|
||||||
case '#':{
|
case '#':{
|
||||||
//legacy if statement, deprecated
|
//legacy if statement, deprecated
|
||||||
if(da[pointer + 1] !== '}' || nested.length === 1 || stackType[nested.length] !== 1){
|
if(da[pointer + 1] !== '}' || nested.length === 1 || stackType[nested.length] !== 1){
|
||||||
@@ -2101,79 +2093,6 @@ export function risuChatParser(da:string, arg:{
|
|||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
case '>':{
|
|
||||||
if(stackType[nested.length] === 1){
|
|
||||||
nested[0] += da[pointer]
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if(nested.length === 1 || stackType[nested.length] !== 2){
|
|
||||||
break
|
|
||||||
}
|
|
||||||
const dat = nested.shift()
|
|
||||||
if(isPureMode() && pureModeType() !== 'pureSyntax' && pureModeType() !== ''){
|
|
||||||
nested[0] += `<${dat}>`
|
|
||||||
break
|
|
||||||
}
|
|
||||||
switch(dat){
|
|
||||||
case 'Comment':{
|
|
||||||
if(arg.runVar){
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if(!commentMode){
|
|
||||||
thinkingMode = false
|
|
||||||
commentMode = true
|
|
||||||
commentLatest = nested.map((f) => f)
|
|
||||||
if(commentLatest[0].endsWith('\n')){
|
|
||||||
commentLatest[0] = commentLatest[0].substring(0, commentLatest[0].length - 1)
|
|
||||||
}
|
|
||||||
commentV = new Uint8Array(stackType)
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
case '/Comment':{
|
|
||||||
if(commentMode){
|
|
||||||
nested = commentLatest
|
|
||||||
stackType = commentV
|
|
||||||
commentMode = false
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
case 'Thoughts':{
|
|
||||||
if(!visualize){
|
|
||||||
nested[0] += `<${dat}>`
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if(!commentMode){
|
|
||||||
thinkingMode = true
|
|
||||||
commentMode = true
|
|
||||||
commentLatest = nested.map((f) => f)
|
|
||||||
if(commentLatest[0].endsWith('\n')){
|
|
||||||
commentLatest[0] = commentLatest[0].substring(0, commentLatest[0].length - 1)
|
|
||||||
}
|
|
||||||
commentV = new Uint8Array(stackType)
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
case '/Thoughts':{
|
|
||||||
if(!visualize){
|
|
||||||
nested[0] += `<${dat}>`
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if(commentMode){
|
|
||||||
nested = commentLatest
|
|
||||||
stackType = commentV
|
|
||||||
commentMode = false
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
default:{
|
|
||||||
const mc = isPureMode() ? null : smMatcher(dat, matcherObj)
|
|
||||||
nested[0] += mc ?? `<${dat}>`
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break
|
|
||||||
}
|
|
||||||
default:{
|
default:{
|
||||||
nested[0] += da[pointer]
|
nested[0] += da[pointer]
|
||||||
break
|
break
|
||||||
|
|||||||
Reference in New Issue
Block a user