code: protected PseudoExpression expression() throws ParserException {
  
          List<Item> items = new ArrayList<Item>();
          StringBuilder sb = new StringBuilder();
          int initialPos = pos;
  
          if (current == '\'' || current == '"') {
          	//string
          	Character quote = current;
              StringValue s = string();
              sb.append(quote);
              sb.append(s.getContext().toString());
              sb.append(quote);
              items.add(new Item(Type.STRING, s.getActualValue()));
  
              return new PseudoExpression(items, null, s.getActualValue(), new Context(content, sb.toString(), initialPos, pos));
          } else {
  
          	while (!end()) {
  	            if (current == '+') {
  	                items.add(new Item(Type.SIGNAL, "+"));
  	                sb.append(current);
  	                next();
  	            } else if (current == '-') {
  	                items.add(new Item(Type.SIGNAL, "-"));
  	                sb.append(current);
  	                next();
  	            } else if (Character.isLetter(current)) {
  	                //identifier
  	                String ident = simpleIdentifier();
  	                sb.append(ident);
  	                items.add(new Item(Type.IDENTIFIER, ident));
  	            } else if (Character.isDigit(current)) {
  	                //number or dimension
  	                String number = number();
  	                sb.append(number);
  	                items.add(new Item(Type.NUMBER, number));
  	            } else {
  	                break;
  	            }
  	            ignoreWhitespaces();
  	        }
  
          }
          return new PseudoExpression(items, PseudoExpressionEvaluator.evaluate(items), sb.toString(), new Context(content, sb.toString(), initialPos, pos));
  
      }
docs: expression
  // In CSS3, the expressions are identifiers, strings,
  // or of the form "an+b"
  : [ [ PLUS | '-' | DIMENSION | NUMBER | STRING | IDENT ] S* ]+
  
  {num}{ident}     return DIMENSION;
  {num}            return NUMBER;