Первое, с чем надо разобраться - это как создаются токены и как их передавать из сканера в парсер.
(сканер - это то, что получается на выходе gplex, парсер - это то, что получается на выходе gppg)
В парсере, в файле parser1.y пишем
%token A, B, C
%%
%%
запускаем gppg с ключём /gplex
и смотрим на сгенерированный файл.
там должны быть нагенерированы константы, примерно таким образом:
public enum Tokens {error=127, EOF=128, ... }
Эти константы возвращаются из сканера функцией
public abstract int yylex();
а всякая дополнительная информация лежит рядом:
public TValue yylval;
public TSpan yylloc { get; set; }
Это позволяет в момент свёртки правила перебрать входящие в правило токены и что-нибудь навычислять, используя yylval этих токенов.
Отредактировано Arsen.Shnurkov (2017-05-06 14:04:45)