feat: add molang package
1. upgrade bukkit chat 2. fix config update error Signed-off-by: MiaoWoo <admin@yumc.pw>
This commit is contained in:
47
packages/molang/src/parser/expressions/name.ts
Normal file
47
packages/molang/src/parser/expressions/name.ts
Normal file
@@ -0,0 +1,47 @@
|
||||
import { ExecutionEnvironment } from '../../env/env'
|
||||
import { Expression } from '../expression'
|
||||
|
||||
export class NameExpression extends Expression {
|
||||
type = 'NameExpression'
|
||||
|
||||
constructor(
|
||||
public executionEnv: ExecutionEnvironment,
|
||||
protected name: string,
|
||||
protected isFunctionCall = false
|
||||
) {
|
||||
super()
|
||||
}
|
||||
|
||||
get allExpressions() {
|
||||
return []
|
||||
}
|
||||
setExpressionAt() {}
|
||||
|
||||
isStatic() {
|
||||
return false
|
||||
}
|
||||
|
||||
setPointer(value: unknown) {
|
||||
this.executionEnv.setAt(this.name, value)
|
||||
}
|
||||
|
||||
setFunctionCall(value = true) {
|
||||
this.isFunctionCall = value
|
||||
}
|
||||
setName(name: string) {
|
||||
this.name = name
|
||||
}
|
||||
setExecutionEnv(executionEnv: ExecutionEnvironment) {
|
||||
this.executionEnv = executionEnv
|
||||
}
|
||||
|
||||
eval() {
|
||||
const value = this.executionEnv.getFrom(this.name)
|
||||
if (!this.isFunctionCall && typeof value === 'function') return value()
|
||||
return value
|
||||
}
|
||||
|
||||
toString() {
|
||||
return this.name
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user