TDL/Readme.md
2020-11-04 22:33:45 +01:00

80 lines
1.7 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.
You can find releases at [releases.gutmet.org](https://releases.gutmet.org) or
build the program with 'go build'.
Usage
=====
```
$ TDL yourSchedule.tdl
```
You find the output in yourSchedule-TIMESTAMP.txt
See the examples folder for inspiration to write 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. You don't have to
read this to use the program!
```
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.