Railroad Diagram of version range operators

This is a image version of the post here

range-set:
range-set

range-set   ::= range ( logical-or range )*

logical-or:

logical-or

logical-or  ::= ' '* '||' ' '*

referenced by: range-set

range:

range

range   ::= hyphen
           | simple ( ' ' simple )*
           | ''

referenced by: range-set

hyphen:

hyphen

hyphen   ::= partial ' - ' partial

referenced by: range

simple:

simple

simple   ::= primitive
           | partial
           | tilde
           | caret

referenced by: range

primitive:

primitive

primitive   ::= ( '<' | '>' | '>=' | '<=' | '=' ) partial

referenced by: simple

partial:

partial

partial  ::= xr ( '.' xr ( '.' xr qualifier? )? )?

referenced by:

xr:

xr

xr    ::= 'x'
        | 'X'
        | '*'
        | nr

referenced by: partial

nr:

nr

nr    ::= '0'
        | ['1'-'9] ['0'-'9]*

referenced by:

tilde:

tilde

tilde    ::= '~' partial

referenced by: simple

caret:

caret

caret    ::= '^' partial

referenced by: simple

qualifier:

qualifier

qualifier   ::= ( '-' pre )? ( '+' build )?

referenced by: partial

pre:

pre

pre     ::= parts

referenced by: qualifier

build:

build

build   ::= parts

referenced by: qualifier

parts:

parts

parts   ::= part ( '.' part )*

referenced by:

part:

part    ::= nr | [-0-9A-Za-z]+

part


generated by RR - Railroad Diagram Generator

Railroad Diagram of version range operators

https://greenmeeple.github.io/js/json-dependencies-diagram/

Author

Alex Li

Posted on

2024-10-11

Updated on

2025-04-03

Licensed under

Comments

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×