diff options
Homework 1 (#21)
* Commiting .gitignore before real solution
* C# project implementing very basic functionality of the lexer, needs
refactoring.
* Added most javascript reserved keywords
* Added logic for most js operators in Tokenizer.cs
* added lexemes for operator tokens
also created the PrettyPrint() function
* added a coloring logic to the parsed text
* Refactored Lexer class, added TokenHandler class
PrettyPrint colors require tweaking, Lexer needs more refactoring
* created TokenHandler to pretty print text to html
* Deleted project files
* Updated Program.cs
1 files changed, 54 insertions, 0 deletions
| -rw-r--r-- | homework/81498/Project/Wizard/Misc/OperatorsToTokensMap.cs | 54 |
diff --git a/homework/81498/Project/Wizard/Misc/OperatorsToTokensMap.cs b/homework/81498/Project/Wizard/Misc/OperatorsToTokensMap.cs new file mode 100644 index 0000000..2468fec --- /dev/null +++ b/homework/81498/Project/Wizard/Misc/OperatorsToTokensMap.cs @@ -0,0 +1,54 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Wizard.Misc +{ + public static class OperatorsToTokens + { + public static Dictionary<string, TokenType> AsMap() + { + return new Dictionary<string, TokenType>() + { + {"!" ,TokenType.Bang}, + {"=" ,TokenType.Equal}, + {"|" ,TokenType.BitwiseOr}, + {"&" ,TokenType.BitwiseAnd}, + {">" ,TokenType.Greater}, + {"<" ,TokenType.Less}, + {"+" ,TokenType.Plus}, + {"-" ,TokenType.Minus}, + {"*" ,TokenType.Star}, + {"/" ,TokenType.Division}, + {"%" ,TokenType.Modulo}, + + {"!=" ,TokenType.BangEqual}, + {"/=" ,TokenType.DivideEqual}, + {"!!" ,TokenType.DoubleBang}, + {"**" ,TokenType.DoubleStar}, + {"==" ,TokenType.EqualEqual}, + {">=" ,TokenType.GreaterEqual}, + {"+=" ,TokenType.PlusEqual}, + {"++" ,TokenType.PlusPlus}, + {"&&" ,TokenType.LogicalAnd}, + {"||" ,TokenType.LogicalOr}, + {"<=" ,TokenType.LessEqual}, + {"*=" ,TokenType.StarEqual}, + {"-=" ,TokenType.MinusEqual}, + {"--" ,TokenType.MinusMinus}, + {"%=" ,TokenType.ModuloEqual}, + + {"===" ,TokenType.StrictEqual}, + {"!==" ,TokenType.StrictNotEqual}, + {"**=" ,TokenType.DoubleStarEqual}, + }; + } + + public static List<TokenType> AsTokenList() + { + return AsMap().Values.ToList(); + } + } +} |
