private Node parseDecision() {
		Decision result = new Decision(this);
		Expression expr = new Expression(this);
		result.append(expr);
		
		while (offset < input.length()) {
			char c = input.charAt(offset);
			
			if (c == ')') {
				offset++;
				break;
			}
			else if (c == '|') {
				offset++;
				expr = new Expression(this);
				result.append(expr);
			}
			else {
				Node node = decide();
				if (node != null) {
					expr.append(node);
				}
			}
		}
		parseQuantifier(result);
		return result;
	}