Я пытаюсь перенести проект antlr java на C ++.В Java я смог получить исходный текст, получив справку от Как получить исходный текст, которому соответствует правило antlr4? Это было потрясающе !!
Моя попытка в C ++,
CharStream *input = ctx->start->getInputStream();
int a = ctx->start->getStartIndex();
int b = ctx->start->getStopIndex();
IntervalSet interval = IntervalSet(a,b);
string text = input->getText(interval.getIntervals()[2]);
Этот метод getIntervals () помогает мне так же, как он работал в Java.
Не работает должным образом в C ++:
CharStream *input = ctx->start->getInputStream();
int a = ctx->start->getStartIndex();
int b = ctx->start->getStopIndex();
IntervalSet interval = IntervalSet(a,b);
string text = input->getText(interval.getIntervals()[2]);
При такой попытке,Я не получаю пробелы,
string text = ctx->getText();
получаю текст без пробелов.
intmain(){cout<<"Hello, World!";strncpy(pStr,pStart,len);for(i=0;i<10;i++){j=i*i;i=j/5;}return0;}