Consider the following Jison grammar:
%lex
%%
\s+ { /* skip whitespace */ }
"the"|"a" { return "ARTICLE"; }
"go"|"jump"|"run"|"like"|"eat" { return "VERB"; }
"dog"|"cat"|"fish"|"fox"|"moose" { return "NOUN"; }
"blue"|"red"|"orange"|"white"|"big"|"small" { return "ADJECTIVE"; }
"quickly"|"easily"|"slowly" { return "ADVERB"; }
"over"|"under"|"around"|"through"|"between" { return "PREPOSITION"; }
"."|"!" { return "PUNCTUATION"; }
<<EOF>> { return "EOF"; }
. { return "INVALID"; }
/lex
%start ss
%% /* language grammar */
ss
: s "EOF"
;
s
: nphrase "VERB" "PUNCTUATION"
| nphrase "VERB" vmodifier "PUNCTUATION"
| nphrase "VERB" nphrase "PUNCTUATION"
;
nphrase
: modifiednoun
| "ARTICLE" modifiednoun
;
modifiednoun
: "NOUN"
| nmodifier modifiednoun
;
nmodifier
: "ADJECTIVE"
| "ADVERB" nmodifier
;
vmodifier
: "ADVERB"
| "ADVERB" vmodifier
| "PREPOSITION" nphrase
;
Now consider the following five strings:
How many of these strings are parsed successfully according to the grammar above?
3
For this problem, you must focus on the details of the given grammar instead of relying on your vast experience with actual English sentences.