Node:Error messages,
Next:Using the generated code,
Previous:Input File Format,
Up:Top
Error messages
These error messages are created by Vmgen:
# can only be on the input side
- You have used an instruction-stream prefix (usually
#
) after the
--
(the output side); you can only use it before (the input
side).
the prefix for this superinstruction must be defined earlier
- You have defined a superinstruction (e.g.
abc = a b c
) without
defining its direct prefix (e.g., ab = a b
),
See Superinstructions.
sync line syntax
- If you are using a preprocessor (e.g.,
m4
) to generate Vmgen
input code, you may want to create #line
directives (aka sync
lines). This error indicates that such a line is not in th syntax
expected by Vmgen (this should not happen; please report the offending
line in a bug report).
syntax error, wrong char
- A syntax error. If you do not see right away where the error is, it may
be helpful to check the following: Did you put an empty line in a VM
instruction where the C code is not delimited by braces (then the empty
line ends the VM instruction)? If you used brace-delimited C code, did
you put the delimiting braces (and only those) at the start of the line,
without preceding white space? Did you forget a delimiting brace?
too many stacks
- Vmgen currently supports 3 stacks (plus the instruction stream); if you
need more, let us know.
unknown prefix
- The stack item does not match any defined type prefix (after stripping
away any stack prefix). You should either declare the type prefix you
want for that stack item, or use a different type prefix
unknown primitive
- You have used the name of a simple VM instruction in a superinstruction
definition without defining the simple VM instruction first.
In addition, the C compiler can produce errors due to code produced by
Vmgen; e.g., you need to define type cast functions.