Mercurial > projects > dil
annotate trunk/src/dil/Messages.d @ 681:95a3c28c0f64
Renamed AsmStatement->AsmBlockStatement and AsnInstruction->AsmStatement.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Sat, 19 Jan 2008 00:10:57 +0100 |
parents | 29cc5bf3ce89 |
children | 5cb236c6fe52 |
rev | line source |
---|---|
54 | 1 /++ |
2 Author: Aziz Köksal | |
249 | 3 License: GPL3 |
54 | 4 +/ |
326 | 5 module dil.Messages; |
391
33b566df6af4
Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
390
diff
changeset
|
6 import common; |
54 | 7 |
309 | 8 /// Index into table of compiler messages. |
54 | 9 enum MID |
10 { | |
309 | 11 // Lexer messages: |
390
4d36eea1bbc9
Refactored Lexer.scan().
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
389
diff
changeset
|
12 IllegalCharacter, |
54 | 13 InvalidUnicodeCharacter, |
14 InvalidUTF8Sequence, | |
15 // '' | |
16 UnterminatedCharacterLiteral, | |
17 EmptyCharacterLiteral, | |
18 // #line | |
19 ExpectedIdentifierSTLine, | |
388
ae154eceba65
Applied some fixes to scanning and printing #line tokens.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
375
diff
changeset
|
20 ExpectedIntegerAfterSTLine, |
323 | 21 ExpectedFilespec, |
22 UnterminatedFilespec, | |
54 | 23 UnterminatedSpecialToken, |
24 // "" | |
25 UnterminatedString, | |
26 // x"" | |
27 NonHexCharInHexString, | |
28 OddNumberOfDigitsInHexString, | |
29 UnterminatedHexString, | |
30 // /* */ /+ +/ | |
31 UnterminatedBlockComment, | |
32 UnterminatedNestedComment, | |
33 // `` r"" | |
34 UnterminatedRawString, | |
35 UnterminatedBackQuoteString, | |
36 // \x \u \U | |
37 UndefinedEscapeSequence, | |
432
3ead178e0662
Added message MID.InvalidUnicodeEscapeSequence.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
405
diff
changeset
|
38 InvalidUnicodeEscapeSequence, |
54 | 39 InsufficientHexDigits, |
40 // \&[a-zA-Z][a-zA-Z0-9]+; | |
272
0bde32503976
- Added module HtmlEntities. It contains a table for converting HTML entities to Unicode characters.
aziz
parents:
249
diff
changeset
|
41 UndefinedHTMLEntity, |
54 | 42 UnterminatedHTMLEntity, |
43 InvalidBeginHTMLEntity, | |
56
63af7ddf52e1
- Started properly implementing number scanner. Added stub for real numbers.
aziz
parents:
54
diff
changeset
|
44 // integer overflows |
58 | 45 OverflowDecimalSign, |
56
63af7ddf52e1
- Started properly implementing number scanner. Added stub for real numbers.
aziz
parents:
54
diff
changeset
|
46 OverflowDecimalNumber, |
63af7ddf52e1
- Started properly implementing number scanner. Added stub for real numbers.
aziz
parents:
54
diff
changeset
|
47 OverflowHexNumber, |
63af7ddf52e1
- Started properly implementing number scanner. Added stub for real numbers.
aziz
parents:
54
diff
changeset
|
48 OverflowBinaryNumber, |
63af7ddf52e1
- Started properly implementing number scanner. Added stub for real numbers.
aziz
parents:
54
diff
changeset
|
49 OverflowOctalNumber, |
63 | 50 OverflowFloatNumber, |
51 OctalNumberHasDecimals, | |
59
3e594725899a
- Issuing error when no digits were found in hex and binary numbers.
aziz
parents:
58
diff
changeset
|
52 NoDigitsInHexNumber, |
3e594725899a
- Issuing error when no digits were found in hex and binary numbers.
aziz
parents:
58
diff
changeset
|
53 NoDigitsInBinNumber, |
62
96af5653acef
- Fixed loop of hex number scanner. Moved checks under the switch block.
aziz
parents:
59
diff
changeset
|
54 HexFloatExponentRequired, |
389
c4bfceab7246
Applied fixes and improvements to hex float scanner.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
388
diff
changeset
|
55 HexFloatExpMustStartWithDigit, |
c4bfceab7246
Applied fixes and improvements to hex float scanner.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
388
diff
changeset
|
56 FloatExpMustStartWithDigit, |
86
0459c902a370
- Added code for parsing Assert-, Mixin-, Import-, Typeid- and TypeDotIdExpressions.
aziz
parents:
81
diff
changeset
|
57 |
309 | 58 // Parser messages: |
86
0459c902a370
- Added code for parsing Assert-, Mixin-, Import-, Typeid- and TypeDotIdExpressions.
aziz
parents:
81
diff
changeset
|
59 ExpectedButFound, |
238
f3c6c15961bb
- Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents:
86
diff
changeset
|
60 RedundantStorageClass, |
341
3ac651ea83fb
- Fix: created TemplateAliasParameter instead of TemplateTypeParameter.
aziz
parents:
329
diff
changeset
|
61 TemplateTupleParameter, |
342
f13d551d7c4f
- Added error messages MID.InContract and MID.OutContract.
aziz
parents:
341
diff
changeset
|
62 InContract, |
f13d551d7c4f
- Added error messages MID.InContract and MID.OutContract.
aziz
parents:
341
diff
changeset
|
63 OutContract, |
359
511c14950cac
- Added messages MissingLinkageType and UnrecognizedLinkageType.
aziz
parents:
342
diff
changeset
|
64 MissingLinkageType, |
511c14950cac
- Added messages MissingLinkageType and UnrecognizedLinkageType.
aziz
parents:
342
diff
changeset
|
65 UnrecognizedLinkageType, |
405
e2529923a0cb
Added two error messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
394
diff
changeset
|
66 ExpectedBaseClasses, |
e2529923a0cb
Added two error messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
394
diff
changeset
|
67 BaseClassInForwardDeclaration, |
309 | 68 |
69 // Help messages: | |
70 HelpMain, | |
329 | 71 HelpGenerate, |
375
0bd21b746a04
- Added code to main() for recognizing options to the importgraph command.
aziz
parents:
359
diff
changeset
|
72 HelpImportGraph, |
309 | 73 } |
74 | |
394
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
75 private string[] messages; |
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
76 |
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
77 package void SetMessages(string[] msgs) |
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
78 { |
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
79 assert(MID.max+1 == msgs.length); |
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
80 messages = msgs; |
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
81 } |
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
82 |
309 | 83 string GetMsg(MID mid) |
84 { | |
394
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
85 assert(mid < messages.length); |
6440da4adb07
Fixed forward references of enum MID complaints by compiler.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
391
diff
changeset
|
86 return messages[mid]; |
309 | 87 } |
88 | |
391
33b566df6af4
Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
390
diff
changeset
|
89 char[] FormatMsg(MID mid, ...) |
309 | 90 { |
391
33b566df6af4
Migrated project to Tango.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
390
diff
changeset
|
91 return Format(_arguments, _argptr, GetMsg(mid)); |
54 | 92 } |
93 | |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
94 /// Collection of error messages with no MID yet. |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
95 struct MSG |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
96 { |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
97 static: |
533
2a8d0ed0d71e
Improved error reporting in dil.Converter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
529
diff
changeset
|
98 // Converter: |
2a8d0ed0d71e
Improved error reporting in dil.Converter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
529
diff
changeset
|
99 auto InvalidUTF16Character = "invalid UTF-16 character '\\u{:X4}'."; |
2a8d0ed0d71e
Improved error reporting in dil.Converter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
529
diff
changeset
|
100 auto InvalidUTF32Character = "invalid UTF-32 character '\\U{:X8}'."; |
2a8d0ed0d71e
Improved error reporting in dil.Converter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
529
diff
changeset
|
101 auto UTF16FileMustBeDivisibleBy2 = "the byte length of a UTF-16 source file must be divisible by 2."; |
2a8d0ed0d71e
Improved error reporting in dil.Converter.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
529
diff
changeset
|
102 auto UTF32FileMustBeDivisibleBy4 = "the byte length of a UTF-32 source file must be divisible by 4."; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
103 // Parser messages: |
637
fe66cecb6ec9
Reporting error if module declaration is not first.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
631
diff
changeset
|
104 auto ModuleDeclarationNotFirst = "a module declaration is only allowed as the first declaration in a file"; |
653
29cc5bf3ce89
Refactored StringExpression.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
640
diff
changeset
|
105 auto StringPostfixMismatch = "string literal has mistmatching postfix character"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
106 auto ExpectedIdAfterTypeDot = "expected identifier after '(Type).', not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
107 auto ExpectedModuleIdentifier = "expected module identifier, not '{}'"; |
681
95a3c28c0f64
Renamed AsmStatement->AsmBlockStatement and AsnInstruction->AsmStatement.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
653
diff
changeset
|
108 auto IllegalDeclaration = "illegal declaration found: {}"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
109 auto ExpectedFunctionName = "expected function name, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
110 auto ExpectedVariableName = "expected variable name, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
111 auto ExpectedFunctionBody = "expected function body, not '{}'"; |
616
506ce60760d8
Fixed some error messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
611
diff
changeset
|
112 auto RedundantLinkageType = "redundant linkage type: {}"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
113 auto ExpectedPragmaIdentifier = "expected pragma identifier, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
114 auto ExpectedAliasModuleName = "expected alias module name, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
115 auto ExpectedAliasImportName = "expected alias name, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
116 auto ExpectedImportName = "expected an identifier, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
117 auto ExpectedEnumMember = "expected enum member, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
118 auto ExpectedEnumBody = "expected enum body, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
119 auto ExpectedClassName = "expected class name, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
120 auto ExpectedClassBody = "expected class body, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
121 auto ExpectedInterfaceName = "expected interface name, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
122 auto ExpectedInterfaceBody = "expected interface body, not '{}'"; |
639
1b1315ac27a4
Added two error messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
637
diff
changeset
|
123 auto ExpectedStructBody = "expected struct body, not '{}'"; |
1b1315ac27a4
Added two error messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
637
diff
changeset
|
124 auto ExpectedUnionBody = "expected union body, not '{}'"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
125 auto ExpectedTemplateName = "expected template name, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
126 auto ExpectedAnIdentifier = "expected an identifier, not '{}'"; |
681
95a3c28c0f64
Renamed AsmStatement->AsmBlockStatement and AsnInstruction->AsmStatement.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
653
diff
changeset
|
127 auto IllegalStatement = "illegal statement found: {}"; |
555
d9e328c3bab9
Fixed infinite loop in dil.Parser.parseMixin().
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
533
diff
changeset
|
128 auto ExpectedNonEmptyStatement = "didn't expect ';', use {{ } instead"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
129 auto ExpectedScopeIdentifier = "expected 'exit', 'success' or 'failure', not '{}'"; |
574
ae8f58a13917
Added messages to struct MSG.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
555
diff
changeset
|
130 auto InvalidScopeIdentifier = "'exit', 'success', 'failure' are valid scope identifiers, but not '{}'"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
131 auto ExpectedIntegerAfterAlign = "expected an integer after align, not '{}'"; |
681
95a3c28c0f64
Renamed AsmStatement->AsmBlockStatement and AsnInstruction->AsmStatement.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
653
diff
changeset
|
132 auto IllegalAsmStatement = "illegal asm statement found: {}"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
133 auto ExpectedDeclaratorIdentifier = "expected declarator identifier, not '{}'"; |
574
ae8f58a13917
Added messages to struct MSG.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
555
diff
changeset
|
134 auto ExpectedTemplateParameters = "expected one or more template parameters, not ')'"; |
ae8f58a13917
Added messages to struct MSG.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
555
diff
changeset
|
135 auto ExpectedTypeOrExpression = "expected a type or and expression, not ')'"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
136 auto ExpectedAliasTemplateParam = "expected name for alias template parameter, not '{}'"; |
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
137 auto ExpectedNameForThisTempParam = "expected name for 'this' template parameter, not '{}'"; |
529
135e9e6933a7
Tidied up version/debug parser functions.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
524
diff
changeset
|
138 auto ExpectedIdentOrInt = "expected an identifier or an integer, not '{}'"; |
640
05645f5613c1
Added an error message.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
639
diff
changeset
|
139 auto MissingCatchOrFinally = "try statement is missing a catch or finally body."; |
574
ae8f58a13917
Added messages to struct MSG.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
555
diff
changeset
|
140 // Semantic analysis: |
611
6d449e777f5d
Added semantic code to insert symbols into the scope.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
574
diff
changeset
|
141 auto DeclConflictsWithDecl = "declaration '{}' conflicts with declaration @{}"; |
574
ae8f58a13917
Added messages to struct MSG.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
555
diff
changeset
|
142 auto VariableConflictsWithDecl = "variable '{}' conflicts with declaration @{}"; |
ae8f58a13917
Added messages to struct MSG.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
555
diff
changeset
|
143 auto InterfaceCantHaveVariables = "an interface can't have member variables"; |
631
2feb88f5c867
Added dil.parser.ExpressionParser and dil.parser.Factory.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
616
diff
changeset
|
144 auto MixinArgumentMustBeString = "the mixin argument must evaluate to a string"; |
524
39b497c76e2b
Moved struct MSG from dil.Parser to dil.Messages.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
432
diff
changeset
|
145 } |