1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
|
# Copyright (c) 2017-2026 Juancarlo AƱez (apalala@gmail.com)
# SPDX-License-Identifier: BSD-4-Clause
from __future__ import annotations
from typing import Any
from .builder import ModelBuilderSemantics, TypeContainer
from .util.abctools import simplify_list
__all__ = ['ASTSemantics', 'ModelBuilderSemantics', 'TypeContainer']
class ASTSemantics:
def group(self, ast: Any, *args) -> Any:
return simplify_list(ast)
def element(self, ast: Any, *args) -> Any:
return simplify_list(ast)
def sequence(self, ast: Any, *args) -> Any:
return simplify_list(ast)
def choice(self, ast: Any, *args) -> Any:
if len(ast) == 1:
return simplify_list(ast[0])
return ast
|