获取 DDMathParser 令牌和组令牌
Getting DDMathParser tokens and group tokens
我已经在 Whosebug 上找到了我的问题的解决方案,但它在 Objective-C 中。看到这个 link
我将其翻译成 Swift,如下所示。那么从字符串中获取标记并获取分组标记的最新方法是什么?
例如:1 + ($a - (3 / 4))
这是我的尝试:
do{
let token = try Tokenizer(string: "1 + ($a - (3 /4))").tokenize()
for element in token {
print(element)
}
} catch {
print(error)
}
但我收到以下消息:
MathParser.DecimalNumberToken
MathParser.OperatorToken
MathParser.OperatorToken
MathParser.VariableToken
MathParser.OperatorToken
MathParser.OperatorToken
MathParser.DecimalNumberToken
MathParser.OperatorToken
MathParser.DecimalNumberToken
MathParser.OperatorToken
MathParser.OperatorToken
如何从我的字符串中获取特定标记?
您将获得所有代币。
OperatorToken
、DecimalNumberToken
等都继承自 RawToken
超类。 RawToken
定义了一个 .string
和一个 .range
属性.
.string
是从源中提取或推断的实际 String
。 .range
是原始字符串中标记所在的位置。
但是,请务必注意,标记器生成的标记可能不存在于原始字符串中。例如,令牌在解析隐式乘法时由 Tokenizer 注入(3x
变成 3 * x
)。
稍后添加:
如果您想要 final 树来了解所有内容的解析方式,那么您需要 Expression
:
let expression = try Expression(string: "1 + ($a - (3 / 4))")
此时,您 switch
上 expression.kind
。它将是 number
、variable
或 function
。 function
表达式有子表达式,表示函数的参数。
我已经在 Whosebug 上找到了我的问题的解决方案,但它在 Objective-C 中。看到这个 link
我将其翻译成 Swift,如下所示。那么从字符串中获取标记并获取分组标记的最新方法是什么?
例如:1 + ($a - (3 / 4))
这是我的尝试:
do{
let token = try Tokenizer(string: "1 + ($a - (3 /4))").tokenize()
for element in token {
print(element)
}
} catch {
print(error)
}
但我收到以下消息:
MathParser.DecimalNumberToken
MathParser.OperatorToken
MathParser.OperatorToken
MathParser.VariableToken
MathParser.OperatorToken
MathParser.OperatorToken
MathParser.DecimalNumberToken
MathParser.OperatorToken
MathParser.DecimalNumberToken
MathParser.OperatorToken
MathParser.OperatorToken
如何从我的字符串中获取特定标记?
您将获得所有代币。
OperatorToken
、DecimalNumberToken
等都继承自 RawToken
超类。 RawToken
定义了一个 .string
和一个 .range
属性.
.string
是从源中提取或推断的实际 String
。 .range
是原始字符串中标记所在的位置。
但是,请务必注意,标记器生成的标记可能不存在于原始字符串中。例如,令牌在解析隐式乘法时由 Tokenizer 注入(3x
变成 3 * x
)。
稍后添加:
如果您想要 final 树来了解所有内容的解析方式,那么您需要 Expression
:
let expression = try Expression(string: "1 + ($a - (3 / 4))")
此时,您 switch
上 expression.kind
。它将是 number
、variable
或 function
。 function
表达式有子表达式,表示函数的参数。