1 /* Syntactic analyzer */
6 #include "global_vars.h"
7 #include "lexical_analyzer.h"
9 /* Syntactic analyzer functions implementation */
11 enum TokenType tokenType
;
13 static bool analyze_TEXT() {
15 if (tokenType
== MOT
) {
17 rtval
= analyze_TEXT();
18 } else if (tokenType
!= MOTCLE
&& tokenType
!= NPARA
&& tokenType
!= SECTION
&& \
19 tokenType
!= SSECTION
&& tokenType
!= FIN
) {
25 static bool analyze_P() {
27 if (tokenType
== NPARA
) {
29 if (tokenType
== MOT
) {
31 rtval
= analyze_TEXT();
34 } else if (tokenType
!= SECTION
&& tokenType
!= SSECTION
&& tokenType
!= FIN
) {
40 static bool analyze_HEAD() {
42 if (tokenType
== MOTCLE
) {
44 rtval
= analyze_TEXT();
45 if (tokenType
== MOTCLE
) {
47 rtval
= analyze_TEXT();
57 static bool analyze_H1() {
59 if (tokenType
== SECTION
) {
61 rtval
= analyze_TEXT();
68 static bool analyze_H2() {
70 if (tokenType
== SSECTION
) {
72 rtval
= analyze_TEXT();
79 static bool analyze_S2() {
84 } else if (tokenType
!= SECTION
&& tokenType
!= FIN
) {
92 static bool analyze_S1() {
98 } else if (tokenType
!= FIN
) {
106 static bool analyze_BODY() {
109 rtval
= analyze_S1();
113 bool analyze_AXIOME() {
116 rtval
= analyze_HEAD();
117 rtval
= analyze_BODY();
118 if (tokenType
!= FIN
) {