parrotcode: base class for compiler objects | |
Contents | Libraries |
HLLCompiler - base class for compiler objects
This file implements a HLLCompiler
class of objects used for creating HLL compilers.
It provides the standard methods required for all compilers,
as well as some standard scaffolding for running compilers from a command line.
attrname
based on has_value
.name
using the compreg
opcode.parsegrammar
attribute.astgrammar
attribute.source
(possibly modified by any provided options).
If a compsub has been registered for this compiler,
use it,
otherwise use the parsegrammar
and astgrammar
attributes to get to an AST and compile it,
otherwise throw an exception.source
using the compiler's parsegrammar
according to any options and return the resulting parse tree.source
into an AST using the compiler's astgrammar
according to any options,
and return the resulting ast.code
taking into account any options provided.encoding
option specifies the encoding to use for the input (e.g.,
"utf8").files
argument may be either a single filename or an array of files to be processed as a single compilation unit.
The encoding
option specifies the encoding to use when reading the files,
and any remaining options are passed to the evaluator.name
into its component namespace parts,
as required by pdd21.
The default is simply to split the name based on double-colon separators.name
and using compsub
as the subroutine to call for performing compilation.Patrick R. Michaud <pmichaud@pobox.com>
|