final public Rule ruleBase() throws ParseException {
 Token ruleLabel=null;
 Mode ruleMode=null;
 Temporal ruleTemporal=null;
    if (jj_2_53(7)) {
      ruleLabel = jj_consume_token(STRING);
    } else {
      ;
    }
    if (jj_2_54(7)) {
      ruleMode = modalOperator();
    } else {
      ;
    }
    if (jj_2_55(7)) {
      ruleTemporal = temporalStamp();
    } else {
      ;
    }
    jj_consume_token(RULE_LABEL_SEPARATOR);
   String  ruleLabelStr=null==ruleLabel?theory.getUniqueRuleLabel():ruleLabel.image;
   Rule rule=getDefaultRule(ruleLabelStr);
   if (null!=ruleMode) rule.setMode(ruleMode);
   if (null!=ruleTemporal) rule.setTemporal(ruleTemporal);
   {if (true) return rule;}
    throw new Error("Missing return statement in function");
  }