Backend/Core/ForTea.Core/TemplateProcessing/CodeCollecting/State/T4InfoCollectorStateSeenFeature.cs [28:49]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - else if (element.NodeType == T4TokenNodeTypes.RAW_TEXT) { // At this point, LastToken is initialized through ConsumeTokenSafe call var builder = new StringBuilder(Convert(LastToken)); return new T4InfoCollectorStateSeenFeatureAndText(builder, Interrupter, element); } var data = T4FailureRawData.FromElement(element, "Unexpected element after feature"); Interrupter.InterruptAfterProblem(data); return this; } } public override bool FeatureStarted => true; public override void ConsumeToken(IT4Token token) { if (token.NodeType != T4TokenNodeTypes.NEW_LINE) LastToken = token; } public override string Produce(ITreeNode lookahead) => null; public override string ProduceBeforeEof() => null; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Backend/Core/ForTea.Core/TemplateProcessing/CodeCollecting/State/T4InfoCollectorStateSeenFeatureAndExpressionBlock.cs [42:62]: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - else if (element.NodeType == T4TokenNodeTypes.RAW_TEXT) { var builder = new StringBuilder(Convert(LastToken)); return new T4InfoCollectorStateSeenFeatureAndText(builder, Interrupter, element); } var data = T4FailureRawData.FromElement(element, "Unexpected element after feature"); Interrupter.InterruptAfterProblem(data); return this; } } public override bool FeatureStarted => true; public override void ConsumeToken(IT4Token token) { if (token.NodeType != T4TokenNodeTypes.NEW_LINE) LastToken = token; } public override string Produce(ITreeNode lookahead) => null; public override string ProduceBeforeEof() => null; - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -