Fazendo um analisador léxico

Estou trabalhando com um programa Lexical Analyzer agora e estou usando o Java. Eu tenho pesquisado por respostas sobre esse problema, mas até agora não consegui encontrar nenhum. Aqui está o meu problema:

Entrada:

System.out.println ("Hello World");

Saída desejada:

Lexeme----------------------Token

System [Key_Word]

.       [Object_Accessor]

out   [Key_Word]

. [Object_Accessor]

println  [Key_Word]

(  [left_Parenthesis]

"Hello World"    [String_Literal]

)   [right_Parenthesis]

;  [statement_separator]

Eu ainda sou iniciante, então espero que vocês possam me ajudar nisso. Obrigado.

questionAnswers(6)

yourAnswerToTheQuestion