[Next] [Previous] [Up] [Top] [Contents] [Index]

2 Dynamically-Typed Core

2.5 Statements and Expressions

A statement is a declaration block, an assignment, or an expression:

stmt	::=	decl_block
	|	assignment ";"
	|	expr ";"

An expression is either a literal, a reference to a variable or a named object, an object constructor expression, a vector constructor expression, a closure constructor expression, a message, a resend, or a parenthetical subexpression:

expr	::=	binop_expr
binop_expr	::=	binop_msg | unop_expr
unop_expr	::=	unop_msg | dot_expr
dot_expr	::=	dot_msg | simple_expr
simple_expr	::=	literal
	|	ref_expr
	|	vector_expr
	|	closure_expr
	| 	object_expr
	|	message
	|	resend
	|	paren_expr

All of these constructs are described below, except for resends which are described later in section 2.8 and declarations other than variable declarations which are described in other sections.