File: grammar

package info (click to toggle)
bisonc%2B%2B 6.09.02-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 5,984 kB
  • sloc: cpp: 9,375; ansic: 1,505; fortran: 1,134; makefile: 1,062; sh: 526; yacc: 84; lex: 60
file content (57 lines) | stat: -rw-r--r-- 1,597 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
48
49
50
51
52
53
54
55
56
57
//%debug
//%print-tokens
//%no-lines
%filenames parser
%default-actions off
%scanner    ../scanner/scanner.h
%token-path ../tokens/tokens.h

%baseclass-preinclude preheaders.h


%token BASECLASS_HEADER BASECLASS_PREINCLUDE BLOCK CLASS_HEADER CLASS_NAME
        CONSTRUCTOR_CHECKS DEBUGFLAG DEFAULT_ACTIONS ERROR_VERBOSE EXPECT
        FILENAMES FLEX IDENTIFIER IMPLEMENTATION_HEADER LEFT LOCATIONSTRUCT
        LSP_NEEDED LTYPE NAMESPACE NEG_DOLLAR NOLINES NONASSOC NUMBER
        PARSEFUN_SOURCE POLYMORPHIC PREC PRINT_TOKENS QUOTE REQUIRED RIGHT
        SCANNER SCANNER_CLASS_NAME SCANNER_MATCHED_TEXT_FUNCTION
        SCANNER_TOKEN_FUNCTION STACK_EXPANSION START STRING STYPE
        TARGET_DIRECTORY TOKEN TWO_PERCENTS TYPE UNION WARN_TAGS WEAK_TAGS
        PROMPT THREAD_SAFE TOKEN_CLASS TOKEN_NAMESPACE TOKEN_PATH 
        
%polymorphic    BOOL:       bool;
                SIZE_T:     size_t;
                TEXT:       std::string;
                BLOCK:      Block;
                TERMINAL:   Terminal *;
                SYMBOL:     Symbol *

%type <TEXT>    identifier
%type <BOOL>    optNumber
%type <SIZE_T>  _pushPrecedence _precSpec

   // NEW: USE THIS TO ASSIGN A GENERIC POLYMORPHIC VALUE TO (NON-)TERMINALS
    // these (non-)terminals MUST explicitly return an STYPE_
%type <STYPE_> _productionElements _productionElement

%%

input:
    directives
    _two_percents
    rules
    optTwo_percents
;

_two_percents:
    TWO_PERCENTS
    {
        expectRules();
    }
;

%include inc/identifier
%include inc/typename
%include inc/opt
%include inc/directives
%include inc/rules