Boo Syntax Diagram

docstring namespace_directive import_directive type_member globals assembly_attribute eos

identifier identifier eos

identifier eos docstring

attributes modifiers type_definition method

class_definition interface_definition enum_definition callable_definition

parameter_declaration_list type_reference eos docstring

begin enum_member end

attributes integer_literal eos

attribute attribute

identifier argument_list

identifier argument_list

base_types begin_with_doc eos attributes modifiers method event_declaration field_or_property type_definition end

base_types begin_with_doc eos attributes interface_method interface_property end

type_reference type_reference

parameter_declaration_list type_reference eos docstring empty_block

type_reference begin_with_doc interface_property_accessor end

attributes eos empty_block

begin eos end

type_reference eos

parameter_declaration_list type_reference attributes begin_block_with_doc block end

type_reference

property_header parameter_declaration_list type_reference begin_with_doc property_accessor end type_reference array_or_expression eos callable_expression eos docstring

attributes modifiers compound_stmt

stmt

eos stmt

parameter_declaration parameter_declaration

attributes array_type_reference type_reference

type_reference type_reference type_reference

type_reference

array_type_reference callable_type_reference type_name

identifier

docstring

docstring

block end

expression_list

expression_list compound_stmt eos stmt_modifier eos

for_stmt while_stmt if_stmt unless_stmt try_stmt given_stmt macro_stmt slicing_expression assignment_or_method_invocation_with_block_stmt return_stmt goto_stmt label_stmt yield_stmt break_stmt continue_stmt raise_stmt retry_stmt declaration unpack_stmt declaration_stmt expression_stmt stmt_modifier eos

expression

callable_expression array_or_expression

type_reference type_reference

return_expression_stmt declaration unpack_stmt closure_macro_stmt expression_stmt raise_stmt yield_stmt stmt_modifier

closure_parameters_test parameter_declaration_list internal_closure_stmt eos internal_closure_stmt

parameter_declaration_list type_reference compound_stmt

compound_stmt exception_handler compound_stmt compound_stmt

type_reference compound_stmt

expression

type_reference array_or_expression

assignment_expression

array_or_expression stmt_modifier

array_or_expression method_invocation_block stmt_modifier eos callable_expression stmt_modifier eos

array_or_expression

expression compound_stmt

declaration_list array_or_expression compound_stmt

expression compound_stmt

expression begin array_or_expression compound_stmt compound_stmt end

expression compound_stmt expression compound_stmt compound_stmt

declaration declaration_list array_or_expression

declaration declaration

type_reference

expression expression expression

boolean_expression type_reference declaration_list expression stmt_modifier

boolean_expression boolean_term expression

assignment_expression expression

callable_expression

slicing_expression method_invocation_block callable_expression array_or_expression method_invocation_block stmt_modifier eos eos

conditional_expression assignment_expression

sum sum array_or_expression type_reference

term term

exponentiation exponentiation

unary_expression exponentiation

slicing_expression

literal reference_expression paren_expression cast_expression typeof_expression

type_reference expression

type_reference

array_or_expression

expression expression expression

callable_expression

atom expression expression expression expression expression member argument_list

integer_literal string_literal list_literal hash_literal_test hash_literal closure_expression re_literal bool_literal null_literal self_literal super_literal double_literal timespan_literal

expression_interpolation

expression

expression expression

expression

expression_pair expression_pair

expression expression

expression expression

argument argument

expression expression