summaryrefslogtreecommitdiff
path: root/pkgtools/pkglint/files/license.y
blob: 802fc8a3713e107f308246f452f73c9a3c09f489 (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
%{
package main
%}

%token <Node> ltNAME
%token ltAND ltOR ltOPEN ltCLOSE

%union {
	Node *LicenseCondition
}

%type <Node> start list condition

%%

start : list {
	liyylex.(*licenseLexer).result = $$
}

list : condition {
	$$ = $1
}
list : list ltAND condition {
	$$.And = append($$.And, $3)
}
list : list ltOR condition {
	$$.Or = append($$.Or, $3)
}

condition : ltNAME {
	$$ = $1
}
condition : ltOPEN list ltCLOSE {
	$$ = &LicenseCondition{Main: $2}
}