Bash++
Bash++ compiler internal documentation
Classes | Enumerations
AST Namespace Reference

Classes

class  ArrayAssignment
 
class  ArrayIndex
 
class  ASTNode
 The base class for all non-terminal nodes in the Bash++ AST. Each ASTNode contains information about its type, children, and position in the source code. More...
 
class  BaseListener
 CRTP base class for AST listeners. CRTP is a kind of language hack that makes static polymorphism possible in C++. More...
 
class  Bash53NativeSupershell
 
class  BashArithmeticForCondition
 Represents the condition part of a Bash arithmetic for loop E.g., in for (( i=0; i<10; i++ )), the entire "(( i=0; i<10; i++ ))" would be represented by a BashArithmeticForCondition node. Each of the three components would be represented by BashArithmeticStatement nodes as its children. More...
 
class  BashArithmeticForStatement
 Represents a Bash arithmetic for loop statement. E.g., for (( i=0; i<10; i++ )); do ...; done. More...
 
class  BashArithmeticStatement
 Represents a single arithmetic statement in an arithmetic for loop condition. E.g., in for (( i=0; i<10; i++ )), each of "i=0", "i<10", and "i++" would be represented by a BashArithmeticStatement node. More...
 
class  BashArithmeticSubstitution
 
class  BashCaseInput
 
class  BashCasePattern
 
class  BashCasePatternHeader
 Represents the 'header' of a case pattern, i.e., the pattern to match against. More...
 
class  BashCaseStatement
 
class  BashCommand
 
class  BashCommandSequence
 
class  BashForStatement
 
class  BashFunction
 
class  BashIfCondition
 
class  BashIfElseBranch
 
class  BashIfRootBranch
 
class  BashIfStatement
 
class  BashInCondition
 Represents a Bash 'in' condition used in for loops and select statements. More...
 
class  BashPipeline
 
class  BashppParser
 A driver class to wrap around the Bison-generated parser for Bash++. This class manages both the lexer and parser state, and provides methods to set the input source. More...
 
class  BashRedirection
 
class  BashSelectStatement
 
class  BashTestConditionCommand
 
class  BashUntilStatement
 
class  BashVariable
 
class  BashWhileOrUntilCondition
 
class  BashWhileStatement
 
class  Block
 
class  ClassDefinition
 
class  Connective
 
class  ConstructorDefinition
 
class  DatamemberDeclaration
 
class  DeleteStatement
 
class  DestructorDefinition
 
class  DoublequotedString
 
class  DynamicCast
 
class  DynamicCastTarget
 
struct  FilePosition
 
class  HeredocBody
 
class  HereString
 
class  IncludeStatement
 
class  MethodDefinition
 
class  NewStatement
 
class  ObjectAssignment
 
class  ObjectInstantiation
 
class  ObjectReference
 
class  ParameterExpansion
 
class  PointerDeclaration
 
class  PrimitiveAssignment
 
class  ProcessSubstitution
 
class  Program
 
class  RawSubshell
 
class  RawText
 
class  Rvalue
 
class  StringType
 Base class for string-type nodes in the AST. More...
 
class  SubshellSubstitution
 
class  Supershell
 
class  Token
 A class representing a token in the Bash++ AST. Tokens store their value along with line and column information. More...
 
class  TypeofExpression
 
class  ValueAssignment
 

Enumerations

enum class  AccessModifier { PUBLIC , PROTECTED , PRIVATE }
 
enum class  NodeType : int {
  Program = 0 , ArrayAssignment , ArrayIndex , BashArithmeticForCondition ,
  BashArithmeticForStatement , BashArithmeticStatement , BashArithmeticSubstitution , Bash53NativeSupershell ,
  BashCaseInput , BashCasePattern , BashCasePatternHeader , BashCaseStatement ,
  BashCommand , BashCommandSequence , BashForStatement , BashIfCondition ,
  BashIfElseBranch , BashIfRootBranch , BashIfStatement , BashInCondition ,
  BashPipeline , BashRedirection , BashSelectStatement , BashTestConditionCommand ,
  BashUntilStatement , BashVariable , BashWhileOrUntilCondition , BashWhileStatement ,
  BashFunction , Block , ClassDefinition , Connective ,
  ConstructorDefinition , DatamemberDeclaration , DeleteStatement , DestructorDefinition ,
  DoublequotedString , DynamicCast , DynamicCastTarget , HeredocBody ,
  HereString , IncludeStatement , MethodDefinition , NewStatement ,
  ObjectAssignment , ObjectInstantiation , ObjectReference , ParameterExpansion ,
  PointerDeclaration , PrimitiveAssignment , ProcessSubstitution , RawSubshell ,
  RawText , Rvalue , SubshellSubstitution , Supershell ,
  TypeofExpression , ValueAssignment , ERROR_TYPE
}
 

Detailed Description

Copyright (C) 2025 Andrew S. Rightenburg Bash++: Bash with classes

Enumeration Type Documentation

◆ AccessModifier

enum class AST::AccessModifier
strong
Enumerator
PUBLIC 
PROTECTED 
PRIVATE 

◆ NodeType

enum class AST::NodeType : int
strong
Enumerator
Program 
ArrayAssignment 
ArrayIndex 
BashArithmeticForCondition 
BashArithmeticForStatement 
BashArithmeticStatement 
BashArithmeticSubstitution 
Bash53NativeSupershell 
BashCaseInput 
BashCasePattern 
BashCasePatternHeader 
BashCaseStatement 
BashCommand 
BashCommandSequence 
BashForStatement 
BashIfCondition 
BashIfElseBranch 
BashIfRootBranch 
BashIfStatement 
BashInCondition 
BashPipeline 
BashRedirection 
BashSelectStatement 
BashTestConditionCommand 
BashUntilStatement 
BashVariable 
BashWhileOrUntilCondition 
BashWhileStatement 
BashFunction 
Block 
ClassDefinition 
Connective 
ConstructorDefinition 
DatamemberDeclaration 
DeleteStatement 
DestructorDefinition 
DoublequotedString 
DynamicCast 
DynamicCastTarget 
HeredocBody 
HereString 
IncludeStatement 
MethodDefinition 
NewStatement 
ObjectAssignment 
ObjectInstantiation 
ObjectReference 
ParameterExpansion 
PointerDeclaration 
PrimitiveAssignment 
ProcessSubstitution 
RawSubshell 
RawText 
Rvalue 
SubshellSubstitution 
Supershell 
TypeofExpression 
ValueAssignment 
ERROR_TYPE