abstract and while document else for head if not
or upper var
<digito> = “0 ” | “1 ” | “2 ” | “3 ” | “4 ” | “5 ” |
“6” | “7” | “8” | “9”
<sinal> = “null” | “-”
<letra> = “a” | “A” | “b” | “B” |
... | “z” | “Z”
<booleano> = “true” | “false”
<quebra_linha> = “\n” (* caractere de quebra de linha *)
<caractere_escapado> = “\$” | “\}” | “\{” | “\n” | “*”
<natural> = <digito> , { <digito> }
<inteiro> = [ <sinal> ], { <natural> }
<decimal> = <inteiro>, [“.”, <natural>]
<numero> = <inteiro> | <decimal>
<caractere> = <letra> | <digito> | <caractere_especial>
<caractere_string> = { <caractere> | <caractere_escapado> },
-<quebra_linha>
<string_comum> = “"”, {<caractere_string>}, ”"” |
{<caractere_string>}
<linha> = { <string_comum> | <modificador> |
“$$”, <comando>, “$$”} , <quebra_linha>
<linhas> = { <linha> }
<operador_aritmético> = “+” | “-” | “/” | “*”
<operador_relacional> = “==” | “<=” | “>=”
“<” | “>” | “!=”
<operador_booleano_unário> = “not”
<operador_booleano_binário> = “and” | “or”
<operador_comando> = “=” | “if” | “else” | “while”
<id> = <letra> {<letra>|<digito>}
<declaração_variável> = [“var”], <id> “;”
<atribuição> = <id> “=” <numero> | <data> | <string>
<comando> = <função_predefinida> | <atribuição> |
<condicional> | <expressão_aritmética> | <loop>
<condicional> = "if(", <expressão_booleana>, ")",
"{", <comando>, “}”, ["else{", <comando>, "}"]
<loop>= "while(", <expressao_booleana>, "){",
<comando>, "}"
<body> = "document{", <linhas>, "}"
<abstract> = "abstract{",<linhas>,"}"
<arquivo_fonte> = <abstract>, <body>
<cabeçalho> = "[", {<string>}, "]"
<corpo_programa> = [<cabeçalho>], {<comando> | <arquivo_fonte>}
<expressão> = <expressão_aritmética> |
<expressão_booleana> |
<expressão_concatenação>
<modificador> = <italico> | <negrito> |
<caixa_alta> | <caixa_baixa> |
<hiperlink> | <lista>
<expressão_aritmética> ::= <numero> |
"(", <expressão_aritmética> ")" |
<expressão_aritmética>, <operador_aritmético>, <expressão_aritmética>
<expressão_booleana> ::=
<booleano> |
<operador_booleano_unário> <expressão_booleana> |<expressão_booleana> <operador_booleano_binário> <expressão_booleana> |
<expressão_aritmética> <operador_relacional> <expressão_aritmética>
<expressão_concatenação> = <string_comum>, “+”, <string_comum> | <string_comum>, “+”, <numero> |
<numero>, “+”, <string_comum>
<italico> = “*”,<string_comum>,“*” | “*”,<linhas>,“*”
*texto em itálico*
<negrito> = “**”,<string_comum>,“**” | “**”,<linhas>,“**”
**texto em negrito**
<lista> = {“*”, <linha>} | {<inteiro>, “.”, <linha>}
* list a
* list g
* list c
<caixa_alta> = “upper(”, <string_comum>, “)”
<caixa_baixa> = “lower(”, <string_comum>, “)”
upper(“teste”) = TESTE
<hiperlink> = “[”, {<string_comum>} , “](”, <linha>, “)”
[ link ] ( http://teste.com )