Package compilework;
Import java.util.ArrayList;
Import Java.util.Scanner;
public class Compilework_1
{
public static void Main (String args[])
{
Scanner s=new Scanner (system.in);
SYSTEM.OUT.PRINTLN ("Please input Code");
String Scode=s.nextline ();
S.close ();
Arraylist<string> arrayphrase=new arraylist<string> ();
int i;
For (I=0;i<scode.length (); i++)
{
Char[] Stemp=scode.substring (i, i+1). ToCharArray ();
Char cword=stemp[0];
String sphrase= "";
int flag=0;
while (I<scode.length () &&cword<= ' Z ' &&cword>= ' A ' | | Cword<= ' z ' &&cword>= ' a ' | | cword>= ' 0 ' &&cword<= ' 9 ')
{
flag=1;
i++;
Sphrase+=cword;
if (I<scode.length ()) {
Char[] Cnexttemp=scode.substring (i,i+1). ToCharArray ();
CWORD=CNEXTTEMP[0];
}else{
Break
}
}
if (flag==1) {
Arrayphrase.add (sphrase);
Sphrase= "";
}
if (i<scode.length () &&cword== ' < ')
{
i++;
Sphrase+=cword;
Char[] Cnexttemp=scode.substring (i,i+1). ToCharArray ();
CWORD=CNEXTTEMP[0];
if (I<scode.length () &&i<scode.length () &&cword== ' = ')
{
Sphrase+=cword;
}
if (i<scode.length () &&cword== ' > ')
{
Sphrase+=cword;
}
Arrayphrase.add (sphrase);
Sphrase= "";
}
if (i<scode.length () &&cword== ': ')
{
Sphrase+=cword;
Char[] Cnexttemp=scode.substring (i+1,i+2). ToCharArray ();
CWORD=CNEXTTEMP[0];
if (I<scode.length () &&i<scode.length () &&cword== ' = ')
{
i++;
Sphrase+=cword;
}
Arrayphrase.add (sphrase);
Sphrase= "";
}
if (i<scode.length () &&cword== ' + ')
{
Sphrase+=cword;
Arrayphrase.add (sphrase);
Sphrase= "";
}
if (i<scode.length () &&cword== '-')
{
Sphrase+=cword;
Arrayphrase.add (sphrase);
Sphrase= "";
}
if (i<scode.length () &&cword== ' * ')
{
Sphrase+=cword;
Arrayphrase.add (sphrase);
Sphrase= "";
}
if (i<scode.length () &&cword== '/')
{
Sphrase+=cword;
Arrayphrase.add (sphrase);
Sphrase= "";
}
if (i<scode.length () &&cword== '; ')
{
Sphrase+=cword;
Arrayphrase.add (sphrase);
Sphrase= "";
}
}
for (String ssign:arrayphrase) {
Switch (ssign) {
Case "Begin":
System.out.print ("<1" +ssign+ ">");
Break
Case "End":
System.out.print ("<2" +ssign+ ">");
Break
Case "if":
System.out.print ("<3" +ssign+ ">");
Break
Case ' Then ':
System.out.print ("<4" +ssign+ ">");
Break
Case "Else":
System.out.print ("<5" +ssign+ ">");
Break
Case ' while ':
System.out.print ("<6" +ssign+ ">");
Break
Case ' do ':
System.out.print ("<7" +ssign+ ">");
Break
Case "+":
System.out.print ("<13" +ssign+ ">");
Break
Case "-":
System.out.print ("<14" +ssign+ ">");
Break
Case "*":
System.out.print ("<15" +ssign+ ">");
Break
Case "/":
System.out.print ("<16" +ssign+ ">");
Break
Case "<=":
System.out.print ("<17" +ssign+ ">");
Break
Case "<>":
System.out.print ("<18" +ssign+ ">");
Break
Case "<":
System.out.print ("<19" +ssign+ ">");
Break
Case ":":
System.out.print ("<21" +ssign+ ">");
Break
Case ": =":
System.out.print ("<22" +ssign+ ">");
Break
Case ";":
System.out.print ("<23" +ssign+ ">");
Break
Default
int flagisn=1;
Char[] Cssigntemp=ssign.tochararray ();
for (int k=0;k<ssign.length (); k++) {
if (Character.isdigit (Cssigntemp[k])!=true) {
flagisn=0;
}
}
if (flagisn==1) {
System.out.print ("<11" +ssign+ ">");
}else{
System.out.printf ("<10" +ssign+ ">");
}
}
}
}
}
0916 Lexical Analysis (3)