code: protected LexicalUnit functionInternal(final LexicalUnit prev, final String funct,
              final LexicalUnit params) {
  
          if ("counter(".equalsIgnoreCase(funct)) {
              return LexicalUnitImpl.createCounter(prev, params);
          }
          else if ("counters(".equalsIgnoreCase(funct)) {
              return LexicalUnitImpl.createCounters(prev, params);
          }
          else if ("attr(".equalsIgnoreCase(funct)) {
              return LexicalUnitImpl.createAttr(prev, params.getStringValue());
          }
          else if ("rect(".equalsIgnoreCase(funct)) {
              return LexicalUnitImpl.createRect(prev, params);
          }
          else if ("rgb(".equalsIgnoreCase(funct)) {
              return LexicalUnitImpl.createRgbColor(prev, params);
          }
          return LexicalUnitImpl.createFunction(
              prev,
              funct.substring(0, funct.length() - 1),
              params);
      }
docs: Process a function decl.
  
  @param prev the previous lexical unit
  @param funct the function
  @param params the params
  @return a lexical unit