List Info

Thread: BNF for DEPEND in EAPI0 and EAPI1




BNF for DEPEND in EAPI0 and EAPI1
country flaguser name
Germany
2008-04-13 13:04:41
HI THERE,

I WORKED THROUGH THE CURRENT PMS AND TRIED TO FORMALIZE THE
GRAMMAR FOR
DEPEND A LITTLE BETTER. MAYBE SOMEONE COULD HAVE A LOOK AT
IT AND CHECK
IT FOR CORRECTNESS. IT COULD EVEN BECOME PART OF THE GENTOO
DEVELOPMENT DOCS OR BE AN APPENDIX TO THE PMS. THE OTHER
GRAMMARS
(SRC_URI ETC.) SHOULD BE FAIRLY EASY.

ANY COMMENTS?

HAVE FUN,

BJöRN 


= EAPI 0/1 PACKAGE DEPENDENCY SPECIFICATION IN
BACKUS-NAUR-FORM =

THE TERMINALS ARE DESCRIBED AS REGULAR EXPRESSIONS.
THE NONTERMINAL <DEPENDENCIES> IS WHAT IS ALLOWED IN
THE DEPENDS.

TERMINALS:
    <CATEGORY NAME> ::=
"[A-ZA-Z0-9+_][A-ZA-Z0-9+_.-]*"
    <CLOSE PARENTHESIS> ::= "[)]"
    <COLON> ::= ":" (NOT IN EAPI0)
    <DEPENDENCY GROUP OR OPERATOR> ::=
"[|][|]"
    <EMPTY> ::= ""
    <EQUAL> ::= "="
    <EXCLAMATION MARK> ::= "!"
    <GENERAL PACKAGE OPERATOR> ::=
"<|<=|~|>|>="
    <OPEN PARENTHESIS> ::= "[(]"
    <PACKAGE NAME> ::=
"[A-ZA-Z0-9+_-]*([A-ZA-Z+_-]|[A-ZA-Z+_][0-9]+)" 
    <PACKAGE VERSION ALPHA PART> ::=
"[A-Z]"
    <PACKAGE VERSION NUMBER PART> ::=
"[0-9]+([.][0-9]+)*"
    <PACKAGE VERSION SUFFIX> ::=
"_(ALPHA|BETA|PRE|RC|P)[0-9]*"
    <QUESTION MARK> ::= "?"
    <SLASH> ::= "/"
    <SLOT NAME> ::=
"[A-ZA-Z0-9+_][A-ZA-Z0-9+_.-]*" (NOT IN EAPI0)
    <SPACE> ::= " "
    <STAR> ::= "*"
    <USEFLAG NAME> ::=
"[A-ZA-Z0-9][A-ZA-Z0-9+_-]*"

NON-TERMINALS:
    <ALL-OF GROUP> ::= <OPEN
PARENTHESIS><SPACE><GROUP
CONTENTS><SPACE><CLOSE PARENTHESIS>
    <ANY-OF GROUP> ::= <DEPENDENCY GROUP OR
OPERATOR><SPACE><ALL-OF GROUP>
    <BLOCKED PACKAGE DEPENDENCY> ::= <EXCLAMATION
MARK><PACKAGE DEPENDENCY>
    <DEPENDENCIES> ::= <EMPTY>|<GROUP
CONTENTS>
    <DEPENDENCY ITEM> ::= <BLOCKED PACKAGE
DEPENDENCY>|<PACKAGE DEPENDENCY>|<ALL-OF
GROUP>|<ANY-OF GROUP>|<USE CONDITIONAL
GROUP>
    <GROUP CONTENTS> ::= <DEPENDENCY
ITEM>|<GROUP CONTENTS><SPACE><DEPENDENCY
ITEM>
    <LIMITED PACKAGE DEPENDENCY> ::= <DEPENDENCY
OPERATOR><PACKAGE WITH VERSION>
    <LIMITED PACKAGE DEPENDENCY LIKENESS> ::=
<EQUAL><PACKAGE WITH
VERSION>|<EQUAL><PACKAGE WITH
VERSION><STAR>
    <PACKAGE DEPENDENCY> ::= <UNSLOTTED PACKAGE
DEPENDENCY>|<SLOTTED PACKAGE DEPENDENCY>
    <PACKAGE VERSION> ::= <PACKAGE VERSION NUMBER
PART><PACKAGE VERSION ALPHA PART><PACKAGE
VERSION SUFFIX PART>
    <PACKAGE VERSION SUFFIX PART> ::=
<EMPTY>|<PACKAGE VERSION SUFFIX PART><PACKAGE
VERSION SUFFIX>
    <PACKAGE WITH VERSION> ::= <QUALIFIED PACKAGE
NAME>-<PACKAGE VERSION>
    <QUALIFIED PACKAGE NAME> ::= <CATEGORY
NAME><SLASH><PACKAGE NAME>
    <SLOTTED PACKAGE DEPENDENCY> ::= <UNSLOTTED
PACKAGE DEPENDENCY><COLON><SLOT NAME> (NOT IN
EAPI0)
    <UNSLOTTED PACKAGE DEPENDENCY> ::= <QUALIFIED
PACKAGE NAME>|<LIMITED PACKAGE
DEPENDENCY>|<LIMITED PACKAGE DEPENDENCY LIKENESS>
    <USE CONDITIONAL GROUP> ::= <USE
CONDITIONAL><SPACE><ANY-OF GROUP>
    <USE CONDITION> ::= <USEFLAG
NAME>|<EXCLAMATION MARK><USEFLAG NAME>
Re: BNF for DEPEND in EAPI0 and EAPI1
country flaguser name
Germany
2008-04-14 07:22:12
On Sun, 13 Apr 2008 20:04:41 +0200
Björn Michaelsen <bjoern.michaelsengmail.com> wrote:

> Hi there,
> 
> I worked through the current PMS and tried to formalize
the grammar
> for DEPEND a little better. Maybe someone could have a
look at it and
> check it for correctness. It could even become part of
the gentoo
> development docs or be an appendix to the PMS. The
other grammars
> (SRC_URI etc.) should be fairly easy.
> 
> Any comments?

Offhand the 'package name' part is wrong/incomplete, pretty
sure even
PMS says that they can't start/end with underscores or
dashes (it's a
real PITA to get it right).
Haven't really read the non-terminals section as it's hard
to read in
this form, using EBNF or some markup language might help
with that.

Marius
--
gentoo-portage-devlists.gentoo.org mailing list


Re: BNF for DEPEND in EAPI0 and EAPI1
country flaguser name
Germany
2008-04-14 14:07:17
AM MON, 14 APR 2008 14:22:12 +0200
SCHRIEB MARIUS MAUCH <GENONEGENTOO.ORG>:

> OFFHAND THE 'PACKAGE NAME' PART IS WRONG/INCOMPLETE,
PRETTY SURE EVEN
> PMS SAYS THAT THEY CAN'T START/END WITH UNDERSCORES OR
DASHES (IT'S A
> REAL PITA TO GET IT RIGHT).

I HAVENT FOUND ANYTHING LIKE THAT IN THE PMS AT THE
APPROPRIATE PLACES.
IT ONLY LIMITS THE CHARACTERS AND RESTRICTS A PACKAGE NAME
NOT TO END
IN A HYPHEN FOLLOWED BY NUMBER LITERALS.
HOWEVER, IF THERE IS A NEED TO RESTRICT THE PACKAGE NAME
LIKE THAT IT
_SHOULD_ BE IN THE PMS OF CAUSE. OTHER WIERD PACKAGE NAMES
ALLOWED BY
THIS REGEXP AND BY THE PMS: "---",
"___1", "1-2A"
PMS EVEN ALLOWS "137" OR "", WHILE THE
REGEXP DOES NOT. THAT WOULD BE
EASILY FIXED, BUT I GUESS THAT IS NOT EVEN INTENDED.

> HAVEN'T REALLY READ THE NON-TERMINALS SECTION AS IT'S
HARD TO READ IN
> THIS FORM, USING EBNF OR SOME MARKUP LANGUAGE MIGHT
HELP WITH THAT.
EBNF WOULD BE EASY. WHAT KIND OF MARKUP DO YOU HAVE IN MIND?
(ALSO I
NEED TO GET RID OF THE LEFT RECURSION IN THE BNF)

HAVE FUN,

BJöRN
[1-3]

about | contact  Other archives ( Real Estate discussion Medical topics )