next up previous contents index
Next: Garbage Collection in Up: Running the Translator Previous: Options

Error Messages

The following is a canonical list of all error messages generated by the Prop translator. Each message is prefixed by the file name and line number in which the error occurs. Most of these errors messages are self explanatory; more detailed explanations are provided below.


Error Explanation
unknown option optionThe translator does not recognize the command line option. Type prop to see a list of options.
Error in command: commandThe translator fails when trying to execution command. When multiple files are specified in a command line, prop invokes itself on each of the file.
pat with type type is not unifiablePattern has not been declared to be a unifiable type.
Sorry: pattern not supported in rewriting: patPattern pat is not supported. Currently, logical pattern connectives are not supported in rewriting. You'll have to rewrite them into non-logical form.
Unknown complexity operator: op
accessor is undefined for view pattern: patAn accessor function has not been declared for a constructor. When using datatype views
arity mismatch (expecting n) in pattern: patPattern pat is expected to have arity n. The arity is the number of expressions that you're matching concurrently. If you are matching n objects then there must be n patterns for each rule.
arity mismatch in logical pattern: patLogical patterns do not match the arity of a pattern.
bad constructor type type
bad view constructor pattern: pat
can't find include file fileAdditional search paths can be specified with the -I option
component #i not found in constructor conDatatype constructor con does not have a component named #i. This can happen when you write a record constructor expression and misspelt one of the labels.
component l not found in constructor conDatatype constructor con does not have a labeled component l.
constructor con already has print formats
constructor con is not a class
constructor con is not a lexemeA constructor is used as a terminal in the parser but it has not been declared to be a lexeme.
constructor con doesn't take labeled argumentsYou're trying to use record constructor syntax on a constructor take does not take record arguments.
constructor con is undefined
cyclic type definition in type id = typeType abbreviations cannot be cyclic. For recursive types, use datatype definitions.
datatype T is not a lexeme typeT is used as a terminal within syntax class when it has not been declared as a lexeme type. All non-terminals must be a defined using the lexeme qualifier.
determinism det not recognized


Error Explanation
duplicated definition of pattern constructor 'con'The constructor con has already been in another datatype. Prop does not allow overloading of constructor names.
duplicated label 'l' in expression: expA record type has one of its labels duplicated.
duplicated label 'l' in type type
duplicated pattern variable 'id'. Use option -NBy default, pattern variables may not be duplicated within a pattern. Non-linear patterns are allowed only when the option -N is invoked.
edge e is not defined in graphtype id
empty type list in rewrite (...) ...
expecting c1 ... c2 (from line l) but found c3 ... c4 insteadQuotation symbols are not properly balanced.
expecting non-terminal nt to have type t1 but found t2Non-terminal nt has already been defined to have a synthesized attribute type of t1 but t2 is found. This can happen if you have rules with the same lhs non-terminal previously defined.
expecting type t1 but found t2 in pattern variable 'v'Prop performs type inference on all the lhs patterns to determine the types of all variables. Type errors can occur if the patterns are miswritten.
expecting type t1 but found t2
flexible vector pattern currently not supported in rewriting: pat
format #i used on constructor con
format #l used on non-record constructor con
function name mismatch: expecting f ...
illegal character c
illegal context type: typeA context type in a matchscan statement must be previously defined to be datatype. The unit constructors of the datatype can be used as context values.
illegal context(s) in pattern pat
illegal format '_' on constructor con
illegal incomplete record pattern: pat
illegal print format 'c' in constructor con
illegal record label 'l' in expression: exp
illegal width in bitfield 'id (n)'
inherited attribute 'type' can only be used in treeparser mode in rewrite class id


Error Explanation
law id(...) = pat is not invertiblePattern pat cannot be treated as an expression. It may involve logical patterns and wild cards.
law 'id': bound variable 'v' is absent in body expA parameter variable v must be present within the body of a law.
law 'id': type type cannot be used in parameter id
lexeme id is undefined
lexeme class id is undefined
lexeme pattern is undefined for constructor con
lexeme {id} already defined as regexp
lexeme {id} is undefined in regexp
missing '}' in regular expression regexp
missing label 'l' in expression: con exp
missing non-terminal in tree grammar rule: nt
missing type type in the traversal list of rewrite class idWithin the rewriting rules, you have used a pattern that involve a constructor of type type directly but no such types are defined in the rewrite class definition. You should add the type to the traversal list.
missing type info in expression exp : typeSometimes prop fails to infer the type of an expression within a match statement. It such cases it is necessary to help out the translator by adding additional type information in the patterns. For example, rewrite some pattern p as (p : t) where t is the type of p.
missing type info in function f typeSimilar to above
missing type info in rule: f pat : typeSimilar to above.
missing view selector for pattern: pat
multiple mixed polarity pattern variable 'v'
multiple unit constructors in polymorphic type id arg is not supported
negative cost cost is illegal
node id is not defined in graphtype id
non lexeme type type in pattern pat
non-relation type type in pattern: pat
pattern is undefined for lexeme l
pattern scope stack overflows
pattern scope stack underflows


Error Explanation
pattern variable 'v' has no binding at this point
persist object id is undefined for con
persistence pid name already allocated for type type
persistence redefined for type type
precedence symbol must be terminal: term
predicate p: expecting type t1 but found t2
redefinition of bitfield 'field'.
redefinition of constructor 'con'
redefinition of datatype id
redefinition of lexeme class id
replacement not in rewrite class: rewrite exp
rewrite class id has already been defined
rewrite class id is undefined
rule r has incomplete type type
rule r is of a non datatype: type
syntax class id has already been defined
syntax class id is undefined
synthesized attribute 'type' can only be used in treeparser mode in rewrite class id
the class representation of constructor id has been elided
this rule is never selected: r
this rule is never used: r
too few arguments arg in instantiation of type scheme type
too many arguments arg in instantiation of type scheme type
type type is not a datatype
type type is undefined


Error Explanation
type id = type is not a datatype
type id has already been defined as type
type id has unknown class: C
type 'type' is not rewritable in treeparser mode rewrite class idAll datatypes used within the treeparser mode of rewriting must be defined with the rewrite qualifier.
type error in pattern pat: type
type mismatch between nonterminal nt(type t1) and rule r(type t2)
type mismatch in pattern: pat
type mismatch in rule r
type mismatch in rule r pat
type or constructor con is undefined
unable to apply pattern scheme pat
unbalanced c1 ... c2 at end of file
undefined non-terminal nt
unification fails occurs check with t1 and t2
unmatched ending quote c
unrecognized quoted expression `exp`
unrecognized quoted pattern `pat`



Allen Leung
Mon Apr 7 14:33:55 EDT 1997