Currently, messages and sub-messages like #3 is the answer can't be parsed. The reason for this is that we're using PEGjs, a PEG parser, which commits to the first match. For messages that start with referents, it tries to parse the whole expression directly as a referent and fails, but can't backtrack. ALBA is using pyparsing, which supports Or expressions (defined using the ^ operator) that try all options and use the longest match.
Currently, messages and sub-messages like
#3 is the answercan't be parsed. The reason for this is that we're using PEGjs, a PEG parser, which commits to the first match. For messages that start with referents, it tries to parse the whole expression directly as a referent and fails, but can't backtrack. ALBA is using pyparsing, which supports Or expressions (defined using the ^ operator) that try all options and use the longest match.