end of line
[scilab.git] / scilab / modules / scicos / src / translator / exceptionHandling / errorDico.ml
1 (*
2  *  Translator from Modelica 2.x to flat Modelica
3  *
4  *  Copyright (C) 2005 - 2007 Imagine S.A.
5  *  For more information or commercial use please contact us at www.amesim.com
6  *
7  *  This program is free software; you can redistribute it and/or
8  *  modify it under the terms of the GNU General Public License
9  *  as published by the Free Software Foundation; either version 2
10  *  of the License, or (at your option) any later version.
11  *
12  *  This program is distributed in the hope that it will be useful,
13  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15  *  GNU General Public License for more details.
16  *
17  *  You should have received a copy of the GNU General Public License
18  *  along with this program; if not, write to the Free Software
19  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
20  *
21  *)
22
23 (* Compilation error dictionary
24   @author D. TALBI 
25   @since 05/02/2007
26   *)
27
28 type error_description =
29   {
30     err_msg: string list;
31     err_info: (string * string) list;
32     err_ctx: err_ctx
33   }
34
35 and err_ctx =
36   {
37     path: Instantiation.path;
38     location: Parser.location;
39     instance_nature: Instantiation.instance_nature
40   }
41
42 exception GenericError of error_description
43
44 (* list of compilation errors*)
45 let ccodes = [
46   ("_UnknownIdentifier", "0001");
47   ("_EnumTypeDefWithDuplicLit", "0002");
48   ("_EncapsulatedCannotBeAppliedTo", "0003");
49   ("_InvalidTypeDef", "0004");
50   ("_UnspecifiedEnumLits", "0005");
51   ("_NotYetImplemented", "0006");
52   ("_UnsupportedFeature", "0007"); (*to be documented*)
53   ("_TypeConflictsInAssign", "0008"); (*to be documented*)
54   ("_OperBetweenScalarAndArray", "0009");
55   ("_ArrayDimMustAgreeToPerform", "0010");
56   ("_FuncCallWithDuplicateArg", "0011");
57   ("_TooManyArgsInFuncCall", "0012");
58   ("_MixedPositAndNamedFuncArgPass", "0013");
59   ("_TypeInconsistWithComparOper", "0014");
60   ("_EquTermsNotOfTheSameType", "0015");
61   ("_NonInputFuncArgElem", "0016");
62   ("_OperAppliedToNonNumericExpr", "0017");
63   ("_ArrayDimsNonCompatibleWithMult", "0018");
64   ("_PowerOperOnNonSquareArray", "0019");
65   ("_NonBooleanIfCondExpr", "0020");
66   ("_TypeConflictsInIfAlternExprs", "0021");
67   ("_OperAppliedToNonBoolExpr", "0022");
68   ("_TypeInconsistentWithDivOper", "0023");
69   ("_ElemExpected", "0024");
70   ("_FinalElemModifNotAllowed", "0025");
71   ("_TypeConflictsInVectorExpr", "0026");
72   ("_EachAppliedToNonArrayElem", "0027");
73   ("_InvalidExprInElemModif", "0028");
74   ("_ClassElemFoundInExpr", "0029");
75   ("_ArrayDimMismatchInEqu", "0030");
76   ("_InvalidKeyWordEndInExpr", "0031");
77   ("_InvalidTypeInRangeExpr", "0032");
78   ("_InvalidExtensionDef", "0033");
79   ("_InvalidUseOfEnumKeyword", "0034");
80   ("_UseOfTypePrefixInShortClassDef", "0035");
81   ("_UseOfSubsInShortClassDef", "0036");
82   ("_NonEmptyFuncCallUsedAsAnEqu", "0037");
83   ("_DuplicatedModifOfElem", "0038");
84   ("_InvalidClassElemModif", "0039");
85   ("_CannotAccessProtectElem", "0040");
86   ("_CannotAccessOuterElem", "0041");
87   ("_CannotSubscriptANonArrayTypeElem", "0042");
88   ("_NonIntegerArraySubscript", "0043");
89   ("_RangeStepValueCannotBeNull", "0044");
90   ("_CannotInheritFrom", "0045");
91   ("_AlreadyDeclaredInParentClass", "0046");
92   ("_InheritFromDiffClassKindsNotAllowed", "0047");
93   ("_InheritFromFunctionNotAllowed", "0048");
94   ("_InvalidAnnOfInvFunc", "0049");
95   ("_CannotUseCausPrefixInGenClass", "0050");
96   ("_InvalidTypeOfArgInConnectStat", "0051");
97   ("_CannotConnectFlowAndNonFlowComp", "0052");
98   ("_InvalidTypeOfWhenCond", "0053");
99   ("_InstanceUsedInConnection", "0054");
100   ("_WhenClausesCannotBeNested", "0055");
101   ("_InvalidWhenEquation", "0056");
102   ("_WhenConditionMustBeDiscrete", "0057");
103   ("_ArgTypeMismatch", "0058");
104   ("_VariabilityConflicts", "0059"); (*to be documented*)
105   ("_CannotUseNamedArgWithBuiltInOper", "0060");
106   ("_OperArgMustBeAVar", "0061");
107   ("_ArgVariabilityMismatch", "0062");
108   ("_EquNotAllowedInTheDefOf", "0063");
109   ("_OperCannotBeUsedWithinFuncDef", "0064");
110   ("_ArgDimMismatchInVectCall", "0065");
111   ("_ArgDimMismatch", "0066");
112   ("_TooFewArgsInFuncCall", "0067");
113   ("_LHSOfDiscreteEquMustBeAVar", "0068");
114   ("_InvalidVarOfRangeExpr", "0069");
115   ("_InvalidExternalFuncName", "0070"); (*to be documented*)
116   ("_InvalidArgOfExternalCall", "0071"); (*to be documented*)
117   ("_DuplicateDeclarationOfElement", "0072"); (* to be documented *)
118   ("_InvalidArgOfOper", "0096"); (*to be documented*)
119   ("_InvalidInteger", "0097") (*to be documented*)
120   ]
121
122 (* list of instantiation errors*)
123 let icodes = [
124   ("_NotYetImplemented", "1000");
125   ("_ZeroRaisedToTheZeroPower", "1001");
126   ("_MissingDeclEquForFixedId", "1002");
127   ("_RealExponentOfNegativeNumber", "1003");
128   ("_ZeroRaisedToNegativePower", "1004");
129   ("_CannotAccessToPredefTypeAttrib", "1005"); (*to be documented*)
130   ("_InvalidCondEquation", "1006"); (*to be documented*)
131   ("_IndexOutOfBound", "1007"); (*to be documented*)
132   ("_DivisionByZero", "1008") (*to be documented*)
133   ]
134
135 (* list of generic errors*)
136 let gcodes = [
137   ("_NotYetImplemented", "2000")
138   ]
139
140 (* list of syntactic errors*)
141 let scodes = [
142   ("_Unclosed", "3000");
143   ("_InvalidMatrixConstruct", "3001");
144   ("_InvalidArrayConstruct", "3002");
145   ("_SyntaxError", "3003");
146   ("_IllegalCharacter", "3004")
147   ]
148
149 let getCode exn msg =
150   try
151     match exn with
152       | NameResolve.CompilError _ -> List.assoc msg ccodes
153       | Instantiation.InstantError _ -> List.assoc msg icodes
154       | GenericError _ -> List.assoc msg gcodes
155       | Parser.SyntacticError _ -> List.assoc msg scodes
156       | _ -> ""
157   with
158     exn -> ""