1.5.1 • Published 5 years ago

css-syntax-parser v1.5.1

Weekly downloads
4
License
ISC
Repository
github
Last release
5 years ago

Css Syntax Parser

A simple parser for MDN's "CSS value definition syntax".

let resolveSyntax = require('css-syntax-parser');

const syntax = resolveSyntax('[ <length> | <percentage> | auto ]{1,4}');

syntax.print();
// [
// .  COMPOSED
// .  -combinator: |
// .  .  DATA TYPE
// .  .  -name: length
// .  .  -non-terminal: false
// .  .
// .  .  DATA TYPE
// .  .  -name: percentage
// .  .  -non-terminal: false
// .  .
// .  .  KEYWORD
// .  .  -value: auto
// .  .
// ]
// -multiplier: {range}
// -range: { min: 1, max: 4 }

console.log(syntax.type); // brackets
console.log(syntax.multiplier); // {range}
console.log(syntax.range.min); // 1 
console.log(syntax.range.max); // 4

let content = syntax.content;
console.log(content.type); // composed 
console.log(content.combinator); // |

let child1 = content.children[1]; 
console.log(child1.type); // data-type
console.log(child1.name); // percentage
console.log(child1.nonTerminal); // false

in Typescript:

import {
    resolveSyntax,
    BracketsTerm,
    ComposedTerm,
    DataTypeTerm,
    Term,
    TermMultiplier,
    TermType
} from 'css-syntax-parser';

const syntax: Term = resolveSyntax('[ <length> | <percentage> | auto ]{1,4}');

console.log(syntax.type); // brackets

if (syntax.type === TermType.BRACKETS) {

    const brackets: BracketsTerm = <BracketsTerm>syntax;

    if (brackets.multiplier === TermMultiplier.RANGE) {

        console.log(brackets.multiplier); // range
        console.log(brackets.range.min); // 1
        console.log(brackets.range.max); // 4
    }

    if (brackets.content.type === TermType.COMPOSED) {

        const content: ComposedTerm = <ComposedTerm>brackets.content;
        console.log(content.type); // composed
        console.log(content.combinator); // exactly one

        if (content.children[1].type === TermType.DATA_TYPE) {

            const child1: DataTypeTerm = <DataTypeTerm>content.children[1];
            console.log(child1.type); // data-type
            console.log(child1.name); // percentage
            console.log(child1.nonTerminal); // false
        }
    }
}

Methods

Method
resolveSyntax(syntax, recursive?)
resolveSyntaxByName(propertyName, recursive?)

Terms

TypeSamples
literal/, ,
keywordblack, top, none
methodcalc( <calc-sum> ), repeat( <length-percentage> )
data-type<calc-sum>, <'border-width'>
composed<attr-name> <type-or-unit>, <'border-style'> && <'color'>
bracket[ <string-token> && <ident-token> ]

Combinators

TypeSamples
mandatory exact ordervalue1 value2
mandatory any ordervalue1 && value2
at least onevalue1 || value2
exactly onevalue1 | value2

Multipliers

TypeSamples
zero or more*
one or more+
optional?
range{1,4}
array#
required!

Recursive resolve

let { resolveSyntaxByName } = require('css-syntax-parser');

const syntax = resolveSyntaxByName('grid', true);

syntax.print();

// COMPOSED
// -combinator: |
// .  [
// .  .  COMPOSED
// .  .  -combinator: |
// .  .  .  KEYWORD
// .  .  .  -value: none
// .  .  .  
// .  .  .  [
// .  .  .  .  COMPOSED
// .  .  .  .  -combinator:  
// .  .  .  .  .  [
// .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  -value: none
// .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  STRING
// .  .  .  .  .  .  .  .  .  .  .  .  .  -value: [
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  -name: custom-ident
// .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: *
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  STRING
// .  .  .  .  .  .  .  .  .  .  .  .  .  -value: ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: length
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: percentage
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: flex
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: min-content
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: max-content
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: auto
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  METHOD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name minmax
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  (
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: length
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: percentage
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: min-content
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: max-content
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: auto
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  LITERAL
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: ,
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: track-breadth
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  )
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  METHOD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name fit-content
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  (
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: length
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: percentage
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  )
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  METHOD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name repeat
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  (
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: positive-integer
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  LITERAL
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: ,
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: track-size
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: +
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  )
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  -multiplier: +
// .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: length-percentage
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  METHOD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name minmax
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  (
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: fixed-breadth
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  LITERAL
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: ,
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: track-breadth
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  )
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  METHOD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name minmax
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  (
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: inflexible-breadth
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  LITERAL
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: ,
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: fixed-breadth
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  )
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  METHOD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name repeat
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  (
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: positive-integer
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  LITERAL
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: ,
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: fixed-size
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: +
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  )
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  -multiplier: *
// .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  METHOD
// .  .  .  .  .  .  .  .  .  .  -name repeat
// .  .  .  .  .  .  .  .  .  .  (
// .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: auto-fill
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -value: auto-fit
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  LITERAL
// .  .  .  .  .  .  .  .  .  .  .  .  -value: ,
// .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -name: fixed-size
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: +
// .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  )
// .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  -name: fixed-size
// .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  .  .  .  -name: fixed-repeat
// .  .  .  .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  .  -multiplier: *
// .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  
// .  .  .  .  .  ]
// .  .  .  .  .  
// .  .  .  .  .  LITERAL
// .  .  .  .  .  -value: /
// .  .  .  .  .  
// .  .  .  .  .  [
// .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  -combinator: |
// .  .  .  .  .  .  .  KEYWORD
// .  .  .  .  .  .  .  -value: none
// .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  -name: track-list
// .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  -name: auto-track-list
// .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  
// .  .  .  .  .  ]
// .  .  .  .  .  
// .  .  .  ]
// .  .  .  
// .  .  .  COMPOSED
// .  .  .  -combinator:  
// .  .  .  .  [
// .  .  .  .  .  COMPOSED
// .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  
// .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  -name: string
// .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  
// .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  -name: track-size
// .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  
// .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  
// .  .  .  .  ]
// .  .  .  .  -multiplier: +
// .  .  .  .  
// .  .  .  .  [
// .  .  .  .  .  COMPOSED
// .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  LITERAL
// .  .  .  .  .  .  -value: /
// .  .  .  .  .  .  
// .  .  .  .  .  .  [
// .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  [
// .  .  .  .  .  .  .  .  .  COMPOSED
// .  .  .  .  .  .  .  .  .  -combinator:  
// .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  .  .  -name: track-size
// .  .  .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  ]
// .  .  .  .  .  .  .  .  -multiplier: +
// .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  .  .  DATA TYPE
// .  .  .  .  .  .  .  .  -name: line-names
// .  .  .  .  .  .  .  .  -non-terminal: false
// .  .  .  .  .  .  .  .  -multiplier: ?
// .  .  .  .  .  .  .  .  
// .  .  .  .  .  .  ]
// .  .  .  .  .  .  
// .  .  .  .  ]
// .  .  .  .  -multiplier: ?
// .  .  .  .  
// .  ]
// .  
// .  COMPOSED
// .  -combinator:  
// .  .  DATA TYPE
// .  .  -name: grid-template-rows
// .  .  -non-terminal: true
// .  .  
// .  .  LITERAL
// .  .  -value: /
// .  .  
// .  .  [
// .  .  .  COMPOSED
// .  .  .  -combinator: &&
// .  .  .  .  KEYWORD
// .  .  .  .  -value: auto-flow
// .  .  .  .  
// .  .  .  .  KEYWORD
// .  .  .  .  -value: dense
// .  .  .  .  -multiplier: ?
// .  .  .  .  
// .  .  ]
// .  .  
// .  .  [
// .  .  .  DATA TYPE
// .  .  .  -name: track-size
// .  .  .  -non-terminal: false
// .  .  .  -multiplier: +
// .  .  .  
// .  .  ]
// .  .  -multiplier: ?
// .  .  
// .  COMPOSED
// .  -combinator:  
// .  .  [
// .  .  .  COMPOSED
// .  .  .  -combinator: &&
// .  .  .  .  KEYWORD
// .  .  .  .  -value: auto-flow
// .  .  .  .  
// .  .  .  .  KEYWORD
// .  .  .  .  -value: dense
// .  .  .  .  -multiplier: ?
// .  .  .  .  
// .  .  ]
// .  .  
// .  .  [
// .  .  .  DATA TYPE
// .  .  .  -name: track-size
// .  .  .  -non-terminal: false
// .  .  .  -multiplier: +
// .  .  .  
// .  .  ]
// .  .  -multiplier: ?
// .  .  
// .  .  LITERAL
// .  .  -value: /
// .  .  
// .  .  DATA TYPE
// .  .  -name: grid-template-columns
// .  .  -non-terminal: true
// .  .  
1.5.1

5 years ago

1.5.0

5 years ago

1.4.0

5 years ago

1.3.1

5 years ago

1.3.0

5 years ago

1.2.0

5 years ago

1.1.0

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago