grammar 相关问题

形式语法是一组生成规则,描述如何形成有效语法的字符串。形式语法最常用于指定编程语言的语法。

模板流通定义

我正在创建一个侵入式指针,如下所示: 类 RefCounted {}; 模板 概念 RefCountedDerived = std::is_base_of_v; 模板 我正在创建一个侵入式指针,如下所示: class RefCounted {}; template <typename T> concept RefCountedDerived = std::is_base_of_v<RefCounted, T>; template <RefCountedDerived T> class IntrusivePtr {}; 当我用它进行测试时,例如: class Test : public RefCounted { static IntrusivePtr<Test> create(); } 编译器抱怨类 Test 未定义,不能作为 __is_base_of 的参数。我假设当编译器读取静态函数时,它解析为 RefCountedDerived,但类 Test 尚未完成其定义。实际上,删除静态函数就可以解决问题。 那么有什么解决方案可以在不删除该静态函数的情况下解决这个问题吗? 有什么解决方案可以在不删除静态函数的情况下解决这个问题吗? 是的,将其设为auto并在类定义之外定义它: class Test : public RefCounted { static auto create(); }; auto Test::create() { return IntrusivePtr<Test>{}; }

回答 1 投票 0

正则表达式匹配不含“011”子字符串的 0 和 1 字符串

我正在解决一个问题(来自 Hopcroft、Motwani 和 Ullman 的《自动机理论、语言和计算机简介》),编写一个正则表达式来定义由所有字符串组成的语言...

回答 3 投票 0

C 的语法如何允许这种未命名的嵌套结构?

C 的 K&R 和 Microsoft 语法表明了这个简单的结构: 结构体 { int a ; }; 解析时匹配声明,如下所示: 宣言 声明说明符 ';' 类型说明符 ';'

回答 1 投票 0

任何人都可以解释为什么这个语法不能被 LL(1) 解析器解析吗?

我很难理解为什么 LL(1) 解析器无法解析它。 A ::= B 加 A |乙 B ::= NUM |身份证号

回答 2 投票 0

是否可以将某个值提升到 Grammar TOP?

我有这个raku语法: #!/usr/bin/env raku 使用 v6.d; 使用语法::追踪器; 语法 语法 { 代币顶部{ ? } 代币城...

回答 1 投票 0

制作语法LL(1)

我有以下语法: S → a S b S | b S a S | ε 由于我正在尝试为其编写一个小型编译器,因此我想将其设为 LL(1)。我发现这里似乎存在 FIRST/FOLLOW 冲突,...

回答 1 投票 0

我正在尝试为Antlr4 Python3.g4语法文件生成解析树,以解析python3代码

我正在使用 ANTLR4 并尝试为我拥有的 python 文件生成解析树。我使用了 ANTLR4 文档中的语法文件 python3.g4。我安装了antlr4-python3-runtime,并且我...

回答 2 投票 0

减少/减少冲突野牛语法

我是野牛解析的新手,我不完全理解它是如何工作的。我有以下简单的野牛语法来解析简单的语言: %{ %} %token T_ASSIGN T_ADD T_SUB T_MUL T_DIV T_MOD T_POW %

回答 1 投票 0

Antlr Lexer 无法识别实数

所以我一直从头开始开发自己的编译器。我已经完成了汇编程序,并且它可以与整数一起使用。我想添加对组装成双的实数的支持...

回答 1 投票 0

“解析器规则中的隐式标记定义”值得担心吗?

我正在使用 ANTLR 和 ANTLRWorks 2 创建我的第一个语法。我已经完成了语法本身(它识别用所描述的语言编写的代码并构建正确的解析树),但是我...

回答 3 投票 0

为什么允许使用 `lambdef` 作为变量的类型提示?

Python语法有这样的规则: 任务: | NAME ':' 表达式 ['=' annotated_rhs ] # 省略规则的其他选项 而表达式规则允许 lambda 定义 (lambdef)。 ...

回答 1 投票 0

递归 FParsec 表达式中的错误位置

我的语法包含以标识符为特征的表达式,该标识符仅可选地后跟带括号的表达式列表。 我的问题是 Fparsec 会显示“不直观”

回答 1 投票 0

在类声明中包含杂散分号是否可移植

课堂测试 { ; 整数x; }; 这是完全合法且可移植的吗?

回答 1 投票 0

如何在 Pest 语法中处理原子规则内的内联注释?

我正在为fountain.io语法编写一个pest语法,其中包括两种不同类型的类似注释的元素:[[notes]]用双方括号和/*boneyard*/元素来分隔

回答 1 投票 0

如何让 ANTLR 解析器变得严格?

下面是一个简单的ANTLR语法: 语法示例; 文档 :名称+EOF; 姓名 : 'k'+ ; 生成的antlr解析器接受任何包含子字符串“k”的字符串。 然而...

回答 1 投票 0

如何匹配单引号中的单个 Unicode 字符

我的语言具有单引号 Unicode 字符文字,例如: 'H' '🙂' ETC。 我使用以下规则来解析它: CHAR = "'" (!"'" c:.) "'" { return c; } 这...

回答 1 投票 0

左分解文法与去除epsilon之间的关系

假设我使用以下语法进行编译 S -> 一个 |乙 如果我对其进行左因式分解,就会像(e 是 epsilon) S -> aC C -> B | e 然后我想删除 epsilon ...

回答 2 投票 0

自动将句点之后开始的每个句子大写

我正在尝试这样做,以便当用户在输入字段中输入文本时,他们的句子将自动大写。有些人在正确的语法和标点符号方面已经够糟糕了,所以......

回答 1 投票 0

运算符的优先级和结合性是什么?

C++ 中运算符的优先级和结合性是什么? 谁定义了运算符优先级和结合性,以及它与求值顺序有何关系?解释了这些属性是如何出现的......

回答 1 投票 0

组合语法ANTLR选项过滤器

我有一个组合语法(词法分析器和解析器位于同一文件上)。我该如何设置 过滤器=真 到词法分析器? 谢谢

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.