Find Jobs
Hire Freelancers

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

$25-32 USD

Cerrado
Publicado hace más de 10 años

$25-32 USD

Pagado a la entrega
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()
ID del proyecto: 5161744

Información sobre el proyecto

1 propuesta
Proyecto remoto
Activo hace 10 años

¿Buscas ganar dinero?

Beneficios de presentar ofertas en Freelancer

Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos

Sobre este cliente

Bandera de MAURITIUS
llllkkk, Mauritius
5,0
4
Forma de pago verificada
Miembro desde nov 4, 2013

Verificación del cliente

¡Gracias! Te hemos enviado un enlace para reclamar tu crédito gratuito.
Algo salió mal al enviar tu correo electrónico. Por favor, intenta de nuevo.
Usuarios registrados Total de empleos publicados
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
Cargando visualización previa
Permiso concedido para Geolocalización.
Tu sesión de acceso ha expirado y has sido desconectado. Por favor, inica sesión nuevamente.