- 博客(20)
- 资源 (22)
- 收藏
- 关注
原创 Studying note of GCC-3.4.6 source (128)
<br />5.12.5. The third example <br />Now we havedefinition of “SmallObject”, we use following “main” function to use thisclass, and see what’s immediate tree will be created.<br />using namespace Loki;<br />int main ()<br />{<br />SmallObject<>
2010-11-26 13:03:00 784
原创 GCC-3.4.6源代码学习笔记(128)
<br />5.12.5. 第三个例子<br />现在我们已经有了“SmallObject”的定义,那么我们使用下面的“main”函数来使用这个类,从中看一下将会产生怎样的中间树。<br />using namespace Loki;<br />int main ()<br />{<br />SmallObject<>object_;<br />return 1;<br />}5.12.5.1. using指示<br />假定这个“main”函数在另一个源文件中
2010-11-26 13:01:00 1315
原创 Studying note of GCC-3.4.6 source (127)
<br />5.12.4.2.3.2. Buildnodes for base-clause<br />Notice that argument base refers to the BOUND_TEMPLATE_TEMPLATE_PARMnode for our example, and access is access_public_node.<br /> <br />2242 tree <br />2243 finish_base_specifier (tree bas
2010-11-05 10:03:00 630
原创 GCC-3.4.6源代码学习笔记(127)
<br />5.12.4.2.3.2. 为base-clause构建节点<br />注意参数base在我们的例子中指向的BOUND_TEMPLATE_TEMPLATE_PARM节点,access是access_public_node。<br /> <br />2242 tree <br />2243 finish_base_specifier (tree base, treeaccess, bool virtual_p) in semantics.c<br /
2010-11-05 10:00:00 832
原创 Studying note of GCC-3.4.6 source (126)
<br /><br />5.12.4.2.3.1.1.3. Generatetemplate-id<br />So as result,for this non-type argument, the IDENTIFIER_NODE of “chunkSize” is returned.Similarly is the next argument “maxSmallObjectSize”. So at exitting coerce_template_parms,at line 4
2010-11-05 09:56:00 739
原创 GCC-3.4.6源代码学习笔记(126)
<br /><br />5.12.4.2.3.1.1.3. 生成template-id<br />那么作为结果,对于这个非类型实参,“chunkSize”的IDENTIFIER_NODE被返回。类似的还有下一个实参“maxSmallObjectSize”。因此在lookup_template_class的4346行退出coerce_template_parms时,arglist为下图中标记为红色的节点。<br />(点此打开)<br />图111:构建的arglist<br /> <br />loo
2010-11-05 09:54:00 946
原创 Studying note of GCC-3.4.6 source (125)
<br />5.12.4.2.3. Process base class5.12.4.2.3.1. Parsebase-clause<br />Tokens after “SmallObject” are “: publicThreadingModel<SmallObject<ThreadingModel, chunkSize, maxSmallObjectSize>>”, which indicates the base class “SmallObject” derive
2010-11-05 09:44:00 928
原创 GCC-3.4.6源代码学习笔记(125)
<br /> <br />5.12.4.2.3. 处理基类5.12.4.2.3.1. 解析base-clause<br />“SmallObject”后的符号是:“: publicThreadingModel<SmallObject<ThreadingModel, chunkSize,maxSmallObjectSize> >”,它们表示了“SmallObject”所派生的基类。class-head的规则重现如下。<br />class-head:<br /> class
2010-11-05 09:40:00 1294
原创 Studying note of GCC-3.4.6 source (124)
<br /><br />5.12.4.2.2.2.3. Finish template-id<br />If template-name is an IDENTIFER_NODE, it maybe a member template;and if it is a TEMPLATE_DECL of class template, the template-id itself is aclass-name; and if it is FUNCTION_DECL, OVERLOAD
2010-11-05 09:22:00 706
原创 GCC-3.4.6源代码学习笔记(124)
<br /><br />5.12.4.2.2.2.3. 完成template-id<br />如果模板名是一个IDENTIFER_NODE,它可能是一个成员模板;而如果它是应该类模板的TEMPLATE_DECL,template-id 本身是一个类名;而如果是FUNCTION_DECL,OVERLOAD或METHOD_DECL,template-id 就是一个函数名。<br />因此如果模板名是一个类模板,template-id可能代表一个新的类,对此我们需要通过finish_templ
2010-11-05 09:19:00 1228
原创 Studying note of GCC-3.4.6 source (123)
<br /><br />5.12.4.2.2.2.2. Parse argument list<br />Then cp_parser_enclosed_template_argument_list isinvoked for parsing the enclosed template argument list within the template-id.Before the handling, greater_than_is_operator_p slot of p
2010-11-05 09:16:00 1238
原创 GCC-3.4.6源代码学习笔记(123)
<br /><br />5.12.4.2.2.2.2. 解析实参列表<br />然后调用cp_parser_enclosed_template_argument_list来解析template-id中所包含的模板实参列表。在这个处理之前,parser的greater_than_is_operator_p域将被设置为false,因为从现在起进来的“>”将不被视为操作符。而在实参列表中输入的“>>”将被解析作“>”和“>”,例如,“A<B<>> a”,前端将把它视为“A<B<> > a”。看
2010-11-05 09:14:00 1628
原创 Studying note of GCC-3.4.6 source (122)
<br />5.12.4.2.2. Lookupclass name<br />When invoking cp_parser_class_name, typename_keyword_p is true if andonly if the keyword typename has been used to indicate that nameslooked up in dependent types should be assumed to be types; te
2010-11-05 09:04:00 1098
原创 GCC-3.4.6源代码学习笔记(122)
<br />5.12.4.2.2. 类名查找<br />在cp_parser_class_name的调用中,当且仅当关键字typename已经被使用来表示,在依赖类型中查找的名字应该被视为类型时,typename_keyword_p是true;当且仅当关键字template已经被使用来表示其次出现的名字是一个模板时,template_keyword_p是true;当且仅当下一个名字应该被视为类名(class-name),即便它还被声明为其它类别的名字,时,type_p是true;如果chec
2010-11-05 09:00:00 1278
原创 Studying note of GCC-3.4.6 source (121)
<br />5.12.4.2. Parse class-head<br />The token follows thetemplate-parameter-list is “class” which denotes the definition/ declaration ofa class-template. Same as the previous example, along with the following callstack: cp_parser_temp
2010-11-05 08:56:00 919
原创 GCC-3.4.6源代码学习笔记(121)
<br />5.12.4.2. 解析class-head<br />跟在template-parameter-list后的符号是“class”,这标记着这是类模板的定义/声明。与前面的例子相同,沿着下面的调用栈:cp_parser_template_declaration_after_exportàcp_parser_single_declarationàcp_parser_decl_specifier_seqàcp_parser_type_specifier, 关键字“cl
2010-11-05 08:54:00 1337
原创 Studying note of GCC-3.4.6 source (120)
5.12.4.1.2.1. Processnon-type parameter<br />After parsing this non-type template parameter, no doubt, next itneeds process this parameter to finish the revelant sub-tree and insert it inthe intermediate tree.<br /> <br />2161 tree<br />2162 pr
2010-11-05 08:51:00 615
原创 GCC-3.4.6源代码学习笔记(120)
<br />5.12.4.1.2.1. 处理非类型参数<br />在解析了这个非类型模板参数之后,下一步,需要处理这个参数来完成相关的子树并插入中间树。<br /> <br />2161 tree<br />2162 process_template_parm(tree list, tree next) in pt.c<br />2163 {<br />2164 tree
2010-11-05 08:50:00 904
原创 Studying note of GCC-3.4.6 source (119)
<br />5.12.4.1.2. Non-typeparameter<br />The second and third parameters for the template are non-typetemplate parameter, which have their type specified but varied value assignedat instantation or speclization. The type-specifier “std::size_
2010-11-05 08:43:00 1288
原创 GCC-3.4.6源代码学习笔记(119)
<br />5.12.4.1.2. 非类型参数<br />该模板的第二及第三个参数都是非类型参数。它们都指定了类型,但在具现或特化时会分配不同的值。类型描述符(type-specifier)“std::size_t”是simple-type-specifier的形式。而且,simple-type-specifier“std::size_t”包含了两个部分:“std::”构成了nested-name-specifier,而“size_t”是类型名(type-name)。类型“size_t”通常
2010-11-05 08:41:00 1962
Introduction to Theory of Computation
2018-09-23
Survey on Instruction Selection
2018-09-23
Towards a Compilation infrastructure for network processors
2018-09-23
Crafting a Compiler
2018-09-01
How Debuggers Work
2018-09-01
Compiler Construction-20th
2018-09-01
Compiler Construction-19th
2018-09-01
Compiler Construction-17th
2018-09-01
Compiler Construction-16th
2018-09-01
Compiler Construction-5th
2018-09-01
Construction and Evolution of Code Generator
2018-09-01
Compiler Construction-11th
2018-09-01
The compiler design handbook
2018-09-01
Data_Flow_Analysis_Theory_And_Practice(Bookos.org)
2018-09-01
The Compiler Design Handbook Optimizations and machine code generation
2018-09-01
instruction scheduling for instruction level parallel processor
2018-07-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人