The following section covers the Extended Backus–Naur Form (EBNF) of the railroad diagrams. This syntax can be used in any Backus–Naur Form (BNF) parser, enabling the interpretation of the circa date entered.
Circa = Date [ "-" | "to" | "and" | "or" Date ] [ "[" Earliest_date [ "-" | "to" ] Latest_date "]" ]. Date = [Pre_keyword] [Period] Date_value [Period] [Post_keyword]. Pre_keyword = "about" | "before" | "after" | "probably" | "c." | "ca." | "cca." | "circa" | "late". Period = "ad" | "bc" | "a.d." | "b.c." | "bce" | "ce". Post_keyword = "years ago". Earliest_date = Date_value. Latest_date = Date_value. Recent_period = "medieval" | "prehistoric" | "antediluvian". Time_period = "neogene" | "paleogene" | "cretaceous" | "jurassic" | "triassic" | "permian" | "carboniferous" | "pennsylvanian" | "mississippian" | "devonian" | "silurian" | "ordovician" | "cambrian" | "ediacaran" | "cryogenian" | "tonian" | "stenian" | "ectasian" | "calymmian" | "statherian" | "orosirian" | "rhyacian" | "siderian". Eon = "phanerozoic" | "proterozoic" | "archean" | "hadean". Era = "cenozoic" | "mesozoic" | "paleozoic" | "neo-proterozoic" | "meso-proterozoic" | "paleo-proterozoic" | "neoarchean" | "mesoarchean" | "paleoarchean" | "eoarchean" | "lower imbrian" | "nectarian" | "basin groups" | "cryptic". Mon = "jan" | "january" | "feb" | "february" | "mar" | "march" | "apr" | "april" | "may" | "jun" | "june" | "jul" | "july" | "aug" | "august" | "sep" | "sept" | "september" | "oct" | "october" | "nov" | "november" | "dec" | "december". N = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9". Y = N. D = N. Date_value = YY[YY]["s"] | Mon N[N] "," YY[YY] | D[D] ["-" | " "]Mon["-" | " "]YY[YY] | N[N]["th"] "century" | N{N} | Time_period | Recent_period | Age | Eon | Era | Dynasty | Kingdom | Japan_Period | Middle_East. Age = Paleolithic ["age"] | "mesolithic" ["age"] | "neolithic" ["age"] | "copper" ["age"] | "bronze" ["age"] | "stone" ["age"] | "iron" ["age"]. Paleolithic = ["lower" | "middle" | "upper"] "paleolithic". Dynasty = "chinese" ["dynasty"] | "shang" ["dynasty"] | "zhou" ["dynasty"] | "liao" ["dynasty"] | "song" ["dynasty"] | "jin" ["dynasty"] | "shang" ["dynasty"] | "qing" ["dynasty"] | "southern" ["dynasty"] | "northern" ["dynasty"] | "sui" ["dynasty"] | "tang" ["dynasty"] | "five" ["dynasty"] | "ten" ["kingdoms"]. Kingdom = "old" ["kingdom"] | "middle" ["kingdom"] | "new" ["kingdom"] | "coptic" ["period"]. Japan_Period = "jomon" ["period"] | "yayoi" ["period"] | "kofun" ["period"] | "asuka" ["period"] | "nara" ["period"] | "heian" ["period"] | "kamakura" ["period"] | "muromachi" ["period"] | "azuchi-momoyama" ["period"] | "tokugawa" ["shogunate"] | "meiji" ["period"]. Middle_East = "islamic" ["golden" ["age"]] | "ottoman" ["empire"].