## oop-collect-methods-and-functions.api
# Compiled by:
#
src/lib/compiler/front/typer/typer.sublib# Implemented by:
#
src/lib/compiler/front/typer/main/oop-collect-methods-and-fields.pkg# Mythryl treats OOP constructs as derived forms, expanding
# them into vanilla raw syntax early in the parsing process.
# This minimizes added compiler complexity. It also
# minimizes risk of complicating or compromising core semantics.
api Oop_Collect_Methods_And_Fields {
collect_methods_and_fields
:
( raw_syntax::Declaration,
symbolmapstack::Symbolmapstack,
line_number_db::Source_Code_Region,
typer_junk::Per_Compile_Stuff
)
->
{ fields: List( raw_syntax::Named_Field ), # List of fields found in input declaration.
methods_and_messages: List( raw_syntax::Named_Function ), # List of methods and messages found in input declaration.
null_or_superclass: Null_Or( raw_syntax::Named_Package ), # List of "class super" declarations found in input declaration. (We hope, just one!)
syntax_errors: Int
};
};
## Code by Jeff Prothero: Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.