generator (library)
Author(s): Göran Smedbäck.Usage and interface
- Library usage:
:- use_module(library(generator)). - Exports:
- Predicates:
generator/2, nodeDeclaration/4.
- Predicates:
- Imports:
- System library modules:
aggregates, dynamic, iso_misc, iso_byte_char, iso_incomplete, operators, read, write, terms_check, terms_vars, cyclic_terms, provrml/provrml_io, provrml/generator_util, provrml/parser_util, provrml/provrmlerror, provrml/internal_types. - Packages:
prelude, nonpure, assertions, regtypes, isomodes, dcg, iso.
- System library modules:
Documentation on exports
PREDICATE
Usage:generator(Terms,VRML)
This predicate is the generator of VRML code. It accepts a list of terms that is correct VRML code, other kind of terms will be rejected will errormessage accordingly. The output is a string of correct VRML code, acceptable for VRML browsers.
- Call and exit should be compatible with:
(basic_props:list/2)Terms is a list of terms.
(basic_props:string/1)VRML is a string (a list of character codes). - The following properties should hold at call time:
(term_typing:nonvar/1)Terms is currently a term which is not a free variable.
(term_typing:var/1)VRML is a free variable.
PREDICATE
Usage:nodeDeclaration(ParseIn,ParseOut,L,T)
The node declaration canbe constructed by a DEFinition, we then make a call to generator_util to make proper settings before continue. There can be a USE of a prior defined node or we can have a normal node declaration, one of the built ins.
- Call and exit should be compatible with:
(internal_types:parse/1)ParseIn is a parse structure.
(internal_types:parse/1)ParseOut is a parse structure.
(basic_props:list/1)L is a list.
(basic_props:list/1)T is a list. - The following properties should hold at call time:
(term_typing:nonvar/1)ParseIn is currently a term which is not a free variable.
(term_typing:var/1)ParseOut is a free variable.