Retourner au contenu associé (entrée de forum : [Javacc] reconnaissance du token "le plus grand")
Posté par Watchwolf le 17 novembre 2008 à 19:26. En réponse au message [Javacc] reconnaissance du token "le plus grand". Évalué à 2.
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
# Correction
Posté par Watchwolf . En réponse au message [Javacc] reconnaissance du token "le plus grand". Évalué à 2.
le code:
options {
STATIC = false ;
}
PARSER_BEGIN(Adder)
class Adder {
public static void main( String[] args )
throws ParseException, TokenMgrError {
Adder parser = new Adder( System.in ) ;
parser.Start() ; }
}
PARSER_END(Adder)
SKIP :
{
"\r"
}
TOKEN :
{
< NUMBER: (["0"-"9"])+ >
| < WORD : (~[" ","\n"])+ >
| < WORDS: (<WORD>|" ")+ >
| < EOL: ("\n") >
}
void Start() :
{
int n;
Token t;
}
{
(t = <NUMBER>
{
n = Integer.parseInt(t.image);
System.out.println(n);
}
" "<WORD>
" "<WORDS>
<EOL>
)+
<EOF>
}
le résultat:
echo "123 mot1 mot2 mot3" | java Adder
Exception in thread "main" ParseException: Encountered " <WORDS> "123 mot1 mot2 mot3 "" at line 1, column 1.
Was expecting:
<NUMBER> ...
at Adder.generateParseException(Adder.java:190)
at Adder.jj_consume_token(Adder.java:128)
at Adder.Start(Adder.java:13)
at Adder.main(Adder.java:6)