- Type
- Quiz
- Course
- CS606 Compiler Construction
- Size
- PDF 28 KB
- Updated
- 23 Oct 2026
You get 3 free files a day on the website. Add the Chrome extensionSign in with the extension for 30 a day.
Preview text
Text from pages 1, 2, 3 of 6. Download the file for all 6 pages.
Lecture 10
Running the Scanner
Here is the output of the scanner when executed and given the file main.cpp as input,
i.e., the scanner is being asked to provide tokens found in the file main.cpp:
lex <main.cpp
259,void 258,main 283,( 284,) 285,{ 258, FlexLexer 258,lex 290,; 260,int 258,tc 266,= 258,lex 291,. 258,yylex 283,( 284,) 290,; 263,while 283,( 258,tc 276,!= 257,0 284,) 258,cout 279,<< 258,tc 279,<< 292,"," 279,<< 258,lex 291,. 258,YYText 283,( 284,) 279,<< 258,endl 290,; 258,tc 266,= 258,lex 291,. 258,yylex 283,( 284,) 290,; 286,}
Flex input for C++
As an illustration of the power of Flex, here is the input for generating scanner for C++
compiler.
* ISO C++ lexical analyzer. * Based on the ISO C++ draft standard of December '96.
#include <ctype.h> #include <stdio.h> #include “tokdefs.h"
int lineno;
static int yywrap(void); static void skip_until_eol(void); static void skip_comment(void); static int check_identifier(const char *);
intsuffix ([uU][lL]?)|([lL][uU]?) fracconst ([0-9]*\.[0-9]+)|([0-9]+\.) exppart [eE][-+]?[0-9]+ floatsuffix [fFlL] chartext
"\n" { ++lineno; } [\t\f\v\r ]+ { /* Ignore whitespace. */ }
"/*" { skip_comment(); } "//" { skip_until_eol(); }
"{" { return '{'; } "<%" { return '{'; } "}" { return '}'; } "%>" { return '}'; } "[" { return '['; } "<:" { return '['; } "]" { return ']'; } ":>" { return ']'; } "(" { return '('; } ")" { return ')'; } ";" { return ';'; } ":" { return ':'; } "..." { return ELLIPSIS; } "?" { return '?'; } "::" { return COLONCOLON; } "." { return '.'; } ".*" { return DOTSTAR; } "+" { return '+'; } "-" { return '-'; } "*" { return '*'; } "/" { return '/'; } "%" { return '%'; } "^" { return '^'; } "xor" { return '^'; } "&" { return '&'; } "bitand" { return '&'; } "|" { return '|'; } "bitor" { return '|'; } "~" { return '~'; } "compl" { return '~'; } "!" { return '!'; } "not" { return '!'; } "=" { return '='; } "<" { return '<'; } ">" { return '>'; } "+=" { return ADDEQ; } "-=" { return SUBEQ; } "*=" { return MULEQ; } "/=" { return DIVEQ; } "%=" { return MODEQ; } "^=" { return XOREQ; } "xor_eq" { return XOREQ; } "&=" { return ANDEQ; } "and_eq" { return ANDEQ; } "|=" { return OREQ; } "or_eq" { return OREQ; } "<<" { return SL; } ">>" { return SR; } "<<=" { return SLEQ; } ">>=" { return SREQ; } "==" { return EQ; } "!=" { return NOTEQ; } "not_eq" { return NOTEQ; } "<=" { return LTEQ; } ">=" { return GTEQ; } "&&" { return ANDAND; } "and" { return ANDAND; } "||" { return OROR; } "or" { return OROR; } "++" { return PLUSPLUS; } "--" { return MINUSMINUS; } "," { return ','; } "->*" { return ARROWSTAR; } "->" { return ARROW; } "asm" { return ASM; } "auto" { return AUTO; } "bool" { return BOOL; } "break" { return BREAK; } "case" { return CASE; } "catch" { return CATCH; } "char" { return CHAR; } "class" { return CLASS; } "const" { return CONST; } "const_cast" { return CONST_CAST; } "continue" { return CONTINUE; } "default" { return DEFAULT; } "delete" { return DELETE; } "do" { return DO; } "double" { return DOUBLE; } "dynamic_cast" { return DYNAMIC_CAST; } "else" { return ELSE; } "enum" { return ENUM; } "explicit" { return EXPLICIT; } "export" { return EXPORT; } "extern" { return EXTERN; } "false" { return FALSE; } "float" { return FLOAT; } "for" { return FOR; }
Related CS606 files
All CS606 files →- CS606 Final Term Highlighted Handouts Lectures 19-45 Set 2 by Masters Highlighted PDF 1.4 MB
- CS606 Final Term Solved MCQs with References Final term PDF 436 KB
- CS606 Short Notes Lecture 7 Quiz PDF 37 KB
- CS606 Short Notes Lecture 15 Quiz PDF 13 KB
- CS606 Short Notes Lecture 19 Quiz PDF 28 KB
- CS606 Slides Lectures 1-45 Quiz RAR 751 KB
Get more out of VUBuddy, for free
- Unlimited downloads
- The explanation behind every MCQ answer
- Study offline on slow data
- 30 downloads a day instead of 3
- Sign in and buy Pro Semester here
One Pro Semester membership works in both the extension and the app.