Find Jobs
Hire Freelancers

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

$25-32 USD

Avslutat
Publicerad över tio år sedan

$25-32 USD

Betalning vid leverans
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: 5161744

Om projektet

1 anbud
Distansprojekt
Senaste aktivitet tio år sedan

Ute efter att tjäna lite pengar?

Fördelar med att lägga anbud hos Freelancer

Ange budget och tidsram
Få betalt för ditt arbete
Beskriv ditt förslag
Det är gratis att registrera sig och att lägga anbud på uppdrag

Om kunden

Flagga för MAURITIUS
llllkkk, Mauritius
5,0
4
Verifierad betalningsmetod
Medlem sedan nov. 4, 2013

Kundverifikation

Tack! Vi har skickat en länk för aktivering av gratis kredit.
Något gick fel med ditt e-postmeddelande. Vänligen försök igen.
Registrerade Användare Totalt antal jobb publicerade
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Laddar förhandsgranskning
Tillstånd beviljat för geolokalisering.
Din inloggningssession har löpt ut och du har blivit utloggad. Logga in igen.