10.10.2013 Views

XML — Architecture, Tools, Techniques - Department of Computer ...

XML — Architecture, Tools, Techniques - Department of Computer ...

XML — Architecture, Tools, Techniques - Department of Computer ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Handler is a GoalMakerFactory which constructs a single Trace object. shift() verifies<br />

that there is only a single observer. The trace <strong>of</strong> 3+4*5 suggests that it could be converted into<br />

an expression tree:<br />

$ java -classpath .:oops.jar oops.Compile -f Handler expr.ser Scanner > /dev/null<br />

GoalMakerFactory is Handler<br />

3+4*5<br />

handler shift Number 3<br />

handler reduce 3<br />

handler shift handler reduced<br />

handler reduce 3 [reduced]<br />

handler shift handler reduced<br />

handler shift "+" +<br />

handler shift Number 4<br />

handler reduce 3 [reduced] [reduced] + 4<br />

handler shift handler reduced<br />

handler shift "*" *<br />

handler shift Number 5<br />

handler reduce 3 [reduced] [reduced] + 4 [reduced] * 5<br />

handler shift handler reduced<br />

handler reduce 3 [reduced] [reduced] + 4 [reduced] * 5 [reduced]<br />

handler shift handler reduced<br />

handler reduce 3 [reduced] [reduced] + 4 [reduced] * 5 [reduced] [reduced]<br />

handler shift handler reduced<br />

handler shift "\n" null<br />

handler shift "\n" null<br />

handler reduce 3 [reduced] [reduced] + 4 [reduced] * 5 [reduced] [reduced] [reduced]<br />

The additional \n is synthesized by the scanner (which otherwise would have to read ahead).<br />

44

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!