private void bracketing(PhraseStructure phraseStructure, int start, int end, PhraseStructureNode parent) throws MaltChainedException {
		int bracketsdepth = 0;
		int startpos = start-1;
		for (int i = start, n = end; i < n; i++) {
			if (input.charAt(i) == STARTING_BRACKET
					// Start BracketProgLangReader
					&& (i == 0 || input.charAt(i - 1) != '\\')
					// end BracketProgLangReader
			
			) {
				if (bracketsdepth == 0) {
					startpos = i;
				}
				bracketsdepth++;
			} else if (input.charAt(i) == CLOSING_BRACKET
					// Start BracketProgLangReader
					&& (i == 0 || input.charAt(i - 1) != '\\')
					// end BracketProgLangReader
			) {
				bracketsdepth--;
				if (bracketsdepth == 0) {
					extract(phraseStructure, startpos+1, i, parent);
				}	
			}
		}
	}