1. A question about parsing

So I'd like to create a command line tool that does its parameters the way docker does. I'm getting really tired with GUI planning tools and am designing a CLI one (so that I have TOTAL control).

task <title> (creates a task and returns an id) 
task <id> [dependson <id> ...] 
task <id> [tag <tag> ...] 
task <id> description <description> 
etc.

I suppose I'm asking for a formalised way of defining the DSL but I could do that with regexps. It'd be nice to be able to specify the syntax of the DSL to the extent of giving patterns and then having the underlying code either extract the arguments or notify of error.

task "Task Tool" description "Command-line task management tool" tag "cli" tag "euphoria" dependson "HavTim000" 
--> Created task "TasToo000" 

Thoughts?

-Bruce

new topic     » topic index » view message » categorize

2. Re: A question about parsing

Hmm, I somehow missed this and just stumbled on it while looking for something else.

Are you asking/could you rephrase that as given this what's the best way to create this, where both this are text?

new topic     » goto parent     » topic index » view message » categorize

3. Re: A question about parsing

So I've noticed that Euphoria has tools for defining and detecting commandline configuration. I'm wondering if there's something similar for DSLs, similar say to, but not as powerful, as a PEG parser.

At the moment, I'm using tokenize_string and pulling out the parts, viz

if length(cl) < 3 then 
    inCli = 1 
    sequence parse = {} 
    while 1 do 
        cl = {} 
        sequence cmd = prompt_string(prompt()) 
        if equal("exit", cmd) then 
            exit  
        end if 
        puts(STDOUT, "\n") 
        sequence tokens = tokenize_string(cmd) 
        parse = tokens[1] 
        for i = 1 to length(parse) do 
            cl = append(cl, parse[i][TDATA]) 
        end for 
        parse_pairs_from(1) 
    end while 
end if 

-Bruce

new topic     » goto parent     » topic index » view message » categorize

4. Re: A question about parsing

Once upon a time, I wrote a command-line parser: https://openeuphoria.org/forum/m/137017.wc

The code is not available at the specified location but I can provide it. Would this do the job ?

Jean-Marc

new topic     » goto parent     » topic index » view message » categorize

5. Re: A question about parsing

I think you could accomplish this by defining a set of commands and options, then looking up the main command and dispatching it to cmd_parse() with the associated option set. I can try to throw together a few examples.

-Greg

new topic     » goto parent     » topic index » view message » categorize

6. Re: A question about parsing

Don't spend too much time on it. I've done something like that already: task

-Bruce

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu