[an error occurred while processing this directive]

Syntax of the Scout Notation

statement ::
declaration | definition
declaration ::
type_name var_list ;
type_name ::
string | integer | point | box | frame | window | display
var_list ::
var | var_list , var
var ::
string_var | integer_var | point_var | box_var | frame_var
| window_var | display_var
definition ::
[ string ] string_var = string_exp ;
| [ integer ] integer_var = integer_exp ;
| [ point ] point_var = point_exp ;
| [ box ] box_var = box_exp ;
| [ frame ] frame_var = frame_exp ;
| [ window ] window_var = window_exp ;
| [ display ] display_var = display_exp ;
| [ display ] display_var &= display_exp ;
string_exp ::
string
| string_var
| string_exp // string_exp
| strcat( string_exp , string_exp )
| substr( string_exp , integer_exp , integer_exp )
| itos( integer_exp )
| window_exp .string
| window_exp .pict
| window_exp .font
| window_exp .bgcolor
| window_exp .fgcolor
| window_exp .bdcolor
| window_exp .relief
| if integer_exp then string_exp else string_exp endif
image_exp ::
image_var
| ImageFile( string_exp , string_exp )
| ImageScale( image_exp , integer , integer )
| if integer_exp then image_exp else image_exp endif
integer_exp ::
integer
| integer_var
| integer_exp .c
| integer_exp .r
| integer_exp int_op integer_exp
| - integer_exp
| ( integer_exp )
| strlen( string_exp )
| point_exp . integer_exp
| window_exp .xmin
| window_exp .ymin
| window_exp .xmax
| window_exp .ymax
| if integer_exp then integer_exp else integer_exp endif
int_op ::
+ | - | * | / | % | == | != | > | >= | < | <= | && | ||
point_exp ::
point_var
| { integer_exp , integer_exp }
| point_exp + point_exp
| point_exp - point_exp
| box_exp . direction
| if integer_exp then point_exp else point_exp endif
direction ::
n | e | s | w | ne | nw | se | sw
box_exp ::
box_var
| [ point_exp , point_exp ]
| [ point_exp , integer_exp , integer_exp ]
| frame_exp . integer_exp
| window_exp . box
| shift( box_exp , integer_exp , integer_exp )
| intersect( box_exp , box_exp )
| centre( box_exp , box_exp )
| enclose( box_exp , box_exp )
| reduce( box_exp , box_exp )
| if integer_exp then box_exp else box_exp endif
box_list ::
box_exp | box_list , box_exp
frame_exp ::
frame_var
| ( box_list )
| window_exp .frame
| append( frame_exp , integer_exp , box_exp )
| delete( frame_exp , integer_exp )
| frame_exp & frame_exp
| if integer_exp then frame_exp else frame_exp endif
window_exp ::
window_var
| { window_field_list }
| display_exp . integer_exp
| if integer_exp then window_exp else window_exp endif
window_field_list ::
window_field | window_field_list , window_field
window_field ::
type : { TEXT | TEXTBOX | DONALD | ARCA }
| frame : frame_exp
| string : string_exp
| font : string_exp
| box : box_exp
| pict : string_exp
| xmin : integer_exp
| ymin : integer_exp
| xmax : integer_exp
| ymax : integer_exp
| { bgcolour | bgcolor } : string_exp
| { fgcolour | fgcolor } : string_exp
| { bdcolour | bdcolor } : string_exp
| border : integer_exp
| relief : string_exp
| alignment : justification
| sensitive : { ON | OFF }
justification ::
NOADJ | LEFT | RIGHT | EXPAND | CENTRE
window_list ::
window_exp | window_list / window_exp
display_exp ::
display_var
| < window_list >
| append ( display_exp , integer_exp , window_exp )
| delete ( display_exp , integer_exp )
| if integer_exp then display_exp else display_exp endif
[an error occurred while processing this directive]