分析以下程序生成的高级语言程序结构: // place any extra initialisation code here } // place any declarations here delim [ \t\n] ws {delim}+ letter [A-Za-z] digit [0-9] id {letter}({letter}|{digit})* number [+-]?{digit}+(\.{digit}+)?(E[+-]?{digit}+)? %% ///////////////////////////////////////////////////////////////////////////// // rules section {ws} { } if { String output = String.format("(IF, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } then { String output = String.format("(THEN, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } while { String output = String.format("(WHILE, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } do { String output = String.format("(DO, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } else { String output = String.format("(ELSE, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } {id} {String output = String.format("(ID, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } {number} { String output = String.format("(NUM, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } "<" { String output = String.format("(RELOP, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } "<=" { String output = String.format("(RELOP, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } "<>" { String output = String.format("(RELOP, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } ">" { String output = String.format("(RELOP, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } ">=" { String output = String.format("(RELOP, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } "=" { String output = String.format("(RELOP, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } "+" { String output = String.format("(RELOP, %s)", new String(yytext, 0, yyleng)); System.out.println(output); } . {}