File: parse_cst.fparse

package info (click to toggle)
foundry 0.0.20130809-2
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 632 kB
  • ctags: 2,340
  • sloc: cpp: 6,376; yacc: 366; makefile: 192; lex: 184
file content (47 lines) | stat: -rw-r--r-- 1,158 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
%namespace foundry::parse::cst

start:          directives rules
;

directives:     -directives_chain- DIRECTIVE directives |
                -end_of_directives- /* empty */
;

rules:          -rules_chain- rule rules |
                -end_of_rules- /* empty */
;

rule:           IDENTIFIER ":" alternatives ";"
;

alternatives:   alternative alternatives_tail
;

alternatives_tail:
                -more_alternatives- "|" alternatives |
                -end_of_alternatives- /* empty */
;

alternative:    -unnamed_alternative- components |
                -named_alternative- "-" IDENTIFIER "-" components
;

components:     ( component repetition_qualifier ) *
;

repetition_qualifier:
                -no_repetition- /* empty */ |
                -zero_or_one- "?" |
                -one_or_more- "+" |
                -zero_or_more- "*"
;

component:      -symbol- IDENTIFIER |
                -literal- STRING_LITERAL |
                -group- "(" components ")" |
                -regex- REGEX
;
IDENTIFIER:     /[a-zA-Z_][a-zA-Z0-9_]*/;
REGEX:          /\/(\/|(\\.|[^*])(\\.|[^\/])*)\//;
DIRECTIVE:      /%[^\n]*/;
STRING_LITERAL: /"(\\.|[^"])*"/;