Question
Does anyone know where to find a
Backus-Naur Form (BNF) or
Extended BNF for
WikiWord?
I expect to find a precise grammar of
WikiWord
Regards,
Spenser
Environment
--
SpenserKao - 16 Jul 2007
Answer
If you answer a question - or have a question you asked answered by someone - please remember to edit the page and set the status to answered. The status is in a drop-down list below the edit box.
There is no BNF documentation, though are invited to contribute one. WikiWords are described at
WikiWord. WikiWords are linked automatically of preceeded by whitespace or parenthesis.
--
PeterThoeny - 16 Jul 2007
Thanks Peter, here is the EBNF grammar based on what I reverse-engineered the behavior of creating new topics:
wikiWord := firstWord restWord*
firstWord := upperLetter (upperLetter | lowerLetter)*
restWord := upperLetter (upperLetter | lowerLetter | number)*
lowerLetter := a | b | c | ...| z
upperLetter := A | B | C |...| Z
number := 0 | 1 | 2 |...| 9
--
SpenserKao - 17 Jul 2007
That grammar define as
WikiWords things like U and UU, which is not right.
I think is more like this:
wikiWord := firstWord restWord+
firstWord := upperLetter+ (lowerLetter | number)+
restWord := upperLetter (upperLetter | lowerLetter | number)*
lowerLetter := a | b | c | ...| z
upperLetter := A | B | C |...| Z
number := 0 | 1 | 2 |...| 9
Let´s see (U stands for Upper Case, l for lower case, 1 for number):
UlU? UUlU? UllU? U1U? U11U? UUllU? UiU1? UiUl? UiUU?
--
RafaelAlvarez - 17 Jul 2007
After consulting
Extended Backus–Naur form I think this one is the correct syntax.
wikiWord = upperLetters , lowerNumLetters , upperLetters , { alphaNum } ;
upperLetters = upperCase , { upperCase } ;
lowerNumLetters = lowerNum , { lowerNum } ;
alphaNum = upperCase | lowerCase | digit ;
lowerNum = lowerCase | digit ;
lowerCase = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i"
| "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r"
| "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" ;
upperCase = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I"
| "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R"
| "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" ;
digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
WikiWord is updated.
--
PeterThoeny - 18 Jul 2007
That's a more formal definition. Thanks
--
RafaelAlvarez - 18 Jul 2007
With 4.2, I'm encountering words that did not use to be wiki words and that do not fit the BNR in
WikiWord. Such as
I1CONSUM?
I1CONSUM2?
--
JerreCope - 15 May 2008