docs: private void patternSource(PatternDescrBuilder<?> pattern) throws RecognitionException {
          match(input,
                  DRL6Lexer.ID,
                  DroolsSoftKeywords.FROM,
                  null,
                  DroolsEditorType.KEYWORD);
          if (state.failed)
              return;
  
          if (state.backtracking == 0) {
              helper.emit(Location.LOCATION_LHS_FROM);
          }
  
          if (helper.validateIdentifierKey(DroolsSoftKeywords.ACCUMULATE) || helper.validateIdentifierKey(DroolsSoftKeywords.ACC)) {
              fromAccumulate(pattern);
          } else if (helper.validateIdentifierKey(DroolsSoftKeywords.COLLECT)) {
              fromCollect(pattern);
          } else if (helper.validateIdentifierKey(DroolsSoftKeywords.ENTRY) &&
                  helper.validateLT(2,
                          "-") &&
                  helper.validateLT(3,
                          DroolsSoftKeywords.POINT)) {
              fromEntryPoint(pattern);
              if (state.failed)
                  return;
          } else if (helper.validateIdentifierKey(DroolsSoftKeywords.WINDOW)) {
              fromWindow(pattern);
          } else {
              fromExpression(pattern);
              if (!lastTokenWasWhiteSpace() && input.LA(1) == DRL6Lexer.EOF) {
                  helper.emit(Location.LOCATION_LHS_FROM);
                  throw new RecognitionException();
              }
              if (state.failed)
                  return;
          }
          if (input.LA(1) == DRL6Lexer.SEMICOLON) {
              match(input,
                      DRL6Lexer.SEMICOLON,
                      null,
                      null,
                      DroolsEditorType.SYMBOL);
              if (state.failed)
                  return;
          }
      }