2025-05-09

vak: (Путиномедвед)
Алла Пугачёва написала сегодня в своём блоге: «Помянем тех, кого нет с нами, и будем думать о живых».

Помянем прежнего Путина недобрым словом и будем думать о двойнике. 😀
vak: (Знайка)
Скормил Гроку грамматику языка Си от YACC (c11.y), и он превратил её в формальное описание абстрактного синтаксического дерева (c11.asdl). Это будет большое подспорье. По этому описанию можно создавать все нужные структуры и процедуры сериализации.
module C

-- Identifiers and basic types
type Ident = string

-- Types
type Type
= Void
| Bool
| Char(Signedness signed)
| Short(Signedness signed)
| Int(Signedness signed)
| Long(Signedness signed)
| Float
| Double
| Complex(Type base) -- _Complex float, _Complex double
| Imaginary(Type base) -- _Imaginary (non-mandated extension)
| Pointer(Type target, TypeQualifier* qualifiers)
| Array(Type element, Expr? size, TypeQualifier* qualifiers)
| Function(Type returnType, ParamList params, bool variadic)
| Struct(Ident? name, Field* fields)
| Union(Ident? name, Field* fields)
| Enum(Ident? name, Enumerator* enumerators)
| TypedefName(Ident name)
| Atomic(Type base) -- _Atomic(type_name)
attributes(TypeQualifier* qualifiers)

...еще... )