Skip to content

init

parser

pygerber.gerberx3.parser package contains Gerber X3 parser implementations.

ParserProtocol

Bases: Protocol

Parser protocol.

Source code in src/pygerber/gerberx3/parser/__init__.py
class ParserProtocol(Protocol):
    """Parser protocol."""

    def parse(self, code: str, *, strict: bool = True) -> Any:
        """Parse the input."""

parse

parse(code: str, *, strict: bool = True) -> Any

Parse the input.

Source code in src/pygerber/gerberx3/parser/__init__.py
def parse(self, code: str, *, strict: bool = True) -> Any:
    """Parse the input."""

parse

parse(
    code: str,
    *,
    strict: bool = True,
    parser: Literal["pyparsing"] = "pyparsing",
    **options: Any
) -> File

Parse GerberX3 file source code and construct AST from it.

Source code in src/pygerber/gerberx3/parser/__init__.py
def parse(
    code: str,
    *,
    strict: bool = True,
    parser: Literal["pyparsing"] = "pyparsing",
    **options: Any,
) -> File:
    """Parse GerberX3 file source code and construct AST from it."""
    if parser == "pyparsing":
        from pygerber.gerberx3.parser.pyparsing.parser import Parser

        return Parser(**options).parse(code, strict=strict)

    msg = f"Parser '{parser}' is not supported."  # type: ignore[unreachable]
    raise NotImplementedError(msg)