|
|
| parser_test |
% FILE: parser_test.m
% PURPOSE: Exercise parser
% METHOD: Use lexer to get tokens, call parser on token codes
% NOTE: requires R14Sp2 or later
function parser_test
src = 'a=1000; b=(a+((1))); longid=1+2-3*4/5\6;';
disp(['parsing ' src]);
[tc, ts, te] = lexer(src); % lex source text
sr = parser(tc); % parse token codes
% Display results
disp(src); % the input
i = 1;
while i<=length(sr) % shift/reduce sequence
r = sr(i); % rule
if r == 1, % shift rule
i = i + 1; % get parameter
r = sr(i); % id or constant
disp(['shift ''' src(ts(r):te(r)) '''']);
else
disp(['rule ' num2str(r)]);
end
i = i + 1; % next rule
end
|
|
Contact us at files@mathworks.com