elts.sa
Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
---------------------------> Sather 1.1 source file <--------------------------
-- Copyright (C) International Computer Science Institute, 1995. COPYRIGHT --
-- NOTICE: This code is provided "AS IS" WITHOUT ANY WARRANTY and is subject --
-- to the terms of the SATHER LIBRARY GENERAL PUBLIC LICENSE contained in --
-- the file "Doc/License" of the Sather distribution. The license is also --
-- available from ICSI, 1947 Center St., Suite 600, Berkeley CA 94704, USA. --
--------> Please email comments to sather-bugs@icsi.berkeley.edu. <----------
-- $AS_CLASS_ELT: Supertype of class element nodes.
-- AS_CLASS_ELT: Implementation to be included by $AS_CLASS_ELT nodes.
-- AS_CONST_DEF, AS_SHARED_DEF, AS_ATTR_DEF, AS_ROUT_DEF,
-- AS_INCLUDE_CLAUSE
--
-- Single classes sometimes represent several productions.
-- Whenever a comment says "if any" that means that "void" is a possible
-- value and it indicates the the component was not present.
--
abstract class $AS_CLASS_ELT < $AS_NODE, $NEXT{$AS_CLASS_ELT}
abstract class $AS_CLASS_ELT < $AS_NODE, $NEXT{$AS_CLASS_ELT} is
-- A supertype of all elements of the body of a class.
is_private(b:BOOL); -- Set the private status.
is_private:BOOL; -- Retrieve the private status.
end;
class AS_CLASS_ELT < $AS_CLASS_ELT
class AS_CLASS_ELT < $AS_CLASS_ELT is
-- A supertype of all elements of the body of a class.
include AS_NODE;
include NEXT{$AS_CLASS_ELT};
attr is_private:BOOL; -- True if declared private.
end;
class AS_CONST_DEF < $AS_CLASS_ELT
class AS_CONST_DEF < $AS_CLASS_ELT is
-- Definition of constant attributes.
include AS_CLASS_ELT;
attr name:IDENT; -- The name of the constant.
attr tp:AS_TYPE_SPEC; -- Type declaration, if any.
-- If none, it is an INT.
attr init:$AS_EXPR; -- Initialization expression.
end;
class AS_SHARED_DEF < $AS_CLASS_ELT
class AS_SHARED_DEF < $AS_CLASS_ELT is
-- Definition of shared attributes. Parser should make one of these
-- for each element in a list like "shared a,b,c:INT".
include AS_CLASS_ELT;
attr is_readonly:BOOL; -- True if declared readonly.
attr name:IDENT; -- Name of the shared.
attr tp:AS_TYPE_SPEC; -- Type declaration.
attr init:$AS_EXPR; -- Initialization expression, if any.
end;
class AS_ATTR_DEF < $AS_CLASS_ELT
class AS_ATTR_DEF < $AS_CLASS_ELT is
-- Definition of object attributes. Parser should make one of these
-- for each element in a list like "a,b,c:INT".
include AS_CLASS_ELT;
attr is_readonly:BOOL; -- True if declared readonly.
attr name:IDENT; -- Name of the attribute.
attr tp:AS_TYPE_SPEC; -- Type declaration.
end;
class AS_ROUT_DEF < $AS_CLASS_ELT
class AS_ROUT_DEF < $AS_CLASS_ELT is
-- Definition of a routine.
include AS_CLASS_ELT;
attr is_abstract:BOOL; -- True if has no body.
attr name:IDENT; -- Name of the routine.
attr args_dec:AS_ARG_DEC; -- Arguments, if any.
attr ret_dec:AS_TYPE_SPEC; -- Return type, if any.
attr pre_e:$AS_EXPR; -- The "pre" clause, if any.
attr post_e:$AS_EXPR; -- The "post" clause, if any.
attr body:AS_STMT_LIST; -- The statements, if any.
attr is_builtin:BOOL; -- true if builtin
attr builtin_name:IDENT; -- name of the builtin function in CONFIG
--pSather:
attr is_fork_routine : BOOL; -- this routine implements the body of a fork
attr is_par_routine : BOOL; -- this routine implements the body of a par
attr is_attach_routine : BOOL; -- ... an attach
end;
class AS_ARG_DEC < $AS_NODE
class AS_ARG_DEC < $AS_NODE is
-- Declaration of routine and iter arguments. Parser should make
-- one of these for each arg in a list like "a,b,c:INT".
include AS_NODE;
include NEXT{SAME}; -- Other args, if any.
attr name:IDENT; -- The name of the argument.
attr tp:AS_TYPE_SPEC; -- The type.
attr is_hot:BOOL; -- True if declared "hot".
attr mode:AS_ARG_MODE; -- mode specifier
end;
class AS_INCLUDE_CLAUSE < $AS_CLASS_ELT
class AS_INCLUDE_CLAUSE < $AS_CLASS_ELT is
-- An inheritance clause. Parser should make one of these for each
-- element of the list, if more than one.
include AS_CLASS_ELT;
attr tp:AS_TYPE_SPEC; -- The type to include from.
attr mods:AS_FEAT_MOD; -- The feature modification list.
end;
class AS_FEAT_MOD < $AS_NODE
class AS_FEAT_MOD < $AS_NODE is
-- A modification to a feature of an included class.
include AS_NODE;
include NEXT{SAME}; -- Next mod in list.
attr name:IDENT; -- Name of modified feature.
attr is_private:BOOL; -- True if now private.
attr is_readonly:BOOL; -- True if now readonly.
attr new_name:IDENT; -- New name for the feature, if any.
end;