Pessoal peço desculpas pela e-mail longo mas estou precisando de ajuda urgente para terminar um trabalho para faculdade ainda hoje .é o seguinte é um analisador sintático (" parser")que á cada comando no sistema operacional Dos ou um conjunto de comandos em Dos deve ser executado desta forma os comandos da linguagem devem ser emulados em Dos. Projeto do Interpretador de Comandos em um Sistema Operacional baseado em Linux eu olhei a documentação do javaCup e do Jlex mas não consigo achar o que está errado alguem poderia me ajudar ??? muito obrigado Josemax
*/ import java.lang.System; import java_cup.runtime.Symbol; class trab3 { public static void main(String argv[]) throws java.io.IOException { Yylex yy = new Yylex(System.in); Yytoken t; while ((t = yy.yylex()) != null) System.out.println(t); } } class Yytoken { Yytoken (String text) { m_text = new String(text); } public String m_text; public String toString(){ return "Token " + m_text; } } public static final String CD = "cd"; public static final String CP = "cp"; public static final String LS = "ls"; public static final String MKDIR = "mkdir"; public static final String MV = "mv"; public static final String REN = "ren"; public static final String RM = "rm"; public static final String RMDIR = "rmdir"; public static final String ARQUIVO = "arquivo"; public static final String DIRETORIO = "diretorio"; public static final String EXPRESSAO = "expressao"; %% %cup %% "cd" { return new Yytoken(CD); } "cp" { return new Yytoken(CP); } "ls" { return new Yytoken(LS); } "mkdir" { return new Yytoken(MKDIR); } "mv" { return new Yytoken(MV); } "ren" { return new Yytoken(REN); } "rm" { return new Yytoken(RM); } "rmdir" { return new Yytoken(RMDIR); } [A-Za-z]+"."[A-Za-z]+ { return new Yytoken(ARQUIVO); } ("*""."[A-Za-z]+)|([A-Za-z]+".""*")|("*"".""*") { return new Yytoken(EXPRESSAO); } (/[A-Za-z]+)+ { return new Yytoken(DIRETORIO); } [ \t\r\n\f] { /* ignore white space. */ } . { System.err.println("Illegal character: "+yytext()); } ackage Example; import java_cup.runtime.*; parser code {: public static void main(String args[]) throws Exception { new parser(new Yylex(System.in)).parse(); } :} terminal SEMI, PLUS, TIMES, LPAREN, RPAREN; terminal Integer NUMBER; non terminal expr_list, expr_part; non terminal Integer expr; precedence left PLUS; precedence left TIMES; expr_list ::= expr_list expr_part | expr_part; expr_part ::= expr:e {: System.out.println(" = "+e+";"); :} SEMI; expr ::= NUMBER:n {: RESULT=n; :} | expr:l PLUS expr:r {: RESULT=new Integer(l.intValue() + r.intValue()); :} | expr:l TIMES expr:r {: RESULT=new Integer(l.intValue() * r.intValue()); :} | LPAREN expr:e RPAREN {: RESULT=e; :} ; _________________________________________________________________ Chegou o novo MSN Explorer. Instale já. É gratuito! http://explorer.msn.com.br ------------------------------ LISTA SOUJAVA ---------------------------- http://www.soujava.org.br - Sociedade de Usuários Java da Sucesu-SP dúvidas mais comuns: http://www.soujava.org.br/faq.htm regras da lista: http://www.soujava.org.br/regras.htm para sair da lista: envie email para [EMAIL PROTECTED] -------------------------------------------------------------------------