MAXScript is an expression-based language. Every construct in the language is an expression and yields a result. This includes constructs that other languages consider as statements. The simplified syntax of the language allows you to build very expressive code. Anywhere you can write an <expr> expression, and you can write any construct in MAXScript.
A good example of this is the if construct. In statement-based languages, there is usually one syntax for if statements and another for conditional expressions. In MAXScript, a single syntax is used for both cases.
Another example is the block-expression, denoted by <block_expr>. It contains a series of <expr> expressions enclosed in parentheses.
Each expression in the block is separated by a line break. You can also write several expressions in one line using a ";" (semicolon) to separate them.
Block-expressions are themselves <expr> expressions. They evaluate their component expressions in sequence and their value is the value of the last expression in the block.
To create classic block-structured statements:
At its simplest, a MAXScript program is made up of <expr> expressions.
An <expr> is defined as any of the following:
<simple_expr> <variable_decls> <assignment> <context_expr> <if_expr> <while_loop> <do_loop> <for_loop> <loop_exit> <case_expr> <try_expr> <function_def> <function_return> <struct_def> <max_command> <utility_def> <rollout_def> <tool_def> <rcmenu_def> <plugin_def>
These expressions constitute the main constructs in MAXScript.