Website Summary Files Commits Branches @commit @diff @stats
path: root / demo / flex / js2html.flex
diff options
context:
space:
mode:
Commitd942fd5baffdafb2645287a5bf362fb7c120190f (patch)
Author
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-10-10 21:46:36 +0300
Committer
 Dimitar Trendafilov <dimitar@coherent-labs.com>
2018-10-10 21:52:55 +0300
Filesbbe4153a054956ff6a2b0e341e9d5af73f73374c /demo/flex/js2html.flex
IPL-d942fd5baffdafb2645287a5bf362fb7c120190f.tar
IPL-d942fd5baffdafb2645287a5bf362fb7c120190f.tar.gz
IPL-d942fd5baffdafb2645287a5bf362fb7c120190f.zip
Parenteddc31d42bce24b97e18e8ed765888af7ddbb44f (diff)
Added a sample homework
1 files changed, 0 insertions, 77 deletions
-rw-r--r--demo/flex/js2html.flex77
diff --git a/demo/flex/js2html.flex b/demo/flex/js2html.flex
deleted file mode 100644
index 4dfe28a..0000000
--- a/demo/flex/js2html.flex
+++ /dev/null
@@ -1,77 +0,0 @@
-/* scanner for a toy JavaScript-like language */
-
-%{
-#define YY_NO_UNISTD_H
-%}
-
-DIGIT [0-9]
-ID [a-z_$][a-z0-9_$]*
-STRQ '([^\']|(\\\'))*'
-STRDQ "([^\"]|(\\\"))*"
-
-%%
-
-{DIGIT}+ {
- printf("<span class=\"number\">%s</span>", yytext);
- }
-
-{DIGIT}+"."{DIGIT}* {
- printf("<span class=\"number\">%s</span>", yytext);
- }
-
-if|else|for|while|do|break|switch|case|function|return|new|delete|try|throw|catch|class|public|private {
- printf("<span class=\"keyword\">%s</span>", yytext);
-}
-
-{ID} printf("<span class=\"identifier\">%s</span>", yytext);
-{STRQ}|{STRDQ} printf("<span class=\"string\">%s</span>", yytext);
-
-"."|"+"|"-"|"*"|"/"|"="|"!"|">"|"<"|"!=="|"==="|">="|"<="|"++"|"--"|"=>" printf("<span class=\"operator\">%s</span>", yytext);
-
-[;(){}:? \t\n]+ printf("%s", yytext); /* echo the rest */
-
-. printf( "Unrecognized character: %s\n", yytext );
-
-%%
-
-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;
-
- puts(
- "<!doctype>"
- "<html>"
- "<head>"
- " <title>hello.js</title>"
- " <style>"
- " .keyword {"
- " color: red;"
- " }"
- " .number {"
- " color: blue;"
- " }"
- " .string {"
- " color: green;"
- " }"
- " .operator {"
- " font-style: bold;"
- " }"
- " </style>"
- "</head>"
- "<body>"
- " <pre class=\"code\">"
- );
- yylex();
- puts("</pre></body></html>");
- return 0;
-}