问题标签 [symbol-table]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
70739 浏览

c++ - 什么是符号表?

有人可以在 C 和 C++ 的上下文中描述什么是符号表吗?

0 投票
2 回答
292 浏览

perl - 对象如何访问当前包的符号表?

如何访问实例化对象的当前包的符号表?例如,我有这样的事情:

如果在do_your_job我使用的实现中__PACKAGE__,它将在MyModule包中搜索。我怎样才能让它看起来在正确的包装中?

编辑:我会尽量让这个更清楚。假设我有以下代码:

现在,$x应该以某种方式注意到这main是当前包,并搜索它的符号表。我尝试使用Scalar::Util's'blessed,但它仍然给了我MyModule而不是main。希望这现在更清楚了。

0 投票
3 回答
2670 浏览

perl - 如何在 Perl 中访问名称包含在变量中的常量?

我在 Perl 中声明了一组常量:

如何构造一个 Perl 表达式,该表达式基于$which_constant导出以该变量的值命名的常量的值 - 例如“222”。

请注意,我无法更改上述任何条件 - 它们是对真实场景的简化:我有一个模块(我无法控制),这些常量是从中导入的。常量之一的名称由用户从命令行提供。我需要访问适当的常量值。

我一直在用头撞墙(主要是围绕各种奇怪的 glob 构造),但它们都不起作用。

PS如果解决方案访问其本机模块内的常量 - 比如说My::Constants::C2(无需导入它们),更好,但不是必需的 - 我可以将正确的常量导入main::轻松使用My::Constants->import($which_constant). 是的,最重要的是,默认情况下不会导出 te 常量,因此需要显式的 import() 调用。

我尝试过的一些事情:

  • main::$which_constant - 语法错误

  • main::${which_constant} - 语法错误

  • ${*$which_constant}- 返回空值

  • *$which_constant- 返回“*main::C2”

  • ${*${*which_constant}}- 空的

0 投票
4 回答
226 浏览

php - 我们可以在不使用zend api的情况下在php中实现php提取功能吗

php 的提取函数将变量添加到调用函数的本地范围。我们如何编写自己的 php 函数 extract 来做同样的事情?

0 投票
1 回答
415 浏览

c++ - 链接静态 C++ 库时,Objective-C 中的符号表损坏

我有一个用 c++ 编写的名为 options 的类,这是标题信息:

};

在objective-c部分,我像这样初始化选项:

现在发生的情况是,如果我将指针传递给另一个 C++ 方法,它工作正常,但如果我实际上尝试访问目标 c 端的任何内容,例如

opts->bits 或 opts->getBits()

它总是返回整数值打印

看起来符号表在 Objective-c 和 C++ 端之间被弄乱了,但我不知道我能做些什么来导致这种情况。

如果我为 mac 编译,代码甚至可以使用 Objective-C++,只要 C++ 调用 C++,它似乎就可以工作,所以它不像内存被损坏,它只是看起来像一个符号表问题。

任何见解将不胜感激。

0 投票
1 回答
724 浏览

perl - 符号表:删除条目

为什么我在删除相应的符号表条目后从“$n”和“$m”中获取值?

0 投票
2 回答
1854 浏览

c - 编译器的符号表和语义分析

我正在为类似 C 的语言(一种更简单的语言)构建编译器(不使用任何工具,如 lex 或 bison),并且已经通过了词法分析器和解析器。我不确定我做解析器的方式是否正确。因为,到目前为止,要进行解析,即检查语法是否正确,我根本没有使用过链表。基本上,我的解析器看起来像这样:假设语法是 -

我的程序如下所示:

我基本上有所有非终端的功能,并在适当的时候调用它们,我正在通过“strcmp”检查关键字。这种方法好吗?

从这一点来看,如何进行语义分析呢?我应该从哪里开始构建符号表?

任何建议或思考的指针都很棒!非常感谢

0 投票
2 回答
461 浏览

c - 用于 sql 解析器的 Makefile... 编写依赖项

我在 lex 和 yacc 中实现了一个 sql 解析器,因为我使用了一个符号表,它保存在一个单独的 .h 文件 (sql.h) 中,并且在这个头文件中我有一些函数声明。这些函数的定义保存在 .c 文件 (sql.c) 中。现在我在 sql.c 中包含了 sql.h,我在 lex 文件 (1.l) 和 yacc 文件 (1.y) 中都引用了 sql.h 中的符号和函数。

问题是我无法为此编写适当的makefile。我收到诸如多个声明之类的错误。我在哪里包含哪个文件以及如何编写依赖项?请帮忙。我一直在寻找解决方案,但我没有得到它......

更新:

我像这样编译代码:

在 gcc 的第三个命令之后出现以下错误:

sql.h:

sql.c:

以及在 sql.h 中声明的函数的定义

1.l 文件:

..... 和其他 lex 文件

1.y

.... 和其他 yacc 文件数据


你能建议我用其他方法来解决这个问题吗?

0 投票
1 回答
2931 浏览

objective-c - GDB Objective-c 调试(无符号表)

我有一个可执行文件,我正在使用 gdb 对其进行调试。这是我第一次使用 gdb,请多多包涵。

我想在一个函数上设置一个断点,并且我知道使用类转储的函数的名称。现在它不允许我向该函数添加断点,因为它说没有符号表。我尝试添加符号表,但它仍然抱怨没有加载符号表。

那么,无论如何我可以在这种方法上设置断点吗?这是一种客观的 c 方法,而不是 c (如果这有所作为)。我需要做的就是检查这个方法的论点。

0 投票
1 回答
688 浏览

oop - 面向对象语言的编译器中的符号表范围

我正在为 C++ 子集的编译器构建符号表。

我的问题是如何处理对象中的范围。我的意思是,在像 Pascal 这样的普通语言中,我们应该为每个作用域创建一个符号表。但是对于 C++,我应该考虑另一种方法来处理对象的方法和属性吗?

问候。