Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
basicoop语言的AST_Oop_Parsing_Abstract Syntax Tree - Fatal编程技术网

basicoop语言的AST

basicoop语言的AST,oop,parsing,abstract-syntax-tree,Oop,Parsing,Abstract Syntax Tree,简而言之: 出于教育目的,我试图实现Ada语言前端的一个子集,但我被困在基本的OOP AST构建中 详细信息: 我想构建Ada语言前端的一个子集,用于LLVM系统。我的目的只是为了教育目的,而不是为了一个功能齐全、高度优化的编译系统 我的lexer/parser是使用Flex/Bison构建的,我已经有了语法(基于adarm)来解析一些代码。现在,我想为这种语法构建一个抽象语法树,并最终编写IR代码以传递到LLVM系统。(我的问题与编写flex/bison规则和定义语法无关,我知道怎么做) 我已

简而言之:

出于教育目的,我试图实现Ada语言前端的一个子集,但我被困在基本的OOP AST构建中

详细信息:

我想构建Ada语言前端的一个子集,用于LLVM系统。我的目的只是为了教育目的,而不是为了一个功能齐全、高度优化的编译系统

我的lexer/parser是使用Flex/Bison构建的,我已经有了语法(基于adarm)来解析一些代码。现在,我想为这种语法构建一个抽象语法树,并最终编写IR代码以传递到LLVM系统。(我的问题与编写flex/bison规则和定义语法无关,我知道怎么做)

我已经知道如何处理算术表达式和函数声明、定义和调用,但我找不到有关AST结构的有用信息来处理OOP

我的问题是:

  • 如何处理结构/类字段?它是一个单变量的总和(在这种情况下,如何处理名称,像C++一样的字符)?
  • 如何处理函数成员?(范围和可访问性)
  • 关于如何处理/构建面向对象语言的AST,是否有很好的参考资料(链接、文章、书籍等)(我只找到一些关于使用面向对象语言编写AST的链接,但这些链接毫无用处)
我有一个更高级的问题,关于如何处理泛型。我不知道它们是如何声明和使用的,有什么建议吗

提前谢谢