libwordring
クラス | 列挙型 | 関数 | 変数
wordring::wwwc::css 名前空間

クラス

struct  at_keyword_token
 @xxxトークン [詳解]
 
struct  at_rule
 @規則を表現する AST ノード [詳解]
 
class  attr_matcher
 <attr-matcher> [詳解]
 
class  attr_modifier
 <attr-modifier> [詳解]
 
class  attribute_selector
 <attribute-selector> [詳解]
 
struct  bad_string_token
 異常文字列トークン [詳解]
 
struct  bad_url_token
 異常 URL トークン [詳解]
 
struct  CDC_token
 "-->" トークン [詳解]
 
struct  CDO_token
 "<!--" トークン [詳解]
 
class  class_selector
 <class-selector> [詳解]
 
struct  close_curly_token
 '}' トークン [詳解]
 
struct  close_paren_token
 ')' トークン [詳解]
 
struct  close_square_token
 ']' トークン [詳解]
 
struct  colon_token
 ':' トークン [詳解]
 
class  combinator
 <combinator> [詳解]
 
struct  comma_token
 ',' トークン [詳解]
 
class  complex_selector
 <complex-selector> [詳解]
 
class  complex_selector_list
 <complex-selector-list> [詳解]
 
class  component_value
 CSSコンポーネント値を表現する AST ノード [詳解]
 
class  compound_selector
 <compound-selector> [詳解]
 
class  compound_selector_list
 <compound-selector-list> [詳解]
 
struct  declaration
 宣言を表現する AST ノード [詳解]
 
struct  delim_token
 区切り文字トークン [詳解]
 
struct  dimension_token
 
struct  eof_token
 EOF トークン [詳解]
 
struct  function
 関数を表現する構文アイテム [詳解]
 
struct  function_token
 関数トークン [詳解]
 
struct  hash_token
 #xxxトークン [詳解]
 
class  id_selector
 <id-selector> [詳解]
 
struct  ident_token
 識別子トークン [詳解]
 
struct  match_context
 CSS セレクタとノードの照合に使われるコンテキスト [詳解]
 
class  ns_prefix
 <ns-prefix> [詳解]
 
struct  number_token
 数値トークン [詳解]
 
struct  open_curly_token
 '{' トークン [詳解]
 
struct  open_paren_token
 '(' トークン [詳解]
 
struct  open_square_token
 '[' トークン [詳解]
 
struct  parse_context
 CSS の構文解析に使われるコンテキスト [詳解]
 
struct  percentage_token
 数値 % トークン [詳解]
 
class  preserved_tokens
 
class  pseudo_class_selector
 <pseudo-class-selector> [詳解]
 
class  pseudo_element_selector
 <pseudo-element-selector> [詳解]
 
struct  qualified_rule
 修飾規則を表現する AST ノード [詳解]
 
class  relative_selector
 <relative-selector> [詳解]
 
class  relative_selector_list
 <relative-selector-list> [詳解]
 
class  root_pseudo_class
 
class  selector_grammar
 セレクタに関する構文規則の基本クラス [詳解]
 
class  selector_list
 <selector-list> [詳解]
 
struct  semicolon_token
 ';' トークン [詳解]
 
struct  simple_block
 単純ブロックを表現する AST ノード [詳解]
 
class  simple_selector
 <simple-selector> [詳解]
 
class  simple_selector_list
 <simple-selector-list> [詳解]
 
struct  string_token
 文字列トークン [詳解]
 
class  subclass_selector
 <subclass-selector> [詳解]
 
class  syntax_primitive
 トークンや構文アイテムを表現するクラス [詳解]
 
class  syntax_primitive_stream
 syntax_primitive の配列をストリーム化するアダプタ [詳解]
 
class  token_stream
 トークン列をストリームとしてアクセスするためのアダプタ [詳解]
 
class  type_selector
 <type-selector> [詳解]
 
struct  url_token
 URL トークン [詳解]
 
struct  whitespace_token
 空白文字トークン [詳解]
 
class  wq_name
 <wq-name> [詳解]
 

列挙型

enum  syntax_primitive_name : std::size_t {
  syntax_primitive_name::Token = 1, syntax_primitive_name::IdentToken, syntax_primitive_name::FunctionToken, syntax_primitive_name::AtKeywordToken,
  syntax_primitive_name::HashToken, syntax_primitive_name::StringToken, syntax_primitive_name::BadStringToken, syntax_primitive_name::UrlToken,
  syntax_primitive_name::BadUrlToken, syntax_primitive_name::DelimToken, syntax_primitive_name::NumberToken, syntax_primitive_name::PercentageToken,
  syntax_primitive_name::DimensionToken, syntax_primitive_name::WhitespaceToken, syntax_primitive_name::CdoToken, syntax_primitive_name::CdcToken,
  syntax_primitive_name::ColonToken, syntax_primitive_name::SemicolonToken, syntax_primitive_name::CommaToken, syntax_primitive_name::OpenSquareToken,
  syntax_primitive_name::CloseSquareToken, syntax_primitive_name::OpenParenToken, syntax_primitive_name::CloseParenToken, syntax_primitive_name::OpenCurlyToken,
  syntax_primitive_name::CloseCurlyToken, syntax_primitive_name::EofToken, syntax_primitive_name::SyntaxItem, syntax_primitive_name::AtRule,
  syntax_primitive_name::QualifiedRule, syntax_primitive_name::Declaration, syntax_primitive_name::ComponentValue, syntax_primitive_name::PreservedTokens,
  syntax_primitive_name::Function, syntax_primitive_name::SimpleBlock
}
 
enum  number_type_flag_name { integer = 1, number }
 整数と小数を識別するためのフラグ値 [詳解]
 
enum  pseudo_class_id_name : std::uint32_t { Root = 1 }
 
enum  pseudo_class_fn_name : std::uint32_t
 
enum  pseudo_element_id_name : std::uint32_t {
  FirstLine = 1, FirstLetter, Selection, TargetText,
  SpellingError, GrammarError, Before, After,
  Marker, Placeholder, FileSelectorButton
}
 疑似要素を区別する列挙体 [詳解]
 

関数

template<typename Syntax , typename ErrorHandler >
std::vector< Syntax > parse_comma_list (token_stream &in, parse_context &ctx, ErrorHandler handler)
 カンマ区切りのリストをCSS文法に沿って構文解析する [詳解]
 
template<typename ErrorHandler >
std::vector< syntax_primitiveparse_list_of_component_values (token_stream &in, ErrorHandler handler)
 コンポーネント値のリストを構文解析する [詳解]
 
template<typename ErrorHandler = std::nullptr_t>
std::vector< syntax_primitivenormalize_into_token_stream (std::vector< syntax_primitive > &&in, ErrorHandler handler=nullptr)
 入力をトークン列へ正規化する [詳解]
 
template<typename ErrorHandler = std::nullptr_t>
std::vector< syntax_primitivenormalize_into_token_stream (std::u32string &&in, ErrorHandler handler=nullptr)
 入力をトークン列へ正規化する [詳解]
 
template<typename Syntax , typename ErrorHandler = std::nullptr_t>
Syntax parse_grammar (token_stream &in, parse_context &ctx, ErrorHandler handler=nullptr)
 CSS文法に沿って解析する [詳解]
 
template<typename Syntax >
Syntax parse_grammar (std::vector< syntax_primitive > &&in, parse_context &ctx)
 
template<typename Syntax >
Syntax parse_grammar (std::u32string &&in, parse_context &ctx)
 
template<typename Syntax >
std::vector< Syntax > parse_comma_list (std::vector< syntax_primitive > &&in, parse_context &ctx)
 
template<typename Syntax >
std::vector< Syntax > parse_comma_list (std::u32string &&in, parse_context &ctx)
 
template<typename ErrorHandler >
std::vector< syntax_primitiveparse_stylesheet (token_stream &in, ErrorHandler handler)
 スタイルシートを構文解析する [詳解]
 
std::vector< syntax_primitiveparse_stylesheet (std::vector< syntax_primitive > &&in)
 
std::vector< syntax_primitiveparse_stylesheet (std::u32string &&in)
 スタイルシートを構文解析する
 
std::vector< syntax_primitiveparse_stylesheet (std::string const &in, encoding_name fallback=static_cast< encoding_name >(0))
 スタイルシートを構文解析する [詳解]
 
template<typename ErrorHandler >
std::vector< syntax_primitiveparse_list_of_rules (token_stream &in, ErrorHandler handler)
 規則リストを構文解析する [詳解]
 
std::vector< syntax_primitiveparse_list_of_rules (std::vector< syntax_primitive > &&in)
 
std::vector< syntax_primitiveparse_list_of_rules (std::u32string &&in)
 
template<typename ErrorHandler >
std::optional< syntax_primitiveparse_rule (token_stream &in, ErrorHandler handler)
 規則を構文解析する [詳解]
 
std::optional< syntax_primitiveparse_rule (std::vector< syntax_primitive > &&in)
 
std::optional< syntax_primitiveparse_rule (std::u32string &&in)
 
template<typename ErrorHandler >
std::optional< declarationparse_declaration (token_stream &in, ErrorHandler handler)
 宣言を構文解析する [詳解]
 
std::optional< declarationparse_declaration (std::vector< syntax_primitive > &&in)
 
std::optional< declarationparse_declaration (std::u32string &&in)
 
template<typename ErrorHandler >
std::vector< syntax_primitiveparse_list_of_declarations (token_stream &in, ErrorHandler handler)
 宣言リストを構文解析する [詳解]
 
std::vector< syntax_primitiveparse_list_of_declarations (std::vector< syntax_primitive > &&in)
 
std::vector< syntax_primitiveparse_list_of_declarations (std::u32string &&in)
 
template<typename ErrorHandler >
std::optional< component_valueparse_component_value (token_stream &in, ErrorHandler handler)
 コンポーネント値を構文解析する [詳解]
 
std::optional< component_valueparse_component_value (std::vector< syntax_primitive > &&in)
 
std::optional< component_valueparse_component_value (std::u32string &&in)
 
std::vector< syntax_primitiveparse_list_of_component_values (std::vector< syntax_primitive > &&in)
 
std::vector< syntax_primitiveparse_list_of_component_values (std::u32string &&in)
 
template<typename ErrorHandler >
std::vector< std::vector< syntax_primitive > > parse_comma_separated_list_of_component_values (token_stream &in, ErrorHandler handler)
 コンマ区切りのコンポーネント値のリストを構文解析する [詳解]
 
std::vector< std::vector< syntax_primitive > > parse_comma_separated_list_of_component_values (std::vector< syntax_primitive > &&in)
 コンマ区切りのコンポーネント値のリストを構文解析する [詳解]
 
std::vector< std::vector< syntax_primitive > > parse_comma_separated_list_of_component_values (std::u32string &&in)
 コンマ区切りのコンポーネント値のリストを構文解析する [詳解]
 
template<typename ErrorHandler >
std::vector< syntax_primitiveconsume_list_of_rules (token_stream &in, bool top_level, ErrorHandler handler)
 Ruleのリストを消費する [詳解]
 
template<typename ErrorHandler >
at_rule consume_at_rule (token_stream &in, ErrorHandler handler)
 入力から at_rule を消費する [詳解]
 
template<typename ErrorHandler >
std::optional< qualified_ruleconsume_qualified_rule (token_stream &in, ErrorHandler handler)
 入力から qualified_rule を消費する [詳解]
 
template<typename ErrorHandler >
std::vector< syntax_primitiveconsume_list_of_declarations (token_stream &in, ErrorHandler handler)
 入力から declaration のリストを消費する [詳解]
 
template<typename ErrorHandler >
std::optional< declarationconsume_declaration (token_stream &in, ErrorHandler handler)
 入力から declaration を消費する [詳解]
 
template<typename ErrorHandler >
component_value consume_component_value (token_stream &in, ErrorHandler handler)
 
template<typename ErrorHandler >
simple_block consume_simple_block (token_stream &in, ErrorHandler handler)
 
template<typename ErrorHandler >
function consume_function (token_stream &in, ErrorHandler handler)
 
bool process_important (std::vector< component_value > &v)
 
bool is_digit (char32_t cp)
 
bool is_hex_digit (char32_t cp)
 
bool is_uppercase_letter (char32_t cp)
 
bool is_lowercase_letter (char32_t cp)
 
bool is_letter (char32_t cp)
 
bool is_non_ascii_code_point (char32_t cp)
 
bool is_identifier_start_code_point (char32_t cp)
 
bool is_identifier_code_point (char32_t cp)
 
bool is_non_printable_code_point (char32_t cp)
 
bool is_newline (char32_t cp)
 
bool is_whitespace (char32_t cp)
 
template<typename BidirectionalIterator , typename ErrorHandler = std::nullptr_t>
std::pair< BidirectionalIterator, syntax_primitiveconsume_token (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler=nullptr)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::pair< BidirectionalIterator, syntax_primitiveconsume_comments (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler handler)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::pair< BidirectionalIterator, syntax_primitiveconsume_numeric_token (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler handler)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::pair< BidirectionalIterator, syntax_primitiveconsume_ident_like_token (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler handler)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::pair< BidirectionalIterator, syntax_primitiveconsume_string_token (BidirectionalIterator first, BidirectionalIterator last, char32_t ends, ErrorHandler handler)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::pair< BidirectionalIterator, syntax_primitiveconsume_url_token (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler handler)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::pair< BidirectionalIterator, char32_t > consume_escaped_code_point (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler handler)
 
template<typename BidirectionalIterator >
bool starts_with_valid_escape (BidirectionalIterator first, BidirectionalIterator last)
 
template<typename BidirectionalIterator >
bool starts_with_identifier (BidirectionalIterator first, BidirectionalIterator last)
 
template<typename BidirectionalIterator >
bool starts_with_number (BidirectionalIterator first, BidirectionalIterator last)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::pair< BidirectionalIterator, std::u32string > consume_identifier (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler handler)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::tuple< BidirectionalIterator, double, number_type_flag_nameconsume_number (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler handler)
 
template<typename InputIterator >
double convert_string_to_number (InputIterator first, InputIterator last)
 
template<typename BidirectionalIterator , typename ErrorHandler >
std::pair< BidirectionalIterator, syntax_primitiveconsume_remnants_of_bad_url (BidirectionalIterator first, BidirectionalIterator last, ErrorHandler handler)
 
template<typename BidirectionalIterator , typename OutputIterator , typename ErrorHandler >
void tokenize (BidirectionalIterator first, BidirectionalIterator last, OutputIterator output, ErrorHandler handler)
 
selector_list parse_selector (std::u32string const &src, parse_context &ctx)
 セレクタとして構文解析する [詳解]
 
relative_selector_list parse_relative_selector (std::u32string const &src, parse_context ctx)
 相対セレクタとして構文解析する [詳解]
 
template<typename Selector , typename NodePointer , typename OutputIterator , typename PseudoElementIterator = std::nullptr_t>
void match_selector (Selector const &s, parse_context const &pctx, NodePointer first, NodePointer last, OutputIterator out, NodePointer scoping_root=wordring::html::node_traits< NodePointer >::pointer(), NodePointer scope_elements_first=wordring::html::node_traits< NodePointer >::pointer(), NodePointer scope_elements_last=wordring::html::node_traits< NodePointer >::pointer(), PseudoElementIterator pseudo_elements_first=nullptr, PseudoElementIterator pseudo_elements_last=nullptr)
 木とセレクタを照合する [詳解]
 
pseudo_class_id_name to_pseudo_class_id_name (std::u32string_view name)
 
pseudo_class_fn_name to_pseudo_class_fn_name (std::u32string_view name)
 
pseudo_element_id_name to_pseudo_element_id_name (std::u32string_view name)
 

変数

constexpr char32_t maximum_allowed_code_point = U'\U0010FFFF'
 

詳解

非公開の名前空間。

列挙型詳解

◆ syntax_primitive_name

enum wordring::wwwc::css::syntax_primitive_name : std::size_t
strong
列挙値
Token 

これ以降 Rule までトークン

IdentToken 

識別子

FunctionToken 

関数

AtKeywordToken 

@xxx

HashToken 

#xxx

StringToken 

文字列

BadStringToken 

悪い文字列

UrlToken 

URL

BadUrlToken 

悪いURL

DelimToken 

区切り文字

NumberToken 

数字

PercentageToken 

数字%

DimensionToken 

数字 単位

WhitespaceToken 

空白文字

CdoToken 

"<!--"

CdcToken 

"-->"

ColonToken 

':'

SemicolonToken 

';'

CommaToken 

','

OpenSquareToken 

'['

CloseSquareToken 

']'

OpenParenToken 

'('

CloseParenToken 

')'

OpenCurlyToken 

'{'

CloseCurlyToken 

'}'

EofToken 

EOF

SyntaxItem 

これ以降、構文アイテム

AtRule 

at-rule https://triple-underscore.github.io/css-syntax-ja.html#at-rule

QualifiedRule 

qualified rule https://triple-underscore.github.io/css-syntax-ja.html#qualified-rule

Declaration 

declaration

ComponentValue 

component value

PreservedTokens 

preserved tokens

Function 

function

SimpleBlock 

simple block

◆ number_type_flag_name

整数と小数を識別するためのフラグ値

参照
number_token
dimension_token

◆ pseudo_element_id_name

enum wordring::wwwc::css::pseudo_element_id_name : std::uint32_t
strong

関数詳解

◆ parse_comma_list()

template<typename Syntax , typename ErrorHandler >
std::vector< Syntax > wordring::wwwc::css::parse_comma_list ( token_stream in,
parse_context ctx,
ErrorHandler  handler 
)
inline

カンマ区切りのリストをCSS文法に沿って構文解析する

引数
[in]in入力ストリーム
[in]ctxパーサー・コンテキスト
[in]handlerエラー・ハンドラ
戻り値
「コンポーネント値のリスト(std::vector<syntax_primitive>)、あるいは失敗」のリスト

入力をコンポーネント値のリストのリストへ解析する。 文法の検査も行う。

文法は、コンポーネント値のリストを引数に呼び出すと、マッチするとtrueを返し、マッチしないとfalseを返す関数類。 文法のシグネチャは以下の通り。

bool syntax(std::vector<component_value> const& v);

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
std::optional
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#css-parse-a-comma-separated-list-according-to-a-css-grammar
https://triple-underscore.github.io/css-syntax-ja.html#css-parse-a-comma-separated-list-according-to-a-css-grammar

◆ parse_list_of_component_values()

template<typename ErrorHandler >
std::vector< syntax_primitive > wordring::wwwc::css::parse_list_of_component_values ( token_stream in,
ErrorHandler  handler 
)
inline

コンポーネント値のリストを構文解析する

引数
[in]in入力ストリーム
[in]handlerエラーハンドラ
戻り値
コンポーネント値のリスト

入力をコンポーネント値のリストへ解析する。

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#parse-a-list-of-component-values
https://triple-underscore.github.io/css-syntax-ja.html#parse-a-list-of-component-values

◆ normalize_into_token_stream() [1/2]

template<typename ErrorHandler = std::nullptr_t>
std::vector<syntax_primitive> wordring::wwwc::css::normalize_into_token_stream ( std::vector< syntax_primitive > &&  in,
ErrorHandler  handler = nullptr 
)
inline

入力をトークン列へ正規化する

引数
[in]inトークンあるいはコンポーネント値のリスト
[in]handler[オプション] エラーハンドラー
戻り値
トークンあるいはコンポーネント値のリスト

入力として文字列が与えられた場合、オーバーロードが呼び出される。

オーバーロード解決に参加させるためダミーのエラーハンドラーを用意しているが、呼び出されることはない。

参照
https://drafts.csswg.org/css-syntax-3/#normalize-into-a-token-stream
https://triple-underscore.github.io/css-syntax-ja.html#normalize-into-a-token-stream

◆ normalize_into_token_stream() [2/2]

template<typename ErrorHandler = std::nullptr_t>
std::vector<syntax_primitive> wordring::wwwc::css::normalize_into_token_stream ( std::u32string &&  in,
ErrorHandler  handler = nullptr 
)
inline

入力をトークン列へ正規化する

引数
[in]inスタイルシートを表すコード・ポイント列
[in]handler[オプション] エラーハンドラー
戻り値
トークンのリスト

入力として文字列が与えられた場合、このバージョンの関数が呼び出される。 その他の入力が与えられた場合、オーバーロードが呼び出される。

有効なエラーハンドラが引数で供給された場合、トークン化で発生したエラーを報告するために、 発生個所を指すイテレータを引数にエラーハンドラーが呼び出される。 呼び出され方は、以下の通り。

handler(in.begin() + n);
参照
normalize_into_token_stream(std::vector<syntax_primitive>&&, ErrorHandler)

◆ parse_grammar()

template<typename Syntax , typename ErrorHandler = std::nullptr_t>
Syntax wordring::wwwc::css::parse_grammar ( token_stream in,
parse_context ctx,
ErrorHandler  handler = nullptr 
)
inline

CSS文法に沿って解析する

引数
[in]in入力ストリーム
[in]ctxパーサー・コンテキスト
[in]handlerエラー・ハンドラ
戻り値
コンポーネント値のリスト(std::vector<component_value>)、あるいは失敗。

入力をコンポーネント値のリストへ解析する。

引数sで供給される文法にマッチしない場合、戻り値は failure 状態となる。 文法は、コンポーネント値のリストを引数に呼び出すと、マッチするとtrueを返し、マッチしないとfalseを返す関数類。 文法のシグネチャは以下の通り。

bool syntax(std::vector<syntax_primitive> const& v);

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
std::optional
https://drafts.csswg.org/css-syntax-3/#css-parse-something-according-to-a-css-grammar
https://triple-underscore.github.io/css-syntax-ja.html#css-parse-something-according-to-a-css-grammar

◆ parse_stylesheet() [1/2]

template<typename ErrorHandler >
std::vector<syntax_primitive> wordring::wwwc::css::parse_stylesheet ( token_stream in,
ErrorHandler  handler 
)
inline

スタイルシートを構文解析する

引数
[in]in入力ストリーム
[in]handlerエラーハンドラ
戻り値
規則のリスト

入力を規則のリストへ解析する。

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#parse-a-stylesheet
https://triple-underscore.github.io/css-syntax-ja.html#parse-a-stylesheet

◆ parse_stylesheet() [2/2]

std::vector<syntax_primitive> wordring::wwwc::css::parse_stylesheet ( std::string const &  in,
encoding_name  fallback = static_cast<encoding_name>(0) 
)
inline

スタイルシートを構文解析する

この関数は、8bit文字列を入力として受け付ける。 エンコーディングを自動決定することが出来る。

◆ parse_list_of_rules()

template<typename ErrorHandler >
std::vector<syntax_primitive> wordring::wwwc::css::parse_list_of_rules ( token_stream in,
ErrorHandler  handler 
)
inline

規則リストを構文解析する

引数
[in]in入力ストリーム
[in]handlerエラーハンドラ
戻り値
規則のリスト

入力を規則のリストへ解析する。

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#parse-a-list-of-rules
https://triple-underscore.github.io/css-syntax-ja.html#parse-a-list-of-rules

◆ parse_rule()

template<typename ErrorHandler >
std::optional<syntax_primitive> wordring::wwwc::css::parse_rule ( token_stream in,
ErrorHandler  handler 
)
inline

規則を構文解析する

引数
[in]in入力ストリーム
[in]handlerエラーハンドラ
戻り値
規則、あるいは失敗

入力を規則へ解析する。

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#parse-a-rule
https://triple-underscore.github.io/css-syntax-ja.html#parse-a-rule

◆ parse_declaration()

template<typename ErrorHandler >
std::optional<declaration> wordring::wwwc::css::parse_declaration ( token_stream in,
ErrorHandler  handler 
)
inline

宣言を構文解析する

引数
[in]in入力ストリーム
[in]handlerエラーハンドラ
戻り値
宣言、あるいは失敗

入力をコンポーネント値のリストへ解析する。

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#parse-a-declaration
https://triple-underscore.github.io/css-syntax-ja.html#parse-a-declaration

◆ parse_list_of_declarations()

template<typename ErrorHandler >
std::vector<syntax_primitive> wordring::wwwc::css::parse_list_of_declarations ( token_stream in,
ErrorHandler  handler 
)
inline

宣言リストを構文解析する

引数
[in]in入力ストリーム
[in]handlerエラーハンドラ
戻り値
「 Declaration あるいは -rule 」の混在リスト

入力を宣言リストへ解析する。

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#parse-a-list-of-declarations
https://triple-underscore.github.io/css-syntax-ja.html#parse-a-list-of-declarations

◆ parse_component_value()

template<typename ErrorHandler >
std::optional<component_value> wordring::wwwc::css::parse_component_value ( token_stream in,
ErrorHandler  handler 
)
inline

コンポーネント値を構文解析する

引数
[in]in入力ストリーム
[in]handlerエラーハンドラ
戻り値
コンポーネント値、あるいは失敗

入力をコンポーネント値へ解析する。

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#parse-a-component-value
https://triple-underscore.github.io/css-syntax-ja.html#parse-a-component-value

◆ parse_comma_separated_list_of_component_values() [1/3]

template<typename ErrorHandler >
std::vector<std::vector<syntax_primitive> > wordring::wwwc::css::parse_comma_separated_list_of_component_values ( token_stream in,
ErrorHandler  handler 
)
inline

コンマ区切りのコンポーネント値のリストを構文解析する

引数
[in]in入力ストリーム
[in]handlerエラーハンドラ
戻り値
コンポーネント値のリストのリスト

入力をコンポーネント値のリストのリストへ解析する。

エラーハンドラが供給された場合、エラーを報告するために、 発生個所を指す token_stream を引数にエラーハンドラーが呼び出される。 エラーハンドラは、以下の通り。

void handler(token_stream const& s);

この関数は、CSS Syntax Moduleの外から呼び出されることを想定している。

参照
parse_grammar(token_stream&, Syntax, ErrorHandler)
https://drafts.csswg.org/css-syntax-3/#parse-comma-separated-list-of-component-values
https://triple-underscore.github.io/css-syntax-ja.html#parse-comma-separated-list-of-component-values

◆ parse_comma_separated_list_of_component_values() [2/3]

std::vector<std::vector<syntax_primitive> > wordring::wwwc::css::parse_comma_separated_list_of_component_values ( std::vector< syntax_primitive > &&  in)
inline

コンマ区切りのコンポーネント値のリストを構文解析する

引数
[in]in入力トークン列
戻り値
コンポーネント値のリストのリスト
参照
parse_comma_separated_list_of_component_values(token_stream&, ErrorHandler)

◆ parse_comma_separated_list_of_component_values() [3/3]

std::vector<std::vector<syntax_primitive> > wordring::wwwc::css::parse_comma_separated_list_of_component_values ( std::u32string &&  in)
inline

コンマ区切りのコンポーネント値のリストを構文解析する

引数
[in]in入力文字列
戻り値
コンポーネント値のリストのリスト
参照
parse_comma_separated_list_of_component_values(token_stream&, ErrorHandler)

◆ consume_list_of_rules()

template<typename ErrorHandler >
std::vector< syntax_primitive > wordring::wwwc::css::consume_list_of_rules ( token_stream in,
bool  top_level,
ErrorHandler  handler 
)
inline

Ruleのリストを消費する

引数
[in]inトークン列のストリーム
[in]top_levelトップレベルフラグ(規格内の呼び出し側で指定される)
[in]handlerエラー処理を行うユーザー定義の関数
戻り値
At-rule・Qualified rule の混在リスト

この関数は、CSS Syntax Moduleの外から呼び出されることを想定していない。

参照
https://drafts.csswg.org/css-syntax-3/#consume-a-list-of-rules
https://triple-underscore.github.io/css-syntax-ja.html#consume-a-list-of-rules

◆ consume_at_rule()

template<typename ErrorHandler >
at_rule wordring::wwwc::css::consume_at_rule ( token_stream in,
ErrorHandler  handler 
)
inline

入力から at_rule を消費する

引数
[in]inトークン列のストリーム
[in]handlerエラー処理を行うユーザー定義の関数
戻り値
rule

この関数は、CSS Syntax Moduleの外から呼び出されることを想定していない。

この関数は、入力の先頭が at_keyword_token と仮定している。

参照
At-rule
https://drafts.csswg.org/css-syntax-3/#consume-an-at-rule
https://triple-underscore.github.io/css-syntax-ja.html#consume-an-at-rule

◆ consume_qualified_rule()

template<typename ErrorHandler >
std::optional< qualified_rule > wordring::wwwc::css::consume_qualified_rule ( token_stream in,
ErrorHandler  handler 
)
inline

入力から qualified_rule を消費する

引数
[in]inトークン列のストリーム
[in]handlerエラー処理を行うユーザー定義の関数
戻り値
rule

この関数は、CSS Syntax Moduleの外から呼び出されることを想定していない。

参照
Qualified rule あるいは何も返さない
https://drafts.csswg.org/css-syntax-3/#consume-a-qualified-rule
https://triple-underscore.github.io/css-syntax-ja.html#consume-a-qualified-rule

◆ consume_list_of_declarations()

template<typename ErrorHandler >
std::vector< syntax_primitive > wordring::wwwc::css::consume_list_of_declarations ( token_stream in,
ErrorHandler  handler 
)
inline

入力から declaration のリストを消費する

引数
[in]inトークン列のストリーム
[in]handlerエラー処理を行うユーザー定義の関数
戻り値
「 Declaration あるいは -rule 」の混在リスト
入力例
background-color: red;
color: blue !important;

この関数は、CSS Syntax Moduleの外から呼び出されることを想定していない。

参照
declaration
https://drafts.csswg.org/css-syntax-3/#consume-a-list-of-declarations
https://triple-underscore.github.io/css-syntax-ja.html#consume-a-list-of-declarations

◆ consume_declaration()

template<typename ErrorHandler >
std::optional< declaration > wordring::wwwc::css::consume_declaration ( token_stream in,
ErrorHandler  handler 
)
inline

入力から declaration を消費する

引数
[in]inトークン列のストリーム
[in]handlerエラー処理を行うユーザー定義の関数
戻り値
declaration

この関数は、CSS Syntax Moduleの外から呼び出されることを想定していない。

参照
declaration
https://drafts.csswg.org/css-syntax-3/#consume-a-declaration
https://triple-underscore.github.io/css-syntax-ja.html#consume-a-declaration

◆ process_important()

bool wordring::wwwc::css::process_important ( std::vector< component_value > &  v)
inline

末尾の !important を削除する

戻り値
削除した場合、 true を返す

consume_declaration() から呼び出される。

参照
consume_declaration()

◆ parse_selector()

selector_list wordring::wwwc::css::parse_selector ( std::u32string const &  src,
parse_context ctx 
)
inline

セレクタとして構文解析する

引数
[in]srcソース文字列
[in/out]ctx 構文解析コンテキスト
参照
https://drafts.csswg.org/selectors-4/#parse-a-selector
https://triple-underscore.github.io/selectors4-ja.html#parse-a-selector

◆ parse_relative_selector()

relative_selector_list wordring::wwwc::css::parse_relative_selector ( std::u32string const &  src,
parse_context  ctx 
)
inline

相対セレクタとして構文解析する

未実装。

◆ match_selector()

template<typename Selector , typename NodePointer , typename OutputIterator , typename PseudoElementIterator = std::nullptr_t>
void wordring::wwwc::css::match_selector ( Selector const &  s,
parse_context const &  pctx,
NodePointer  first,
NodePointer  last,
OutputIterator  out,
NodePointer  scoping_root = wordring::html::node_traits<NodePointer>::pointer(),
NodePointer  scope_elements_first = wordring::html::node_traits<NodePointer>::pointer(),
NodePointer  scope_elements_last = wordring::html::node_traits<NodePointer>::pointer(),
PseudoElementIterator  pseudo_elements_first = nullptr,
PseudoElementIterator  pseudo_elements_last = nullptr 
)
inline

木とセレクタを照合する

引数
[in]s構文クラス
[in]pctx構文解析コンテキスト
[in]first根要素リストの開始
[in]last根要素リストの終端
[out]outセレクタに合致したノードを出力するイテレータ
[in]scoping_rootスコープの根要素
[in]scope_elements_first:scope 疑似クラスと合致する要素集合の開始
[in]scope_elements_last:scope 疑似クラスと合致する要素集合の終端
[in]pseudo_elements_firstサポートする疑似要素リストの開始
[in]pseudo_elements_lastサポートする疑似要素リストの終端
戻り値
照合が成功した場合 true を返す

サポートする疑似要素リストとは、 pseudo_element_id_name のリスト。 省略時はすべての疑似要素。 ただし wordring_cpp は現在、一切の疑似要素に対応していない。

参照
https://drafts.csswg.org/selectors-4/#match-a-selector-against-a-tree
https://triple-underscore.github.io/selectors4-ja.html#match-a-selector-against-a-tree