import java.io.InputStreamReader; import java.io.IOException; %% %public %class Pat %type void %eofval{ return; %eofval} %{ public static void main (String args []) { Pat pat = new Pat(new InputStreamReader(System.in)); try { pat.yylex(); } catch (IOException e) { System.err.println(e); } } %} alpha = [a-zA-Z_] alnum = [a-zA-Z_0-9] oct = [0-7] dec = [0-9] hex = [0-9a-fA-F] sign = [+-]? exp = ([eE]{sign}{dec}+) L = [lL] X = [xX] %% "/*"([^*]|"*"+[^/*])*"*"+"/" { System.out.println("C\t"+yytext()); } "{"[^}]*"}" { System.out.println("Pascal\t"+yytext()); } "(*"([^*]|"*"+[^*)])*"*"+")" { System.out.println("Pascal\t"+yytext()); } "//".*$ { System.out.println("C++\t"+yytext()); } \"([^\"\\\n]|\\.|\\\n)*\" { System.out.println("C\t"+yytext()); } '([^'\n]|'')+' { System.out.println("Pascal\t"+yytext()); } 0{oct}+ { System.out.println("int oct\t"+yytext()); } 0{oct}+{L} { System.out.println("long oct\t"+yytext()); } 0{X}{hex}+ { System.out.println("int hex\t"+yytext()); } 0{X}{hex}+{L} { System.out.println("long hex\t"+yytext()); } {dec}+ { System.out.println("int\t"+yytext()); } {dec}+{L} { System.out.println("long\t"+yytext()); } {dec}+"."{dec}*{exp}?|{dec}*"."{dec}+{exp}?|{dec}+{exp} { System.out.println("double\t"+yytext()); } '([^'\\\n]|\\[^0-7\n]|\\[0-7][0-7]?[0-7]?)' { System.out.println("char\t"+yytext()); } {alpha}{alnum}* { System.out.println("name\t"+yytext()); } .|\n { }