gpt4 book ai didi

java - 使用 ANTLR 4.7 : need to parse fragments in string literals 解析 Swift

转载 作者:行者123 更新时间:2023-11-28 07:48:42 25 4
gpt4 key购买 nike

我正在使用 antlr 4.7 解析器解析 swift 代码。在 g4 中,Interpolated_string_literal 标记定义如下:

Interpolated_string_literal : '"' Interpolated_text_item* '"' ;
fragment
Interpolated_text_item
: '\\(' (Interpolated_string_literal | Interpolated_text_item)+ ')' // nested strings allowed
| Quoted_text_item
;

我的问题是我需要解析器了解内插文本项的组件。我明白,因为它被定义为片段,所以这是行不通的。所以我假设如果我删除片段关键字就可以了。但是,删除它后我开始收到许多错误,例如:

第 9 行:6 外来输入 ' ' 期待 {'for', 'in', 'var', 'typealias', 'struct', 'class', 'enum', 'protocol', 'func ', 'get', 'set', 'willSet', 'didSet', 'mutating', 'nonmutating', 'indirect', 'prefix', 'operator', 'postfix', 'infix', 'precedence', 'associativity', 'left', 'right', 'none', 'convenience', 'dynamic', 'final', 'lazy', 'optional', 'override', 'required', 'unowned', 'weak ', '协议(protocol)', '类型', 标识符, '.', '<', '>', '!', '?', '&', '-', '=', '|', '/', '+', '', '%', '^', '~', Operator_head_other}第 11:5 行在输入“类”时没有可行的选择第 9:6 行外来输入 ' ' 期待 {'for', 'in', 'var', 'typealias', 'struct', 'class', 'enum', 'protocol', 'func', 'get', 'set', 'willSet', 'didSet', 'mutating', 'nonmutating', 'indirect', 'prefix', 'operator', 'postfix', 'infix', 'precedence', 'associativity', 'left ', '正确', '无', '便利', '动态', '最终', '惰性', '可选', '覆盖', '必需', '无主', '弱', '协议(protocol)', '类型', 标识符, '.', '<', '>', '!', '?', '&', '-', '=', '|', '/', '+', “”、“%”、“^”、“~”、Operator_head_other

我不明白为什么将其从片段更改为标记会导致所有这些错误。有线索吗?

这是第一个错误的代码:

import UIKit
import CoreData
import CoreLocation
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, CLLocationManagerDelegate {
var window: UIWindow?
var locManager: CLLocationManager?

谢谢,

罗伊

最佳答案

我看到错误说 extraneous input ' ' 是否有处理空格的规则?如果没有,您可以尝试将以下内容添加到语法中以处理空格并检查它是否有任何区别。

SPACE:    [ \t\r\n]+    -> channel(HIDDEN);

关于java - 使用 ANTLR 4.7 : need to parse fragments in string literals 解析 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50260157/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com