Kumac13 / soql-generator

1 stars 0 forks source link

Fix parsing issue when using '.' in method arguments #5

Closed Kumac13 closed 1 year ago

Kumac13 commented 1 year ago

When using the '.' notation in method arguments, such as in Opportunity.select(Name, Account.Name), the parsing is currently not working properly. This issue needs to be fixed.

Kumac13 commented 1 year ago
expr = table_name ( "." method)*
table_name = [a-zA-Z_][a-zA-Z0-9_]*
method = "select" select_args| "where" where_args | "limit" | "orderby" | "groupby" | "open"
select_args = ( "." "select(" select_arg ( "," select_arg )* ")" )*
select_arg = table_name "." field_name | field_name
where_args = ( "." "where(" where_arg ( "," where_arg )* ")" )*
where_term = [a-zA-Z_][a-zA-Z0-9_]* | num
where_arg = table_name "." field_name where_op where_termj | field_name where_op num
where_op = "=" | "!=" | "<" | "<=" | ">" | ">="
field_name = [a-zA-Z0-9_]+
limit_arg = num
orderby_args = ( "." "orderby(" orderby_arg ( "," orderby_arg )* ")" )?
orderby_arg = [a-zA-Z_][a-zA-Z0-9_]* ( " ASC" | " DESC" )?
groupby_args = ( "." "groupby(" field_name ( "," field_name )* ")" )?
num = [0-9]+
Kumac13 commented 1 year ago

https://github.com/Kumac13/soql-generator/pull/8