Node:Error messages, Next:, 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.