smacro_definition
smacro_definition
:=
macros
|
macro
NAME
is
sbasic_name_comma_list
;
macros
|
macro
NAME
is
NAME
;
macros
|
macro for
NAME
in
sbasic_name_comma_list
do
statement
*
done ;
macros
|
macro for
NAME
in (
sbasic_name_comma_list
) do
statement
*
done ;
macros
|
macro
NAME
is new ;
macros
|
macro var
sbasic_name_comma_list
=
sexpr
;
macros
|
macro val
sbasic_name_comma_list
=
sexpr
;
macros
|
macro
sbasic_name_comma_list
=
sexpr
;
macros
|
macro val
NAME
is
sexpr
;
macros
|
macro fun
NAME
smac_arg_list
=
sexpr
;
macros
|
macro fun
NAME
smac_arg_list
=>
sexpr
;
macros
|
macro proc
NAME
smac_arg_list
scompound
macros
|
macro
scompound
;
macros
|
macro forget
sbasic_name_comma_list
;
macros
|
macro forget ;
macros
|
macro goto
NAME
;
macros
|
macro
NAME
:>
macros
|
macro if
sexpr
goto
NAME
;
macros
|
macro for val
sbasic_name_comma_list
in
sexpr
do
statement
*
done ;