.. _stdlib_ast_used: ========================== AST 类型使用集 ========================== .. include:: detail/ast_used.rst ast_used 模块实现了类型收集基础设施。它允许确定代码中是否使用了枚举和结构类型。 所有函数和符号都在 `ast_used` 模块中,使用 require 来访问它。 :: require daslib/ast_used .. _struct-ast_used-OnlyUsedTypes: .. das:attribute:: OnlyUsedTypes OnlyUsedTypes fields are +--+---------------------------------------------------------------+ +st+table< :ref:`ast::Structure ` ?;bool> + +--+---------------------------------------------------------------+ +en+table< :ref:`ast::Enumeration ` ?;bool>+ +--+---------------------------------------------------------------+ AST 中使用的所有结构和枚举类型的集合。 +++++++++++++++++++++++++++ 收集类型信息 +++++++++++++++++++++++++++ * :ref:`collect_used_types (vfun:array\ const;vvar:array\ const;blk:block\<(usedTypes:ast_used::OnlyUsedTypes const):void\> const) : void ` .. _function-_at_ast_used_c__c_collect_used_types_C1_ls_1_ls_H_ls_ast_c__c_Function_gr__gr__qm__gr_A_C1_ls_1_ls_H_ls_ast_c__c_Variable_gr__gr__qm__gr_A_CN_ls_usedTypes_gr_0_ls_CS_ls_ast_used_c__c_OnlyUsedTypes_gr__gr_1_ls_v_gr__builtin_: .. das:function:: collect_used_types(vfun: array const; vvar: array const; blk: block<(usedTypes:OnlyUsedTypes const):void> const) +--------+----------------------------------------------------------------------------------------------------+ +argument+argument type + +========+====================================================================================================+ +vfun +array< :ref:`ast::Function ` ?> const + +--------+----------------------------------------------------------------------------------------------------+ +vvar +array< :ref:`ast::Variable ` ?> const + +--------+----------------------------------------------------------------------------------------------------+ +blk +block<(usedTypes: :ref:`ast_used::OnlyUsedTypes ` const):void> const+ +--------+----------------------------------------------------------------------------------------------------+ 遍历函数 `vfun` 和变量 `vvar` 的列表,并收集其中使用的枚举和结构类型的列表。 使用所述列表调用 `blk`。