Parses the "DirPIConstructor" rule. Parses the "DirPIContents" rule. @return query expression @throws QueryException query exception
()
| 3316 | * @throws QueryException query exception |
| 3317 | */ |
| 3318 | private Expr dirPI() throws QueryException { |
| 3319 | final byte[] name = ncName(NOPINAME, false); |
| 3320 | if(eq(lc(name), XML)) throw error(PIXML_X, name); |
| 3321 | |
| 3322 | final boolean space = skipWs(); |
| 3323 | final TokenBuilder tb = new TokenBuilder(); |
| 3324 | while(true) { |
| 3325 | final int cp = consume(); |
| 3326 | if(cp == 0) throw error(NOPI); |
| 3327 | if(cp == '?' && consume('>')) { |
| 3328 | return new CPI(info(), false, Str.get(name), Str.get(tb.finish())); |
| 3329 | } |
| 3330 | if(!space) throw error(NOPI); |
| 3331 | tb.add(cp); |
| 3332 | } |
| 3333 | } |
| 3334 | |
| 3335 | /** |
| 3336 | * Parses the "CDataSection" rule. |