Assignment 1: Lexer

Due: Midnight pm, Monday September 21st by git commit.
(That is, end of Monday / beginning of Tuesday.)

Handin method

Email me a git repo url some time before the project deadline. You will use one repository for the entire, semester-long, multi-submission project.

Tagging a repo commit is how you submit. When I grade project submissions, I'll check out your repo at the tagged commit. The git tag for project 1 (this one) is "1-lexer". Make sure that the commit you tag has a time stamp before the project deadline.

Make sure you send me your repo url well before the due date. That way I can clone the repo and make sure that I can do pulls and pushes while time isn't pressing.

Make sure I have permission to push to your repo as well as pull, as I will return marked-up and graded assignments to you this way. I am user olin-shivers at github.com, and shivers at the github.khoury.northeastern.edu server.

And make sure that your repo is otherwise only read- and write-accessible to your course coding partner. If you leave your repo world-readable, you'll be culpable if your project code leaks into the wild, where "culpable" here means "will be held partly responsible and will share in the academic-integrity consequences."

Task

Assignment 1 is to build a lexer for Appel's Tiger language using ML-Lex. The Tiger language is defined in Appendix A of the course textbook. Documentation on ML-Lex is available on the class web page, and also (in less detail) in chapter two of the textbook.

Skeleton files to get you started are available in the $TIGER/chap2/ directory, which you can find at Appel's textbook homepage.

What to hand in

Your repo should contain a directory named 1-lexer that contains:

Details

  –Olin

CS4410