Qucs-S S-parameter Viewer & RF Synthesis Tools
Loading...
Searching...
No Matches
Classes | Functions | Variables
mdit_py_plugins.attrs.parse Namespace Reference

Classes

class  ParseError
 
class  State
 
class  TokenState
 

Functions

tuple[int, dict[str, str]] parse (str string)
 
State handle_start (str char, int pos, TokenState tokens)
 
State handle_scanning (str char, int pos, TokenState tokens)
 
State handle_scanning_comment (str char, int pos, TokenState tokens)
 
State handle_scanning_id (str char, int pos, TokenState tokens)
 
State handle_scanning_class (str char, int pos, TokenState tokens)
 
State handle_scanning_key (str char, int pos, TokenState tokens)
 
State handle_scanning_value (str char, int pos, TokenState tokens)
 
State handle_scanning_bare_value (str char, int pos, TokenState tokens)
 
State handle_scanning_escaped (str char, int pos, TokenState tokens)
 
State handle_scanning_quoted_value (str char, int pos, TokenState tokens)
 

Variables

 REGEX_SPACE = re.compile(r"\s")
 
 REGEX_SPACE_PUNCTUATION = re.compile(r"[\s!\"#$%&'()*+,./;<=>?@[\]^`{|}~]")
 
 REGEX_KEY_CHARACTERS = re.compile(r"[a-zA-Z\d_:-]")
 
dict HANDLERS
 

Detailed Description

Parser for attributes::

    attributes { id = "foo", class = "bar baz",
                key1 = "val1", key2 = "val2" }

Adapted from:
https://github.com/jgm/djot/blob/fae7364b86bfce69bc6d5b5eede1f5196d845fd6/djot/attributes.lua#L1

syntax:

attributes <- '{' whitespace* attribute (whitespace attribute)* whitespace* '}'
attribute <- identifier | class | keyval
identifier <- '#' name
class <- '.' name
name <- (nonspace, nonpunctuation other than ':', '_', '-')+
keyval <- key '=' val
key <- (ASCII_ALPHANUM | ':' | '_' | '-')+
val <- bareval | quotedval
bareval <- (ASCII_ALPHANUM | ':' | '_' | '-')+
quotedval <- '"' ([^"] | '\"') '"'

Function Documentation

◆ parse()

tuple[int, dict[str, str]] mdit_py_plugins.attrs.parse.parse ( str  string)
Parse attributes from start of string.

:returns: (length of parsed string, dict of attributes)

Variable Documentation

◆ HANDLERS

dict mdit_py_plugins.attrs.parse.HANDLERS
Initial value:
1= {
2 State.START: handle_start,
3 State.SCANNING: handle_scanning,
4 State.SCANNING_COMMENT: handle_scanning_comment,
5 State.SCANNING_ID: handle_scanning_id,
6 State.SCANNING_CLASS: handle_scanning_class,
7 State.SCANNING_KEY: handle_scanning_key,
8 State.SCANNING_VALUE: handle_scanning_value,
9 State.SCANNING_BARE_VALUE: handle_scanning_bare_value,
10 State.SCANNING_QUOTED_VALUE: handle_scanning_quoted_value,
11 State.SCANNING_ESCAPED: handle_scanning_escaped,
12}