aboutsummaryrefslogtreecommitdiffstats
path: root/readme.md
blob: 94aa8ced070ba20eda851d4ca17123758be82cc4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
The module code deliverables come in three parts:

  Deliverable                  | Due         | Weight | Notes
-------------------------------|-------------|--------|------------------------------------
[1-lexer.md](1-lexer.md)       | Tue 7th Feb | 10%    | A C lexer that produces JSON output 
[2-parser.md](2-parser.md)     | Tue 7th Mar | 10%    | A (restricted) C parser that produces XML output
[3-compiler.md](3-compiler.md) | Tue 28th Mar | 50%    | The final C compiler

You will all get a bare private repository. It is up to you
if you want to clone the master specification, or to start from
scratch. Both approaches just require the git operations already used
in lab 1, and possibly looking at the documentation for the commands
you have already used. Remember that you can always do `git ${CMD} --help`
for any CMD such as `pull`, `push`, `commit`, `remote`.

Starting from scratch
---------------------

1 - Create a local git repository using `git init` in a directory of your choice.

2 - Commit files to your local repository (as you would normally commit)

3 - Add the URL of your private repository as the remote `origin` (similar
    to manually adding the `spec` remote in the lab).

4 - You should now be able to push and pull commits to origin, which is
    your private repo.
    
Cloning the spec
----------------

1 - Clone the master specification from the public URL. This will produce
    a directory called `langproc-2016-cw` by default.
    
2 - Rename it to something more meaningful, e.g. `langproc-2016-cw-${LOGIN}`.

3 - Use `git remote` to rename `origin` (which points at the public spec) to
    `spec`.
    
4 - Use `git remote` to add a new remote called `origin` pointing at
    your private repository.

5 - You should then be able to push and pull to `origin`, and pull from `spec`,
    as in the lab.

Submissions
-----------

Submission will be via github (code) + blackboard (commit hash),
as in the lab.