public Parser signPrimaryCondition() {
        if (signPrimaryConditionParser == null) {
           FutureParser future = scoped("signPrimaryCondition");
           signPrimaryConditionParser = future;
           future.setParser(
               sequence(
                   choice(
                       arithmeticExpression(),
                       identifier()
                   ),
                   optional(
                       token("IS")
                   ),
                   optional(
                       negationOp()
                   ),
                   signType()
               )
           );
        }

        return signPrimaryConditionParser;
    }