Metadata-Version: 2.1
Name: caustic.cst
Version: 2.1.0
Summary: Caustic's Abstract Syntax Tree, or CST
Author: Shae.c32
Project-URL: Homepage, https://codeberg.org/Caustic/CausticAST
Project-URL: Issues, https://codeberg.org/Caustic/CausticAST/issues
Keywords: caustic,language,parser,ast,syntax,tree
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Programming Language :: Other
Classifier: Topic :: File Formats
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Compilers
Classifier: Topic :: Software Development :: Documentation
Classifier: Topic :: Software Development :: Interpreters
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE

Caustic's Abstract Syntax Tree

Note that the `serialize` module, instead of providing node types,
provides (de)serialization functions for nodes

# Nodes

> Note: Treat all names as being under `caustic.cst`

> !NOTE! Outdated!

```
bases.CausticASTNode
 ├─ bases.BaseStatement
 │   ├─ statement.ProcedureStatement
 │   ├─ statement.ImportStatement
 │   ├─ statement.ExportStatement
 │   ├─ statement.IfStatement
 │   │   └─ statement.ElifStatement
 │   ├─ statement.ElseStatement
 │   ├─ statement.ForStatement
 │   ├─ statement.WhileStatement
 │   ├─ statement.Directive
 │   └─ bases.BaseTypeDecl
 │       ├─ typedecl.SingletonType
 │       ├─ typedecl.EnumType
 │       └─ typedecl.StructType
 │           └─ typedecl.ClassType
 ├─ bases.BaseExpression
 │   ├─ expression.Invoke
 │   ├─ expression.ProcedureExpr
 │   ├─ bases.BaseOperator
 │   │   ├─ bases.BaseUnaryOperator
 │   │   │   ├─ expression.UPlus
 │   │   │   ├─ expression.UMinus
 │   │   │   ├─ expression.Increment
 │   │   │   ├─ expression.Decrement
 │   │   │   ├─ expression.BitInvert
 │   │   │   └─ expression.LogNot
 │   │   ├─ bases.BaseBinaryOperator
 │   │   │   ├─ expression.AssignExpr
 │   │   │   ├─ expression.Add
 │   │   │   ├─ expression.Sub
 │   │   │   ├─ expression.Mult
 │   │   │   ├─ expression.Div
 │   │   │   ├─ expression.Mod
 │   │   │   ├─ expression.MMul
 │   │   │   ├─ expression.Pow
 │   │   │   ├─ expression.Equality [EQ]
 │   │   │   ├─ expression.Inequality [NE]
 │   │   │   ├─ expression.LessThan [LT]
 │   │   │   ├─ expression.GreaterThan [GT]
 │   │   │   ├─ expression.LessThanOrEquality [LE]
 │   │   │   ├─ expression.GreaterThanOrEquality [GE]
 │   │   │   ├─ expression.Nullish
 │   │   │   ├─ expression.LogAnd
 │   │   │   ├─ expression.LogOr
 │   │   │   ├─ expression.LogXor
 │   │   │   ├─ expression.BitAnd
 │   │   │   ├─ expression.BitOr
 │   │   │   ├─ expression.BitXor
 │   │   │   ├─ expression.LShift
 │   │   │   └─ expression.RShift
 │   │   └─ expression.Ternary
 │   └─ bases.BaseAtom
 │       ├─ bases.BaseConstant
 │       │   ├─ constant.BoolTrue
 │       │   ├─ constant.BoolFalse
 │       │   ├─ constant.Null
 │       │   └─ constant.Default
 │       ├─ bases.BaseLiteral
 │       │   ├─ atom.Integer
 │       │   ├─ atom.Decimal
 │       │   ├─ atom.Char
 │       │   ├─ atom.Bytes
 │       │   └─ atom.String
 │       ├─ atom.Identifier
 │       └─ atom.DottedIdentifier
 ├─ block.Line
 └─ block.Block
```
