/** * 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); }
/** * Parses a sql text and try to construct the AST by ignoring all the parsing exceptions and moving to the start * token of the next possible statement; * * @param text sql text to be parsed * @param parameters parameter used by parser * @return <code>ParsingResult</code> containing root AST node and <code>ParseException</code>s. */ public synchronized ParsingResult parse(String text, ParserParameters parameters) { ParserParameters oldParameters = _parameters; setParameters(parameters); _input = text; ParsingResult result = doParse(text); result.setScope(getScope()); setParameters(oldParameters); return result; }
final protected int setScope(int scope) { return setScope("", scope); }
if (_parser != null) { findStatementStart(text, _fDocumentOffset - 1, _parser.getStatementStartTokens(), _parser .getStatementTerminators()); ParserParameters pp = new ParserParameters(useDelimiter, _editor.getSQLType()); prepareParserParameter(pp); ParsingResult result = _parser.parse(parseText + SQLParser.SPECIAL_TOKEN, pp); result.getRootNode().setDocument(doc);
ParserParameters parserParameters = new ParserParameters(true); parserParameters.setProperty(ParserParameters.PARAM_CONSUME_EXCEPTION, Boolean.FALSE); ParsingResult result = parser.parse(sql, parserParameters); return splitSQLByTerminatorLine(sql, parser.getStatementTerminators());
/** * 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; }
private void createPortabilityCheckCombo(Composite parent) { Collection dbnames = SQLToolsFacade.getSupportedDBDefinitionNames(); String[] names = (String[])dbnames.toArray(new String[dbnames.size()]); String[] nameValues = new String[names.length + 1]; nameValues[0] = PreferenceMessages.GeneralPreferencePage_portable_target; // FOR CR:403675-1 remove the portability checks option that has no parser in preference page int j = 0; for (int i = 0; i < names.length; i++) { SQLDevToolsConfiguration config = SQLToolsFacade.getConfigurationByDBDefName(names[i]); SQLParser pp = config.getSQLService().getSQLParser(); //For CR:list all supported database definitions if (pp != null && pp.isComplete()) { nameValues[j + 1] = names[i]; j++; } } String[] portNameValues = new String[j + 1]; for (int i = 0; i < j + 1; i++) { portNameValues[i] = nameValues[i]; } _portabilityCheckLabel = new Label(parent, SWT.NONE); _portabilityCheckLabel.setText(PreferenceMessages.GeneralPreferencePage_portable_check); _portabilityCheckCombo = new Combo(parent, SWT.READ_ONLY); _portabilityCheckCombo.setItems(portNameValues); }
SQLDevToolsConfiguration conf = SQLToolsFacade.getConfiguration(_editor.getDatabaseIdentifier(), connInfo.getDatabaseVendorDefinitionId()); SQLParser p = conf.getSQLService().getSQLParser(); if (p == null || !p.isComplete())
/** * 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; }
_parsingResult = parser.parse(content, new ParserParameters(useDelimiter, getSQLType())); _parsingResult.getRootNode().setDocument(getSV().getDocument()); _fSQLUpdater.setNeedToParse(false);