-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDOC.txt
More file actions
20 lines (14 loc) · 695 Bytes
/
Copy pathDOC.txt
File metadata and controls
20 lines (14 loc) · 695 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Pour signaler que l'on souhaite pour acceder à l'arbre on utilisera:
named!("id", id)
Un règle sera déclaré comme il suit:
rule!("hello", named!("Or", ruleOr!(id, number)))
rule doit contenir une method templeté "lex" comme il suit:
lex_return lex(string txt, size_t index, string name = "?")();
En erreur elle devra renvoyer:
lex_error(begin, indexErreur, MSG)
Sinon:
lex_success(begin, end, value)
La grammaire sera la suivante:
root = [id:name '=' rule_body:rule]*
rule_body = ['[' [rule_element]+:content ']' ['+' | '?' | '*']?:postfix]
rule_element = [ [[id | char_lit | string_lit | number | rule_body]:type [':' id:name]?:name ]+('|') ]