Mercurial > projects > dang
diff basic/Messages.d @ 89:a49bb982a7b0 new_gen
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.
author | Anders Johnsen <skabet@gmail.com> |
---|---|
date | Sun, 04 May 2008 20:27:01 +0200 |
parents | |
children | 771ac63898e2 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/basic/Messages.d Sun May 04 20:27:01 2008 +0200 @@ -0,0 +1,54 @@ +module basic.Messages; + +enum : uint +{ + InvalidType, + InvalidSymbol, + InvalidIlligaleType, + UnexpectedEOFBlock, + OnlyOneDotFloating, + OnlyOneEFloating, + UnexpectedTokMulti, + UnexpectedTokSingle, + UnexpectedTok, + CaseValueMustBeInt, + UnexpectedBeginStmt, + UnexpectedTokType, + ExpectedIdAfterDot, + ExpectedExp, + ExpectedCastType +} + +enum MessageType +{ + Warning, + Error, +} + +MessageEntry[uint] Messages; + +struct MessageEntry +{ + MessageType type; + char[] message; +} + +static this() +{ + Messages = [ + InvalidType : MessageEntry(MessageType.Error, "InvalidType"), + UnexpectedEOFBlock : MessageEntry(MessageType.Error, "Unexpected end of file. Unclosed comment block"), + InvalidSymbol : MessageEntry(MessageType.Error, "Read invalid symbol: '%0'"), + OnlyOneDotFloating : MessageEntry(MessageType.Error, "Only one '.' is allowed in an floating number"), + OnlyOneEFloating : MessageEntry(MessageType.Error, "Only one E is allowed in an floating number"), + UnexpectedTokMulti : MessageEntry(MessageType.Error, "Unexpected token, got %0 expected one of %1"), + UnexpectedTokSingle : MessageEntry(MessageType.Error, "Unexpected token, got %0 expected %1"), + UnexpectedTok : MessageEntry(MessageType.Error, "Unexpected token %0"), + CaseValueMustBeInt : MessageEntry(MessageType.Error, "Cases can only be integer literals"), + UnexpectedBeginStmt : MessageEntry(MessageType.Error, "Unexpected begining of statement."), + UnexpectedTokType : MessageEntry(MessageType.Error, "Unexpected token in Type parsing. Got %0"), + ExpectedIdAfterDot : MessageEntry(MessageType.Error, "Expected identifier after '.'"), + ExpectedExp : MessageEntry(MessageType.Error, "Expected expression"), + ExpectedCastType : MessageEntry(MessageType.Error, "Expected cast type") + ]; +}