private void parseLine(ContainerSqlFragment container, Line line) {
    String trimmed = line.lineTrimmed();
    if (trimmed.length() == 0) {
      return;
    }
    if (trimmed.contains("@INCLUDE")) {
      parseIncludeTag(container, line);
      
    } else  if (trimmed.contains("@LIKE")) {
      parseOperatorTag(container, line, "@LIKE");
      
    } else  if (trimmed.contains("@EQUALS")) {
      parseOperatorTag(container, line, "@EQUALS");
        
    } else  if (trimmed.contains("@OFFSETFETCH")) {
      parseOffsetFetchTag(container, line);
      
    } else  if (trimmed.contains("@FETCH")) {
      parseFetchTag(container, line);
      
    } else  if (trimmed.contains("@VALUE")) {
      parseValueTag(container, line);
      
    } else  if (trimmed.contains("@LOOPJOIN")) {
      TextSqlFragment textFragment = new TextSqlFragment(trimmed, line.endOfLine());
      container.addFragment(textFragment);
      
    } else if (trimmed.startsWith("@")) {
      throw new IllegalArgumentException("Unknown tag at start of line: " + line);
      
    } else {
      TextSqlFragment textFragment = new TextSqlFragment(trimmed, line.endOfLine());
      container.addFragment(textFragment);
    }
  }