[ 
https://issues.apache.org/jira/browse/GSHELL-20?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12546177
 ] 

Jason Dillon commented on GSHELL-20:
------------------------------------

I basically just tossed together this grammar with my somewhat limited 
knowledge and experience with JavaCC.  I'd really like to be able to lean on 
the parser to generate a more complex AST tree which can handle more of these 
language subtitles , but that is pushing the limit of hoops I can personally 
make JavaCC (or another like Antlr) jump through.

Would really be nice if the universe handed us a motivated folk (or two) who 
where uber-savvy with JavaCC (or Antlr3) to build more complicated AST trees... 

Anyways, I know this part of the system is lacking, which is why I had hacked 
around it before, like using Jexl to handle the ${...} bits and some more 
specific post processing (like what is done in {{set}}) to handle (somewhat 
poorly) what the feeble parser isn't doing for us.

This is definitely one of the weak parts of the system right now.  I really 
would like to get a parser which can take most any BASH-like syntax and make 
sense of it.  That is the ultimate goal IMO... complete BASH syntax 
compatibility (or really, ZSH since I think its got some extra nice bits).

I will test this patch in the next day or so... though you know its just a 
bandaid na?  What really needs to be done is to make the parser aware of this 
stuff, then maybe create a visitor to build a simple version of the tree 
elements suitable for handing to the executing visitor.  The intermediate could 
handle things like:

{noformat}
echo "foo""bar"
{noformat}

and reduce that to simple this to pass to commands for execution:

{noformat}
echo "foobar"
{noformat}

Or something like that.

Maybe I can coax one of the Antlr gurus on the Groovy team to lean a hand with 
this.  But if you, or anyone else who reads JIRA comments, knows of someone and 
they are interested, I'd really love to haver some expert help with this part 
of GShell.

> `set foo="bar"` does not work as expected
> -----------------------------------------
>
>                 Key: GSHELL-20
>                 URL: https://issues.apache.org/jira/browse/GSHELL-20
>             Project: GShell
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: Commands, Core
>    Affects Versions: 0.0.1
>            Reporter: Jason Dillon
>            Assignee: Jason Warner
>            Priority: Critical
>             Fix For: 1.0-alpha-2
>
>         Attachments: GShell-20.patch
>
>
> Due to the way parsing happens, this line:
> {noformat}
> set foo="bar"
> {noformat}
> Ends up calling the command with 2 arguments: "foo=" and "bar", which is not 
> what the command expects, which is one argument of: "foo=bar"

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to