New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Povećani Backus-Naurov oblik - Wikipedija

Povećani Backus-Naurov oblik

Izvor: Wikipedija

Povećani Backus-Naurov oblik (češće kraće samo kao ABNF, od engl. Augmented Backus–Naur form) proširuje Backus-Naurov oblik.

Povećani Backus-Naurov oblik (ABNF) je zasnovan na Backus-Naurovom obliku, ali posjeduje vlastitu sintaksu i produkcijska pravila. Povod za nastanak ovog metajezika jest opis formalnog sustava jezika koji je protokol (dvosmejrna specifikacija). Dokumentiran je u RFC 4234 i često služi kao definicijski jezik za IETF komunikacijske protokole.

RFC 4234 ispravlja probleme u i obsoletira RFC 2234.

Sadržaj

[uredi] Uvod

ABNF specifikacija je skup produkcijskih pravila, zapisanih kao pravilo = definicija ; komentar CR LF: gdje je pravilo nezavršni simbol osjetljiv na velika i mala slova, definicija se sastoji od slijedova simbola koji definiraju pravilo, komentar je u svrhu dokumentacije, a pravilo završava znakom vraćanja ne početak reda (CR od engl. carriage return) i znakom prelaska u novi red (LF od engl line feed).

Imena pravila su neosjetljiva na velika i mala slova: <imepravila</<ode>, <Imepravila>, <IMEPRAVILA>, i <iMePRaviLA> su sve ista pravila. Imena pravila se sastoje od slova nakon kojeg slijede slova, brojevi i crtice.

Uglate zagrade (“<”, “>”) se ne zahtijevaju oko imena pravila (kao što se zahtijevaju u BNF notaciji). Međutim, mogu biti korištene za označavanje imena pravila prilikom korištenja u običnom tekstu za isticanje samih imena pravila.

ABNF se enkodira u 7-bitnom ASCII kodu u 8-bitnom polju čiji je vršni bit postavljen na nulu.

[uredi] Završne vrijednosti

Završni su simboli specificirani jednim ili više numeričkih karaktera (znakova).

Numerički karakteri mogu biti specificirani znakom postotka “%”, nakon kojeg slijedi baza (b = binarna, d = decimalna, i x = heksadecimalna), nakon kojeg slijedi vrijednost, ili nadovezivanje (konkatenacija) vrijednosti (označena sa “.”). Na primjer, znak vraćanja na početak reda, CR (od engl. carriage return), je specificiran kodom %d13 u decimalnoj bazi ili %x0D u heksadecimalnoj. CR nakon kojeg slijedi znak prelaska u novi red - LF (od engl. line feed) se može specificirati nadovezivanjem kao %d13.10.

Literalni tekst je specificiran uporabom stringa zatvorenog u navodnike ("). Ovi stringovi su neosjetljivi na velika i mala slova i korišteni skup karaktera iz US-ASCII. Stoga će string “abc” spariti “abc”, “Abc”, “aBc”, “abC”, “ABc”, “AbC”, “aBC”, i “ABC”. Za sparivanje osjetljivo na velika i mala slova se moraju koristiti eksplicitni karakteri: za sparivanje “aBc” definicija će biti %d97 %d66 %d99.

[uredi] Operatori

[uredi] Bjeline

Bjeline se koriste za razdvajanje definicijskih elemenata: prazni znak mora biti eksplicitno uključen da bi se prepoznao kao graničnik.

[uredi] Nadovezivanje:

Pravilo1 Pravilo2

Pravilo može biti definirano listanjem slijeda imena pravila. Da bi se spario string “aba” sljedeća pravila mogu biti korištena:

  1. fu = %x61 ; a
  2. bar = %x62 ; b
  3. mumble = fu bar fu

[uredi] Alterniranje:

Pravilo1 / Pravilo2

Pravilo može biti definirano listanjem alternativnih pravila razdvojenih kosom crtom (“/”).

Da bi se prihvatilo pravilo <fu> ili pravilo <bar> može se konstruirati sljedeće pravilo:

  1. fubar = fu / bar

[uredi] Inkrementalni izbori:

Pravilo1 =/ Pravilo2

Dodani izbori mogu biti dodani u pravilo uporabom koda “=/” između imena pravila i definicije.

Pravilo

  1. skuppravila = izbor1 / izbor2 / izbor3 / izbor4 / izbor5

je istovjetno sljedećima

  1. skuppravila = izbor1 / izbor2
  2. skuppravila =/ izbor3
  3. skuppravila =/ izbor4 / izbor5

[uredi] Opseg vrijednosti:

%c##-##

Opseg numeričkih vrijednosti se može specificirati uporabom crtice (“-”).

Pravilo

  1. OKTALNO = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7"

je istovjetno sljedećem pravilu:

  1. OKTALNO = %x30-37

[uredi] Grupa slijeda:

(Pravilo1 Pravilo2)

Elementi mogu biti smješteni u zagrade kako bi se grupirala pravila u definiciji.

Da bi se sparili stringovi “elem fubar snafu” ili “elem tarfu snafu”, sljedeće pravilo može biti konstruirano:

  1. grupa = elem (fubar / tarfu) snafu

Kako bi se sparili stringovi “elem fubar” ili “tarfu snafu”, sljedeće pravilo može biti konstruirano:

  1. grupa = elem fubar / tarfu snafu
  2. grupa = (elem fubar) / (tarfu snafu)

[uredi] Opetovanje varijabli:

n*nPravilo

Kako bi se naznačilo opetovanje elementa, koristi se oblik <a>*<b>element. Izborni <a> daje minimalan broj elemenata koji se mogu uključiti, sa pretpostavljenom vrijednošću jednakom 0. Izborni <b> daje maksimalan broj uključenih elemenata, bez pretpostavljene gornje granice.

Valja koristiti *element za nula illi više elemenata, 1*element za jedan ili više elemenata, i 2*3element za dva ili tri elementa.

[uredi] Specifično opetovanje:

nPravilo

Kako bi se naznačio eksplicitan broj elemenata, koristi se oblik <a>element i koji je istovjetan sa <a>*<a>element.

Valja koristiti 2ZNAMENKA da bi se dobile dvije numeričke znamenke i 3ZNAMENKA kako bi se dobile tri numeričke znamenke.

[uredi] Izborni slijed:

[Pravilo]

Kako bi se naznačio izborni (opcionalni) element, sljedeće konstrukcije su istovjetne:

  1. [fubar snafu]
  2. *1(fubar snafu)
  3. 0*1(fubar snafu)

[uredi] Komentar:

; komentar

Točka-zarez (“;”) započinje komentar koji se nastavlja do kraja linije.

[uredi] Prednost operatora

Sljedeći operatori imaju danu prednost od najjačeg do najslabijeg vezanja:

  1. Stringovi, Oblikovanje Imena
  2. Komentari
  3. Opseg vrijednosti
  4. Opetovanje
  5. Grupiranje, Izborni
  6. Nadovezivanje
  7. Alternativa

Uporaba operatora alternirana sa nadovezivanjem može biti zbunjujuća i preporučuje se uporaba grupiranja kako bi se grupe nadovezivanja učinile eksplicitnima.

[uredi] Osnovna pravila

Osnovna pravila su definirana u ABNF standardu.

Pravilo Formalna definicija Značenje
ALPHA %x41-5A / %x61-7A velika i mala ASCII slova (A-Z a-z)
DIGIT %x30-39 decimalne znamenke (0-9)
HEXDIG DIGIT / "A" / "B" / "C" / "D" / "E" / "F" heksadecimalne znamenke (0-9 A-F)
DQUOTE %x22 dvostruki navodnik
SP %x20 znak praznine (engl. space)
HTAB %x09 horizontalni tab
WSP SP / HTAB znak praznine i horizontalni tab
LWSP *(WSP / CRLF WSP) linearna bjelina (nakon znaka za novi red)
VCHAR %x21-7E vidljivi (ispisivi) znakovi
CHAR %x01-7F bilo koji 7-bitni US-ASCII znak, isključujući NUL
OCTET %x00-FF 8 bitova podataka
CTL %x00-1F / %x7F kontrolni znakovi
CR %x0D znak vraćanja na početak reda (engl. carriage return)
LF %x0A znak prelaska u novi red (engl. linefeed)
CRLF CR LF Standardni internetski znak za prelazak u novi red
BIT "0" / "1"

[uredi] Primjer

Primjer poštanskih adresa dan u članku o Backus-Naurovom obliku se može specificirati kao:

poštanska-adresa  = ime-dio ulica pbroj-dio

ime-dio          = *(osobni-dio SP) prezime [SP jr-dio] CRLF
ime-dio          =/ osobni-dio CRLF

osobni-dio       = ime / (inicijal ".")
ime              = *ALPHA
inicijal         = ALPHA
prezime          = *ALPHA
jr-dio          = ("Jr." / "Sr." / 1*("I" / "V" / "X"))

street           = [stan-broj SP] kućni-broj SP ime-ulice CRLF
stan-broj        = 1*4DIGIT
kućni-broj       = 1*8(DIGIT / ALPHA)
ime-ulice        = 1*VCHAR

pbroj-dio        = ime-grada "," SP država 1*2SP poštanski-broj CRLF
ime-grada        = 1*(ALPHA / SP)
država           = 2ALPHA
poštanski-broj   = 5DIGIT ["-" 4DIGIT]

[uredi] Reference

  • RFC 4234 Augmented BNF for Syntax Specifications: ABNF
  • RFC 2234 Augmented BNF for Syntax Specifications: ABNF (obsoletno)
Drugi jezici

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu