commit 496c9830b6d527c16c90148b5a804e13cf44e8bf Author: Tanmai Khanna Date: Thu Jul 16 00:51:48 2020 +0530 wordbound blank handling for analysis, tmanalysis, postgeneration diff --git a/lttoolbox/fst_processor.cc b/lttoolbox/fst_processor.cc index 5f3f593..103c339 100644 --- a/lttoolbox/fst_processor.cc +++ b/lttoolbox/fst_processor.cc @@ -305,7 +305,18 @@ FSTProcessor::readAnalysis(FILE *input) return altval; case L'[': - blankqueue.push(readFullBlock(input, L'[', L']')); + val = static_cast(fgetwc_unlocked(input)); + + if(val == L'[') + { + blankqueue.push(readWblank(input)); + } + else + { + ungetc(val, input); + blankqueue.push(readFullBlock(input, L'[', L']')); + } + input_buffer.add(static_cast(L' ')); return static_cast(L' '); @@ -356,7 +367,18 @@ FSTProcessor::readTMAnalysis(FILE *input) return altval; case L'[': - blankqueue.push(readFullBlock(input, L'[', L']')); + val = static_cast(fgetwc_unlocked(input)); + + if(val == L'[') + { + blankqueue.push(readWblank(input)); + } + else + { + ungetc(val, input); + blankqueue.push(readFullBlock(input, L'[', L']')); + } + input_buffer.add(static_cast(L' ')); isLastBlankTM = true; return static_cast(L' '); @@ -425,7 +447,18 @@ FSTProcessor::readPostgeneration(FILE *input) return altval; case L'[': - blankqueue.push(readFullBlock(input, L'[', L']')); + val = static_cast(fgetwc_unlocked(input)); + + if(val == L'[') + { + blankqueue.push(readWblank(input)); + } + else + { + ungetc(val, input); + blankqueue.push(readFullBlock(input, L'[', L']')); + } + input_buffer.add(static_cast(L' ')); return static_cast(L' ');