Find Jobs
Hire Freelancers

ANTLR parser for SQL-like grammar, in java ,antlrworks2 - repost

$10-30 USD

Closed
Posted over 10 years ago

$10-30 USD

Paid on delivery
BID ONLY IF YOU HAVE EXPERIENCE IN ANTLR ,ANTLRWORKS2 and JAVA I want a query parser engine .Consider this example SELECT [login to view URL], COUNT ([login to view URL]) AS NumberOfOrders FROM Orders INNER JOIN Employees ON Orders.EmployeeID=[login to view URL] WHERE LastName='Davolio' OR LastName='Fuller' GROUP BY LastName HAVING COUNT ([login to view URL]) > 25; I want to parse this select statement and retrieve this elements by calling methods. For example getStatement() -> “select” getColumn() -> [[login to view URL], COUNT ([login to view URL])] getColumnAliase() ->[null, NumberOfOrders] getJoin() -> [Orders INNER JOIN Employees] getJoinCondition() -> [ON Orders.EmployeeID=[login to view URL]] getWhere() -> [OR] getOr() -> [LastName='Davolio', LastName='Fuller'] getGroupBy() -> [LastName] getHaving() -> [COUNT ([login to view URL]) > 25] The parser engine should support select , insert , delete and update only. Use antlr 4.1 and antlrworks2. Avoid using pakages and comments a few word on the coding See the syntaxes below 1.0 SELECT STATEMENT SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ [ AS ] output_name ] [, ...] [ FROM from_item [, ...] ] [ WHERE condition ] [ GROUP BY expression [, ...] ] [ HAVING condition [, ...] ] [ ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS { FIRST | LAST } ] where from_item can be one of: [ ONLY ] table_name [ * ] [ [ AS ] alias [ ( column_alias [, ...] ) ] ] ( select )-> i.e a sub query [ AS ] alias [ ( column_alias [, ...] ) ] from_item [ NATURAL ] join_type from_item [ ON join_condition | USING ( join_column [, ...] ) ] METHODS: getStatement() -> return first token i.e select getColumn() -> return all field name or * found after select getArithmeticOperator -> return arithmetic operator getColumnAliase()-> return aliase from table getFrom () -> return all table name along with aliases getJoin() -> return all join found in the from_item getJoinCondition() -> return all the conditions of join getTableAliase() getWhere() -> return all conditions i.e and , or , like getAnd() -> return the 2 conditions found between and condition getOr() -> return the 2 condition lies between or getLike() getBetween() getSubSelect() -> return sub select statement getGroupBy() getHaving() ALL THE METHODS ABOVE SHOULD RETURN AS AN ARRAY OF STRING EXCEPT THE getSubSelect() , which should return as string which contain the subselect string that can parse again. 2.0 INSERT STATEMENT INSERT INTO table_name [ ( column_name [, ...] ) ] { DEFAULT VALUES | VALUES ( { expression | DEFAULT } [, ...] ) [, ...] | query } REFER TO SELECT STATEMENT TO KNOW RETURN VALUE getStatement() -> return first token i.e insert getTableName() getFieldName() getSubSelect() 3.0 DELETE STATEMENT DELETE FROM [ ONLY ] table_name [ * ] [ [ AS ] alias ] [ WHERE condition] REFER TO SELECT STATEMENT TO KNOW RETURN VALUE getStatement() -> return first token i.e delete getTableName() -> table name getWhere() -> return all conditions i.e and , or , like getAnd() -> return the 2 conditions found between and condition getOr() -> return the 2 condition lies between or getLike() getBetween() 4.0 UPDATE STATEMENT UPDATE [ ONLY ] table_name [ * ] [ [ AS ] alias ] SET { column_name = { expression | DEFAULT } | ( column_name [, ...] ) = ( { expression | DEFAULT } [, ...] ) } [, ...] [ FROM from_list ] [ WHERE condition] REFER TO SELECT STATEMENT TO KNOW RETURN VALUE getStatement() -> return first token i.e update getTableName() -> table name getWhere() -> return all conditions i.e and , or , like getAnd() -> return the 2 conditions found between and condition getOr() -> return the 2 condition lies between or getLike() getBetween() getSubSelect()
Project ID: 5137206

About the project

Remote project
Active 10 yrs ago

Looking to make some money?

Benefits of bidding on Freelancer

Set your budget and timeframe
Get paid for your work
Outline your proposal
It's free to sign up and bid on jobs

About the client

Flag of MAURITIUS
llllkkk, Mauritius
5.0
4
Payment method verified
Member since Nov 4, 2013

Client Verification

Thanks! We’ve emailed you a link to claim your free credit.
Something went wrong while sending your email. Please try again.
Registered Users Total Jobs Posted
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759) & Freelancer Online India Private Limited (CIN U93000HR2011FTC043854)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Loading preview
Permission granted for Geolocation.
Your login session has expired and you have been logged out. Please log in again.