Skip to main content

Command Palette

Search for a command to run...

模块导入功能设计草稿

Published
1 min read

模块以Java类似的方式实现导入(全限定名实现),删除原有字节码单独的设计内容。

仍然使用绝对或相对路径的字符串作为导入的第一个参数,第二个参数不可省略,为模块别名。

目前已经实现了模块导入的部分功能,但由于部分设计问题,存在较多错误。

from-import延迟实现。

在HandleImport时创建一个新的类,名称为”~导入路径~.!__start”。其它类处理同样参见这个操作,类名均改为”~导入路径~.类”。但是在处理类的创建时(各种HandleVarDecl及类似函数),应当加入类型处理模块。对于存在导入模块的类创建应当通过模块导入表获取实际创建内容。

虚拟机的处理中注释原有废弃逻辑。重新对NEW等进行设计,加入对于名称的处理逻辑。在此处应当注意的是,应当对名称解析进行判断,读取“~导入路径~“并进行相关操作。但是直接进行该类操作会造成导入模块的NEW功能失效。无法正确对导入字节码的文件进行处理,同时可能会造成错误创建的行为发生(导入模块的类与原始类发生冲突时)。

应对原有结构进行改写。

3 views

More from this blog

Aq语言语法设计文档

概览 为满足AQ语言持续发展,提升AQ语言在软件开发的便捷性和高效性,提升AQ语言长期持续有效发展,推进AQ v0.2.0 版本更快面向市场发布,决定对AQ语言的语法进行规范。 其详细的语法参照市面上常见的编程语言,总结其共有特点,对语言语法进行简化,同时完善部分语言的历史性问题,在语法上进行优化,降低学习难度和成本。 注释 注释参照C/C++等C-style语言的设计,采用两种注释方式。 // 单行注释 /*多 行 注 释*/ 运算符 基本采取和主流语言一致(参照C/C++),部...

Mar 20, 20251 min read6
A

AQ Developer Blog

9 posts

AQ Official Developer Blog. Github: https://github.com/aq-org/AQ Official Website: https://www.axa6.com Email: xie.zicong@axa6.com