code: public AbstractPrintQuery addPhrase(final String _key,
                                          final String _phraseStmt)
          throws EFapsException
      {
          ValueList list = null;
  
          final ValueParser parser = new ValueParser(new StringReader(_phraseStmt));
          try {
              list = parser.ExpressionString();
          } catch (final ParseException e) {
              throw new EFapsException(PrintQuery.class.toString(), e);
          }
          final Phrase phrase = new Phrase(_key, _phraseStmt, list);
          this.key2Phrase.put(_key, phrase);
  
          for (final String selectStmt : list.getExpressions()) {
              final OneSelect oneselect = new OneSelect(this, selectStmt);
              this.allSelects.add(oneselect);
              phrase.addSelect(oneselect);
              oneselect.analyzeSelectStmt();
          }
          return this;
      }
docs: Add a Phrase to this PrintQuery. A Phrase is something like:
  <code>"$&lt;attribute[LastName]&gt; - $&lt;attribute[FirstName]&gt;"</code>
  This would return " John - Doe". One Phrase can contain various selects
  as defined for {@link #addSelect(String...)} and string to connect them.
  
  @param _key key the phrase can be accessed
  @param _phraseStmt phrase to add
  @throws EFapsException on error
  @return this PrintQuery