docs: private Expression checker(Data data) throws TemplateException {
  	Expression expr = null;
  	// String
  	if ((expr = string(data)) != null) {
  	    expr = subDynamic(data, expr, false, false);
  	    data.mode = STATIC;// (expr instanceof Literal)?STATIC:DYNAMIC;// STATIC
  	    return expr;
  	}
  	// Number
  	if ((expr = number(data)) != null) {
  	    expr = subDynamic(data, expr, false, false);
  	    data.mode = STATIC;// (expr instanceof Literal)?STATIC:DYNAMIC;// STATIC
  	    return expr;
  	}
  	// closure
  	if ((expr = closure(data)) != null) {
  	    data.mode = DYNAMIC;
  	    return expr;
  	}
  	// lambda
  	if ((expr = lambda(data)) != null) {
  	    data.mode = DYNAMIC;
  	    return expr;
  	}
  
  	// Dynamic
  	if ((expr = dynamic(data)) != null) {
  	    expr = newOp(data, expr);
  	    expr = subDynamic(data, expr, true, false);
  	    data.mode = DYNAMIC;
  	    return expr;
  	}
  	// Sharp
  	if ((expr = sharp(data)) != null) {
  	    data.mode = DYNAMIC;
  	    return expr;
  	}
  	// JSON
  	if ((expr = json(data, JSON_ARRAY, '[', ']')) != null) {
  	    expr = subDynamic(data, expr, false, false);
  	    data.mode = DYNAMIC;
  	    return expr;
  	}
  	if ((expr = json(data, JSON_STRUCT, '{', '}')) != null) {
  	    expr = subDynamic(data, expr, false, false);
  	    data.mode = DYNAMIC;
  	    return expr;
  	}
  	// else Error
  	throw new TemplateException(data.srcCode, "Syntax Error, Invalid Construct");
      }