#include <compiler.h>


Public Types | |
| using | AstMap = std::unordered_map< antlr4::ParserRuleContext *, std::unique_ptr< ast::INode >> |
Public Member Functions | |
| Compiler (std::ifstream &text) | |
| ModelicaParser & | getParser () |
| antlr4::CommonTokenStream & | getTokenStream () |
| ast::model::Class * | root () |
| Compiler (const Compiler &)=delete | |
| Compiler & | operator= (const Compiler &)=delete |
| void | visitTerminal (antlr4::tree::TerminalNode *node) override |
| void | visitErrorNode (antlr4::tree::ErrorNode *node) override |
| void | enterEveryRule (antlr4::ParserRuleContext *ctx) override |
| void | exitEveryRule (antlr4::ParserRuleContext *ctx) override |
| void | exitCond_bool (ModelicaParser::Cond_boolContext *ctx) override |
| void | exitCond_binary (ModelicaParser::Cond_binaryContext *ctx) override |
| void | exitCond_unary (ModelicaParser::Cond_unaryContext *ctx) override |
| void | exitCond_compare (ModelicaParser::Cond_compareContext *ctx) override |
| void | exitCond_func (ModelicaParser::Cond_funcContext *ctx) override |
| void | exitCond_ref (ModelicaParser::Cond_refContext *ctx) override |
| void | exitEq_simple (ModelicaParser::Eq_simpleContext *ctx) override |
| void | exitEq_block (ModelicaParser::Eq_blockContext *ctx) override |
| void | exitEq_if (ModelicaParser::Eq_ifContext *ctx) override |
| void | exitEq_for (ModelicaParser::Eq_forContext *ctx) override |
| void | exitEq_connect (ModelicaParser::Eq_connectContext *ctx) override |
| void | exitEq_when (ModelicaParser::Eq_whenContext *ctx) override |
| void | exitEq_func (ModelicaParser::Eq_funcContext *ctx) override |
| void | exitStmt_ref (ModelicaParser::Stmt_refContext *ctx) override |
| void | exitStmt_func (ModelicaParser::Stmt_funcContext *ctx) override |
| void | exitStmt_key (ModelicaParser::Stmt_keyContext *ctx) override |
| void | exitStmt_if (ModelicaParser::Stmt_ifContext *ctx) override |
| void | exitStmt_for (ModelicaParser::Stmt_forContext *ctx) override |
| void | exitStmt_while (ModelicaParser::Stmt_whileContext *ctx) override |
| void | exitStmt_when (ModelicaParser::Stmt_whenContext *ctx) override |
| void | exitFor_indices (ModelicaParser::For_indicesContext *ctx) override |
| void | exitFor_index (ModelicaParser::For_indexContext *ctx) override |
| void | exitExpr_number (ModelicaParser::Expr_numberContext *ctx) override |
| void | exitExpr_ref (ModelicaParser::Expr_refContext *ctx) override |
| void | exitExpr_simple (ModelicaParser::Expr_simpleContext *ctx) override |
| void | exitExpr_if (ModelicaParser::Expr_ifContext *ctx) override |
| void | exitExpr_func (ModelicaParser::Expr_funcContext *ctx) override |
| void | exitExpr_string (ModelicaParser::Expr_stringContext *ctx) override |
| void | exitExpr_range (ModelicaParser::Expr_rangeContext *ctx) override |
| void | exitExpr_unary (ModelicaParser::Expr_unaryContext *ctx) override |
| void | exitExpr_binary (ModelicaParser::Expr_binaryContext *ctx) override |
| void | exitExpr_output (ModelicaParser::Expr_outputContext *ctx) override |
| void | exitExpr_list (ModelicaParser::Expr_listContext *ctx) override |
| void | exitExpr_end (ModelicaParser::Expr_endContext *ctx) override |
| void | exitExpr_array (ModelicaParser::Expr_arrayContext *ctx) override |
| void | exitFunction_call_args (ModelicaParser::Function_call_argsContext *ctx) override |
| void | exitFunc_arg_expr (ModelicaParser::Func_arg_exprContext *ctx) override |
| void | exitFunc_arg_for (ModelicaParser::Func_arg_forContext *ctx) override |
| void | exitFunc_arg_func (ModelicaParser::Func_arg_funcContext *ctx) override |
| void | exitFunc_arg_named (ModelicaParser::Func_arg_namedContext *ctx) override |
| void | exitElem_import (ModelicaParser::Elem_importContext *ctx) override |
| void | exitElem_extends (ModelicaParser::Elem_extendsContext *ctx) override |
| void | exitElem_class (ModelicaParser::Elem_classContext *ctx) override |
| void | exitElem_comp (ModelicaParser::Elem_compContext *ctx) override |
| void | exitClass_prefixes (ModelicaParser::Class_prefixesContext *ctx) override |
| void | exitStored_definition (ModelicaParser::Stored_definitionContext *ctx) override |
| void | exitEnumeration_literal (ModelicaParser::Enumeration_literalContext *ctx) override |
| void | exitComposition (ModelicaParser::CompositionContext *ctx) override |
| void | exitExternal_function_call (ModelicaParser::External_function_callContext *ctx) override |
| void | exitConstraining_clause (ModelicaParser::Constraining_clauseContext *ctx) override |
| void | exitComponent_clause (ModelicaParser::Component_clauseContext *ctx) override |
| void | exitType_prefix (ModelicaParser::Type_prefixContext *ctx) override |
| void | exitComponent_declaration (ModelicaParser::Component_declarationContext *ctx) override |
| void | exitClass_modification (ModelicaParser::Class_modificationContext *ctx) override |
| void | exitStmt_block (ModelicaParser::Stmt_blockContext *ctx) override |
| void | exitEquation_section (ModelicaParser::Equation_sectionContext *ctx) override |
| void | exitAlgorithm_section (ModelicaParser::Algorithm_sectionContext *ctx) override |
| void | exitType_specifier (ModelicaParser::Type_specifierContext *ctx) override |
| void | exitName (ModelicaParser::NameContext *ctx) override |
| void | exitComponent_reference (ModelicaParser::Component_referenceContext *ctx) override |
| void | exitArray_arg_expr (ModelicaParser::Array_arg_exprContext *ctx) override |
| void | exitArray_arg_for (ModelicaParser::Array_arg_forContext *ctx) override |
| void | exitArray_arguments (ModelicaParser::Array_argumentsContext *ctx) override |
| void | exitNamed_arguments (ModelicaParser::Named_argumentsContext *ctx) override |
| void | exitNamed_argument (ModelicaParser::Named_argumentContext *ctx) override |
| void | exitOutput_expression_list (ModelicaParser::Output_expression_listContext *ctx) override |
| void | exitExpression_list (ModelicaParser::Expression_listContext *ctx) override |
| void | exitArray_subscripts (ModelicaParser::Array_subscriptsContext *ctx) override |
| void | exitSubscript (ModelicaParser::SubscriptContext *ctx) override |
| void | exitComment (ModelicaParser::CommentContext *ctx) override |
| void | exitString_comment (ModelicaParser::String_commentContext *ctx) override |
| void | exitAnnotation (ModelicaParser::AnnotationContext *ctx) override |
| void | exitClass_def_long (ModelicaParser::Class_def_longContext *ctxt) override |
| void | exitClass_def_der (ModelicaParser::Class_def_derContext *ctxt) override |
| void | exitClass_def_short (ModelicaParser::Class_def_shortContext *ctxt) override |
| void | exitClass_def_type (ModelicaParser::Class_def_typeContext *ctxt) override |
| void | exitClass_def_enum (ModelicaParser::Class_def_enumContext *ctxt) override |
| void | exitArg_modification (ModelicaParser::Arg_modificationContext *ctxt) override |
| void | exitArg_redeclare_class (ModelicaParser::Arg_redeclare_classContext *ctxt) override |
| void | exitArg_redeclare_element (ModelicaParser::Arg_redeclare_elementContext *ctxt) override |
| void | exitModification_class (ModelicaParser::Modification_classContext *ctx) override |
| void | exitModification_equation (ModelicaParser::Modification_equationContext *ctx) override |
| void | exitModification_statement (ModelicaParser::Modification_statementContext *ctx) override |
Protected Member Functions | |
| template<typename T > | |
| T * | getAst (antlr4::ParserRuleContext *ctx) |
| template<typename T > | |
| std::unique_ptr< T > | moveAst (antlr4::ParserRuleContext *ctx) |
| template<typename T > | |
| std::unique_ptr< T > | cloneAst (antlr4::ParserRuleContext *ctx) |
| void | setAst (antlr4::ParserRuleContext *ctx, std::unique_ptr< ast::INode > node) |
| void | linkAst (antlr4::ParserRuleContext *to, antlr4::ParserRuleContext *from) |
| std::string | indent (int n) |
Protected Attributes | |
| std::unique_ptr< ModelicaParser > | m_parser |
| antlr4::ANTLRInputStream | m_input |
| ModelicaLexer | m_lexer |
| antlr4::CommonTokenStream | m_token_stream |
| ast::model::Class * | m_root {nullptr} |
| bool | m_verbose |
| AstMap | m_ast |
This is the main compiler class.
Definition at line 35 of file compiler.h.
| using cymoca::Compiler::AstMap = std::unordered_map<antlr4::ParserRuleContext *, std::unique_ptr<ast::INode>> |
Definition at line 44 of file compiler.h.
|
explicit |
Definition at line 5 of file compiler.cc.
|
delete |
|
inlineprotected |
This function gets the AST associated with ctx and makes a copy which is returns to the caller.
Definition at line 87 of file compiler.h.
|
override |
|
override |
Definition at line 422 of file compiler.cc.
|
override |
Definition at line 475 of file compiler.cc.
|
override |
Definition at line 495 of file compiler.cc.
|
override |
Definition at line 499 of file compiler.cc.
|
override |
Definition at line 503 of file compiler.cc.
|
override |
Definition at line 437 of file compiler.cc.
|
override |
Definition at line 440 of file compiler.cc.
|
override |
Definition at line 443 of file compiler.cc.
|
override |
Definition at line 462 of file compiler.cc.
|
override |
Definition at line 482 of file compiler.cc.
|
override |
Definition at line 492 of file compiler.cc.
|
override |
Definition at line 478 of file compiler.cc.
|
override |
Definition at line 485 of file compiler.cc.
|
override |
Definition at line 489 of file compiler.cc.
|
override |
Definition at line 407 of file compiler.cc.
|
override |
Definition at line 316 of file compiler.cc.
|
override |
Definition at line 469 of file compiler.cc.
|
override |
|
override |
Definition at line 403 of file compiler.cc.
|
override |
|
override |
|
override |
|
override |
|
override |
|
override |
Definition at line 119 of file compiler.cc.
|
override |
Definition at line 122 of file compiler.cc.
|
override |
|
override |
Definition at line 371 of file compiler.cc.
|
override |
Definition at line 305 of file compiler.cc.
|
override |
|
override |
Definition at line 302 of file compiler.cc.
|
override |
Definition at line 299 of file compiler.cc.
|
override |
Definition at line 325 of file compiler.cc.
|
override |
|
override |
Definition at line 151 of file compiler.cc.
|
override |
Definition at line 148 of file compiler.cc.
|
override |
Definition at line 165 of file compiler.cc.
|
override |
Definition at line 145 of file compiler.cc.
|
override |
|
override |
|
override |
|
override |
|
override |
Definition at line 266 of file compiler.cc.
|
override |
Definition at line 254 of file compiler.cc.
|
override |
Definition at line 263 of file compiler.cc.
|
override |
|
override |
Definition at line 225 of file compiler.cc.
|
override |
Definition at line 260 of file compiler.cc.
|
override |
|
override |
Definition at line 257 of file compiler.cc.
|
override |
Definition at line 247 of file compiler.cc.
|
override |
|
override |
|
override |
Definition at line 244 of file compiler.cc.
|
override |
|
override |
Definition at line 458 of file compiler.cc.
|
override |
Definition at line 367 of file compiler.cc.
|
override |
Definition at line 197 of file compiler.cc.
|
override |
Definition at line 194 of file compiler.cc.
|
override |
|
override |
Definition at line 285 of file compiler.cc.
|
override |
Definition at line 288 of file compiler.cc.
|
override |
Definition at line 291 of file compiler.cc.
|
override |
|
override |
Definition at line 507 of file compiler.cc.
|
override |
Definition at line 511 of file compiler.cc.
|
override |
Definition at line 516 of file compiler.cc.
|
override |
Definition at line 429 of file compiler.cc.
|
override |
Definition at line 451 of file compiler.cc.
|
override |
Definition at line 447 of file compiler.cc.
|
override |
Definition at line 454 of file compiler.cc.
|
override |
Definition at line 411 of file compiler.cc.
|
override |
Definition at line 185 of file compiler.cc.
|
override |
Definition at line 176 of file compiler.cc.
|
override |
Definition at line 182 of file compiler.cc.
|
override |
Definition at line 179 of file compiler.cc.
|
override |
Definition at line 173 of file compiler.cc.
|
override |
Definition at line 191 of file compiler.cc.
|
override |
Definition at line 188 of file compiler.cc.
|
override |
Definition at line 320 of file compiler.cc.
|
override |
Definition at line 472 of file compiler.cc.
|
override |
Definition at line 466 of file compiler.cc.
|
override |
Definition at line 400 of file compiler.cc.
|
override |
Definition at line 426 of file compiler.cc.
|
inlineprotected |
This function gets a pointer to the AST associated with ctx.
Definition at line 60 of file compiler.h.
|
inline |
Definition at line 38 of file compiler.h.
|
inline |
Definition at line 39 of file compiler.h.
|
protected |
Helper methods
Definition at line 20 of file compiler.cc.

|
inlineprotected |
|
inlineprotected |
This function gets the AST associated with ctx and transfers ownership to the caller, removing it from the ast dictionary.
Definition at line 74 of file compiler.h.

|
inline |
Definition at line 40 of file compiler.h.
|
inlineprotected |
|
override |
Definition at line 36 of file compiler.cc.
|
override |
Listener Functions
Definition at line 30 of file compiler.cc.
|
protected |
Definition at line 53 of file compiler.h.
|
protected |
Definition at line 48 of file compiler.h.
|
protected |
Definition at line 49 of file compiler.h.
|
protected |
Definition at line 47 of file compiler.h.
|
protected |
Definition at line 51 of file compiler.h.
|
protected |
Definition at line 50 of file compiler.h.
|
protected |
Definition at line 52 of file compiler.h.
1.8.6