Table of Contents

Class CssTokenizer

Namespace
Egami.Css
Assembly
Egami.Css.dll

The CSS Syntax 3 tokenizer (section 4), with its input preprocessing.

public static class CssTokenizer
Inheritance
CssTokenizer
Inherited Members

Examples

// CSS Syntax 3 tokens, and component values: tokens, functions and simple blocks.
IReadOnlyList<CssToken> tokens = CssTokenizer.Tokenize("rgb(255 0 0 / 50%) 12px");
CssToken first = tokens[0];
bool isFunction = first.Kind == CssTokenKind.Function; // "rgb(" at line 1, column 1

IReadOnlyList<CssComponentValue> values = CssComponentValue.ParseList("calc(100% - 2px) [a] x");
var calc = (CssFunction)values[0];
var block = (CssSimpleBlock)values[2];
var word = (CssTokenValue)values[4];
string text = CssComponentValue.Serialize(values); // "calc(100% - 2px) [a] x"

Methods

Tokenize(string, CssParseOptions?)

Splits CSS text into tokens. Never throws: malformed input gives bad-string, bad-url or delim tokens and errors.

public static IReadOnlyList<CssToken> Tokenize(string css, CssParseOptions? options = null)

Parameters

css string

The CSS text.

options CssParseOptions

Options whose Errors receives the tokenizer's parse errors.

Returns

IReadOnlyList<CssToken>

The tokens, without a final EndOfFile token.

Examples

// CSS Syntax 3 tokens, and component values: tokens, functions and simple blocks.
IReadOnlyList<CssToken> tokens = CssTokenizer.Tokenize("rgb(255 0 0 / 50%) 12px");
CssToken first = tokens[0];
bool isFunction = first.Kind == CssTokenKind.Function; // "rgb(" at line 1, column 1

IReadOnlyList<CssComponentValue> values = CssComponentValue.ParseList("calc(100% - 2px) [a] x");
var calc = (CssFunction)values[0];
var block = (CssSimpleBlock)values[2];
var word = (CssTokenValue)values[4];
string text = CssComponentValue.Serialize(values); // "calc(100% - 2px) [a] x"