2020-11-04 22:27:06 +01:00
|
|
|
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
|
2020-11-04 22:29:02 +01:00
|
|
|
=====
|
2020-11-04 22:27:06 +01:00
|
|
|
|
|
|
|
```
|
2020-11-04 22:29:02 +01:00
|
|
|
$ TDL yourSchedule.tdl
|
2020-11-04 22:27:06 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
You find the output in yourSchedule-TIMESTAMP.txt
|
|
|
|
|
2020-11-04 22:29:02 +01:00
|
|
|
See the examples folder for inspiration to write your schedule file.
|
2020-11-04 22:27:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Beer Note
|
2020-11-04 22:29:02 +01:00
|
|
|
=========
|
2020-11-04 22:27:06 +01:00
|
|
|
|
|
|
|
You can buy me a beer [here](http://paypal.me/AlexanderWeinhold).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Grammar
|
2020-11-04 22:29:02 +01:00
|
|
|
=======
|
|
|
|
|
|
|
|
For completeness' sake, the grammar in EBNF looks like this. You don't have to
|
|
|
|
read this to use the program!
|
2020-11-04 22:27:06 +01:00
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
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.
|