core_parse.hrl
来自「OTP是开放电信平台的简称」· HRL 代码 · 共 99 行
HRL
99 行
%% ``The contents of this file are subject to the Erlang Public License,%% Version 1.1, (the "License"); you may not use this file except in%% compliance with the License. You should have received a copy of the%% Erlang Public License along with this software. If not, it can be%% retrieved via the world wide web at http://www.erlang.org/.%% %% Software distributed under the License is distributed on an "AS IS"%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See%% the License for the specific language governing rights and limitations%% under the License.%% %% The Initial Developer of the Original Code is Ericsson Utvecklings AB.%% Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings%% AB. All Rights Reserved.''%% %% $Id$%%%% Purpose : Core Erlang syntax trees as records.%% It would be nice to incorporate some generic functions as well but%% this could make including this file difficult.%% Note: the annotation list is *always* the first record field.%% Thus it is possible to define the macros:%% -define(get_ann(X), element(2, X)).%% -define(set_ann(X, Y), setelement(2, X, Y)).-record(c_literal, {anno=[], val}). % val :: literal()-record(c_binary, {anno=[], segments}). % segments :: [#c_bitstr{}]-record(c_bitstr, {anno=[],val, % val :: Tree, size, % size :: Tree, unit, % unit :: Tree, type, % type :: Tree, flags}). % flags :: Tree-record(c_cons, {anno=[], hd, % hd :: Tree, tl}). % tl :: Tree-record(c_tuple, {anno=[], es}). % es :: [Tree]-record(c_var, {anno=[], name}). % name :: integer() | atom()-record(c_fname, {anno=[], id, % id :: atom(), arity}). % arity :: integer()-record(c_values, {anno=[], es}). % es :: [Tree]-record(c_fun, {anno=[], vars, % vars :: [Tree], body}). % body :: Tree-record(c_seq, {anno=[], arg, % arg :: Tree, body}). % body :: Tree-record(c_let, {anno=[], vars, % vars :: [Tree], arg, % arg :: Tree, body}). % body :: Tree-record(c_letrec, {anno=[], defs, % defs :: [#c_def{}], body}). % body :: Tree-record(c_case, {anno=[], arg, % arg :: Tree, clauses}). % clauses :: [Tree]-record(c_clause, {anno=[], pats, % pats :: [Tree], guard, % guard :: Tree, body}). % body :: Tree-record(c_alias, {anno=[], var, % var :: Tree, pat}). % pat :: Tree-record(c_receive, {anno=[], clauses, % clauses :: [Tree], timeout, % timeout :: Tree, action}). % action :: Tree-record(c_apply, {anno=[], op, % op :: Tree, args}). % args :: [Tree]-record(c_call, {anno=[], module, % module :: Tree, name, % name :: Tree, args}). % args :: [Tree]-record(c_primop, {anno=[], name, % name :: Tree, args}). % args :: [Tree]-record(c_try, {anno=[], arg, % arg :: Tree, vars, % vars :: [Tree], body, % body :: Tree evars, % evars :: [Tree], handler}). % handler :: Tree-record(c_catch, {anno=[], body}). % body :: Tree-record(c_module, {anno=[], name, % name :: Tree, exports, % exports :: [Tree], attrs, % attrs :: [#c_def{}], defs}). % defs :: [#c_def{}]
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?