Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- WHITE_SPACE [ \t\v\f]
- CHARS [./_-:]
- %{
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "myscanner.tab.h"
- static void out();
- static void comment();
- int counter=1;
- char buff[10000][10000];
- int yylex();
- %}
- %%
- "<ss:Workbook>" {out(); yylval.string = strdup(yytext);return WORKBOOK_START;}
- "</ss:Workbook>" {out(); yylval.string = strdup(yytext);return WORKBOOK_END;}
- "<ss:Styles>" {out(); yylval.string = strdup(yytext);return STYLES_START;}
- "</ss:Styles>" {out(); yylval.string = strdup(yytext);return STYLES_END;}
- "<ss:Style" {out(); yylval.string = strdup(yytext);return STYLE_START;}
- "</ss:Style>" {out(); yylval.string = strdup(yytext);return STYLE_END;}
- "<ss:Worksheet" {out(); yylval.string = strdup(yytext);return WORKSHEET_START;}
- "</ss:Worksheet>" {out(); yylval.string = strdup(yytext);return WORKSHEET_END;}
- "<ss:Table" {out(); yylval.string = strdup(yytext);return TABLE_START;}
- "</ss:Table>" {out(); yylval.string = strdup(yytext);return TABLE_END;}
- "<ss:Column" {out(); yylval.string = strdup(yytext);return COLUMN_START;}
- "<ss:Row" {out(); yylval.string = strdup(yytext);return ROW_START;}
- "</ss:Row>" {out(); yylval.string = strdup(yytext);return ROW_END;}
- "<ss:Cell" {out(); yylval.string = strdup(yytext);return CELL_START;}
- "</ss:Cell>" {out(); yylval.string = strdup(yytext);return CELL_END;}
- "<ss:Data" {out(); yylval.string = strdup(yytext);return DATA_START;}
- "</ss:Data>" {out(); yylval.string = strdup(yytext);return DATA_END;}
- "ss:ID" {out(); yylval.string = strdup(yytext);return ID;}
- "ss:Name" {out(); yylval.string = strdup(yytext);return NAME;}
- "ss:Protected" {out(); yylval.string = strdup(yytext);return PROTECTED;}
- "ss:ExpandedColumnCount" {out(); yylval.string = strdup(yytext);return EXPCOLCOUNT;}
- "ss:ExpandedRowCount" {out(); yylval.string = strdup(yytext);return EXPROWCOUNT;}
- "ss:StyleID" {out(); yylval.string = strdup(yytext);return STYLEID;}
- "ss:Hidden" {out(); yylval.string = strdup(yytext);return HIDDEN;}
- "ss:Widthbgcc" {out(); yylval.string = strdup(yytext);return WIDTH;}
- "ss:Height" {out(); yylval.string = strdup(yytext);return HEIGHT;}
- "ss:MergeAcross" {out(); yylval.string = strdup(yytext);return MERGEACR;}
- "ss:MergeDown" {out(); yylval.string = strdup(yytext);return MERGEDOWN;}
- "ss:Type" {out(); yylval.string = strdup(yytext);return TYPE;}
- "true" {out(); yylval.boolean = strdup(yytext);return BOOLEAN;}
- "false" {out(); yylval.boolean = strdup(yytext);return BOOLEAN;}
- "=" {out(); yylval.string = strdup(yytext);return EQUAL;}
- ">" {out(); yylval.string = strdup(yytext);return CLOSE_TAG;}
- "/>" {out(); yylval.string = strdup(yytext);return COL_END_TAG;}
- \" {out(); yylval.string = strdup(yytext);return QUOTES;}
- [0-9]+ {out(); yylval.integer = strdup(yytext); return INTEGER; }
- [a-zA-Z0-9]+ {out(); yylval.string = strdup(yytext);return STRING;}
- "Number" {out(); yylval.string = strdup(yytext);return MY_NUMBER;}
- "Boolean" {out(); yylval.string = strdup(yytext);return MY_BOOL;}
- "String" {out(); yylval.string = strdup(yytext);return MY_STRING;}
- "DateTime" {out(); yylval.string = strdup(yytext);return MY_DATETIME;}
- "!--" {out(); comment();}
- "\n" {out(); counter++;}
- {WHITE_SPACE}+ {out();}
- . {}
- %%
- static void out()
- {
- ECHO;
- strcat(buff[counter],yytext);
- }
- static void comment()
- {
- //input() : reads the next character from the input stream
- int c;
- while ((c = input()) != 0)
- {
- if (c == "--")
- {
- while ((c = input()) == "--")
- ;
- if (c == '>')
- return;
- if (c == 0)
- break;
- }
- }
- yyerror("Invalid comment");
- }
- int main(int argc, char** argv)
- {
- ++argv;
- --argc;
- if ( argc > 0 )
- yyin = fopen(argv[0], "r"); // Read from file
- else
- yyin = stdin; // Read from stdin
- yyout = fopen ("output", "w"); // Output file
- yyparse();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement