private void createParentheticals(JCas jCas, String text, int offset)
     throws AnalysisEngineProcessException {
   Stack<Integer> leftRoundedParens = new Stack<Integer>();
   leftRoundedParens.clear();
   for (int ci = 0; ci < text.length(); ci++) {
     char c = text.charAt(ci);
     if (c == leftParen) {
       leftRoundedParens.push(ci);
     }
     if (c == rightParen && !leftRoundedParens.isEmpty()) {
       int leftOffset = leftRoundedParens.pop();
       Annotation ann;
       try {
         ann = parentheticalConstructor.newInstance(jCas, offset + leftOffset, offset + ci + 1);
       } catch (Exception e) {
         throw new AnalysisEngineProcessException(e);
       }
       ann.addToIndexes();
     }
   }
 }