Definicja języka dokumentów Info_bud w ArCon+

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