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

CLOSED
Bids
1
Avg Bid (USD)
$33
Project Budget (USD)
$25 - $32

Project Description:
BID ONLY IF YOU HAVE EXPERIENCE IN ANTLR ,ANTLRWORKS2 and JAVA
I want a query parser engine .Consider this example
SELECT Employees.LastName, COUNT (Orders.OrderID) AS NumberOfOrders FROM Orders
INNER JOIN Employees
ON Orders.EmployeeID=Employees.EmployeeID
WHERE LastName='Davolio' OR LastName='Fuller'
GROUP BY LastName
HAVING COUNT (Orders.OrderID) > 25;

I want to parse this select statement and retrieve this elements by calling methods.
For example
getStatement() -> “select”
getColumn() -> [Employees.LastName, COUNT (Orders.OrderID)]
getColumnAliase() ->[null, NumberOfOrders]
getJoin() -> [Orders INNER JOIN Employees]
getJoinCondition() -> [ON Orders.EmployeeID=Employees.EmployeeID]
getWhere() -> [OR]
getOr() -> [LastName='Davolio', LastName='Fuller']
getGroupBy() -> [LastName]
getHaving() -> [COUNT (Orders.OrderID) > 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()

Skills required:
Java, SQL
About the employer:
Verified
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.


$ 33
in 3 days