@Override
    protected void _parse() throws Exception {
        byte[] peeked = peek(4);
        String sp = new String(peeked).trim();
        // Read a constant value (number or a string)
        if (peeked[0] == '"' || peeked[0] == '\'') {
            this.value = readString(is);
        } else if (sp.toLowerCase().startsWith("not")) {
            this.value = SystemConsts.NOT_NULL.value();
            sysConsts = SystemConsts.NOT_NULL;
            read(SystemConsts.NOT_NULL.value().length());
        } else if (sp.equalsIgnoreCase(SystemConsts.NULL.value())) {
            this.value = SystemConsts.NULL.value();
            sysConsts = SystemConsts.NULL;
            read(SystemConsts.NULL.value().length());
        } else {
            this.value = readNumber(is);
        }
    }
Constant value can be:

<ol>
  <li>List of values (a,b,c)
  <li>Range of values (m AND n)
  <li>A value (x)
  <li>A value is either a string or a number
</ol>
es6-persistence/src/main/java/com/netflix/conductor/es6/dao/query/parser/internal/ConstValue.java