annotate basic/Messages.d @ 106:89db676fbacb

Now able of understanding strings.
author Anders Johnsen <skabet@gmail.com>
date Thu, 22 May 2008 12:09:11 +0200
parents 5f258eaf9517
children d1f68bfb58ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
89
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
1 module basic.Messages;
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
2
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
3 enum : uint
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
4 {
99
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
5 // Lex
89
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
6 InvalidSymbol,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
7 InvalidIlligaleType,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
8 UnexpectedEOFBlock,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
9 OnlyOneDotFloating,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
10 OnlyOneEFloating,
99
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
11
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
12 // Parse
89
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
13 UnexpectedTokMulti,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
14 UnexpectedTokSingle,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
15 UnexpectedTok,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
16 CaseValueMustBeInt,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
17 UnexpectedBeginStmt,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
18 UnexpectedTokType,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
19 ExpectedIdAfterDot,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
20 ExpectedExp,
92
771ac63898e2 A few better parser errors plus renaming most of the sema classes to match that they do now. Some have changes a lot.
Anders Johnsen <skabet@gmail.com>
parents: 89
diff changeset
21 ExpectedCastType,
771ac63898e2 A few better parser errors plus renaming most of the sema classes to match that they do now. Some have changes a lot.
Anders Johnsen <skabet@gmail.com>
parents: 89
diff changeset
22 InvalidDeclType,
771ac63898e2 A few better parser errors plus renaming most of the sema classes to match that they do now. Some have changes a lot.
Anders Johnsen <skabet@gmail.com>
parents: 89
diff changeset
23 InvalidType,
99
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
24 // - imports/module
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
25 ExpectedIdAfterPackage,
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
26 RenameMustBeSingleIdent,
100
5f258eaf9517 Loading modules in. Just need to add them to the scope of the "main" Module now.
Anders Johnsen <skabet@gmail.com>
parents: 99
diff changeset
27
5f258eaf9517 Loading modules in. Just need to add them to the scope of the "main" Module now.
Anders Johnsen <skabet@gmail.com>
parents: 99
diff changeset
28
5f258eaf9517 Loading modules in. Just need to add them to the scope of the "main" Module now.
Anders Johnsen <skabet@gmail.com>
parents: 99
diff changeset
29 // Imports
5f258eaf9517 Loading modules in. Just need to add them to the scope of the "main" Module now.
Anders Johnsen <skabet@gmail.com>
parents: 99
diff changeset
30 CannotFindModule,
106
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
31
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
32 // Strings
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
33 InvalidStrPrefix,
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
34 InvalidStrEscape,
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
35 InvalidUtf8Hex,
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
36 InvalidHexStrChar,
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
37 StringShortEscape,
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
38 StringHexInvalid,
89
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
39 }
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
40
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
41 enum MessageType
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
42 {
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
43 Warning,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
44 Error,
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
45 }
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
46
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
47 MessageEntry[uint] Messages;
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
48
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
49 struct MessageEntry
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
50 {
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
51 MessageType type;
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
52 char[] message;
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
53 }
99
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
54
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
55 private alias MessageType.Error Err;
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
56 private alias MessageType.Warning War;
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
57 private alias MessageEntry E;
89
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
58 static this()
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
59 {
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
60 Messages = [
99
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
61 UnexpectedEOFBlock : E(Err, "Unexpected end of file. Unclosed comment block"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
62 InvalidSymbol : E(Err, "Read invalid symbol: '%0'"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
63 OnlyOneDotFloating : E(Err, "Only one '.' is allowed in an floating number"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
64 OnlyOneEFloating : E(Err, "Only one E is allowed in an floating number"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
65
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
66 UnexpectedTokMulti : E(Err, "Unexpected token, got %0 expected one of %1"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
67 UnexpectedTokSingle : E(Err, "Unexpected token, got %0 expected %1"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
68 UnexpectedTok : E(Err, "Unexpected token %0"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
69 CaseValueMustBeInt : E(Err, "Cases can only be integer literals"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
70 UnexpectedBeginStmt : E(Err, "Unexpected begining of statement."),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
71 UnexpectedTokType : E(Err, "Unexpected token in Type parsing. Got %0"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
72 ExpectedIdAfterDot : E(Err, "Expected identifier after '.'"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
73 ExpectedExp : E(Err, "Expected expression"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
74 ExpectedCastType : E(Err, "Expected cast type"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
75 InvalidDeclType : E(Err, "Invalid declaration type"),
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
76 InvalidType : E(Err, "Invalid type"),
100
5f258eaf9517 Loading modules in. Just need to add them to the scope of the "main" Module now.
Anders Johnsen <skabet@gmail.com>
parents: 99
diff changeset
77 ExpectedIdAfterPackage : E(Err, "Identifier expected following package"),
106
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
78 CannotFindModule : E(Err, "Cannot find module '%0'"),
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
79 InvalidStrPrefix : E(Err, "Invalid string literal prefix"),
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
80 InvalidStrEscape : E(Err, "Invalid escape sequence"),
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
81 InvalidUtf8Hex : E(Err, "Invalid Utf8 hex char"),
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
82 InvalidHexStrChar : E(Err, "Invalid character in hex string"),
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
83 StringShortEscape : E(Err, "String literal is to short for escape sequence"),
89db676fbacb Now able of understanding strings.
Anders Johnsen <skabet@gmail.com>
parents: 100
diff changeset
84 StringHexInvalid : E(Err, "Hex escape sequence have invalid digit at position %0 of %1")
89
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
85 ];
a49bb982a7b0 Using the new SourceLocation system to handle errors. Also, this is the first push for making the errors don't throw, but continue to check the source.
Anders Johnsen <skabet@gmail.com>
parents:
diff changeset
86 }
99
857f0d530789 Imports and improved module statement
Anders Halager <halager@gmail.com>
parents: 92
diff changeset
87