Website Summary Files Commits Branches @commit @diff @stats
path: root / homework / 81352 / ts2html / ts2html.flex
diff options
context:
space:
mode:
Commitccd71ee220093774a35708d8c1e31936b012930a (patch)
Author
 Dimitar Milev <milev.1996@gmail.com>
2018-11-03 12:52:28 +0100
Committer
 Martin Dobrev <martindobrev0@gmail.com>
2018-11-03 13:52:28 +0200
Filesfc889ec3aec35a9e97506d79fee1814239a37dfd /homework/81352/ts2html/ts2html.flex
IPL-ccd71ee220093774a35708d8c1e31936b012930a.tar
IPL-ccd71ee220093774a35708d8c1e31936b012930a.tar.gz
IPL-ccd71ee220093774a35708d8c1e31936b012930a.zip
Parent06811744a002f4ab332d94d510475231afcd45a1 (diff)
81352 - homework 2 (#32)
* fix(hw1): use yyextra instead global variable * hw2: extended the typescript syntax highlighter with collapsible block structures
1 files changed, 0 insertions, 106 deletions
-rw-r--r--homework/81352/ts2html/ts2html.flex106
diff --git a/homework/81352/ts2html/ts2html.flex b/homework/81352/ts2html/ts2html.flex
deleted file mode 100644
index c69232f..0000000
--- a/homework/81352/ts2html/ts2html.flex
+++ /dev/null
@@ -1,106 +0,0 @@
-%{
-#include <vector>
-#include <iostream>
-#include "token.h"
-#include "highlighter.h"
-std::vector<Token> tokens = std::vector<Token>();
-%}
-
-DIGIT [0-9]
-ID [a-zA-Z_$][a-zA-Z0-9_$]*
-STRQ '([^\']|(\\\'))*'
-STRDQ \"([^\"]|(\\\"))*\"
-DECORATOR @[a-zA-Z]+
-LEFT_BLOCK_BRACKET "{"
-RIGHT_BLOCK_BRACKET "}"
-LEFT_BRACKET "("
-RIGHT_BRACKET ")"
-SINGLE_LINE_COMMENT "//"[^\n]*
-MULTI_LINE_COMMENT "/*".*"*/"
-COMMENT {SINGLE_LINE_COMMENT}|{MULTI_LINE_COMMENT}
-%%
-
-{COMMENT} {
- tokens.push_back(Token(yytext, TokenType::COMMENT));
-}
-
-break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|false|finally|for|function|if|import|in|instanceof|new|null|return|super|switch|this|throw|true|try|typeof|var|void|while|with|as|implements|interface|let|package|private|protected|public|static|yield|any|boolean|constructor|declare|get|module|require|number|set|string|symbol|type|from|of {
- tokens.push_back(Token(yytext, TokenType::KEYWORD));
-}
-
-{DECORATOR} {
- tokens.push_back(Token(yytext, TokenType::DECORATOR));
-}
-
-{STRQ}|{STRDQ} {
- tokens.push_back(Token(yytext, TokenType::STRING));
-}
-
-{DIGIT}+ {
- tokens.push_back(Token(yytext, TokenType::NUMBER));
-}
-
-{DIGIT}+"."{DIGIT}* {
- tokens.push_back(Token(yytext, TokenType::NUMBER));
-}
-
-{ID} {
- tokens.push_back(Token(yytext, TokenType::IDENTIFIER));
-}
-
-":"|"?"|"."|"!"|"~"|"-"|"+"|"++"|"--"|"*"|"/"|"%"|"<<"|">>"|">>>"|"<"|"<="|">"|">="|"=="|"!="|"==="|"!=="|"&"|"^"|"|"|"&&"|"||"|"="|"+="|"-="|"*="|"/="|"%="|"<<="|">>="|">>>="|"&="|"^="|"|="|"=>" {
- tokens.push_back(Token(yytext, TokenType::OPERATOR));
-}
-
-";" {
- tokens.push_back(Token(yytext, TokenType::SEMICOLON));
-}
-
-{LEFT_BLOCK_BRACKET} {
- tokens.push_back(Token(yytext, TokenType::LEFT_BLOCK_BRACKET));
-}
-
-{RIGHT_BLOCK_BRACKET} {
- tokens.push_back(Token(yytext, TokenType::RIGHT_BLOCK_BRACKET));
-}
-
-{LEFT_BRACKET} {
- tokens.push_back(Token(yytext, TokenType::LEFT_BRACKET));
-}
-
-{RIGHT_BRACKET} {
- tokens.push_back(Token(yytext, TokenType::RIGHT_BRACKET));
-}
-
-[\n] {
- tokens.push_back(Token(yytext, TokenType::NEWLINE));
-}
-
-[ \t]+ {
- tokens.push_back(Token(yytext, TokenType::WHITESPACE));
-}
-
-. {
- tokens.push_back(Token(yytext, TokenType::UNRECOGNIZED));
-}
-
-%%
-
-int yywrap()
-{
- return 1;
-}
-
-
-int main(int argc, const char* argv[])
-{
- ++argv, --argc; /* skip over program name */
- if ( argc > 0 )
- yyin = fopen( argv[0], "r" );
- else
- yyin = stdin;
- yylex();
- Highlighter highlighter = Highlighter(tokens);
- std::cout << highlighter.highlight();
- return 0;
-} \ No newline at end of file