summaryrefslogtreecommitdiffstats
path: root/kate/tests/highlight.y
blob: f7715e6dbe2f7b8e9838412c821fd6f573a14a0f (plain)
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
/* Yacc / Bison hl test file.
 * It won't compile :-) Sure !
 */

%{

#include <iostream>
using namespace std;

extern KateParser *parser;

%}

%locations

%union { 
   int int_val;
   double double_val;
   bool bool_val;
   char *string_val;
   char *ident_val;
   struct var *v;
   void *ptr;
}

%token <int_val>      TOK_NOT_EQUAL  "!="
%token <int_val>      TOK_LESSER_E   "<="
%token <int_val>      TOK_GREATER_E  ">="
%token <int_val>      TOK_EQUAL_2    "=="

%type <int_val>       type type_proc

%%

prog:                 KW_PROGRAM ident { parser->start($2); } prog_beg_glob_decl instructions { parser->endproc(0); } dev_procedures KW_ENDP ;

number:               integer_number
                      | TOK_DOUBLE
                      {
                         $$ = new var;
                         $$->type = KW_REEL;
                         $$->cl = var::LITTERAL;
                         $$->real = $<int_val>1;
                      };

%%

#include <stdio.h>

int main(void)
{
  puts("Hello, World!");
  return 0;
}