75 lines
1.5 KiB
Markdown
75 lines
1.5 KiB
Markdown
|
TDL
|
||
|
===
|
||
|
|
||
|
TDL is a language for weightlifting schedules and a corresponding generator.
|
||
|
From a file with descriptions of sets and percentages the program computes
|
||
|
concrete training days and plates needed.
|
||
|
|
||
|
|
||
|
Usage
|
||
|
-----
|
||
|
|
||
|
```
|
||
|
TDL yourSchedule.tdl
|
||
|
```
|
||
|
|
||
|
You find the output in yourSchedule-TIMESTAMP.txt
|
||
|
|
||
|
See the examples folder for inspiration to writer your schedule file.
|
||
|
|
||
|
|
||
|
|
||
|
Beer Note
|
||
|
---------
|
||
|
|
||
|
You can buy me a beer [here](http://paypal.me/AlexanderWeinhold).
|
||
|
|
||
|
|
||
|
|
||
|
Grammar
|
||
|
-------
|
||
|
|
||
|
For completeness' sake, the grammar in EBNF looks like this:
|
||
|
|
||
|
```
|
||
|
TDL = Lifts [Plates] [SetTemplates] TrainingDays EOI .
|
||
|
|
||
|
Lifts = "Lifts:" Lift {"," Lift} .
|
||
|
|
||
|
Lift = LiftIdent "Max:" Weight "Increment:" Weight [ "%" ] [ "Bar:" Weight ] .
|
||
|
|
||
|
Plates = "Plates:" Plate { "," Plate } .
|
||
|
|
||
|
Plate = Weight 'x' Amount .
|
||
|
|
||
|
SetTemplates = "SetTemplates:" "-" SetTemplate { "-" SetTemplate } .
|
||
|
|
||
|
SetTemplate = SetTemplateIdent SetTemplateItem { ',' SetTemplateItem } .
|
||
|
|
||
|
SetTemplateItem = SetTemplateIdent | Set [ 'x' Amount ] .
|
||
|
|
||
|
Set = Amount "reps" '@' Percentage '%' [ '+' Weight ] [ 'x' Amount ] [ Notice ] .
|
||
|
|
||
|
TrainingDays = "TrainingDays:" "-" TrainingDay { "-" TrainingDay } .
|
||
|
|
||
|
TrainingDay = TrainingDayItem { TrainingDayItem } .
|
||
|
|
||
|
TrainingDayItem = string | LiftSchedule.
|
||
|
|
||
|
LiftSchedule = LiftIdent ':' SetTemplateItem { ',' SetTemplateItem } [ "increase" [ Weight [ "%" ] ] ] .
|
||
|
|
||
|
Amount = integer .
|
||
|
|
||
|
Percentage = integer|float .
|
||
|
|
||
|
Weight = integer|float .
|
||
|
|
||
|
LiftIdent = ident .
|
||
|
|
||
|
SetTemplateIdent = ident .
|
||
|
|
||
|
Notice = '(' ANY ')' .
|
||
|
```
|
||
|
|
||
|
Comments can be enclosed in square brackets and are ignored.
|