关于类的符号输入过程第三篇

当进行完MemberEnter后就可以调用Attr类的一些标记方法了,如下:

while (!todo.isEmpty()){
                    	Environment<AttrContext> a = todo.remove();
                    	Environment<AttrContext> b = attribute(a);  // 标注
                    	Queue<Environment<AttrContext>> c = flow(b); // 数据流分析
                    	Queue<Pair<Environment<AttrContext>, JCClassDeclaration>> d = desugar(c); // 解语法糖
                    	generate(d);  // 生成字节码
//                        generate(desugar(flow(attribute(todo.remove()))));
}

在之前的MemberEnter类中visitImport()方法中有如下一个方法调用,如下:

 Type type = attr.attribTree(jcFieldAccess.selected, localEnvironment, protoKind, Type.noType); // protoKind=_TYPE|_PCK,Type.noType=JCNoType

其中JCFieldAccess为java.util.ArrayList,而jcFieldAccess.selected为java.util。  

其中的scope为ImportScope。

在标识前,所有的selected的symbol与type都为null。

  

时间: 2024-12-06 02:29:05

关于类的符号输入过程第三篇的相关文章

cocos2d-x 3.2 之 三消类游戏——万圣大作战 (第三篇)

***************************************转载请注明出处:http://blog.csdn.net/lttree******************************************** 这是第三篇了, 前面已经建立了界面,建立的精灵,并且能自动消除精灵. 现在就要做我们的触摸事件了 本文内容: > 实现触摸事件 > 实现交换的功能 1.触摸事件 我们玩三消游戏,就要对屏幕进行滑动,所以需要做一个触摸事件来处理对屏幕的触摸. 这里主要是要获得

第三篇:用SOUI能做什么?

SOUI-DEMO界面预览 在回答SOUI能做什么之前,先看看SVN中demo工程的界面截图: 使用SOUI实现上面的界面主要的工作全在配置几个XML文件,基本不需要写C++代码.(如何配置XML布局将在后续文章中讲解) 从零开始生成一个使用SOUI的应用程序 以SOUI的demo为例,我们看在SOUI中如何一步一步实现一个应用程序. 首先使用Win32应用程序向导生成一个空项目. 新建一个如demo.cpp文件,定义一个_tWinMain函数. int WINAPI _tWinMain(HIN

第三篇:Linux的基本操作与文件管理(纯命令行模式下)(上)

与Windows做对比来介绍Linux的基本操作方法与文件管理!(纯命令行模式下,为何要强调是命令行呢?因为在第二篇结尾我说明了,运维工作中几乎都是在用命令行操作的) 为什么要和Windows做对比呢?因为我当初学习Linux时整个脑袋完全没有它的概念,一直在想linux的"C盘.D盘"在哪里呢?怎么安装和卸载一些程序呢?怎么创建文件夹和创建文档? (其实把linux和Windows对比学习的方法很不科学,不过我笨人有笨办法呗,这么学法我感觉还是挺快的,一旦上手linux后慢慢你就懂了

Objective-C学习之旅 第三篇

Objective-C学习之旅 第三篇 Objective-C 类声明,定义,实例,初始化 类声明 //类声明的编译处理指令以@interface开始,以@end结尾,在这之间代码便是类变量的定义和方法的声明. //类的声明和定义比其他语言复杂,这会让刚开始学习Objective-C的人非常困惑 //准确的说,其他语言如Java只需定义类而不用声明,而Objective-C需要先声明再定义. @interface 类名 : 父类名 { 声明成员变量 ... } 声明方法 @end 实例: @in

HttpApplication处理对象与HttpModule处理模块 (第三篇)

一.HttpApplication对象简述 在HttpRuntime创建了HttpContext对象之后,HttpRuntime将随后创建一个用于处理请求的对象,这个对象的类型为HttpApplication. HttpRuntime管理一个定义在System.Web命名空间下的HttpApplicationFactory类的时候,HttpApplicationFactory通过工厂模式管理HttpApplication对象.在HttpApplicationFactory内部维护了一个HttpA

Python之路【第三篇】:Python基础(二)

Python之路[第三篇]:Python基础(二) 内置函数 一 详细见python文档,猛击这里 文件操作 操作文件时,一般需要经历如下步骤: 打开文件 操作文件 一.打开文件 1 文件句柄 = file('文件路径', '模式') 注:python中打开文件有两种方式,即:open(...) 和  file(...) ,本质上前者在内部会调用后者来进行文件操作,推荐使用 open. 打开文件时,需要指定文件路径和以何等方式打开文件,打开后,即可获取该文件句柄,日后通过此文件句柄对该文件操作.

Javascript定义类(class)的三种方法

注:本文转自阮一峰,觉得此篇文章对我对大家有帮助,因此转过来. 将近20年前,Javascript诞生的时候,只是一种简单的网页脚本语言.如果你忘了填写用户名,它就跳出一个警告. 如今,它变得几乎无所不能,从前端到后端,有着各种匪夷所思的用途.程序员用它完成越来越庞大的项目.Javascript代码的复杂度也直线上升.单个网页包含10000行Javascript代码,早就司空见惯.2010年,一个工程师透露,Gmail的代码长度是443000行! 编写和维护如此复杂的代码,必须使用模块化策略.目

第三篇——第二部分——第五文 配置SQL Server镜像——域环境SQL Server镜像日常维护

本文接上面两篇搭建镜像的文章: 第三篇--第二部分--第三文 配置SQL Server镜像--域环境:http://blog.csdn.net/dba_huangzj/article/details/28904503第三篇--第二部分--第四文 配置SQL Server镜像--非域环境:http://blog.csdn.net/dba_huangzj/article/details/27652857 在搭建的过程中,可能你会遇到比较多的问题,下面介绍一些常见的问题及解决方案,另外把主要精力放到对

视觉SLAM中的数学基础 第三篇 李群与李代数

视觉SLAM中的数学基础 第三篇 李群与李代数 前言 在SLAM中,除了表达3D旋转与位移之外,我们还要对它们进行估计,因为SLAM整个过程就是在不断地估计机器人的位姿与地图.为了做这件事,需要对变换矩阵进行插值.求导.迭代等操作.例如,在经典ICP问题中,给定了两组3D点,我们要计算它们之间的变换矩阵.假设第一组的3D点为$\mathbf{P}=\{ \mathbf{p}_i | i = [1,2, \ldots, N] \}$,第二组3D点为$\mathbf{Q}=\{ \mathbf{q}