Hi,
Would it be possible to extract a p(0) parser from it?
Yes, a p0 parser would be very easy to create.
- henrik
On Dec 27, 2010, at 11:03 PM, Luke Kanies wrote:
This xtext parser - I assume it's something you wrote for syntax
validation in Eclipse...?
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
.
--
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.