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