This xtext parser - I assume it's something you wrote for syntax validation in 
Eclipse...?

Would it be possible to extract a p(0) parser from it?

I haven't been able to spend much time on p(0), but it's getting enough 
attention that I'm pushing toward it again.  I didn't really mean to announce 
anything, but enough people noticed my repo that I figured I'd mention it, and 
enough people have responded to the mention that I'm now scrambling a bit to 
figure out what and how to do it.

On Dec 21, 2010, at 1:50 PM, Henrik Lindberg wrote:

> The corresponding definition for "type" from the puppet grammar is called 
> "classname" and it is what is used to specify a resource "type".
> Written in (E)BNF the rules for the different types of 
> names/identifiers/references would be:
> 
> classname
>   : NAME 
>   | CLASS_NAME 
>   | CLASS
>   ;
> 
> NAME : (DEC | LOWER_ALPHA_CHAR) WORD_CHAR* ;
> CLASS_NAME : (LOWER_ALPHA_CHAR WORD_CHAR*)? (NS LOWER_ALPHA_CHAR WORD_CHAR*)+;
> CLASS_REF: (NS? UPPER_ALPHA_CHAR WORD_CHAR*)+ ;
> DEC : '0'..'9' ;
> LOWER_ALPHA_CHAR : 'a'..'z' ;
> UPPER_ALPHA_CHAR : 'A'..'Z' ;
> WORD_CHAR : (DEC | ALPHA_CHARACTER | UNDERSCORE) ;
> ALPHA_CHARACTER : LOWER_ALPHA_CHAR | UPPER_ALPHA_CHAR ;
> UNDERSCORE : '_' ;
> NS : "::" ;
> CLASS : "class" ;
> 
> This is what I am using in the Xtext based parser for .pp  (and I double 
> checked against the lexer/parser rules, but may have misunderstood something).
> 
> 
> - henrik
> 
> On Dec 21, 2010, at 12:38 AM, Luke Kanies wrote:
> 
>> Hi Kenn,
>> 
>> The BNF is definitely not complete - partially because I couldn't quite 
>> figure out how complete I could even make it.  Or rather, I didn't take the 
>> time to do so.  Can BNF include regexes?
>> 
>> In general, it should perfectly mirror the current state of Puppet's parser 
>> and lexer - that is, <type> should be defined as Puppet does, if at all 
>> possible[1].  I'd like to have it fleshed out with all of the regexes, and 
>> I'd much appreciate help in doing so.
>> 
>> 1 - https://github.com/lak/puppet/blob/master/lib/puppet/parser/lexer.rb
>> 
>> On Dec 20, 2010, at 2:28 PM, Kenn Hussey wrote:
>> 
>>> After looking at the BNF in more detail, I have a couple of questions:
>>> 
>>> 1. Do you plan to provide definitions (regular expressions?) for the
>>> <name>, <uc_name>, <naked_string>, and <quoted_string> elements?
>>> 
>>> 2. Shouldn't the definition for <parameters> be recursive, e.g.,
>>> <parameter> "," <parameters> instead of <parameter> "," <parameter>?
>>> And if so, is <optional_comma> really needed?
>>> 
>>> 3. Any further thoughts on what a suitable regular expression for
>>> <type> might be?
>>> 
>>> Thanks,
>>> 
>>> Kenn
>>> 
>>> 
>>> On Dec 20, 1:52 pm, Kenn Hussey <[email protected]> wrote:
>>>> Luke,
>>>> 
>>>> From the looks of things, this is quite relevant to the Puppet-related
>>>> work we're doing at Cloudsmith (see Henrik Lindberg's recent post to
>>>> the users group). We'd definitely like to help out, especially on the
>>>> Java front (most of our work is currently in Java). We've started
>>>> working with the BNF definition and will report back as soon as we
>>>> have something interesting to share.
>>>> 
>>>> Cheers,
>>>> 
>>>> Kenn
>>>> 
>>>> On Dec 2, 1:18 am, Luke Kanies <[email protected]> wrote:
>>>> 
>>>> 
>>>> 
>>>>> Hi all,
>>>> 
>>>>> Some have already noticed this, but I've begun a project to define and 
>>>>> produce a minimal data-focused subset of Puppet's language, just like 
>>>>> JSON is a data-focused subset of Javascript.  I had initially called it 
>>>>> MPF (for Minimal Puppet Format), but we've decided to use our internal 
>>>>> name for it - p(0), or pzero:
>>>> 
>>>>> https://github.com/lak/pzero
>>>> 
>>>>> The only thing there so far is Jordan Sissel's work getting a Ragel 
>>>>> parser to work, along with my attempt at a BNF definition.  My hope is to 
>>>>> have implementations in many languages:
>>>> 
>>>>> * Ruby
>>>>> * Python
>>>>> * C
>>>>> * Javascript
>>>>> * Java
>>>> 
>>>>> And I'd like each of these to be able to both parse and generate the 
>>>>> format.
>>>> 
>>>>> Jesse Wolfe first came up with this idea, and our goal is to have a 
>>>>> language that any project or tool can use to describe desired system 
>>>>> state.  I'm especially interested in having tools for converting to and 
>>>>> from existing data formats, like the rpm and dpkg manifest formats.
>>>> 
>>>>> So anyway, if this is interesting to you, I'd love help on it.  We're 
>>>>> still in the formative stages of what it is and what it would do, but 
>>>>> we're pretty excited by the potential.  One of the things we clearly need 
>>>>> to develop is a list of example files that each implementation could test 
>>>>> against.
>>>> 
>>>>> --
>>>>> Tradition is what you resort to when you don't have the time or the
>>>>> money to do it right.       -- Kurt Herbert Alder
>>>>> ---------------------------------------------------------------------
>>>>> Luke Kanies  -|-  http://puppetlabs.com -|-   +1(615)594-8199
>>> 
>>> -- 
>>> You received this message because you are subscribed to the Google Groups 
>>> "Puppet Developers" group.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to 
>>> [email protected].
>>> For more options, visit this group at 
>>> http://groups.google.com/group/puppet-dev?hl=en.
>>> 
>> 
>> 
>> -- 
>> Opportunity is missed by most people because it is dressed in overalls
>> and looks like work.        -- Thomas A. Edison
>> ---------------------------------------------------------------------
>> Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199
>> 
>> 
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Puppet Developers" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to 
>> [email protected].
>> For more options, visit this group at 
>> http://groups.google.com/group/puppet-dev?hl=en.
>> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Developers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/puppet-dev?hl=en.


-- 
Somebody has to do something, and it's just incredibly pathetic that it
has to be us.       --Jerry Garcia
---------------------------------------------------------------------
Luke Kanies  -|-   http://puppetlabs.com   -|-   +1(615)594-8199



-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en.

Reply via email to