123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- namespace NTERA.Interpreter
- {
- public enum Token
- {
- Unknown = 0,
- Identifer,
- Value,
- [LexerCharacter('#', LexerType.Real)]
- Sharp,
- [LexerCharacter('@', LexerType.Real)]
- Function,
- [LexerKeyword("DIM")]
- Dim,
- [LexerKeyword("CONST")]
- Const,
- [LexerKeyword("FUNCTION")]
- ReturnFunction,
- //Eralang print keywords
- [LexerKeyword("DRAWLINE", false)]
- DrawLine,
- [LexerKeyword("CUSTOMDRAWLINE", true)]
- CustomDrawLine,
- [LexerKeyword("DRAWLINEFORM", true)]
- DrawLineForm,
- [LexerKeyword("PRINT", true)]
- Print,
- [LexerKeyword("PRINTL", true)]
- PrintL,
- [LexerKeyword("PRINTFORM", true)]
- PrintForm,
- [LexerKeyword("PRINTFORML", true)]
- PrintFormL,
- [LexerKeyword("HTML_PRINT", true)]
- PrintHtml,
- [LexerKeyword("PRINT_IMG", true)]
- PrintImg,
- [LexerKeyword("PRINTBUTTON", false)]
- PrintButton,
- [LexerKeyword("ALIGNMENT", true)]
- Alignment,
- [LexerKeyword("SETCOLOR", false)]
- SetColor,
- [LexerKeyword("RESETCOLOR", false)]
- ResetColor,
- //Eralang arithmetic keywords
- [LexerKeyword("TIMES")]
- Times,
- //Standard BASIC keywords
- [LexerKeyword("IF")]
- If,
- [LexerKeyword("ENDIF")]
- EndIf,
- [LexerKeyword("THEN")]
- Then,
- [LexerKeyword("ELSE")]
- Else,
- [LexerKeyword("FOR")]
- For,
- [LexerKeyword("TO")]
- To,
- [LexerKeyword("NEXT")]
- Next,
- [LexerKeyword("INPUT")]
- Input,
- [LexerKeyword("LET")]
- Let,
- [LexerKeyword("GOSUB")]
- Gosub,
- [LexerKeyword("RETURN")]
- Return,
- [LexerKeyword("REM")]
- Rem,
- [LexerKeyword("END")]
- End,
- [LexerCharacter('\n', LexerType.Both)]
- NewLine,
- [LexerCharacter(':', LexerType.Real)]
- Colon,
- [LexerCharacter(',', LexerType.Both)]
- Comma,
-
- Plus,
- Append,
- [LexerCharacter('-', LexerType.Real)]
- Minus,
- [LexerCharacter('/', LexerType.Real)]
- Slash,
- [LexerCharacter('*', LexerType.Real)]
- Asterisk,
- [LexerCharacter('^', LexerType.Real)]
- Caret,
- [LexerCharacter('=', LexerType.Real)]
- Equal,
- Less,
- More,
- NotEqual,
- LessEqual,
- MoreEqual,
- [LexerKeyword("OR")]
- [LexerCharacter('|', LexerType.Real)]
- Or,
- [LexerKeyword("AND")]
- [LexerCharacter('&', LexerType.Real)]
- And,
- [LexerCharacter('!', LexerType.Real)]
- Not,
- [LexerCharacter('(', LexerType.Real)]
- LParen,
- [LexerCharacter(')', LexerType.Real)]
- RParen,
-
- EOF = -1 //End Of File
- }
- public static class TokenEnumExtensions
- {
- public static bool IsUnary(this Token token)
- {
- return token == Token.Plus
- || token == Token.Minus;
- }
- public static bool IsArithmetic(this Token token)
- {
- return token == Token.Plus
- || token == Token.Minus
- || token == Token.Slash
- || token == Token.Asterisk
- || token == Token.Caret
- || token == Token.Equal
- || token == Token.NotEqual
- || token == Token.Less
- || token == Token.LessEqual
- || token == Token.More
- || token == Token.MoreEqual
- || token == Token.Or
- || token == Token.And
- || token == Token.Not;
- }
- public static bool IsStringOp(this Token token)
- {
- return token == Token.Plus;
- }
- }
- }
|