annotate trunk/src/dil/Messages.d @ 325:540ec3753263

- Moved some source files to src/dil/.
author aziz
date Tue, 21 Aug 2007 16:28:05 +0000
parents trunk/src/Messages.d@6259fb93e3dd
children 4a7359b88c11
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
54
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
1 /++
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
2 Author: Aziz Köksal
249
32d354584b28 - Upgraded license notices to GPL3.
aziz
parents: 238
diff changeset
3 License: GPL3
54
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
4 +/
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
5 module Messages;
309
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
6 import Settings;
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
7 import std.stdarg;
54
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
8
309
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
9 /// Index into table of compiler messages.
54
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
10 enum MID
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
11 {
309
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
12 // Lexer messages:
54
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
13 InvalidUnicodeCharacter,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
14 InvalidUTF8Sequence,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
15 // ''
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
16 UnterminatedCharacterLiteral,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
17 EmptyCharacterLiteral,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
18 // #line
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
19 ExpectedIdentifierSTLine,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
20 ExpectedNumberAfterSTLine,
323
6259fb93e3dd - Rewrote scanSpecialToken().
aziz
parents: 309
diff changeset
21 ExpectedFilespec,
6259fb93e3dd - Rewrote scanSpecialToken().
aziz
parents: 309
diff changeset
22 UnterminatedFilespec,
54
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
23 UnterminatedSpecialToken,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
24 // ""
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
25 UnterminatedString,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
26 // x""
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
27 NonHexCharInHexString,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
28 OddNumberOfDigitsInHexString,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
29 UnterminatedHexString,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
30 // /* */ /+ +/
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
31 UnterminatedBlockComment,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
32 UnterminatedNestedComment,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
33 // `` r""
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
34 UnterminatedRawString,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
35 UnterminatedBackQuoteString,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
36 // \x \u \U
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
37 UndefinedEscapeSequence,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
38 InsufficientHexDigits,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
39 // \&[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
40 UndefinedHTMLEntity,
54
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
41 UnterminatedHTMLEntity,
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
42 InvalidBeginHTMLEntity,
56
63af7ddf52e1 - Started properly implementing number scanner. Added stub for real numbers.
aziz
parents: 54
diff changeset
43 // integer overflows
58
50bb7fc9db44 - The types of integers are recognized now.
aziz
parents: 56
diff changeset
44 OverflowDecimalSign,
56
63af7ddf52e1 - Started properly implementing number scanner. Added stub for real numbers.
aziz
parents: 54
diff changeset
45 OverflowDecimalNumber,
63af7ddf52e1 - Started properly implementing number scanner. Added stub for real numbers.
aziz
parents: 54
diff changeset
46 OverflowHexNumber,
63af7ddf52e1 - Started properly implementing number scanner. Added stub for real numbers.
aziz
parents: 54
diff changeset
47 OverflowBinaryNumber,
63af7ddf52e1 - Started properly implementing number scanner. Added stub for real numbers.
aziz
parents: 54
diff changeset
48 OverflowOctalNumber,
63
c29229fbf2f7 - Recognizing floats that start with a dot.
aziz
parents: 62
diff changeset
49 OverflowFloatNumber,
c29229fbf2f7 - Recognizing floats that start with a dot.
aziz
parents: 62
diff changeset
50 OctalNumberHasDecimals,
59
3e594725899a - Issuing error when no digits were found in hex and binary numbers.
aziz
parents: 58
diff changeset
51 NoDigitsInHexNumber,
3e594725899a - Issuing error when no digits were found in hex and binary numbers.
aziz
parents: 58
diff changeset
52 NoDigitsInBinNumber,
62
96af5653acef - Fixed loop of hex number scanner. Moved checks under the switch block.
aziz
parents: 59
diff changeset
53 HexFloatExponentRequired,
96af5653acef - Fixed loop of hex number scanner. Moved checks under the switch block.
aziz
parents: 59
diff changeset
54 HexFloatMissingExpDigits,
63
c29229fbf2f7 - Recognizing floats that start with a dot.
aziz
parents: 62
diff changeset
55 FloatExponentDigitExpected,
86
0459c902a370 - Added code for parsing Assert-, Mixin-, Import-, Typeid- and TypeDotIdExpressions.
aziz
parents: 81
diff changeset
56
309
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
57 // Parser messages:
86
0459c902a370 - Added code for parsing Assert-, Mixin-, Import-, Typeid- and TypeDotIdExpressions.
aziz
parents: 81
diff changeset
58 ExpectedButFound,
238
f3c6c15961bb - Added method peekNext(). Replaced code that used lx.peek() with peekNext().
aziz
parents: 86
diff changeset
59 RedundantStorageClass,
309
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
60
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
61 // Help messages:
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
62 HelpMain,
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
63 }
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
64
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
65 string GetMsg(MID mid)
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
66 {
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
67 assert(mid < GlobalSettings.messages.length);
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
68 return GlobalSettings.messages[mid];
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
69 }
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
70
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
71 char[] format(MID mid, ...)
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
72 {
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
73 auto args = arguments(_arguments, _argptr);
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
74 return format_args(GetMsg(mid), args);
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
75 }
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
76
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
77 char[] format(char[] format_str, ...)
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
78 {
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
79 auto args = arguments(_arguments, _argptr);
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
80 return format_args(format_str, args);
54
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
81 }
e55bd2270f94 - Relocated messages table to a separate module.
aziz
parents:
diff changeset
82
309
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
83 char[] format_args(char[] format_str, char[][] args)
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
84 {
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
85 char[] result = format_str;
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
86
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
87 foreach (i, arg; args)
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
88 result = std.string.replace(result, std.string.format("{%s}", i+1), arg);
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
89
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
90 return result;
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
91 }
86
0459c902a370 - Added code for parsing Assert-, Mixin-, Import-, Typeid- and TypeDotIdExpressions.
aziz
parents: 81
diff changeset
92
309
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
93 char[][] arguments(TypeInfo[] tinfos, void* argptr)
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
94 {
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
95 char[][] args;
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
96 foreach (ti; tinfos)
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
97 {
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
98 if (ti == typeid(char[]))
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
99 args ~= va_arg!(char[])(argptr);
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
100 else if (ti == typeid(int))
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
101 args ~= std.string.format(va_arg!(int)(argptr));
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
102 else if (ti == typeid(dchar))
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
103 args ~= std.string.format(va_arg!(dchar)(argptr));
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
104 else
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
105 assert(0, "argument type not supported yet.");
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
106 }
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
107 return args;
b4d842b0d2c7 - Added new files Settings.d, config.d and lang_en.d
aziz
parents: 272
diff changeset
108 }