/** * Parses the given sql text using the default parameter. Records the abstract syntax tree nodes and accumulates * <code>ParseException</code> in the <code>ParsingResult</code>. * * @param text sql text to be parsed * @return <code>ParsingResult</code> containing root AST node and <code>ParseException</code>s. */ public synchronized ParsingResult parse(String text) { ParserParameters param = new ParserParameters(false, SQLParserConstants.TYPE_SQL_ROOT); return parse(text, param); }
/** * Parse the given sp definition and returns the parameter name/IASTSQLParam pairs. * * @param databaseIdentifier used to determine the db type * @param sp the sp definition * @return */ public static HashMap getSPParams(DatabaseIdentifier databaseIdentifier, String sp) { HashMap map = new HashMap(); SQLParser parser = SQLToolsFacade.getSQLParser(databaseIdentifier.getProfileName(), ""); IDocument doc = new Document(sp); ParsingResult result = parser.parse(sp, new ParserParameters(false)); HashMap params = result.getParameters(doc, doc.getLength() - 1); return params; }
/** * Updates the source by giving it a new name * @param newName should be quoted when necessary * @return */ public boolean updateName(String newName) { String body = getBody(); ParsingResult result = _parser.parse(body, _parserParameters); IASTStart root = result.getRootNode(); for (int i = 0; i < root.jjtGetNumChildren(); i++) { Node node = root.jjtGetChild(i); if (node instanceof IASTDeployable) { Node nameNode = ((IASTDeployable) node).getNameNode(); Token nameToken = nameNode.getLastToken(); int[] range = _parser.getRange(nameToken); body = body.substring(0, range[0]) + newName + body.substring(range[1]); setBody(body); return true; } } return false; }
ParserParameters parserParameters = new ParserParameters(true); parserParameters.setProperty(ParserParameters.PARAM_CONSUME_EXCEPTION, Boolean.FALSE); ParsingResult result = parser.parse(sql, parserParameters);
ParserParameters pp = new ParserParameters(useDelimiter, _editor.getSQLType()); prepareParserParameter(pp); ParsingResult result = _parser.parse(parseText + SQLParser.SPECIAL_TOKEN, pp); result.getRootNode().setDocument(doc);
_parsingResult = parser.parse(content, new ParserParameters(useDelimiter, getSQLType())); _parsingResult.getRootNode().setDocument(getSV().getDocument()); _fSQLUpdater.setNeedToParse(false);