forked from hmc-cs111-fall2014/project
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
NCarter3 edited this page Nov 19, 2014
·
6 revisions
Welcome to the project wiki!
Link to our google docs!
(1) Do Problem Set
Start Sunday 3pm
Due 6 hours after starting
Recur every Sunday, Monday, Tuesday from 1/14/15 until 5/14/15
(2) Turn in Problem Set
Start 1 day before (1) is due
Due Wednesday 3pm
Recur with (1)
New Ideas:
blah trash FROM wednesday TILL saturday EVERY week
blah trash @ wednesday - friday Every week
<task> @ "" - "" Every ""
Note: This is not self consistent or complete. I'm still changing this regularly.
time := (start | end)(before | after | at)(expr) | in(interval) | expr
exact := ?timestamp?
recurrence := each(expr, startTime, endTime)
A recurrence probably should NOT be an expr, whereas most other things are. And, every(recurrence) or one(recurrence) would be an expr.
expr := time | (and | or)(expr, expr) | except(expr, expr)
must include a method like `time next(startTime)` to work like a generator
interval := (number, unit)
number := ?[0,inf)?
unit := "hour[s]" | "day[s]" | "minute[s]" | "year[s]" | "month[s]" | ...
event := description, expr
recurrence shouldn't be a expr, but every(recurrence) or at(exact, recurrence) should be an expr.
# Sample list:
[1] ip sum @ each Friday
[2] dolor @ after [1]
[3] title @ before [1]
[4] color @ 3 days before [3]
# Datastructure:
Should this be an iterable hashtable and maybe include a minheap organized by next time?
table<hash, expr>
minheap ordered on expr.next(time.now())
A parsed task list:
[
[1]: expr(each(time(at(Friday)), start=time.now()))
[2]: expr(after([1]))
[3]: expr(before([1]))
[4]: expr(bofore([3], interval))
]