51 lines
680 B
Plaintext
51 lines
680 B
Plaintext
parser grammar TurtleParser;
|
|
|
|
options {
|
|
language = Java;
|
|
tokenVocab = TurtleLexer;
|
|
k = 1;
|
|
}
|
|
|
|
@header {
|
|
package TP1;
|
|
}
|
|
|
|
// On syntax error, raise exception rather than silently recovery
|
|
@rulecatch {
|
|
catch (RecognitionException e) {
|
|
reportError(e) ;
|
|
throw(e) ;
|
|
}
|
|
}
|
|
|
|
@members {
|
|
|
|
}
|
|
prog : bloc EOF
|
|
;
|
|
bloc : sujet listvc P
|
|
;
|
|
sujet : LC entity RC
|
|
;
|
|
listvc : LC vc RC more
|
|
;
|
|
more : SEMI listvc
|
|
|
|
|
;
|
|
vc : LC verbe RC listc
|
|
;
|
|
listc : LC comp RC morec
|
|
;
|
|
morec : V comp
|
|
|
|
|
;
|
|
entity : ID
|
|
;
|
|
verbe : ID
|
|
;
|
|
comp : ID
|
|
;
|
|
|
|
|
|
turtle
|
|
returns[TurtleAST t]: EOF { $t = null ; }; |