DANEPROJEKTU::= {"Nazwa" | ".Nazwa pliku" | ".Data" | ".Adres1" | ".Adres2" | ".Adres3" | ".Dodatek1" | ". Dodatek2" | ". Dodatek3"| ".Uwagi" | ".LiczbaDziałek" | WARTOSCIKONDYGNACJI | [TYP]WARTOSCIPOMIESZCZENIA | [TYP]LICZBA}
DANEOSOBOWE::= {".Nazwisko" | ".Zwrot" | ".Adres1" | ".Adres2" | ".Adres3" | ".Dodatek1" | ".Dodatek2" | ".Dodatek3" | ".Uwagi "}
INFO ::= {".Nazwisko" | ".Uwagi" | ".Numer"}
TYP ::= {".A" | ".B" | ".C" | ".GPU" | ". GPU1" | ".GPU2" | ".GPU3" | ".GPU4" | ".GPU5" | ".GPU6" | ".GPU" | ".FF" | ".VF" | ".X" | ".K150"}[TYP]
LICZBA ::= {".Liczba Budynków" | ".LiczbaMieszkan" | ".LiczbaTypowZamkniecia" | ".Liczba Kondygnacji" | ".Liczba pomieszczen"}
WARTOSCISCIANY ::= {".Powierzchnia Sciany" | ".WzorPowierzchniSciany" | ".PowierzchniaOkien" | ".WzorPowierzchniOkna" | ".PowierzchniaDrzwi" | ".WzorPowierzchniDrzwi" | ".LiczbaOkien" | ".LiczbaDrzwi"}
WARTOSCIPOMIESZCZEN ::={".PowierzchniaPodlogi" | ".WzorPowierzchniPodlogi" | ".PowierzchniaStropu" | ".WzorPowierzchniStropu" | ".Obwod " | ".WzorObwodu" | ".Objetosc" | ".WzorObjetosci" | ".LiczbaKominow" | ".LiczbaSlupow" | ".LiczbaObiektow" | ".LiczbaStronScian" | WARTOSCI SCIANY}
WARTOSCIKONDYGNACJI::= {".PowierzchniaPomieszczeniaBrutto" | ".WzorPowierzchniPomieszczeniaBrutto" | ".PowierzchniaCalkowitaBruttto" | ".WzorPowierzchniCalkowitejBrutto" | ".PowierzchniaKonstrukcyjna"}
WARTOSCIPODLOGI ::= {".Obwod" | ".WzorObwodu" | ".Powierzchnia" | ".WzorPowierzchni"}
KOSZTY ::= {".Ilosc" | ".IloscJednostkowa" | ".Min" | ".Sred" | ".Maks" | ".JednostkaMinSredMaks" | ".KosztyMin" | ".KosztySred" | ".KosztyMaks" | ".KosztyJednostkowe"}
KOSZTYJEDNOSTKOWE::= {".100" KOSZTY | ".200" KOSZTY | ".300" KOSZTY | ".400" KOSZTY | ".500" KOSZTY | ".600" KOSZTY | ".700" KOSZTY
NUMERATOR ::= {".Dzialka" | ".Podobszar" | ".Mieszkanie" | ".TypZamkniecia"[TYP] | ".Budynek" | ".Kondygnacja" | ".Pomieszczenie" | ".StronaSciany" | "Okno" | "Drzwi" | "Slup" | ".Komin" | ".Obiekt"}
Jednostka ::= "@JednostkaWMetrach" |
"@JednostkaWCentymetrach" |
"@JednostkaWMilimetrach" |
"@JednostkaWCalach" |
"@JednostkaWYardach"
Pytanie ::= "@Pytanie"
KoniecPytania ::= "@KoniecPytania"
Kommentarz ::= "@["
DlaWszystkich ::= "@DlaWszystkich" NUMERATOR
DlaAktualnego ::= "@DlaAktualnego" NUMERATOR
DlaWszystkichBezOstatniego::="@DlaWszystkichBezOstatniego" NUMERATOR
DlaWszystkichBezPierwszego::= "@DlaWszystkichBezPierwszego" NUMERATOR
DlaWszystkichBezKOncow ::= "@DlaWszystkichBezKoncow" NUMERATOR
DlaPierwszego ::= "@DlaPierwszego" NUMERATOR
DlaOstatniego ::= "@DlaOstatniego" NUMERATOR
KoniecDlaWszystkich ::= "@KoniecDlaWszystkich" NUMERATOR
KoniecDlaAktualnego ::= "@KoniecDlaAktualnego" NUMERATOR
KoniecDlaWszystkichBezOstatniego ::= "@KoniecDlaWszystkichBezOstatniego" NUMERATOR
KoniecDlaWszystkichBezPierwszego ::= "@KoniecDlaWszystkichBezPierwszego" NUMERATOR
KoniecDlaWszystkichBezKoncow ::= "@KoniecDlaWszystkichBezkoncow" NUMERATOR
KoniecDlaPierwszego ::= "@KoniecDlaPierwszego" NUMERATOR
KoniecDlaOstatniego ::= "@KoniecDlaOstatniego" NUMERATOR
Projekt ::= "@Projekt" DANE PROJEKTU
Architekt ::= "@Architekt" DANE OSOBOWE
Inwestor ::= "@Inwestor" DANE OSOBOWE
Dzialka ::= "@Dzialka"{INFO | WARTOSCI PODLOGI | ".LiczbaPodobszarow" | ".LiczbaBudynkow"}
Podobszar ::= "@Podobszar"{INFO | WARTOSCI PODLOGI}
Mieszkanie ::= "@Mieszkanie"{INFO | [TYP]WARTOSCI POMIESZCZEN | [TYP]LICZBA}
Zamkniecie ::= "@Zamkniecie"{[TYP]WARTOSCIPOMIESZCZENIA | [TYP]LICZBA | ".TypPowierzchni" | ".TypZamkniecia"}
Budynek ::= "@Budynek"{INFO | WARTOSCIKONDYGNACJI | [TYP]WARTOSCIPOMIESZCZENIA | [TYP]LICZBA}
Kondygnacja ::= "@Kondygnacja"{INFO | ".Wysokosc" | ".Poziom" | ".GruboscTynkuZewnetrznego" | ".OpisTynkuZewnetrznego" | WARTOSCIKONDYGNACJI | [TYP]WARTOSCIPOMIESZCZENIA | [TYP]LICZBA}
Pomieszczenie ::= "@Pomieszczenie" [TYP]{INFO | WARTOSCIPOMIESZCZENIA | ".GrobośćTynku" | ".OpisTynku" | ".TypPowierzchniUzytkowej" | ".NumerPowierzchniUzytkowej" | ".OpisPowierzchniUzytkowej" | ".TypZamkniecia"}
StronaSciany ::= "@StronaSciany"{".Numer" | ".Dlugosc" | ".Material" | WARTOSCISCIANY}
Okno ::= "@Okno"{INFO | ".Szerokosc" | ".Wysokosc" | ".Powierzchnia" | ".WysokoscParapetu"}
Drzwi ::= "@Drzwi"{ INFO | ".Szerokosc" | ".Wysokosc" | ".Powierzchnia"}
Slup ::= "@Slup"{INFO | ".Dlugosc" | ".Szerokosc" | ".Wysokosc"}
Komin ::= "@Komin"{ INFO | ".Dlugosc | ".Szerokosc | ".Wysokosc"}
Obiekt ::= "@Obiekt"{INFO | ".Liczba" | ".CenaJednostkowa" | ".Cena" | ".Producent" | ".NumerZamowieniowy"}
Numerator ::= DlaWszystkich | DlaAktualnego | DlaWszystkichBezOstatniego | DlaWszystkichBezPierwszego | DlaPierwszego | DlaOstatniego
KoniecNumerator ::= KoniecDlaWszystkich | KoniecDlaAktualnego | KoniecDlaWszystkichBezOstatniego | KoniecDlaWszystkichBezPierwszego | KoniecDlaPierwszego | KoniecDlaOstatniego
Numerator ::= Dzialka | Podobszar | Mieszkanie | Zamkniecie | Budynek | Kondygnacja | Pomieszczenie | StronaSciany | Okno | Drzwi | Slup | Komin | Obiekt
Wyliczanie ::= Numerator [Trzon] KoniecNumerator
Rozne ::= Jednostka | Architekt | Inwestor | Projekt | Kosztorys
CzescPytania ::= Pytanie Tekst '@' Trzon KoniecPytania
CzescKomentarza ::= Kommentarz Tekst '@'
Trzon ::= [[Tekst] [Wyliczanie | Numerator | CzescPytania | CzescKomentarza | Rozne ] [Tekst]]>=0
Koniec ::= EOF
Plik ::= Trzon Koniec