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] 
-------------------------------------------------------------------------

Responder a