Find Jobs
Hire Freelancers

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

$25-32 USD

已关闭
已发布超过 10 年前

$25-32 USD

货到付款
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: 5161744

关于此项目

1条提案
远程项目
活跃10 年前

想赚点钱吗?

在Freelancer上竞价的好处

设定您的预算和时间范围
为您的工作获得报酬
简要概述您的提案
免费注册和竞标工作

关于客户

MAURITIUS的国旗
llllkkk, Mauritius
5.0
4
付款方式已验证
会员自11月 4, 2013起

客户认证

谢谢!我们已通过电子邮件向您发送了索取免费积分的链接。
发送电子邮件时出现问题。请再试一次。
已注册用户 发布工作总数
Freelancer ® is a registered Trademark of Freelancer Technology Pty Limited (ACN 142 189 759)
Copyright © 2024 Freelancer Technology Pty Limited (ACN 142 189 759)
加载预览
授予地理位置权限。
您的登录会话已过期而且您已经登出,请再次登录。