\input texinfo.tex @c -*-texinfo-*- @c %**start of header @setfilename kawa.info @documentencoding UTF-8 @settitle The Kawa Scheme language @macro stxdef{NAME} @findex @i{\NAME\} @address@hidden @t{::=} @end macro @ifnotinfo @macro stxref{NAME} @ref{meta-\NAME\, @var{\NAME\}, @var{\NAME\}} @end macro @end ifnotinfo @ifinfo @macro stxref{NAME} @var{\NAME\} @end macro @end ifinfo @macro stxlit{TEXT} @address@hidden @end macro @macro stxlitlbrace @address@hidden@{}} @end macro @macro stxlitat @address@hidden@@}} @end macro @macro meta{THING} @var{\THING\} @end macro @iftex @finalout @end iftex @titlepage @title The Kawa Scheme language @page @end titlepage @ifinfo @format START-INFO-DIR-ENTRY * kawa: (kawa). The Kawa Scheme language END-INFO-DIR-ENTRY @end format @end ifinfo @ifnottex @node Top, , (dir), (dir) @top The Kawa Scheme language @menu * Defining new classes:: * Declaring fields:: @end menu @end ifnottex @node Defining new classes @chapter Defining new classes @deffn Syntax define-class @stxref{class-name} @stxlit{(}supers address@hidden)} (@var{annotation}|@stxref{option-pair})* @stxref{field-or-method-decl} ... @end deffn @display @stxdef{class-name} @var{identifier} @stxdef{option-pair} @var{option-keyword} @var{option-value} @stxdef{field-or-method-decl} @stxref{field-decl} | @var{method-decl} @end display @node Declaring fields @chapter Declaring fields @display @stxdef{field-decl} @stxlit{(address@hidden (@var{opt-type-specifier} | @stxref{field-option})address@hidden)} @stxdef{field-name} @var{identifier} @stxdef{field-option} @var{keyword} @var{expression} @end display @bye