code: private Section parseSection(boolean mediaQuery) {
          Section section = new Section();
          parseSectionSelector(mediaQuery, section);
          tokenizer.consumeExpectedSymbol("{");
          while (tokenizer.more()) {
              if (tokenizer.current().isSymbol("}")) {
                  tokenizer.consumeExpectedSymbol("}");
                  return section;
              }
              // Parse "normal" attributes like "font-weight: bold;"
              if (isAtAttribute()) {
                  Attribute attr = parseAttribute();
                  section.addAttribute(attr);
              } else if (tokenizer.current().isKeyword(KEYWORD_MEDIA)) {
                  // Take care of @media sub sections
                  section.addSubSection(parseSection(true));
              } else if (tokenizer.current().isKeyword(KEYWORD_INCLUDE)) {
                  parseInclude(section);
              } else if (tokenizer.current().isKeyword(KEYWORD_EXTEND)) {
                  parseExtend(section);
              } else {
                  // If it is neither an attribute, nor a media query or instruction - it is probably a sub section...
                  section.addSubSection(parseSection(false));
              }
          }
          tokenizer.consumeExpectedSymbol("}");
          return section;
      }
docs: Parses a "section" which is either a media query or a css selector along with a set of attributes.
  
  @param mediaQuery determines if we're about to parse a media query or a "normal" section
  @return the parsed section