parser/c_compiler/lexer.l
changeset 39 46d7ec9d63bd
parent 37 0fbbe329c3a2
--- a/parser/c_compiler/lexer.l
+++ b/parser/c_compiler/lexer.l
@@ -1,151 +1,150 @@
 %{
-	#include <prototypes.h>
-	#include "parser.h"
-	int column = 0;
-	int c;
+    #include <prototypes.h>
+    #include "parser.h"
+    int column = 0;
+    int c;
 %}
 
-D						[0-9]
-L						[a-zA-Z_]
-H						[a-fA-F0-9]
-E						[Ee][+-]?{D}+
-FS						(f|F|l|L)
-IS						(u|U|l|L)*
+D                        [0-9]
+L                        [a-zA-Z_]
+H                        [a-fA-F0-9]
+E                        [Ee][+-]?{D}+
+FS                       (f|F|l|L)
+IS                       (u|U|l|L)*
 
 %%
-"/*"           			{ comment(); }
-"#include <"			{ c = input(); while ( c != '>') c = input();  }
-"#include \""			{ c = input(); while ( c != '\"') c = input(); }
+"/*"                     { comment(); }
+"#include <"             { c = input(); while ( c != '>') c = input();  }
+"#include \""            { c = input(); while ( c != '\"') c = input(); }
 
-"auto"					{ count(); return(AUTO); }
-"break"					{ count(); return(BREAK); }
-"case"					{ count(); return(CASE); }
-"char"					{ count(); return(CHAR); }
-"const"					{ count(); return(CONST); }
-"continue"				{ count(); return(CONTINUE); }
-"default"				{ count(); return(DEFAULT); }
-"do"					{ count(); return(DO); }
-"double"				{ count(); return(DOUBLE); }
-"else"					{ count(); return(ELSE); }
-"enum"					{ count(); return(ENUM); }
-"extern"				{ count(); return(EXTERN); }
-"float"					{ count(); return(FLOAT); }
-"for"					{ count(); return(FOR); }
-"goto"					{ count(); return(GOTO); }
-"if"					{ count(); return(IF); }
-"int"					{ count(); return(INT); }
-"long"					{ count(); return(LONG); }
-"register"				{ count(); return(REGISTER); }
-"return"				{ count(); return(RETURN); }
-"short"					{ count(); return(SHORT); }
-"signed"					{ count(); return(SIGNED); }
-"sizeof"				{ count(); return(SIZEOF); }
-"static"				{ count(); return(STATIC); }
-"struct"				{ count(); return(STRUCT); }
-"switch"				{ count(); return(SWITCH); }
-"typedef"				{ count(); return(TYPEDEF); }
-"union"					{ count(); return(UNION); }
-"unsigned"				{ count(); return(UNSIGNED); }
-"void"					{ count(); return(VOID); }
-"volatile"				{ count(); return(VOLATILE); }
-"while"					{ count(); return(WHILE); }
+"auto"                   { count(); return(AUTO); }
+"break"                  { count(); return(BREAK); }
+"case"                   { count(); return(CASE); }
+"char"                   { count(); return(CHAR); }
+"const"                  { count(); return(CONST); }
+"continue"               { count(); return(CONTINUE); }
+"default"                { count(); return(DEFAULT); }
+"do"                     { count(); return(DO); }
+"double"                 { count(); return(DOUBLE); }
+"else"                   { count(); return(ELSE); }
+"enum"                   { count(); return(ENUM); }
+"extern"                 { count(); return(EXTERN); }
+"float"                  { count(); return(FLOAT); }
+"for"                    { count(); return(FOR); }
+"goto"                   { count(); return(GOTO); }
+"if"                     { count(); return(IF); }
+"int"                    { count(); return(INT); }
+"long"                   { count(); return(LONG); }
+"register"               { count(); return(REGISTER); }
+"return"                 { count(); return(RETURN); }
+"short"                  { count(); return(SHORT); }
+"signed"                 { count(); return(SIGNED); }
+"sizeof"                 { count(); return(SIZEOF); }
+"static"                 { count(); return(STATIC); }
+"struct"                 { count(); return(STRUCT); }
+"switch"                 { count(); return(SWITCH); }
+"typedef"                { count(); return(TYPEDEF); }
+"union"                  { count(); return(UNION); }
+"unsigned"               { count(); return(UNSIGNED); }
+"void"                   { count(); return(VOID); }
+"volatile"               { count(); return(VOLATILE); }
+"while"                  { count(); return(WHILE); }
 
-{L}({L}|{D})*			{ count(); return(check_type()); }
-0[xX]{H}+{IS}?			{ count(); return(CONSTANT); }
-0{D}+{IS}?				{ count(); return(CONSTANT); }
-{D}+{IS}?				{ count(); return(CONSTANT); }
-'(\\.|[^\\'])+'			{ count(); return(CONSTANT); }
+{L}({L}|{D})*            { count(); return(check_type()); }
+0[xX]{H}+{IS}?           { count(); return(CONSTANT); }
+0{D}+{IS}?               { count(); return(CONSTANT); }
+{D}+{IS}?                { count(); return(CONSTANT); }
+'(\\.|[^\\'])+'          { count(); return(CONSTANT); }
 
-{D}+{E}{FS}?			{ count(); return(CONSTANT); }
-{D}*"."{D}+({E})?{FS}?	{ count(); return(CONSTANT); }
-{D}+"."{D}*({E})?{FS}?	{ count(); return(CONSTANT); }
-
-\"(\\.|[^\\"])*\"		{ count(); return(STRING_LITERAL); }
+{D}+{E}{FS}?             { count(); return(CONSTANT); }
+{D}*"."{D}+({E})?{FS}?   { count(); return(CONSTANT); }
+{D}+"."{D}*({E})?{FS}?   { count(); return(CONSTANT); }
 
-">>="					{ count(); return(RIGHT_ASSIGN); }
-"<<="					{ count(); return(LEFT_ASSIGN); }
-"+="					{ count(); return(ADD_ASSIGN); }
-"-="					{ count(); return(SUB_ASSIGN); }
-"*="					{ count(); return(MUL_ASSIGN); }
-"/="					{ count(); return(DIV_ASSIGN); }
-"%="					{ count(); return(MOD_ASSIGN); }
-"&="					{ count(); return(AND_ASSIGN); }
-"^="					{ count(); return(XOR_ASSIGN); }
-"|="					{ count(); return(OR_ASSIGN); }
-">>"					{ count(); return(RIGHT_OP); }
-"<<"					{ count(); return(LEFT_OP); }
-"++"					{ count(); return(INC_OP); }
-"--"					{ count(); return(DEC_OP); }
-"->"					{ count(); return(PTR_OP); }
-"&&"					{ count(); return(AND_OP); }
-"||"					{ count(); return(OR_OP); }
-"<="					{ count(); return(LE_OP); }
-">="					{ count(); return(GE_OP); }
-"=="					{ count(); return(EQ_OP); }
-"!="					{ count(); return(NE_OP); }
-";"						{ count(); return(';'); }
-"{"						{ count(); return('{'); }
-"}"						{ count(); return('}'); }
-","						{ count(); return(','); }
-":"						{ count(); return(':'); }
-"="						{ count(); return('='); }
-"("						{ count(); return('('); }
-")"						{ count(); return(')'); }
-"["						{ count(); return('['); }
-"]"						{ count(); return(']'); }
-"."						{ count(); return('.'); }
-"&"						{ count(); return('&'); }
-"!"						{ count(); return('!'); }
-"~"						{ count(); return('~'); }
-"-"						{ count(); return('-'); }
-"+"						{ count(); return('+'); }
-"*"						{ count(); return('*'); }
-"/"						{ count(); return('/'); }
-"%"						{ count(); return('%'); }
-"<"						{ count(); return('<'); }
-">"						{ count(); return('>'); }
-"^"						{ count(); return('^'); }
-"|"						{ count(); return('|'); }
-"?"						{ count(); return('?'); }
+\"(\\.|[^\\"])*\"        { count(); return(STRING_LITERAL); }
 
-[ \t\v\n\f]				{ count(); }
-.						{ printf ("Unknown Token: %s\n", yytext); }
+">>="                    { count(); return(RIGHT_ASSIGN); }
+"<<="                    { count(); return(LEFT_ASSIGN); }
+"+="                     { count(); return(ADD_ASSIGN); }
+"-="                     { count(); return(SUB_ASSIGN); }
+"*="                     { count(); return(MUL_ASSIGN); }
+"/="                     { count(); return(DIV_ASSIGN); }
+"%="                     { count(); return(MOD_ASSIGN); }
+"&="                     { count(); return(AND_ASSIGN); }
+"^="                     { count(); return(XOR_ASSIGN); }
+"|="                     { count(); return(OR_ASSIGN); }
+">>"                     { count(); return(RIGHT_OP); }
+"<<"                     { count(); return(LEFT_OP); }
+"++"                     { count(); return(INC_OP); }
+"--"                     { count(); return(DEC_OP); }
+"->"                     { count(); return(PTR_OP); }
+"&&"                     { count(); return(AND_OP); }
+"||"                     { count(); return(OR_OP); }
+"<="                     { count(); return(LE_OP); }
+">="                     { count(); return(GE_OP); }
+"=="                     { count(); return(EQ_OP); }
+"!="                     { count(); return(NE_OP); }
+";"                      { count(); return(';'); }
+"{"                      { count(); return('{'); }
+"}"                      { count(); return('}'); }
+","                      { count(); return(','); }
+":"                      { count(); return(':'); }
+"="                      { count(); return('='); }
+"("                      { count(); return('('); }
+")"                      { count(); return(')'); }
+"["                      { count(); return('['); }
+"]"                      { count(); return(']'); }
+"."                      { count(); return('.'); }
+"&"                      { count(); return('&'); }
+"!"                      { count(); return('!'); }
+"~"                      { count(); return('~'); }
+"-"                      { count(); return('-'); }
+"+"                      { count(); return('+'); }
+"*"                      { count(); return('*'); }
+"/"                      { count(); return('/'); }
+"%"                      { count(); return('%'); }
+"<"                      { count(); return('<'); }
+">"                      { count(); return('>'); }
+"^"                      { count(); return('^'); }
+"|"                      { count(); return('|'); }
+"?"                      { count(); return('?'); }
+[ \t\v\n\f]              { count(); }
+.                        { printf ("Unknown Token: %s\n", yytext); }
 %%
 
 int yywrap()
 {
-	/* stop after eof */
-	return 1;
+    /* stop after eof */
+    return 1;
 }
 
 int count()
 {
-	int i;
+    int i;
 
-	for (i = 0; yytext[i] != '\0'; i++)
-		if (yytext[i] == '\n')
-			column = 0;
-		else if (yytext[i] == '\t')
-			column += 4 - (column % 4);
-		else
-			column++;
+    for (i = 0; yytext[i] != '\0'; i++)
+        if (yytext[i] == '\n')
+            column = 0;
+        else if (yytext[i] == '\t')
+            column += 4 - (column % 4);
+        else
+            column++;
 
-	return column;
+    return column;
 }
 
 int check_type()
 {
-	return IDENTIFIER;
+    return IDENTIFIER;
 }
 
-void comment() 
+void comment()
 {
-	int c;
+    int c;
 
-	c = input(); 
-	do { 
-		while ( c != '*') 
-			c = input();
-		c=input();
-	} while(c != '/');
+    c = input();
+    do {
+        while ( c != '*')
+            c = input();
+        c=input();
+    } while(c != '/');
 }