From 911aae66c29fd5f84fa6f687ab6f4600e2d13902 Mon Sep 17 00:00:00 2001 From: R-unic Date: Sun, 21 May 2023 23:17:29 -0700 Subject: [PATCH] docs: generate (auto) --- docs/404.html | 30 + docs/Cosmo.html | 44 +- docs/Cosmo/AST.html | 32 +- docs/Cosmo/AST/Expression.html | 32 +- docs/Cosmo/AST/Expression/Access.html | 44 +- docs/Cosmo/AST/Expression/Base.html | 38 +- docs/Cosmo/AST/Expression/BigIntLiteral.html | 36 +- docs/Cosmo/AST/Expression/BinaryOp.html | 46 +- docs/Cosmo/AST/Expression/BooleanLiteral.html | 36 +- docs/Cosmo/AST/Expression/CharLiteral.html | 36 +- .../AST/Expression/CompoundAssignment.html | 62 +- docs/Cosmo/AST/Expression/FloatLiteral.html | 36 +- docs/Cosmo/AST/Expression/FunctionCall.html | 44 +- docs/Cosmo/AST/Expression/Index.html | 44 +- docs/Cosmo/AST/Expression/IntLiteral.html | 36 +- docs/Cosmo/AST/Expression/Is.html | 44 +- docs/Cosmo/AST/Expression/Literal.html | 40 +- docs/Cosmo/AST/Expression/New.html | 1092 +++++++++++++++++ docs/Cosmo/AST/Expression/NoneLiteral.html | 36 +- docs/Cosmo/AST/Expression/Parameter.html | 48 +- .../AST/Expression/PropertyAssignment.html | 52 +- docs/Cosmo/AST/Expression/RangeLiteral.html | 44 +- docs/Cosmo/AST/Expression/StringLiteral.html | 36 +- docs/Cosmo/AST/Expression/TableLiteral.html | 42 +- docs/Cosmo/AST/Expression/TernaryOp.html | 48 +- docs/Cosmo/AST/Expression/This.html | 1092 +++++++++++++++++ docs/Cosmo/AST/Expression/TypeAlias.html | 50 +- docs/Cosmo/AST/Expression/TypeRef.html | 42 +- docs/Cosmo/AST/Expression/UnaryOp.html | 44 +- docs/Cosmo/AST/Expression/Var.html | 40 +- docs/Cosmo/AST/Expression/VarAssignment.html | 44 +- docs/Cosmo/AST/Expression/VarDeclaration.html | 50 +- docs/Cosmo/AST/Expression/VectorLiteral.html | 42 +- docs/Cosmo/AST/Expression/Visitor.html | 81 +- docs/Cosmo/AST/Node.html | 50 +- docs/Cosmo/AST/Statement.html | 32 +- docs/Cosmo/AST/Statement/Base.html | 34 +- docs/Cosmo/AST/Statement/Block.html | 56 +- docs/Cosmo/AST/Statement/Break.html | 42 +- docs/Cosmo/AST/Statement/Case.html | 48 +- docs/Cosmo/AST/Statement/ClassDef.html | 50 +- docs/Cosmo/AST/Statement/Every.html | 48 +- docs/Cosmo/AST/Statement/FunctionDef.html | 50 +- docs/Cosmo/AST/Statement/If.html | 48 +- docs/Cosmo/AST/Statement/Next.html | 42 +- docs/Cosmo/AST/Statement/Return.html | 44 +- .../Cosmo/AST/Statement/SingleExpression.html | 42 +- docs/Cosmo/AST/Statement/Throw.html | 44 +- docs/Cosmo/AST/Statement/Unless.html | 48 +- docs/Cosmo/AST/Statement/Until.html | 46 +- docs/Cosmo/AST/Statement/Use.html | 44 +- docs/Cosmo/AST/Statement/Visitor.html | 60 +- docs/Cosmo/AST/Statement/When.html | 44 +- docs/Cosmo/AST/Statement/While.html | 46 +- docs/Cosmo/AST/Visibility.html | 40 +- docs/Cosmo/Callable.html | 40 +- docs/Cosmo/Class.html | 109 +- docs/Cosmo/ClassInstance.html | 1062 ++++++++++++++++ docs/Cosmo/Function.html | 60 +- docs/Cosmo/HookedExceptions.html | 32 +- docs/Cosmo/HookedExceptions/Break.html | 34 +- docs/Cosmo/HookedExceptions/Next.html | 34 +- docs/Cosmo/HookedExceptions/Return.html | 36 +- docs/Cosmo/Interpreter.html | 217 +++- docs/Cosmo/IntrinsicFunction.html | 42 +- docs/Cosmo/IntrinsicLib.html | 36 +- docs/Cosmo/Keywords.html | 40 +- docs/Cosmo/Lexer.html | 36 +- docs/Cosmo/Location.html | 46 +- docs/Cosmo/Logger.html | 40 +- docs/Cosmo/MathLib.html | 34 +- docs/Cosmo/MathLib/Acos.html | 36 +- docs/Cosmo/MathLib/Acosh.html | 36 +- docs/Cosmo/MathLib/Asin.html | 36 +- docs/Cosmo/MathLib/Asinh.html | 36 +- docs/Cosmo/MathLib/Atan.html | 36 +- docs/Cosmo/MathLib/Atan2.html | 36 +- docs/Cosmo/MathLib/Atanh.html | 36 +- docs/Cosmo/MathLib/Cbrt.html | 36 +- docs/Cosmo/MathLib/Ceil.html | 36 +- docs/Cosmo/MathLib/Cos.html | 36 +- docs/Cosmo/MathLib/Cosh.html | 36 +- docs/Cosmo/MathLib/Exp.html | 36 +- docs/Cosmo/MathLib/Floor.html | 36 +- docs/Cosmo/MathLib/Isqrt.html | 36 +- docs/Cosmo/MathLib/Log.html | 36 +- docs/Cosmo/MathLib/Log10.html | 36 +- docs/Cosmo/MathLib/Log2.html | 36 +- docs/Cosmo/MathLib/Max.html | 36 +- docs/Cosmo/MathLib/Min.html | 36 +- docs/Cosmo/MathLib/Round.html | 36 +- docs/Cosmo/MathLib/Sin.html | 36 +- docs/Cosmo/MathLib/Sinh.html | 36 +- docs/Cosmo/MathLib/Sqrt.html | 36 +- docs/Cosmo/MathLib/Tan.html | 36 +- docs/Cosmo/MathLib/Tanh.html | 36 +- docs/Cosmo/Operator.html | 32 +- docs/Cosmo/Operator/AndAssign.html | 935 ++++++++++++++ docs/Cosmo/Operator/Band.html | 34 +- docs/Cosmo/Operator/Bnot.html | 34 +- docs/Cosmo/Operator/Bor.html | 34 +- docs/Cosmo/Operator/Bshl.html | 34 +- docs/Cosmo/Operator/Bshr.html | 34 +- docs/Cosmo/Operator/Bxor.html | 34 +- docs/Cosmo/Operator/Div.html | 42 +- docs/Cosmo/Operator/DivAssign.html | 34 +- docs/Cosmo/Operator/GT.html | 34 +- docs/Cosmo/Operator/GTE.html | 34 +- docs/Cosmo/Operator/LT.html | 34 +- docs/Cosmo/Operator/LTE.html | 34 +- docs/Cosmo/Operator/Minus.html | 42 +- docs/Cosmo/Operator/MinusAssign.html | 42 +- docs/Cosmo/Operator/Mod.html | 42 +- docs/Cosmo/Operator/ModAssign.html | 34 +- docs/Cosmo/Operator/Mul.html | 42 +- docs/Cosmo/Operator/MulAssign.html | 34 +- docs/Cosmo/Operator/OrAssign.html | 921 ++++++++++++++ docs/Cosmo/Operator/Plus.html | 42 +- docs/Cosmo/Operator/PlusAssign.html | 42 +- docs/Cosmo/Operator/Pow.html | 42 +- docs/Cosmo/Operator/PowAssign.html | 34 +- docs/Cosmo/Parser.html | 36 +- docs/Cosmo/PutsIntrinsic.html | 36 +- docs/Cosmo/Resolver.html | 151 ++- docs/Cosmo/Scope.html | 82 +- docs/Cosmo/Syntax.html | 410 ++++--- docs/Cosmo/Token.html | 86 +- docs/Cosmo/Type.html | 38 +- docs/Cosmo/TypeChecker.html | 58 +- docs/Cosmo/ValueType.html | 34 +- docs/FnType.html | 36 +- docs/LiteralType.html | 32 +- docs/Stringify.html | 885 +++++++++++++ docs/index.html | 41 +- docs/index.json | 2 +- docs/search-index.js | 2 +- docs/toplevel.html | 34 +- 137 files changed, 11080 insertions(+), 902 deletions(-) create mode 100644 docs/Cosmo/AST/Expression/New.html create mode 100644 docs/Cosmo/AST/Expression/This.html create mode 100644 docs/Cosmo/ClassInstance.html create mode 100644 docs/Cosmo/Operator/AndAssign.html create mode 100644 docs/Cosmo/Operator/OrAssign.html create mode 100644 docs/Stringify.html diff --git a/docs/404.html b/docs/404.html index b0595675..1e248242 100644 --- a/docs/404.html +++ b/docs/404.html @@ -136,6 +136,11 @@

+
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    diff --git a/docs/Cosmo.html b/docs/Cosmo.html index a7432153..b66b50d7 100644 --- a/docs/Cosmo.html +++ b/docs/Cosmo.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -775,28 +805,28 @@

    - + cosmo.cr
    - + cosmo/logger.cr
    - + cosmo/runtime/intrinsic/global.cr
    - + cosmo/runtime/typechecker.cr @@ -899,7 +929,7 @@


    - [View source] + [View source]
    @@ -915,7 +945,7 @@


    - [View source] + [View source]
    @@ -936,7 +966,7 @@


    - [View source] + [View source]
    diff --git a/docs/Cosmo/AST.html b/docs/Cosmo/AST.html index b3cd0c5d..4fa6b6aa 100644 --- a/docs/Cosmo/AST.html +++ b/docs/Cosmo/AST.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -775,7 +805,7 @@

    - + cosmo/syntax/parser/ast.cr diff --git a/docs/Cosmo/AST/Expression.html b/docs/Cosmo/AST/Expression.html index 09fccc6c..3e4eee41 100644 --- a/docs/Cosmo/AST/Expression.html +++ b/docs/Cosmo/AST/Expression.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -775,7 +805,7 @@

    - + cosmo/syntax/parser/ast/expression_nodes.cr diff --git a/docs/Cosmo/AST/Expression/Access.html b/docs/Cosmo/AST/Expression/Access.html index 1affdbf6..bdbae4a9 100644 --- a/docs/Cosmo/AST/Expression/Access.html +++ b/docs/Cosmo/AST/Expression/Access.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -763,7 +793,7 @@

    - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -961,7 +991,7 @@


    - [View source] + [View source]
    @@ -991,7 +1021,7 @@


    - [View source] + [View source]
    @@ -1007,7 +1037,7 @@


    - [View source] + [View source]
    @@ -1023,7 +1053,7 @@


    - [View source] + [View source]
    @@ -1052,7 +1082,7 @@


    - [View source] + [View source]
    @@ -1068,7 +1098,7 @@


    - [View source] + [View source]
    diff --git a/docs/Cosmo/AST/Expression/Base.html b/docs/Cosmo/AST/Expression/Base.html index 244b4e63..875b9a87 100644 --- a/docs/Cosmo/AST/Expression/Base.html +++ b/docs/Cosmo/AST/Expression/Base.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -772,6 +802,8 @@

  • Cosmo::AST::Expression::Literal
  • +
  • Cosmo::AST::Expression::New
  • +
  • Cosmo::AST::Expression::Parameter
  • Cosmo::AST::Expression::PropertyAssignment
  • @@ -782,6 +814,8 @@

  • Cosmo::AST::Expression::TernaryOp
  • +
  • Cosmo::AST::Expression::This
  • +
  • Cosmo::AST::Expression::TypeAlias
  • Cosmo::AST::Expression::TypeRef
  • @@ -813,7 +847,7 @@

    - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -957,7 +991,7 @@


    - [View source] + [View source]
    diff --git a/docs/Cosmo/AST/Expression/BigIntLiteral.html b/docs/Cosmo/AST/Expression/BigIntLiteral.html index 26a1ec75..123f6897 100644 --- a/docs/Cosmo/AST/Expression/BigIntLiteral.html +++ b/docs/Cosmo/AST/Expression/BigIntLiteral.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -763,7 +793,7 @@

    - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -979,7 +1009,7 @@


    - [View source] + [View source]
    @@ -1022,7 +1052,7 @@


    - [View source] + [View source]
    diff --git a/docs/Cosmo/AST/Expression/BinaryOp.html b/docs/Cosmo/AST/Expression/BinaryOp.html index e9df2874..f80aee8a 100644 --- a/docs/Cosmo/AST/Expression/BinaryOp.html +++ b/docs/Cosmo/AST/Expression/BinaryOp.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -763,7 +793,7 @@

    - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -966,7 +996,7 @@


    - [View source] + [View source]
    @@ -996,7 +1026,7 @@


    - [View source] + [View source]
    @@ -1012,7 +1042,7 @@


    - [View source] + [View source]
    @@ -1028,7 +1058,7 @@


    - [View source] + [View source]
    @@ -1044,7 +1074,7 @@


    - [View source] + [View source]
    @@ -1073,7 +1103,7 @@


    - [View source] + [View source]
    @@ -1089,7 +1119,7 @@


    - [View source] + [View source]
    diff --git a/docs/Cosmo/AST/Expression/BooleanLiteral.html b/docs/Cosmo/AST/Expression/BooleanLiteral.html index 8fe9cddf..333b94cf 100644 --- a/docs/Cosmo/AST/Expression/BooleanLiteral.html +++ b/docs/Cosmo/AST/Expression/BooleanLiteral.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -763,7 +793,7 @@

    - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -979,7 +1009,7 @@


    - [View source] + [View source]
    @@ -1022,7 +1052,7 @@


    - [View source] + [View source]
    diff --git a/docs/Cosmo/AST/Expression/CharLiteral.html b/docs/Cosmo/AST/Expression/CharLiteral.html index 5b9e6741..8d8f5f4f 100644 --- a/docs/Cosmo/AST/Expression/CharLiteral.html +++ b/docs/Cosmo/AST/Expression/CharLiteral.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -763,7 +793,7 @@

    - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -979,7 +1009,7 @@


    - [View source] + [View source]
    @@ -1022,7 +1052,7 @@


    - [View source] + [View source]
    diff --git a/docs/Cosmo/AST/Expression/CompoundAssignment.html b/docs/Cosmo/AST/Expression/CompoundAssignment.html index 83ba6d3b..e2e275c8 100644 --- a/docs/Cosmo/AST/Expression/CompoundAssignment.html +++ b/docs/Cosmo/AST/Expression/CompoundAssignment.html @@ -136,6 +136,11 @@

  • +
  • + New + +
  • +
  • NoneLiteral @@ -171,6 +176,11 @@

  • +
  • + This + +
  • +
  • TypeAlias @@ -341,6 +351,11 @@

  • +
  • + ClassInstance + +
  • +
  • Function @@ -546,6 +561,11 @@

    @@ -763,7 +793,7 @@

    - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -785,7 +815,7 @@

    • - .new(name : Cosmo::Token, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base) + .new(name : Cosmo::AST::Expression::Base, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)
    • @@ -811,7 +841,7 @@

    • - #name : Token + #name : Var | Index | Access
    • @@ -955,18 +985,18 @@

      Constructor Detail

      -
      +
      - def self.new(name : Cosmo::Token, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base) + def self.new(name : Cosmo::AST::Expression::Base, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base) - # + #

      @@ -996,23 +1026,23 @@


      -
      +
      - def name : Token + def name : Var | Index | Access - # + #

      @@ -1028,7 +1058,7 @@


      @@ -1057,7 +1087,7 @@


      @@ -1073,7 +1103,7 @@


      @@ -1089,7 +1119,7 @@


      diff --git a/docs/Cosmo/AST/Expression/FloatLiteral.html b/docs/Cosmo/AST/Expression/FloatLiteral.html index f577880e..d3418a4d 100644 --- a/docs/Cosmo/AST/Expression/FloatLiteral.html +++ b/docs/Cosmo/AST/Expression/FloatLiteral.html @@ -136,6 +136,11 @@

      +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -763,7 +793,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -979,7 +1009,7 @@


      @@ -1022,7 +1052,7 @@


      diff --git a/docs/Cosmo/AST/Expression/FunctionCall.html b/docs/Cosmo/AST/Expression/FunctionCall.html index fefadfeb..8e6fcca4 100644 --- a/docs/Cosmo/AST/Expression/FunctionCall.html +++ b/docs/Cosmo/AST/Expression/FunctionCall.html @@ -136,6 +136,11 @@

    • +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -763,7 +793,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -961,7 +991,7 @@


      @@ -991,7 +1021,7 @@


      @@ -1007,7 +1037,7 @@


      @@ -1023,7 +1053,7 @@


      @@ -1052,7 +1082,7 @@


      @@ -1068,7 +1098,7 @@


      diff --git a/docs/Cosmo/AST/Expression/Index.html b/docs/Cosmo/AST/Expression/Index.html index 72853f95..a0c75fdb 100644 --- a/docs/Cosmo/AST/Expression/Index.html +++ b/docs/Cosmo/AST/Expression/Index.html @@ -136,6 +136,11 @@

    • +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -763,7 +793,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -961,7 +991,7 @@


      @@ -991,7 +1021,7 @@


      @@ -1007,7 +1037,7 @@


      @@ -1023,7 +1053,7 @@


      @@ -1052,7 +1082,7 @@


      @@ -1068,7 +1098,7 @@


      diff --git a/docs/Cosmo/AST/Expression/IntLiteral.html b/docs/Cosmo/AST/Expression/IntLiteral.html index fd03542a..147f040c 100644 --- a/docs/Cosmo/AST/Expression/IntLiteral.html +++ b/docs/Cosmo/AST/Expression/IntLiteral.html @@ -136,6 +136,11 @@

    • +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -763,7 +793,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -979,7 +1009,7 @@


      @@ -1022,7 +1052,7 @@


      diff --git a/docs/Cosmo/AST/Expression/Is.html b/docs/Cosmo/AST/Expression/Is.html index 76678906..c3721762 100644 --- a/docs/Cosmo/AST/Expression/Is.html +++ b/docs/Cosmo/AST/Expression/Is.html @@ -136,6 +136,11 @@

    • +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -763,7 +793,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -961,7 +991,7 @@


      @@ -991,7 +1021,7 @@


      @@ -1020,7 +1050,7 @@


      @@ -1036,7 +1066,7 @@


      @@ -1052,7 +1082,7 @@


      @@ -1068,7 +1098,7 @@


      diff --git a/docs/Cosmo/AST/Expression/Literal.html b/docs/Cosmo/AST/Expression/Literal.html index ad2c4c7e..1c1fdee5 100644 --- a/docs/Cosmo/AST/Expression/Literal.html +++ b/docs/Cosmo/AST/Expression/Literal.html @@ -136,6 +136,11 @@

    • +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -789,7 +819,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -975,7 +1005,7 @@


      @@ -1005,7 +1035,7 @@


      @@ -1021,7 +1051,7 @@


      @@ -1037,7 +1067,7 @@


      diff --git a/docs/Cosmo/AST/Expression/New.html b/docs/Cosmo/AST/Expression/New.html new file mode 100644 index 00000000..54f0d3b0 --- /dev/null +++ b/docs/Cosmo/AST/Expression/New.html @@ -0,0 +1,1092 @@ + + + + + + + + + + + + + + + + Cosmo::AST::Expression::New - Cosmo master + + + + + + + + +
      +

      + + class Cosmo::AST::Expression::New + +

      + + + + + + + + + + + + + + + + + + + + +

      + + + + Defined in: +

      + + + + cosmo/syntax/parser/ast/expression_nodes.cr + + +
      + + + + + + +

      + + + + Constructors +

      + + + + + + +

      + + + + Instance Method Summary +

      + + + + + + + + + +

      + + + + Constructor Detail +

      + +
      +
      + + def self.new(token : Cosmo::Token, operand : Cosmo::AST::Expression::Base) + + # +
      + +
      +
      + + [View source] + +
      +
      + + + + + + +

      + + + + Instance Method Detail +

      + +
      +
      + + def accept(visitor : Visitor(R)) : R forall R + + # +
      + +
      +
      + + [View source] + +
      +
      + +
      +
      + + def operand : Var | FunctionCall + + # +
      + +
      +
      + + [View source] + +
      +
      + +
      +
      + + def to_s(indent : Int = 0) + + # +
      + +
      + +
      + Description copied from class Object +
      + +

      Returns a nicely readable and concise string representation of this object, +typically intended for users.

      +

      This method should usually not be overridden. It delegates to +#to_s(IO) which can be overridden for custom implementations.

      +

      Also see #inspect.

      +
      + +
      +
      + + [View source] + +
      +
      + +
      +
      + + def token : Token + + # +
      + +
      +
      + + [View source] + +
      +
      + + + + + +
      + + + diff --git a/docs/Cosmo/AST/Expression/NoneLiteral.html b/docs/Cosmo/AST/Expression/NoneLiteral.html index bbb40af8..5a3d52b4 100644 --- a/docs/Cosmo/AST/Expression/NoneLiteral.html +++ b/docs/Cosmo/AST/Expression/NoneLiteral.html @@ -136,6 +136,11 @@

    • +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -763,7 +793,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -979,7 +1009,7 @@


      @@ -1022,7 +1052,7 @@


      diff --git a/docs/Cosmo/AST/Expression/Parameter.html b/docs/Cosmo/AST/Expression/Parameter.html index 12f18fdd..53b3f98c 100644 --- a/docs/Cosmo/AST/Expression/Parameter.html +++ b/docs/Cosmo/AST/Expression/Parameter.html @@ -136,6 +136,11 @@

    • +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -763,7 +793,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -971,7 +1001,7 @@


      @@ -1001,7 +1031,7 @@


      @@ -1017,7 +1047,7 @@


      @@ -1033,7 +1063,7 @@


      @@ -1049,7 +1079,7 @@


      @@ -1078,7 +1108,7 @@


      @@ -1094,7 +1124,7 @@


      @@ -1110,7 +1140,7 @@


      diff --git a/docs/Cosmo/AST/Expression/PropertyAssignment.html b/docs/Cosmo/AST/Expression/PropertyAssignment.html index 102e0dd9..cd677e81 100644 --- a/docs/Cosmo/AST/Expression/PropertyAssignment.html +++ b/docs/Cosmo/AST/Expression/PropertyAssignment.html @@ -136,6 +136,11 @@

    • +
    • + New + +
    • +
    • NoneLiteral @@ -171,6 +176,11 @@

    • +
    • + This + +
    • +
    • TypeAlias @@ -341,6 +351,11 @@

    • +
    • + ClassInstance + +
    • +
    • Function @@ -546,6 +561,11 @@

      @@ -763,7 +793,7 @@

      - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -785,7 +815,7 @@

      • - .new(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil) + .new(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)
      • @@ -950,18 +980,18 @@

        Constructor Detail

        -
        +
        - def self.new(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil) + def self.new(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil) - # + #

        @@ -991,7 +1021,7 @@


        @@ -1007,7 +1037,7 @@


        @@ -1036,7 +1066,7 @@


        @@ -1052,7 +1082,7 @@


        @@ -1068,7 +1098,7 @@


        diff --git a/docs/Cosmo/AST/Expression/RangeLiteral.html b/docs/Cosmo/AST/Expression/RangeLiteral.html index b2bd04c1..d4ca92d0 100644 --- a/docs/Cosmo/AST/Expression/RangeLiteral.html +++ b/docs/Cosmo/AST/Expression/RangeLiteral.html @@ -136,6 +136,11 @@

        +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -961,7 +991,7 @@


        @@ -991,7 +1021,7 @@


        @@ -1007,7 +1037,7 @@


        @@ -1023,7 +1053,7 @@


        @@ -1052,7 +1082,7 @@


        @@ -1068,7 +1098,7 @@


        diff --git a/docs/Cosmo/AST/Expression/StringLiteral.html b/docs/Cosmo/AST/Expression/StringLiteral.html index 3bf56d2e..250e0590 100644 --- a/docs/Cosmo/AST/Expression/StringLiteral.html +++ b/docs/Cosmo/AST/Expression/StringLiteral.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -979,7 +1009,7 @@


        @@ -1022,7 +1052,7 @@


        diff --git a/docs/Cosmo/AST/Expression/TableLiteral.html b/docs/Cosmo/AST/Expression/TableLiteral.html index 4122a274..36113dae 100644 --- a/docs/Cosmo/AST/Expression/TableLiteral.html +++ b/docs/Cosmo/AST/Expression/TableLiteral.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -956,7 +986,7 @@


        @@ -986,7 +1016,7 @@


        @@ -1002,7 +1032,7 @@


        @@ -1031,7 +1061,7 @@


        @@ -1047,7 +1077,7 @@


        diff --git a/docs/Cosmo/AST/Expression/TernaryOp.html b/docs/Cosmo/AST/Expression/TernaryOp.html index 106ddcc5..948035fd 100644 --- a/docs/Cosmo/AST/Expression/TernaryOp.html +++ b/docs/Cosmo/AST/Expression/TernaryOp.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -971,7 +1001,7 @@


        @@ -1001,7 +1031,7 @@


        @@ -1017,7 +1047,7 @@


        @@ -1033,7 +1063,7 @@


        @@ -1049,7 +1079,7 @@


        @@ -1065,7 +1095,7 @@


        @@ -1094,7 +1124,7 @@


        @@ -1110,7 +1140,7 @@


        diff --git a/docs/Cosmo/AST/Expression/This.html b/docs/Cosmo/AST/Expression/This.html new file mode 100644 index 00000000..7225da15 --- /dev/null +++ b/docs/Cosmo/AST/Expression/This.html @@ -0,0 +1,1092 @@ + + + + + + + + + + + + + + + + Cosmo::AST::Expression::This - Cosmo master + + + + + + + + +
        +

        + + class Cosmo::AST::Expression::This + +

        + + + + + + + + + + + + + + + + + + + + +

        + + + + Defined in: +

        + + + + cosmo/syntax/parser/ast/expression_nodes.cr + + +
        + + + + + + +

        + + + + Constructors +

        + + + + + + +

        + + + + Instance Method Summary +

        + + + + + + + + + +

        + + + + Constructor Detail +

        + +
        +
        + + def self.new(token : Cosmo::Token, class_name : String) + + # +
        + +
        +
        + + [View source] + +
        +
        + + + + + + +

        + + + + Instance Method Detail +

        + +
        +
        + + def accept(visitor : Visitor(R)) : R forall R + + # +
        + +
        +
        + + [View source] + +
        +
        + +
        +
        + + def class_name : String + + # +
        + +
        +
        + + [View source] + +
        +
        + +
        +
        + + def to_s(indent : Int = 0) + + # +
        + +
        + +
        + Description copied from class Object +
        + +

        Returns a nicely readable and concise string representation of this object, +typically intended for users.

        +

        This method should usually not be overridden. It delegates to +#to_s(IO) which can be overridden for custom implementations.

        +

        Also see #inspect.

        +
        + +
        +
        + + [View source] + +
        +
        + +
        +
        + + def token : Token + + # +
        + +
        +
        + + [View source] + +
        +
        + + + + + +
        + + + diff --git a/docs/Cosmo/AST/Expression/TypeAlias.html b/docs/Cosmo/AST/Expression/TypeAlias.html index d32ca934..3545f73d 100644 --- a/docs/Cosmo/AST/Expression/TypeAlias.html +++ b/docs/Cosmo/AST/Expression/TypeAlias.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -976,7 +1006,7 @@


        @@ -1006,7 +1036,7 @@


        @@ -1022,7 +1052,7 @@


        @@ -1051,7 +1081,7 @@


        @@ -1067,7 +1097,7 @@


        @@ -1083,7 +1113,7 @@


        @@ -1099,7 +1129,7 @@


        @@ -1115,7 +1145,7 @@


        @@ -1131,7 +1161,7 @@


        diff --git a/docs/Cosmo/AST/Expression/TypeRef.html b/docs/Cosmo/AST/Expression/TypeRef.html index b74f5f85..87b575a5 100644 --- a/docs/Cosmo/AST/Expression/TypeRef.html +++ b/docs/Cosmo/AST/Expression/TypeRef.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -956,7 +986,7 @@


        @@ -986,7 +1016,7 @@


        @@ -1002,7 +1032,7 @@


        @@ -1031,7 +1061,7 @@


        @@ -1047,7 +1077,7 @@


        diff --git a/docs/Cosmo/AST/Expression/UnaryOp.html b/docs/Cosmo/AST/Expression/UnaryOp.html index 4d40b9c2..b5ba9c86 100644 --- a/docs/Cosmo/AST/Expression/UnaryOp.html +++ b/docs/Cosmo/AST/Expression/UnaryOp.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -961,7 +991,7 @@


        @@ -991,7 +1021,7 @@


        @@ -1007,7 +1037,7 @@


        @@ -1023,7 +1053,7 @@


        @@ -1052,7 +1082,7 @@


        @@ -1068,7 +1098,7 @@


        diff --git a/docs/Cosmo/AST/Expression/Var.html b/docs/Cosmo/AST/Expression/Var.html index c420fd1c..b3ef8d84 100644 --- a/docs/Cosmo/AST/Expression/Var.html +++ b/docs/Cosmo/AST/Expression/Var.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -951,7 +981,7 @@


        @@ -981,7 +1011,7 @@


        @@ -1010,7 +1040,7 @@


        @@ -1026,7 +1056,7 @@


        diff --git a/docs/Cosmo/AST/Expression/VarAssignment.html b/docs/Cosmo/AST/Expression/VarAssignment.html index c830fde6..2f3bd666 100644 --- a/docs/Cosmo/AST/Expression/VarAssignment.html +++ b/docs/Cosmo/AST/Expression/VarAssignment.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -961,7 +991,7 @@


        @@ -991,7 +1021,7 @@


        @@ -1020,7 +1050,7 @@


        @@ -1036,7 +1066,7 @@


        @@ -1052,7 +1082,7 @@


        @@ -1068,7 +1098,7 @@


        diff --git a/docs/Cosmo/AST/Expression/VarDeclaration.html b/docs/Cosmo/AST/Expression/VarDeclaration.html index 31057900..1e4fdbf9 100644 --- a/docs/Cosmo/AST/Expression/VarDeclaration.html +++ b/docs/Cosmo/AST/Expression/VarDeclaration.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -976,7 +1006,7 @@


        @@ -1006,7 +1036,7 @@


        @@ -1022,7 +1052,7 @@


        @@ -1051,7 +1081,7 @@


        @@ -1067,7 +1097,7 @@


        @@ -1083,7 +1113,7 @@


        @@ -1099,7 +1129,7 @@


        @@ -1115,7 +1145,7 @@


        @@ -1131,7 +1161,7 @@


        diff --git a/docs/Cosmo/AST/Expression/VectorLiteral.html b/docs/Cosmo/AST/Expression/VectorLiteral.html index 03ecdf31..f48b0190 100644 --- a/docs/Cosmo/AST/Expression/VectorLiteral.html +++ b/docs/Cosmo/AST/Expression/VectorLiteral.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -956,7 +986,7 @@


        @@ -986,7 +1016,7 @@


        @@ -1015,7 +1045,7 @@


        @@ -1031,7 +1061,7 @@


        @@ -1047,7 +1077,7 @@


        diff --git a/docs/Cosmo/AST/Expression/Visitor.html b/docs/Cosmo/AST/Expression/Visitor.html index dc5c6412..67868f00 100644 --- a/docs/Cosmo/AST/Expression/Visitor.html +++ b/docs/Cosmo/AST/Expression/Visitor.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -777,7 +807,7 @@

        - + cosmo/syntax/parser/ast/expression_nodes.cr @@ -837,6 +867,11 @@

      • +
      • + #visit_this_expr(expr : This) : R + +
      • +
      • #visit_type_alias_expr(expr : TypeAlias) : R @@ -907,7 +942,7 @@


        @@ -923,7 +958,7 @@


        @@ -939,7 +974,7 @@


        @@ -955,7 +990,7 @@


        @@ -971,7 +1006,7 @@


        @@ -987,7 +1022,7 @@


        @@ -1003,7 +1038,23 @@


        - [View source] + [View source] + +
        + + +
        +
        + abstract + def visit_this_expr(expr : This) : R + + # +
        + +
        +
        + + [View source]
        @@ -1019,7 +1070,7 @@


        @@ -1035,7 +1086,7 @@


        @@ -1051,7 +1102,7 @@


        @@ -1067,7 +1118,7 @@


        @@ -1083,7 +1134,7 @@


        @@ -1099,7 +1150,7 @@


        @@ -1115,7 +1166,7 @@


        diff --git a/docs/Cosmo/AST/Node.html b/docs/Cosmo/AST/Node.html index a20232f3..0e6710db 100644 --- a/docs/Cosmo/AST/Node.html +++ b/docs/Cosmo/AST/Node.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -779,7 +809,7 @@

        - + cosmo/syntax/parser/ast.cr @@ -908,7 +938,7 @@


        @@ -924,7 +954,7 @@


        @@ -947,7 +977,7 @@


        @@ -969,7 +999,7 @@


        @@ -985,7 +1015,7 @@


        @@ -1001,7 +1031,7 @@


        @@ -1017,7 +1047,7 @@


        @@ -1033,7 +1063,7 @@


        @@ -1049,7 +1079,7 @@


        diff --git a/docs/Cosmo/AST/Statement.html b/docs/Cosmo/AST/Statement.html index 985d09b6..da622297 100644 --- a/docs/Cosmo/AST/Statement.html +++ b/docs/Cosmo/AST/Statement.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -761,7 +791,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr diff --git a/docs/Cosmo/AST/Statement/Base.html b/docs/Cosmo/AST/Statement/Base.html index 6abf26ae..772a0a12 100644 --- a/docs/Cosmo/AST/Statement/Base.html +++ b/docs/Cosmo/AST/Statement/Base.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -805,7 +835,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -949,7 +979,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Block.html b/docs/Cosmo/AST/Statement/Block.html index 427ce5cd..70e8343d 100644 --- a/docs/Cosmo/AST/Statement/Block.html +++ b/docs/Cosmo/AST/Statement/Block.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -993,7 +1023,7 @@


        @@ -1023,7 +1053,7 @@


        @@ -1039,7 +1069,7 @@


        @@ -1055,7 +1085,7 @@


        @@ -1071,7 +1101,7 @@


        @@ -1087,7 +1117,7 @@


        @@ -1103,7 +1133,7 @@


        @@ -1119,7 +1149,7 @@


        @@ -1135,7 +1165,7 @@


        @@ -1156,7 +1186,7 @@


        @@ -1185,7 +1215,7 @@


        @@ -1201,7 +1231,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Break.html b/docs/Cosmo/AST/Statement/Break.html index a1f18812..5c29b9e3 100644 --- a/docs/Cosmo/AST/Statement/Break.html +++ b/docs/Cosmo/AST/Statement/Break.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -956,7 +986,7 @@


        @@ -986,7 +1016,7 @@


        @@ -1002,7 +1032,7 @@


        @@ -1031,7 +1061,7 @@


        @@ -1047,7 +1077,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Case.html b/docs/Cosmo/AST/Statement/Case.html index 2f5dfe86..e2579d11 100644 --- a/docs/Cosmo/AST/Statement/Case.html +++ b/docs/Cosmo/AST/Statement/Case.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -971,7 +1001,7 @@


        @@ -1001,7 +1031,7 @@


        @@ -1017,7 +1047,7 @@


        @@ -1033,7 +1063,7 @@


        @@ -1049,7 +1079,7 @@


        @@ -1078,7 +1108,7 @@


        @@ -1094,7 +1124,7 @@


        @@ -1110,7 +1140,7 @@


        diff --git a/docs/Cosmo/AST/Statement/ClassDef.html b/docs/Cosmo/AST/Statement/ClassDef.html index cb8e3fa1..f6234da1 100644 --- a/docs/Cosmo/AST/Statement/ClassDef.html +++ b/docs/Cosmo/AST/Statement/ClassDef.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -978,7 +1008,7 @@


        @@ -1008,7 +1038,7 @@


        @@ -1029,7 +1059,7 @@


        @@ -1045,7 +1075,7 @@


        @@ -1061,7 +1091,7 @@


        @@ -1077,7 +1107,7 @@


        @@ -1106,7 +1136,7 @@


        @@ -1122,7 +1152,7 @@


        @@ -1138,7 +1168,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Every.html b/docs/Cosmo/AST/Statement/Every.html index bf37625c..0070fef1 100644 --- a/docs/Cosmo/AST/Statement/Every.html +++ b/docs/Cosmo/AST/Statement/Every.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -971,7 +1001,7 @@


        @@ -1001,7 +1031,7 @@


        @@ -1017,7 +1047,7 @@


        @@ -1033,7 +1063,7 @@


        @@ -1049,7 +1079,7 @@


        @@ -1078,7 +1108,7 @@


        @@ -1094,7 +1124,7 @@


        @@ -1110,7 +1140,7 @@


        diff --git a/docs/Cosmo/AST/Statement/FunctionDef.html b/docs/Cosmo/AST/Statement/FunctionDef.html index 69162087..f657e60f 100644 --- a/docs/Cosmo/AST/Statement/FunctionDef.html +++ b/docs/Cosmo/AST/Statement/FunctionDef.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -976,7 +1006,7 @@


        @@ -1006,7 +1036,7 @@


        @@ -1022,7 +1052,7 @@


        @@ -1038,7 +1068,7 @@


        @@ -1054,7 +1084,7 @@


        @@ -1070,7 +1100,7 @@


        @@ -1099,7 +1129,7 @@


        @@ -1115,7 +1145,7 @@


        @@ -1131,7 +1161,7 @@


        diff --git a/docs/Cosmo/AST/Statement/If.html b/docs/Cosmo/AST/Statement/If.html index 519d5a9a..879231b1 100644 --- a/docs/Cosmo/AST/Statement/If.html +++ b/docs/Cosmo/AST/Statement/If.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -971,7 +1001,7 @@


        @@ -1001,7 +1031,7 @@


        @@ -1017,7 +1047,7 @@


        @@ -1033,7 +1063,7 @@


        @@ -1049,7 +1079,7 @@


        @@ -1065,7 +1095,7 @@


        @@ -1094,7 +1124,7 @@


        @@ -1110,7 +1140,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Next.html b/docs/Cosmo/AST/Statement/Next.html index c65ed16f..ceafb18a 100644 --- a/docs/Cosmo/AST/Statement/Next.html +++ b/docs/Cosmo/AST/Statement/Next.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -956,7 +986,7 @@


        @@ -986,7 +1016,7 @@


        @@ -1002,7 +1032,7 @@


        @@ -1031,7 +1061,7 @@


        @@ -1047,7 +1077,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Return.html b/docs/Cosmo/AST/Statement/Return.html index b99c9d9f..8ce2df24 100644 --- a/docs/Cosmo/AST/Statement/Return.html +++ b/docs/Cosmo/AST/Statement/Return.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -961,7 +991,7 @@


        @@ -991,7 +1021,7 @@


        @@ -1007,7 +1037,7 @@


        @@ -1036,7 +1066,7 @@


        @@ -1052,7 +1082,7 @@


        @@ -1068,7 +1098,7 @@


        diff --git a/docs/Cosmo/AST/Statement/SingleExpression.html b/docs/Cosmo/AST/Statement/SingleExpression.html index 06fb2bb0..98e337e1 100644 --- a/docs/Cosmo/AST/Statement/SingleExpression.html +++ b/docs/Cosmo/AST/Statement/SingleExpression.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -956,7 +986,7 @@


        @@ -986,7 +1016,7 @@


        @@ -1002,7 +1032,7 @@


        @@ -1031,7 +1061,7 @@


        @@ -1047,7 +1077,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Throw.html b/docs/Cosmo/AST/Statement/Throw.html index 1903b00a..cc64d901 100644 --- a/docs/Cosmo/AST/Statement/Throw.html +++ b/docs/Cosmo/AST/Statement/Throw.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -961,7 +991,7 @@


        @@ -991,7 +1021,7 @@


        @@ -1007,7 +1037,7 @@


        @@ -1023,7 +1053,7 @@


        @@ -1052,7 +1082,7 @@


        @@ -1068,7 +1098,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Unless.html b/docs/Cosmo/AST/Statement/Unless.html index 0d98ff51..79502786 100644 --- a/docs/Cosmo/AST/Statement/Unless.html +++ b/docs/Cosmo/AST/Statement/Unless.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -971,7 +1001,7 @@


        @@ -1001,7 +1031,7 @@


        @@ -1017,7 +1047,7 @@


        @@ -1033,7 +1063,7 @@


        @@ -1049,7 +1079,7 @@


        @@ -1065,7 +1095,7 @@


        @@ -1094,7 +1124,7 @@


        @@ -1110,7 +1140,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Until.html b/docs/Cosmo/AST/Statement/Until.html index a1acf9b1..c2c76680 100644 --- a/docs/Cosmo/AST/Statement/Until.html +++ b/docs/Cosmo/AST/Statement/Until.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -966,7 +996,7 @@


        @@ -996,7 +1026,7 @@


        @@ -1012,7 +1042,7 @@


        @@ -1028,7 +1058,7 @@


        @@ -1044,7 +1074,7 @@


        @@ -1073,7 +1103,7 @@


        @@ -1089,7 +1119,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Use.html b/docs/Cosmo/AST/Statement/Use.html index cecdc9d2..b767bdd9 100644 --- a/docs/Cosmo/AST/Statement/Use.html +++ b/docs/Cosmo/AST/Statement/Use.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -961,7 +991,7 @@


        @@ -991,7 +1021,7 @@


        @@ -1007,7 +1037,7 @@


        @@ -1023,7 +1053,7 @@


        @@ -1052,7 +1082,7 @@


        @@ -1068,7 +1098,7 @@


        diff --git a/docs/Cosmo/AST/Statement/Visitor.html b/docs/Cosmo/AST/Statement/Visitor.html index 135af383..edfee345 100644 --- a/docs/Cosmo/AST/Statement/Visitor.html +++ b/docs/Cosmo/AST/Statement/Visitor.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -777,7 +807,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -907,7 +937,7 @@


        @@ -923,7 +953,7 @@


        @@ -939,7 +969,7 @@


        @@ -955,7 +985,7 @@


        @@ -971,7 +1001,7 @@


        @@ -987,7 +1017,7 @@


        @@ -1003,7 +1033,7 @@


        @@ -1019,7 +1049,7 @@


        @@ -1035,7 +1065,7 @@


        @@ -1051,7 +1081,7 @@


        @@ -1067,7 +1097,7 @@


        @@ -1083,7 +1113,7 @@


        @@ -1099,7 +1129,7 @@


        @@ -1115,7 +1145,7 @@


        diff --git a/docs/Cosmo/AST/Statement/When.html b/docs/Cosmo/AST/Statement/When.html index 43396e95..58182524 100644 --- a/docs/Cosmo/AST/Statement/When.html +++ b/docs/Cosmo/AST/Statement/When.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -893,7 +923,7 @@


        @@ -923,7 +953,7 @@


        @@ -939,7 +969,7 @@


        @@ -955,7 +985,7 @@


        @@ -984,7 +1014,7 @@


        @@ -1000,7 +1030,7 @@


        diff --git a/docs/Cosmo/AST/Statement/While.html b/docs/Cosmo/AST/Statement/While.html index 8bc67abb..e67149b9 100644 --- a/docs/Cosmo/AST/Statement/While.html +++ b/docs/Cosmo/AST/Statement/While.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/syntax/parser/ast/statement_nodes.cr @@ -966,7 +996,7 @@


        @@ -996,7 +1026,7 @@


        @@ -1012,7 +1042,7 @@


        @@ -1028,7 +1058,7 @@


        @@ -1044,7 +1074,7 @@


        @@ -1073,7 +1103,7 @@


        @@ -1089,7 +1119,7 @@


        diff --git a/docs/Cosmo/AST/Visibility.html b/docs/Cosmo/AST/Visibility.html index e374b0ca..3632b4d5 100644 --- a/docs/Cosmo/AST/Visibility.html +++ b/docs/Cosmo/AST/Visibility.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -761,7 +791,7 @@

        - + cosmo/syntax/parser/ast.cr @@ -915,7 +945,7 @@


        @@ -931,7 +961,7 @@


        @@ -947,7 +977,7 @@


        @@ -963,7 +993,7 @@


        diff --git a/docs/Cosmo/Callable.html b/docs/Cosmo/Callable.html index f0e165ec..26246867 100644 --- a/docs/Cosmo/Callable.html +++ b/docs/Cosmo/Callable.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -779,7 +809,7 @@

        - + cosmo/runtime/function.cr @@ -881,7 +911,7 @@


        @@ -897,7 +927,7 @@


        @@ -913,7 +943,7 @@


        @@ -942,7 +972,7 @@


        diff --git a/docs/Cosmo/Class.html b/docs/Cosmo/Class.html index 4cd7eb5a..968dd26f 100644 --- a/docs/Cosmo/Class.html +++ b/docs/Cosmo/Class.html @@ -136,6 +136,11 @@

      • +
      • + New + +
      • +
      • NoneLiteral @@ -171,6 +176,11 @@

      • +
      • + This + +
      • +
      • TypeAlias @@ -341,6 +351,11 @@

      • +
      • + ClassInstance + +
      • +
      • Function @@ -546,6 +561,11 @@

        @@ -763,7 +793,7 @@

        - + cosmo/runtime/class.cr @@ -806,7 +836,22 @@

        • - #definition : AST::Statement::ClassDef + #construct(args : Array(ValueType)) : ClassInstance + +
        • + +
        • + #definition : Statement::ClassDef + +
        • + +
        • + #interpreter : Interpreter + +
        • + +
        • + #name
        • @@ -868,7 +913,7 @@


          @@ -887,18 +932,66 @@

          Instance Method Detail

          -
          +
          +
          + + def construct(args : Array(ValueType)) : ClassInstance + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          +
          + + def definition : Statement::ClassDef + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          +
          + + def interpreter : Interpreter + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          - def definition : AST::Statement::ClassDef + def name - # + #

          @@ -927,7 +1020,7 @@


          diff --git a/docs/Cosmo/ClassInstance.html b/docs/Cosmo/ClassInstance.html new file mode 100644 index 00000000..20c20bc2 --- /dev/null +++ b/docs/Cosmo/ClassInstance.html @@ -0,0 +1,1062 @@ + + + + + + + + + + + + + + + + Cosmo::ClassInstance - Cosmo master + + + + + + + + +
          +

          + + class Cosmo::ClassInstance + +

          + + + + + + + + + + + + + + + + + + + + +

          + + + + Defined in: +

          + + + + cosmo/runtime/class.cr + + +
          + + + + + + +

          + + + + Constructors +

          + + + + + + +

          + + + + Instance Method Summary +

          + + + + + + +
          + + + + + + + + + + + + + + + + + + + + + +
          + + +

          + + + + Constructor Detail +

          + +
          +
          + + def self.new(parent : Cosmo::Class, args : Array(Cosmo::ValueType)) + + # +
          + +
          +
          + + [View source] + +
          +
          + + + + + + +

          + + + + Instance Method Detail +

          + +
          +
          + + def define_field(name : String, value : ValueType, token : Token | Nil, constant : Bool = false, visibility : Visibility = Visibility::Public, typedef : Token | Nil = nil) : ClassInstance + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          +
          + + def define_method(name : String, value : Function, token : Token | Nil = nil, visibility : Visibility = Visibility::Public) : ClassInstance + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          +
          + + def get_field(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          +
          + + def get_member(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          +
          + + def get_method(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : Function | Nil + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          +
          + + def name + + # +
          + +
          +
          + + [View source] + +
          +
          + +
          +
          + + def setup : ClassInstance + + # +
          + +
          +
          + + [View source] + +
          +
          + + + + + +
          + + + diff --git a/docs/Cosmo/Function.html b/docs/Cosmo/Function.html index fabafbfb..49dfb1e0 100644 --- a/docs/Cosmo/Function.html +++ b/docs/Cosmo/Function.html @@ -136,6 +136,11 @@

          +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/function.cr @@ -811,12 +841,12 @@

        • - #call(args : Array(ValueType)) : ValueType + #call(args : Array(ValueType), return_type_override : String = @definition.return_typedef.value.to_s) : ValueType
        • - #definition : AST::Statement::FunctionDef + #definition : Statement::FunctionDef
        • @@ -917,7 +947,7 @@


          @@ -947,39 +977,39 @@


          -
          +
          - def call(args : Array(ValueType)) : ValueType + def call(args : Array(ValueType), return_type_override : String = @definition.return_typedef.value.to_s) : ValueType - # + #

          -
          +
          - def definition : AST::Statement::FunctionDef + def definition : Statement::FunctionDef - # + #

          @@ -995,7 +1025,7 @@


          @@ -1024,7 +1054,7 @@


          diff --git a/docs/Cosmo/HookedExceptions.html b/docs/Cosmo/HookedExceptions.html index 50bb6fdf..ecda4f44 100644 --- a/docs/Cosmo/HookedExceptions.html +++ b/docs/Cosmo/HookedExceptions.html @@ -136,6 +136,11 @@

          +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -761,7 +791,7 @@

          - + cosmo/runtime/hooked_exceptions.cr diff --git a/docs/Cosmo/HookedExceptions/Break.html b/docs/Cosmo/HookedExceptions/Break.html index 31e3e832..67ea3d4c 100644 --- a/docs/Cosmo/HookedExceptions/Break.html +++ b/docs/Cosmo/HookedExceptions/Break.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/hooked_exceptions.cr @@ -873,7 +903,7 @@


          diff --git a/docs/Cosmo/HookedExceptions/Next.html b/docs/Cosmo/HookedExceptions/Next.html index f9ae7767..db3bc45b 100644 --- a/docs/Cosmo/HookedExceptions/Next.html +++ b/docs/Cosmo/HookedExceptions/Next.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/hooked_exceptions.cr @@ -873,7 +903,7 @@


          diff --git a/docs/Cosmo/HookedExceptions/Return.html b/docs/Cosmo/HookedExceptions/Return.html index cf884ea5..f034e310 100644 --- a/docs/Cosmo/HookedExceptions/Return.html +++ b/docs/Cosmo/HookedExceptions/Return.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/hooked_exceptions.cr @@ -890,7 +920,7 @@


          @@ -920,7 +950,7 @@


          diff --git a/docs/Cosmo/Interpreter.html b/docs/Cosmo/Interpreter.html index c2cfa3a1..4047b556 100644 --- a/docs/Cosmo/Interpreter.html +++ b/docs/Cosmo/Interpreter.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -779,7 +809,7 @@

          - + cosmo/runtime/interpreter.cr @@ -831,6 +861,11 @@

        • +
        • + #delete_meta(key : String) : Nil + +
        • +
        • #evaluate(expr : Expression::Base) : ValueType @@ -856,6 +891,11 @@

        • +
        • + #meta : Hash(String, Cosmo::ClassInstance | String) + +
        • +
        • #resolve(expr : Expression::Base, depth : UInt32) : Nil @@ -867,7 +907,7 @@

        • - #set_meta(key : String, value : String | Nil) : Nil + #set_meta(key : String, value : MetaType | Nil) : Nil
        • @@ -941,6 +981,11 @@

          +
        • + #visit_new_expr(expr : Expression::New) : ClassInstance + +
        • +
        • #visit_next_stmt(stmt : Statement::Next) : Nil @@ -976,6 +1021,11 @@

        • +
        • + #visit_this_expr(expr : Expression::This) : ValueType + +
        • +
        • #visit_throw_stmt(stmt : Statement::Throw) : Nil @@ -1168,6 +1218,11 @@

          Instance methods inherited from module + visit_this_expr(expr : This) : R + visit_this_expr, + + visit_type_alias_expr(expr : TypeAlias) : R visit_type_alias_expr, @@ -1255,7 +1310,7 @@


          @@ -1285,7 +1340,7 @@


          @@ -1301,7 +1356,23 @@


          - [View source] + [View source] + +
          + + +
          +
          + + def delete_meta(key : String) : Nil + + # +
          + +
          +
          + + [View source]
          @@ -1317,7 +1388,7 @@


          @@ -1333,7 +1404,7 @@


          @@ -1349,7 +1420,7 @@


          @@ -1365,7 +1436,7 @@


          @@ -1381,7 +1452,23 @@


          - [View source] + [View source] + +
          + + +
          +
          + + def meta : Hash(String, Cosmo::ClassInstance | String) + + # +
          + +
          +
          + + [View source]
          @@ -1397,7 +1484,7 @@


          @@ -1413,23 +1500,23 @@


          -
          +
          - def set_meta(key : String, value : String | Nil) : Nil + def set_meta(key : String, value : MetaType | Nil) : Nil - # + #

          @@ -1445,7 +1532,7 @@


          @@ -1461,7 +1548,7 @@


          @@ -1477,7 +1564,7 @@


          @@ -1493,7 +1580,7 @@


          @@ -1509,7 +1596,7 @@


          @@ -1525,7 +1612,7 @@


          @@ -1541,7 +1628,7 @@


          @@ -1557,7 +1644,7 @@


          @@ -1573,7 +1660,7 @@


          @@ -1589,7 +1676,7 @@


          @@ -1605,7 +1692,7 @@


          @@ -1621,7 +1708,7 @@


          @@ -1637,7 +1724,7 @@


          @@ -1653,7 +1740,23 @@


          - [View source] + [View source] + +
          + + +
          +
          + + def visit_new_expr(expr : Expression::New) : ClassInstance + + # +
          + +
          +
          + + [View source]
          @@ -1669,7 +1772,7 @@


          @@ -1685,7 +1788,7 @@


          @@ -1701,7 +1804,7 @@


          @@ -1717,7 +1820,7 @@


          @@ -1733,7 +1836,7 @@


          @@ -1749,7 +1852,7 @@


          @@ -1765,7 +1868,23 @@


          - [View source] + [View source] + +
          + + +
          +
          + + def visit_this_expr(expr : Expression::This) : ValueType + + # +
          + +
          +
          + + [View source]
          @@ -1781,7 +1900,7 @@


          @@ -1797,7 +1916,7 @@


          @@ -1813,7 +1932,7 @@


          @@ -1829,7 +1948,7 @@


          @@ -1845,7 +1964,7 @@


          @@ -1861,7 +1980,7 @@


          @@ -1877,7 +1996,7 @@


          @@ -1893,7 +2012,7 @@


          @@ -1909,7 +2028,7 @@


          @@ -1925,7 +2044,7 @@


          @@ -1941,7 +2060,7 @@


          @@ -1957,7 +2076,7 @@


          diff --git a/docs/Cosmo/IntrinsicFunction.html b/docs/Cosmo/IntrinsicFunction.html index 69c14cc6..2e08da2a 100644 --- a/docs/Cosmo/IntrinsicFunction.html +++ b/docs/Cosmo/IntrinsicFunction.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -827,7 +857,7 @@

          - + cosmo/runtime/intrinsic/global.cr @@ -976,7 +1006,7 @@


          @@ -1006,7 +1036,7 @@


          @@ -1022,7 +1052,7 @@


          @@ -1051,7 +1081,7 @@


          @@ -1067,7 +1097,7 @@


          diff --git a/docs/Cosmo/IntrinsicLib.html b/docs/Cosmo/IntrinsicLib.html index c88b5768..77072038 100644 --- a/docs/Cosmo/IntrinsicLib.html +++ b/docs/Cosmo/IntrinsicLib.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -777,7 +807,7 @@

          - + cosmo/runtime/intrinsic/global.cr @@ -875,7 +905,7 @@


          @@ -905,7 +935,7 @@


          diff --git a/docs/Cosmo/Keywords.html b/docs/Cosmo/Keywords.html index f278d098..c67655e0 100644 --- a/docs/Cosmo/Keywords.html +++ b/docs/Cosmo/Keywords.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -761,7 +791,7 @@

          - + cosmo/syntax/lexer/keywords.cr @@ -885,7 +915,7 @@


          @@ -906,7 +936,7 @@


          @@ -927,7 +957,7 @@


          @@ -948,7 +978,7 @@


          diff --git a/docs/Cosmo/Lexer.html b/docs/Cosmo/Lexer.html index 687832ac..a8fd8cb3 100644 --- a/docs/Cosmo/Lexer.html +++ b/docs/Cosmo/Lexer.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/syntax/lexer.cr @@ -861,7 +891,7 @@


          @@ -891,7 +921,7 @@


          diff --git a/docs/Cosmo/Location.html b/docs/Cosmo/Location.html index 4bb38556..33eaecb1 100644 --- a/docs/Cosmo/Location.html +++ b/docs/Cosmo/Location.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/syntax/lexer/location.cr @@ -888,7 +918,7 @@


          @@ -918,7 +948,7 @@


          @@ -934,7 +964,7 @@


          @@ -950,7 +980,7 @@


          @@ -966,7 +996,7 @@


          @@ -982,7 +1012,7 @@


          @@ -1011,7 +1041,7 @@


          diff --git a/docs/Cosmo/Logger.html b/docs/Cosmo/Logger.html index e496f557..fe0cf786 100644 --- a/docs/Cosmo/Logger.html +++ b/docs/Cosmo/Logger.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -775,7 +805,7 @@

          - + cosmo/logger.cr @@ -855,7 +885,7 @@


          @@ -871,7 +901,7 @@


          @@ -887,7 +917,7 @@


          @@ -903,7 +933,7 @@


          diff --git a/docs/Cosmo/MathLib.html b/docs/Cosmo/MathLib.html index 88dcf676..5ea6349a 100644 --- a/docs/Cosmo/MathLib.html +++ b/docs/Cosmo/MathLib.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -876,7 +906,7 @@


          diff --git a/docs/Cosmo/MathLib/Acos.html b/docs/Cosmo/MathLib/Acos.html index f1a4a5ed..c1168404 100644 --- a/docs/Cosmo/MathLib/Acos.html +++ b/docs/Cosmo/MathLib/Acos.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Acosh.html b/docs/Cosmo/MathLib/Acosh.html index a144bcec..4a129cd5 100644 --- a/docs/Cosmo/MathLib/Acosh.html +++ b/docs/Cosmo/MathLib/Acosh.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Asin.html b/docs/Cosmo/MathLib/Asin.html index e7867417..096e82b4 100644 --- a/docs/Cosmo/MathLib/Asin.html +++ b/docs/Cosmo/MathLib/Asin.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Asinh.html b/docs/Cosmo/MathLib/Asinh.html index 692809e9..7f087cf4 100644 --- a/docs/Cosmo/MathLib/Asinh.html +++ b/docs/Cosmo/MathLib/Asinh.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Atan.html b/docs/Cosmo/MathLib/Atan.html index 62f29b70..27faf382 100644 --- a/docs/Cosmo/MathLib/Atan.html +++ b/docs/Cosmo/MathLib/Atan.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Atan2.html b/docs/Cosmo/MathLib/Atan2.html index 7b1cdc41..eb4318e9 100644 --- a/docs/Cosmo/MathLib/Atan2.html +++ b/docs/Cosmo/MathLib/Atan2.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Atanh.html b/docs/Cosmo/MathLib/Atanh.html index 7d19e9e9..686ca441 100644 --- a/docs/Cosmo/MathLib/Atanh.html +++ b/docs/Cosmo/MathLib/Atanh.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Cbrt.html b/docs/Cosmo/MathLib/Cbrt.html index 10cb5cc2..81aeede2 100644 --- a/docs/Cosmo/MathLib/Cbrt.html +++ b/docs/Cosmo/MathLib/Cbrt.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Ceil.html b/docs/Cosmo/MathLib/Ceil.html index cc4ad735..9119c22b 100644 --- a/docs/Cosmo/MathLib/Ceil.html +++ b/docs/Cosmo/MathLib/Ceil.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Cos.html b/docs/Cosmo/MathLib/Cos.html index ee12980a..857a8e21 100644 --- a/docs/Cosmo/MathLib/Cos.html +++ b/docs/Cosmo/MathLib/Cos.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Cosh.html b/docs/Cosmo/MathLib/Cosh.html index a30f0701..bc8ed77b 100644 --- a/docs/Cosmo/MathLib/Cosh.html +++ b/docs/Cosmo/MathLib/Cosh.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Exp.html b/docs/Cosmo/MathLib/Exp.html index 74dbe377..9af4f9c0 100644 --- a/docs/Cosmo/MathLib/Exp.html +++ b/docs/Cosmo/MathLib/Exp.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Floor.html b/docs/Cosmo/MathLib/Floor.html index 29e7f667..9be540ac 100644 --- a/docs/Cosmo/MathLib/Floor.html +++ b/docs/Cosmo/MathLib/Floor.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Isqrt.html b/docs/Cosmo/MathLib/Isqrt.html index cd442023..499e2213 100644 --- a/docs/Cosmo/MathLib/Isqrt.html +++ b/docs/Cosmo/MathLib/Isqrt.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Log.html b/docs/Cosmo/MathLib/Log.html index 12a32a89..2ad5060b 100644 --- a/docs/Cosmo/MathLib/Log.html +++ b/docs/Cosmo/MathLib/Log.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Log10.html b/docs/Cosmo/MathLib/Log10.html index cd2e950d..d0b130de 100644 --- a/docs/Cosmo/MathLib/Log10.html +++ b/docs/Cosmo/MathLib/Log10.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Log2.html b/docs/Cosmo/MathLib/Log2.html index df164969..b195e015 100644 --- a/docs/Cosmo/MathLib/Log2.html +++ b/docs/Cosmo/MathLib/Log2.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Max.html b/docs/Cosmo/MathLib/Max.html index ec6f84c7..f6ad8a0e 100644 --- a/docs/Cosmo/MathLib/Max.html +++ b/docs/Cosmo/MathLib/Max.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Min.html b/docs/Cosmo/MathLib/Min.html index 72759a28..9f9559ba 100644 --- a/docs/Cosmo/MathLib/Min.html +++ b/docs/Cosmo/MathLib/Min.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Round.html b/docs/Cosmo/MathLib/Round.html index e0a7de7f..e5cd7b35 100644 --- a/docs/Cosmo/MathLib/Round.html +++ b/docs/Cosmo/MathLib/Round.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Sin.html b/docs/Cosmo/MathLib/Sin.html index 2212ce06..5ea5b1b1 100644 --- a/docs/Cosmo/MathLib/Sin.html +++ b/docs/Cosmo/MathLib/Sin.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Sinh.html b/docs/Cosmo/MathLib/Sinh.html index 50c26216..2c572cfe 100644 --- a/docs/Cosmo/MathLib/Sinh.html +++ b/docs/Cosmo/MathLib/Sinh.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Sqrt.html b/docs/Cosmo/MathLib/Sqrt.html index 441cf9b2..161b75b7 100644 --- a/docs/Cosmo/MathLib/Sqrt.html +++ b/docs/Cosmo/MathLib/Sqrt.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Tan.html b/docs/Cosmo/MathLib/Tan.html index 8ec1b8d5..849b534d 100644 --- a/docs/Cosmo/MathLib/Tan.html +++ b/docs/Cosmo/MathLib/Tan.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/MathLib/Tanh.html b/docs/Cosmo/MathLib/Tanh.html index 1b967d99..4209e4e3 100644 --- a/docs/Cosmo/MathLib/Tanh.html +++ b/docs/Cosmo/MathLib/Tanh.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/intrinsic/lib/math.cr @@ -930,7 +960,7 @@


          @@ -946,7 +976,7 @@


          diff --git a/docs/Cosmo/Operator.html b/docs/Cosmo/Operator.html index 3c445ceb..9f4dee10 100644 --- a/docs/Cosmo/Operator.html +++ b/docs/Cosmo/Operator.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -761,7 +791,7 @@

          - + cosmo/runtime/operator.cr diff --git a/docs/Cosmo/Operator/AndAssign.html b/docs/Cosmo/Operator/AndAssign.html new file mode 100644 index 00000000..6ff4fa51 --- /dev/null +++ b/docs/Cosmo/Operator/AndAssign.html @@ -0,0 +1,935 @@ + + + + + + + + + + + + + + + + Cosmo::Operator::AndAssign - Cosmo master + + + + + + + + +
          +

          + + class Cosmo::Operator::AndAssign + +

          + + + + + + + +

          + + + + Overview +

          + +

          +this is beyond fucked up

          + + + + + + + + + + + + + + +

          + + + + Defined in: +

          + + + + cosmo/runtime/operator.cr + + +
          + + + + + + + + + + +

          + + + + Instance Method Summary +

          + + + + + + +
          + + + +

          Instance methods inherited from class Cosmo::Operator::Base

          + + + + apply(expr : E) : ValueType forall E + apply + + + + + + +

          Constructor methods inherited from class Cosmo::Operator::Base

          + + + + new(interpreter : Interpreter) + new + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
          + + + + + + +

          + + + + Instance Method Detail +

          + +
          +
          + + def apply(expr : Expression::CompoundAssignment) : ValueType + + # +
          + +
          +
          + + [View source] + +
          +
          + + + + + +
          + + + diff --git a/docs/Cosmo/Operator/Band.html b/docs/Cosmo/Operator/Band.html index 0bbcca52..a29c50f9 100644 --- a/docs/Cosmo/Operator/Band.html +++ b/docs/Cosmo/Operator/Band.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


          diff --git a/docs/Cosmo/Operator/Bnot.html b/docs/Cosmo/Operator/Bnot.html index cb078d47..564cb80c 100644 --- a/docs/Cosmo/Operator/Bnot.html +++ b/docs/Cosmo/Operator/Bnot.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


          diff --git a/docs/Cosmo/Operator/Bor.html b/docs/Cosmo/Operator/Bor.html index ecd51d4e..1dd370e0 100644 --- a/docs/Cosmo/Operator/Bor.html +++ b/docs/Cosmo/Operator/Bor.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


          diff --git a/docs/Cosmo/Operator/Bshl.html b/docs/Cosmo/Operator/Bshl.html index 99479524..14f865f0 100644 --- a/docs/Cosmo/Operator/Bshl.html +++ b/docs/Cosmo/Operator/Bshl.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


          diff --git a/docs/Cosmo/Operator/Bshr.html b/docs/Cosmo/Operator/Bshr.html index 3a6bea56..f932bded 100644 --- a/docs/Cosmo/Operator/Bshr.html +++ b/docs/Cosmo/Operator/Bshr.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


          diff --git a/docs/Cosmo/Operator/Bxor.html b/docs/Cosmo/Operator/Bxor.html index 8f94157e..f1a47f7c 100644 --- a/docs/Cosmo/Operator/Bxor.html +++ b/docs/Cosmo/Operator/Bxor.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


          diff --git a/docs/Cosmo/Operator/Div.html b/docs/Cosmo/Operator/Div.html index 2196bf94..e7301c8b 100644 --- a/docs/Cosmo/Operator/Div.html +++ b/docs/Cosmo/Operator/Div.html @@ -136,6 +136,11 @@

        • +
        • + New + +
        • +
        • NoneLiteral @@ -171,6 +176,11 @@

        • +
        • + This + +
        • +
        • TypeAlias @@ -341,6 +351,11 @@

        • +
        • + ClassInstance + +
        • +
        • Function @@ -546,6 +561,11 @@

          @@ -763,7 +793,7 @@

          - + cosmo/runtime/operator.cr @@ -789,7 +819,7 @@

          • - #apply(expr : Expression::BinaryOp) : ValueType + #apply(expr : Expression::BinaryOp, op : String = "/") : ValueType
          • @@ -865,18 +895,18 @@

            Instance Method Detail

            -
            +
            - def apply(expr : Expression::BinaryOp) : ValueType + def apply(expr : Expression::BinaryOp, op : String = "/") : ValueType - # + #

            diff --git a/docs/Cosmo/Operator/DivAssign.html b/docs/Cosmo/Operator/DivAssign.html index b2c5084c..2f68e06a 100644 --- a/docs/Cosmo/Operator/DivAssign.html +++ b/docs/Cosmo/Operator/DivAssign.html @@ -136,6 +136,11 @@

            +
          • + New + +
          • +
          • NoneLiteral @@ -171,6 +176,11 @@

          • +
          • + This + +
          • +
          • TypeAlias @@ -341,6 +351,11 @@

          • +
          • + ClassInstance + +
          • +
          • Function @@ -546,6 +561,11 @@

          • @@ -763,7 +793,7 @@

            - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


            diff --git a/docs/Cosmo/Operator/GT.html b/docs/Cosmo/Operator/GT.html index 8f34b503..5289de8e 100644 --- a/docs/Cosmo/Operator/GT.html +++ b/docs/Cosmo/Operator/GT.html @@ -136,6 +136,11 @@

            +
          • + New + +
          • +
          • NoneLiteral @@ -171,6 +176,11 @@

          • +
          • + This + +
          • +
          • TypeAlias @@ -341,6 +351,11 @@

          • +
          • + ClassInstance + +
          • +
          • Function @@ -546,6 +561,11 @@

            @@ -763,7 +793,7 @@

            - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


            diff --git a/docs/Cosmo/Operator/GTE.html b/docs/Cosmo/Operator/GTE.html index 7cf45205..2f3ea620 100644 --- a/docs/Cosmo/Operator/GTE.html +++ b/docs/Cosmo/Operator/GTE.html @@ -136,6 +136,11 @@

          • +
          • + New + +
          • +
          • NoneLiteral @@ -171,6 +176,11 @@

          • +
          • + This + +
          • +
          • TypeAlias @@ -341,6 +351,11 @@

          • +
          • + ClassInstance + +
          • +
          • Function @@ -546,6 +561,11 @@

            @@ -763,7 +793,7 @@

            - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


            diff --git a/docs/Cosmo/Operator/LT.html b/docs/Cosmo/Operator/LT.html index d9978b3d..ef8b11cc 100644 --- a/docs/Cosmo/Operator/LT.html +++ b/docs/Cosmo/Operator/LT.html @@ -136,6 +136,11 @@

          • +
          • + New + +
          • +
          • NoneLiteral @@ -171,6 +176,11 @@

          • +
          • + This + +
          • +
          • TypeAlias @@ -341,6 +351,11 @@

          • +
          • + ClassInstance + +
          • +
          • Function @@ -546,6 +561,11 @@

            @@ -763,7 +793,7 @@

            - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


            diff --git a/docs/Cosmo/Operator/LTE.html b/docs/Cosmo/Operator/LTE.html index f641a460..093d879e 100644 --- a/docs/Cosmo/Operator/LTE.html +++ b/docs/Cosmo/Operator/LTE.html @@ -136,6 +136,11 @@

          • +
          • + New + +
          • +
          • NoneLiteral @@ -171,6 +176,11 @@

          • +
          • + This + +
          • +
          • TypeAlias @@ -341,6 +351,11 @@

          • +
          • + ClassInstance + +
          • +
          • Function @@ -546,6 +561,11 @@

            @@ -763,7 +793,7 @@

            - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


            diff --git a/docs/Cosmo/Operator/Minus.html b/docs/Cosmo/Operator/Minus.html index 60db54ad..65aa1f1c 100644 --- a/docs/Cosmo/Operator/Minus.html +++ b/docs/Cosmo/Operator/Minus.html @@ -136,6 +136,11 @@

          • +
          • + New + +
          • +
          • NoneLiteral @@ -171,6 +176,11 @@

          • +
          • + This + +
          • +
          • TypeAlias @@ -341,6 +351,11 @@

          • +
          • + ClassInstance + +
          • +
          • Function @@ -546,6 +561,11 @@

            @@ -763,7 +793,7 @@

            - + cosmo/runtime/operator.cr @@ -789,7 +819,7 @@

            • - #apply(expr : Expression::BinaryOp) : ValueType + #apply(expr : Expression::BinaryOp, op : String = "-") : ValueType
            • @@ -865,18 +895,18 @@

              Instance Method Detail

              -
              +
              - def apply(expr : Expression::BinaryOp) : ValueType + def apply(expr : Expression::BinaryOp, op : String = "-") : ValueType - # + #

              diff --git a/docs/Cosmo/Operator/MinusAssign.html b/docs/Cosmo/Operator/MinusAssign.html index 8149be91..c68a8413 100644 --- a/docs/Cosmo/Operator/MinusAssign.html +++ b/docs/Cosmo/Operator/MinusAssign.html @@ -136,6 +136,11 @@

              +
            • + New + +
            • +
            • NoneLiteral @@ -171,6 +176,11 @@

            • +
            • + This + +
            • +
            • TypeAlias @@ -341,6 +351,11 @@

            • +
            • + ClassInstance + +
            • +
            • Function @@ -546,6 +561,11 @@

            • @@ -763,7 +793,7 @@

              - + cosmo/runtime/operator.cr @@ -789,7 +819,7 @@

              • - #apply(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = "-=") : ValueType + #apply(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = "-=") : ValueType
              • @@ -865,18 +895,18 @@

                Instance Method Detail

                -
                +
                - def apply(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = "-=") : ValueType + def apply(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = "-=") : ValueType - # + #

                diff --git a/docs/Cosmo/Operator/Mod.html b/docs/Cosmo/Operator/Mod.html index 30710d46..462aa5d8 100644 --- a/docs/Cosmo/Operator/Mod.html +++ b/docs/Cosmo/Operator/Mod.html @@ -136,6 +136,11 @@

                +
              • + New + +
              • +
              • NoneLiteral @@ -171,6 +176,11 @@

              • +
              • + This + +
              • +
              • TypeAlias @@ -341,6 +351,11 @@

              • +
              • + ClassInstance + +
              • +
              • Function @@ -546,6 +561,11 @@

              • @@ -763,7 +793,7 @@

                - + cosmo/runtime/operator.cr @@ -789,7 +819,7 @@

                • - #apply(expr : Expression::BinaryOp) : ValueType + #apply(expr : Expression::BinaryOp, op : String = "%") : ValueType
                • @@ -865,18 +895,18 @@

                  Instance Method Detail

                  -
                  +
                  - def apply(expr : Expression::BinaryOp) : ValueType + def apply(expr : Expression::BinaryOp, op : String = "%") : ValueType - # + #

                  diff --git a/docs/Cosmo/Operator/ModAssign.html b/docs/Cosmo/Operator/ModAssign.html index 77b66f3e..d3f90e93 100644 --- a/docs/Cosmo/Operator/ModAssign.html +++ b/docs/Cosmo/Operator/ModAssign.html @@ -136,6 +136,11 @@

                  +
                • + New + +
                • +
                • NoneLiteral @@ -171,6 +176,11 @@

                • +
                • + This + +
                • +
                • TypeAlias @@ -341,6 +351,11 @@

                • +
                • + ClassInstance + +
                • +
                • Function @@ -546,6 +561,11 @@

                • @@ -763,7 +793,7 @@

                  - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


                  diff --git a/docs/Cosmo/Operator/Mul.html b/docs/Cosmo/Operator/Mul.html index f2732376..c27586e3 100644 --- a/docs/Cosmo/Operator/Mul.html +++ b/docs/Cosmo/Operator/Mul.html @@ -136,6 +136,11 @@

                  +
                • + New + +
                • +
                • NoneLiteral @@ -171,6 +176,11 @@

                • +
                • + This + +
                • +
                • TypeAlias @@ -341,6 +351,11 @@

                • +
                • + ClassInstance + +
                • +
                • Function @@ -546,6 +561,11 @@

                  @@ -763,7 +793,7 @@

                  - + cosmo/runtime/operator.cr @@ -789,7 +819,7 @@

                  • - #apply(expr : Expression::BinaryOp) : ValueType + #apply(expr : Expression::BinaryOp, op : String = "*") : ValueType
                  • @@ -865,18 +895,18 @@

                    Instance Method Detail

                    -
                    +
                    - def apply(expr : Expression::BinaryOp) : ValueType + def apply(expr : Expression::BinaryOp, op : String = "*") : ValueType - # + #

                    diff --git a/docs/Cosmo/Operator/MulAssign.html b/docs/Cosmo/Operator/MulAssign.html index 3a3aa0a5..f38d3acb 100644 --- a/docs/Cosmo/Operator/MulAssign.html +++ b/docs/Cosmo/Operator/MulAssign.html @@ -136,6 +136,11 @@

                    +
                  • + New + +
                  • +
                  • NoneLiteral @@ -171,6 +176,11 @@

                  • +
                  • + This + +
                  • +
                  • TypeAlias @@ -341,6 +351,11 @@

                  • +
                  • + ClassInstance + +
                  • +
                  • Function @@ -546,6 +561,11 @@

                  • @@ -763,7 +793,7 @@

                    - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


                    diff --git a/docs/Cosmo/Operator/OrAssign.html b/docs/Cosmo/Operator/OrAssign.html new file mode 100644 index 00000000..e5b51498 --- /dev/null +++ b/docs/Cosmo/Operator/OrAssign.html @@ -0,0 +1,921 @@ + + + + + + + + + + + + + + + + Cosmo::Operator::OrAssign - Cosmo master + + + + + + + + +
                    +

                    + + class Cosmo::Operator::OrAssign + +

                    + + + + + + + + + + + + + + + + + + + + +

                    + + + + Defined in: +

                    + + + + cosmo/runtime/operator.cr + + +
                    + + + + + + + + + + +

                    + + + + Instance Method Summary +

                    + + + + + + +
                    + + + +

                    Instance methods inherited from class Cosmo::Operator::Base

                    + + + + apply(expr : E) : ValueType forall E + apply + + + + + + +

                    Constructor methods inherited from class Cosmo::Operator::Base

                    + + + + new(interpreter : Interpreter) + new + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
                    + + + + + + +

                    + + + + Instance Method Detail +

                    + +
                    +
                    + + def apply(expr : Expression::CompoundAssignment) : ValueType + + # +
                    + +
                    +
                    + + [View source] + +
                    +
                    + + + + + +
                    + + + diff --git a/docs/Cosmo/Operator/Plus.html b/docs/Cosmo/Operator/Plus.html index 0f6761df..cbe992eb 100644 --- a/docs/Cosmo/Operator/Plus.html +++ b/docs/Cosmo/Operator/Plus.html @@ -136,6 +136,11 @@

                    +
                  • + New + +
                  • +
                  • NoneLiteral @@ -171,6 +176,11 @@

                  • +
                  • + This + +
                  • +
                  • TypeAlias @@ -341,6 +351,11 @@

                  • +
                  • + ClassInstance + +
                  • +
                  • Function @@ -546,6 +561,11 @@

                    @@ -763,7 +793,7 @@

                    - + cosmo/runtime/operator.cr @@ -789,7 +819,7 @@

                    • - #apply(expr : Expression::BinaryOp) : ValueType + #apply(expr : Expression::BinaryOp, op : String = "+") : ValueType
                    • @@ -865,18 +895,18 @@

                      Instance Method Detail

                      -
                      +
                      - def apply(expr : Expression::BinaryOp) : ValueType + def apply(expr : Expression::BinaryOp, op : String = "+") : ValueType - # + #

                      diff --git a/docs/Cosmo/Operator/PlusAssign.html b/docs/Cosmo/Operator/PlusAssign.html index 8e0329d4..e6154656 100644 --- a/docs/Cosmo/Operator/PlusAssign.html +++ b/docs/Cosmo/Operator/PlusAssign.html @@ -136,6 +136,11 @@

                      +
                    • + New + +
                    • +
                    • NoneLiteral @@ -171,6 +176,11 @@

                    • +
                    • + This + +
                    • +
                    • TypeAlias @@ -341,6 +351,11 @@

                    • +
                    • + ClassInstance + +
                    • +
                    • Function @@ -546,6 +561,11 @@

                    • @@ -763,7 +793,7 @@

                      - + cosmo/runtime/operator.cr @@ -789,7 +819,7 @@

                      • - #apply(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = "+=") : ValueType + #apply(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = "+=") : ValueType
                      • @@ -865,18 +895,18 @@

                        Instance Method Detail

                        -
                        +
                        - def apply(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = "+=") : ValueType + def apply(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = "+=") : ValueType - # + #

                        diff --git a/docs/Cosmo/Operator/Pow.html b/docs/Cosmo/Operator/Pow.html index 9005d87b..40340849 100644 --- a/docs/Cosmo/Operator/Pow.html +++ b/docs/Cosmo/Operator/Pow.html @@ -136,6 +136,11 @@

                        +
                      • + New + +
                      • +
                      • NoneLiteral @@ -171,6 +176,11 @@

                      • +
                      • + This + +
                      • +
                      • TypeAlias @@ -341,6 +351,11 @@

                      • +
                      • + ClassInstance + +
                      • +
                      • Function @@ -546,6 +561,11 @@

                      • @@ -763,7 +793,7 @@

                        - + cosmo/runtime/operator.cr @@ -789,7 +819,7 @@

                        • - #apply(expr : Expression::BinaryOp) : ValueType + #apply(expr : Expression::BinaryOp, op : String = "^") : ValueType
                        • @@ -865,18 +895,18 @@

                          Instance Method Detail

                          -
                          +
                          - def apply(expr : Expression::BinaryOp) : ValueType + def apply(expr : Expression::BinaryOp, op : String = "^") : ValueType - # + #

                          diff --git a/docs/Cosmo/Operator/PowAssign.html b/docs/Cosmo/Operator/PowAssign.html index 0010794b..d8c8b412 100644 --- a/docs/Cosmo/Operator/PowAssign.html +++ b/docs/Cosmo/Operator/PowAssign.html @@ -136,6 +136,11 @@

                          +
                        • + New + +
                        • +
                        • NoneLiteral @@ -171,6 +176,11 @@

                        • +
                        • + This + +
                        • +
                        • TypeAlias @@ -341,6 +351,11 @@

                        • +
                        • + ClassInstance + +
                        • +
                        • Function @@ -546,6 +561,11 @@

                        • @@ -763,7 +793,7 @@

                          - + cosmo/runtime/operator.cr @@ -876,7 +906,7 @@


                          diff --git a/docs/Cosmo/Parser.html b/docs/Cosmo/Parser.html index bd2a3fbe..84ebf463 100644 --- a/docs/Cosmo/Parser.html +++ b/docs/Cosmo/Parser.html @@ -136,6 +136,11 @@

                          +
                        • + New + +
                        • +
                        • NoneLiteral @@ -171,6 +176,11 @@

                        • +
                        • + This + +
                        • +
                        • TypeAlias @@ -341,6 +351,11 @@

                        • +
                        • + ClassInstance + +
                        • +
                        • Function @@ -546,6 +561,11 @@

                          @@ -763,7 +793,7 @@

                          - + cosmo/syntax/parser.cr @@ -863,7 +893,7 @@


                          @@ -898,7 +928,7 @@


                          diff --git a/docs/Cosmo/PutsIntrinsic.html b/docs/Cosmo/PutsIntrinsic.html index 782e93b4..fbf35a97 100644 --- a/docs/Cosmo/PutsIntrinsic.html +++ b/docs/Cosmo/PutsIntrinsic.html @@ -136,6 +136,11 @@

                        • +
                        • + New + +
                        • +
                        • NoneLiteral @@ -171,6 +176,11 @@

                        • +
                        • + This + +
                        • +
                        • TypeAlias @@ -341,6 +351,11 @@

                        • +
                        • + ClassInstance + +
                        • +
                        • Function @@ -546,6 +561,11 @@

                          @@ -763,7 +793,7 @@

                          - + cosmo/runtime/intrinsic/global.cr @@ -930,7 +960,7 @@


                          @@ -946,7 +976,7 @@


                          diff --git a/docs/Cosmo/Resolver.html b/docs/Cosmo/Resolver.html index f667b2c9..fb56cfae 100644 --- a/docs/Cosmo/Resolver.html +++ b/docs/Cosmo/Resolver.html @@ -136,6 +136,11 @@

                        • +
                        • + New + +
                        • +
                        • NoneLiteral @@ -171,6 +176,11 @@

                        • +
                        • + This + +
                        • +
                        • TypeAlias @@ -341,6 +351,11 @@

                        • +
                        • + ClassInstance + +
                        • +
                        • Function @@ -546,6 +561,11 @@

                          @@ -779,7 +809,7 @@

                          - + cosmo/runtime/resolver.cr @@ -901,6 +931,11 @@

                        • +
                        • + #visit_new_expr(expr : Expression::New) : Nil + +
                        • +
                        • #visit_next_stmt(stmt : Statement::Next) : Nil @@ -936,6 +971,11 @@

                        • +
                        • + #visit_this_expr(expr : Expression::This) : Nil + +
                        • +
                        • #visit_throw_stmt(stmt : Statement::Throw) : Nil @@ -1128,6 +1168,11 @@

                          Instance methods inherited from module + visit_this_expr(expr : This) : R + visit_this_expr, + + visit_type_alias_expr(expr : TypeAlias) : R visit_type_alias_expr, @@ -1215,7 +1260,7 @@


                          @@ -1245,7 +1290,7 @@


                          @@ -1261,7 +1306,7 @@


                          @@ -1277,7 +1322,7 @@


                          @@ -1293,7 +1338,7 @@


                          @@ -1309,7 +1354,7 @@


                          @@ -1325,7 +1370,7 @@


                          @@ -1341,7 +1386,7 @@


                          @@ -1357,7 +1402,7 @@


                          @@ -1373,7 +1418,7 @@


                          @@ -1389,7 +1434,7 @@


                          @@ -1405,7 +1450,7 @@


                          @@ -1421,7 +1466,7 @@


                          @@ -1437,7 +1482,7 @@


                          @@ -1453,7 +1498,7 @@


                          @@ -1469,7 +1514,7 @@


                          @@ -1485,7 +1530,23 @@


                          - [View source] + [View source] + +
                          + + +
                          +
                          + + def visit_new_expr(expr : Expression::New) : Nil + + # +
                          + +
                          +
                          + + [View source]
                          @@ -1501,7 +1562,7 @@


                          @@ -1517,7 +1578,7 @@


                          @@ -1533,7 +1594,7 @@


                          @@ -1549,7 +1610,7 @@


                          @@ -1565,7 +1626,7 @@


                          @@ -1581,7 +1642,7 @@


                          @@ -1597,7 +1658,23 @@


                          - [View source] + [View source] + +
                          + + +
                          +
                          + + def visit_this_expr(expr : Expression::This) : Nil + + # +
                          + +
                          +
                          + + [View source]
                          @@ -1613,7 +1690,7 @@


                          @@ -1629,7 +1706,7 @@


                          @@ -1645,7 +1722,7 @@


                          @@ -1661,7 +1738,7 @@


                          @@ -1677,7 +1754,7 @@


                          @@ -1693,7 +1770,7 @@


                          @@ -1709,7 +1786,7 @@


                          @@ -1725,7 +1802,7 @@


                          @@ -1741,7 +1818,7 @@


                          @@ -1757,7 +1834,7 @@


                          @@ -1773,7 +1850,7 @@


                          @@ -1789,7 +1866,7 @@


                          diff --git a/docs/Cosmo/Scope.html b/docs/Cosmo/Scope.html index ff7e67a5..c2d6d117 100644 --- a/docs/Cosmo/Scope.html +++ b/docs/Cosmo/Scope.html @@ -136,6 +136,11 @@

                        • +
                        • + New + +
                        • +
                        • NoneLiteral @@ -171,6 +176,11 @@

                        • +
                        • + This + +
                        • +
                        • TypeAlias @@ -341,6 +351,11 @@

                        • +
                        • + ClassInstance + +
                        • +
                        • Function @@ -546,6 +561,11 @@

                          @@ -763,7 +793,7 @@

                          - + cosmo/runtime/scope.cr @@ -806,7 +836,7 @@

                          • - #assign(identifier : Token, value : ValueType) : ValueType + #assign(identifier : Token, value : ValueType, modifying_instance : Bool = false) : ValueType
                          • @@ -826,7 +856,7 @@

                          • - #lookup?(token : Token) : ValueType + #lookup?(ident : String) : ValueType
                          • @@ -846,7 +876,7 @@

                          • - #public?(token : Token) : Bool + #public?(ident : String) : Bool

                            Returns true if the variable exists and is public, otherwise false

                            @@ -920,7 +950,7 @@


                            @@ -939,18 +969,18 @@

                            Instance Method Detail

                            -
                            +
                            - def assign(identifier : Token, value : ValueType) : ValueType + def assign(identifier : Token, value : ValueType, modifying_instance : Bool = false) : ValueType - # + #

                            @@ -966,7 +996,7 @@


                            @@ -982,7 +1012,7 @@


                            @@ -998,23 +1028,23 @@


                            -
                            +
                            - def lookup?(token : Token) : ValueType + def lookup?(ident : String) : ValueType - # + #

                            @@ -1030,7 +1060,7 @@


                            @@ -1046,7 +1076,7 @@


                            @@ -1062,17 +1092,17 @@


                            -
                            +
                            - def public?(token : Token) : Bool + def public?(ident : String) : Bool - # + #
                            @@ -1083,7 +1113,7 @@


                            @@ -1112,7 +1142,7 @@


                            @@ -1128,7 +1158,7 @@


                            @@ -1144,7 +1174,7 @@


                            diff --git a/docs/Cosmo/Syntax.html b/docs/Cosmo/Syntax.html index 64c71a60..15666d22 100644 --- a/docs/Cosmo/Syntax.html +++ b/docs/Cosmo/Syntax.html @@ -136,6 +136,11 @@

                          • +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -761,7 +791,7 @@

                            - + cosmo/syntax/syntax_type.cr @@ -967,213 +997,223 @@

                            -
                            - ColonAmpersand = 37 +
                            + AmpersandColon = 37 +
                            + + +
                            + PipeColon = 38
                            -
                            - ColonPipe = 38 +
                            + AmpersandColonEqual = 39 +
                            + + +
                            + PipeColonEqual = 40
                            - Question = 39 + Question = 41
                            - ColonColon = 40 + ColonColon = 42
                            - Colon = 41 + Colon = 43
                            - Dot = 42 + Dot = 44
                            - DotDot = 43 + DotDot = 45
                            - HyphenArrow = 44 + HyphenArrow = 46
                            - FatArrow = 45 + FatArrow = 47
                            - This = 46 + This = 48
                            - LBrace = 47 + LBrace = 49
                            - RBrace = 48 + RBrace = 50
                            - DoubleLBrace = 49 + DoubleLBrace = 51
                            - DoubleRBrace = 50 + DoubleRBrace = 52
                            - LBracket = 51 + LBracket = 53
                            - RBracket = 52 + RBracket = 54
                            - LParen = 53 + LParen = 55
                            - RParen = 54 + RParen = 56
                            - Comma = 55 + Comma = 57
                            - Hashtag = 56 + Hashtag = 58
                            - Class = 57 + Class = 59
                            - Mixin = 58 + Mixin = 60
                            - New = 59 + New = 61
                            - Function = 60 + Function = 62
                            - If = 61 + If = 63
                            - Unless = 62 + Unless = 64
                            - In = 63 + In = 65
                            - Of = 64 + Of = 66
                            - Is = 65 + Is = 67
                            - Else = 66 + Else = 68
                            - Every = 67 + Every = 69
                            - While = 68 + While = 70
                            - Until = 69 + Until = 71
                            - Const = 70 + Const = 72
                            - Throw = 71 + Throw = 73
                            - Break = 72 + Break = 74
                            - Next = 73 + Next = 75
                            - Case = 74 + Case = 76
                            - When = 75 + When = 77
                            - Return = 76 + Return = 78
                            - Use = 77 + Use = 79
                            - EOF = 78 + EOF = 80
                            @@ -1200,6 +1240,16 @@

                          • +
                          • + #ampersand_colon? + +
                          • + +
                          • + #ampersand_colon_equal? + +
                          • +
                          • #bang? @@ -1255,21 +1305,11 @@

                          • -
                          • - #colon_ampersand? - -
                          • -
                          • #colon_colon?
                          • -
                          • - #colon_pipe? - -
                          • -
                          • #comma? @@ -1470,6 +1510,16 @@

                          • +
                          • + #pipe_colon? + +
                          • + +
                          • + #pipe_colon_equal? + +
                          • +
                          • #plus? @@ -1665,7 +1715,39 @@


                            - [View source] + [View source] + +
                            + + +
                            +
                            + + def ampersand_colon? + + # +
                            + +
                            +
                            + + [View source] + +
                            +
                            + +
                            +
                            + + def ampersand_colon_equal? + + # +
                            + +
                            +
                            + + [View source]
                            @@ -1681,7 +1763,7 @@


                            @@ -1697,7 +1779,7 @@


                            @@ -1713,7 +1795,7 @@


                            @@ -1729,7 +1811,7 @@


                            @@ -1745,7 +1827,7 @@


                            @@ -1761,7 +1843,7 @@


                            @@ -1777,7 +1859,7 @@


                            @@ -1793,7 +1875,7 @@


                            @@ -1809,7 +1891,7 @@


                            @@ -1825,7 +1907,7 @@


                            @@ -1841,23 +1923,7 @@


                            - [View source] - -
                            - - -
                            -
                            - - def colon_ampersand? - - # -
                            - -
                            -
                            @@ -1873,23 +1939,7 @@


                            - [View source] - -
                            - - -
                            -
                            - - def colon_pipe? - - # -
                            - -
                            -
                            @@ -1905,7 +1955,7 @@


                            @@ -1921,7 +1971,7 @@


                            @@ -1937,7 +1987,7 @@


                            @@ -1953,7 +2003,7 @@


                            @@ -1969,7 +2019,7 @@


                            @@ -1985,7 +2035,7 @@


                            @@ -2001,7 +2051,7 @@


                            @@ -2017,7 +2067,7 @@


                            @@ -2033,7 +2083,7 @@


                            @@ -2049,7 +2099,7 @@


                            @@ -2065,7 +2115,7 @@


                            @@ -2081,7 +2131,7 @@


                            @@ -2097,7 +2147,7 @@


                            @@ -2113,7 +2163,7 @@


                            @@ -2129,7 +2179,7 @@


                            @@ -2145,7 +2195,7 @@


                            @@ -2161,7 +2211,7 @@


                            @@ -2177,7 +2227,7 @@


                            @@ -2193,7 +2243,7 @@


                            @@ -2209,7 +2259,7 @@


                            @@ -2225,7 +2275,7 @@


                            @@ -2241,7 +2291,7 @@


                            @@ -2257,7 +2307,7 @@


                            @@ -2273,7 +2323,7 @@


                            @@ -2289,7 +2339,7 @@


                            @@ -2305,7 +2355,7 @@


                            @@ -2321,7 +2371,7 @@


                            @@ -2337,7 +2387,7 @@


                            @@ -2353,7 +2403,7 @@


                            @@ -2369,7 +2419,7 @@


                            @@ -2385,7 +2435,7 @@


                            @@ -2401,7 +2451,7 @@


                            @@ -2417,7 +2467,7 @@


                            @@ -2433,7 +2483,7 @@


                            @@ -2449,7 +2499,7 @@


                            @@ -2465,7 +2515,7 @@


                            @@ -2481,7 +2531,7 @@


                            @@ -2497,7 +2547,7 @@


                            @@ -2513,7 +2563,7 @@


                            @@ -2529,7 +2579,39 @@


                            - [View source] + [View source] + +
                            + + +
                            +
                            + + def pipe_colon? + + # +
                            + +
                            +
                            + + [View source] + +
                            +
                            + +
                            +
                            + + def pipe_colon_equal? + + # +
                            + +
                            +
                            + + [View source]
                            @@ -2545,7 +2627,7 @@


                            @@ -2561,7 +2643,7 @@


                            @@ -2577,7 +2659,7 @@


                            @@ -2593,7 +2675,7 @@


                            @@ -2609,7 +2691,7 @@


                            @@ -2625,7 +2707,7 @@


                            @@ -2641,7 +2723,7 @@


                            @@ -2657,7 +2739,7 @@


                            @@ -2673,7 +2755,7 @@


                            @@ -2689,7 +2771,7 @@


                            @@ -2705,7 +2787,7 @@


                            @@ -2721,7 +2803,7 @@


                            @@ -2737,7 +2819,7 @@


                            @@ -2753,7 +2835,7 @@


                            @@ -2769,7 +2851,7 @@


                            @@ -2785,7 +2867,7 @@


                            @@ -2801,7 +2883,7 @@


                            @@ -2817,7 +2899,7 @@


                            @@ -2833,7 +2915,7 @@


                            @@ -2849,7 +2931,7 @@


                            @@ -2865,7 +2947,7 @@


                            @@ -2881,7 +2963,7 @@


                            @@ -2897,7 +2979,7 @@


                            @@ -2913,7 +2995,7 @@


                            diff --git a/docs/Cosmo/Token.html b/docs/Cosmo/Token.html index d3761754..a446a2dc 100644 --- a/docs/Cosmo/Token.html +++ b/docs/Cosmo/Token.html @@ -136,6 +136,11 @@

                          • +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -763,7 +793,7 @@

                            - + cosmo/syntax/lexer/token.cr @@ -810,6 +840,11 @@

                          • +
                          • + #lexeme=(lexeme : String) + +
                          • +
                          • #location : Location @@ -827,6 +862,11 @@

                          • +
                          • + #type=(type : Syntax) + +
                          • +
                          • #value : LiteralType @@ -893,7 +933,7 @@


                            @@ -923,7 +963,23 @@


                            - [View source] + [View source] + +
                            + + +
                            +
                            + + def lexeme=(lexeme : String) + + # +
                            + +
                            +
                            + + [View source]
                            @@ -939,7 +995,7 @@


                            @@ -968,7 +1024,7 @@


                            @@ -984,7 +1040,23 @@


                            - [View source] + [View source] + +
                            + + +
                            +
                            + + def type=(type : Syntax) + + # +
                            + +
                            +
                            + + [View source]
                            @@ -1000,7 +1072,7 @@


                            diff --git a/docs/Cosmo/Type.html b/docs/Cosmo/Type.html index 2b4256c2..c8dc4e93 100644 --- a/docs/Cosmo/Type.html +++ b/docs/Cosmo/Type.html @@ -136,6 +136,11 @@

                          • +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -763,7 +793,7 @@

                            - + cosmo/runtime/type.cr @@ -868,7 +898,7 @@


                            @@ -898,7 +928,7 @@


                            @@ -927,7 +957,7 @@


                            diff --git a/docs/Cosmo/TypeChecker.html b/docs/Cosmo/TypeChecker.html index f8067b2f..dc32ffb6 100644 --- a/docs/Cosmo/TypeChecker.html +++ b/docs/Cosmo/TypeChecker.html @@ -136,6 +136,11 @@

                          • +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -775,7 +805,7 @@

                            - + cosmo/runtime/typechecker.cr @@ -807,7 +837,7 @@

                            - TYPE_MAP = {Int128 => "bigint", Int64 => "int", Int32 => "int", Int16 => "int", Int8 => "int", Float64 => "float", Float32 => "float", String => "string", Char => "char", Bool => "bool", Nil => "none", Class => "class", Function => "func", PutsIntrinsic => "func", Array(Int64) => "int[]", Array(Int32) => "int[]", Array(Int16) => "int[]", Array(Int8) => "int[]", Array(Float64) => "float[]", Array(Float32) => "float[]", Array(String) => "string[]", Array(Char) => "char[]", Array(Bool) => "bool[]", Array(Function) => "fn[]", Array(ValueType) => "any[]", Array => "any[]", Hash => "Table", Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) => "Range"} + TYPE_MAP = {Int128 => "bigint", Int64 => "int", Int32 => "int", Int16 => "int", Int8 => "int", Float64 => "float", Float32 => "float", String => "string", Char => "char", Bool => "bool", Nil => "none", Class => "class", Function => "func", PutsIntrinsic => "func", Array(Int64) => "int[]", Array(Int32) => "int[]", Array(Int16) => "int[]", Array(Int8) => "int[]", Array(Float64) => "float[]", Array(Float32) => "float[]", Array(String) => "string[]", Array(Char) => "char[]", Array(Bool) => "bool[]", Array(Function) => "fn[]", Array(ValueType) => "any[]", Array => "any[]", Hash(ValueType, ValueType) => "Table", Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) => "Range"}
                            @@ -924,7 +954,7 @@


                            @@ -940,7 +970,7 @@


                            @@ -956,7 +986,7 @@


                            @@ -972,7 +1002,7 @@


                            @@ -988,7 +1018,7 @@


                            @@ -1004,7 +1034,7 @@


                            @@ -1020,7 +1050,7 @@


                            @@ -1036,7 +1066,7 @@


                            @@ -1052,7 +1082,7 @@


                            @@ -1068,7 +1098,7 @@


                            @@ -1084,7 +1114,7 @@


                            @@ -1100,7 +1130,7 @@


                            diff --git a/docs/Cosmo/ValueType.html b/docs/Cosmo/ValueType.html index 87e69e23..de04ce20 100644 --- a/docs/Cosmo/ValueType.html +++ b/docs/Cosmo/ValueType.html @@ -136,6 +136,11 @@

                          • +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -748,7 +778,7 @@

                            Alias Definition

                            - Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil + Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil @@ -771,7 +801,7 @@

                            - + cosmo/runtime/typechecker.cr diff --git a/docs/FnType.html b/docs/FnType.html index c721f454..9805d98f 100644 --- a/docs/FnType.html +++ b/docs/FnType.html @@ -136,6 +136,11 @@

                          • +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -761,7 +791,7 @@

                            - + cosmo/runtime/resolver.cr @@ -895,7 +925,7 @@


                            @@ -911,7 +941,7 @@


                            diff --git a/docs/LiteralType.html b/docs/LiteralType.html index d2fcd339..18f4720b 100644 --- a/docs/LiteralType.html +++ b/docs/LiteralType.html @@ -136,6 +136,11 @@

                          • +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -771,7 +801,7 @@

                            - + cosmo/syntax/lexer.cr diff --git a/docs/Stringify.html b/docs/Stringify.html new file mode 100644 index 00000000..4d276db7 --- /dev/null +++ b/docs/Stringify.html @@ -0,0 +1,885 @@ + + + + + + + + + + + + + + + + Stringify - Cosmo master + + + + + + + + +
                            +

                            + + module Stringify + +

                            + + + + + + + + + + + +

                            + + + + Extended Modules +

                            + + + + + + + + + +

                            + + + + Defined in: +

                            + + + + util.cr + + +
                            + + + + + + + + + + +

                            + + + + Instance Method Summary +

                            + + + + + + +
                            + +
                            + + + + + + +

                            + + + + Instance Method Detail +

                            + +
                            +
                            + + def hashmap(hash : Hash, base_indent : Int = 0) : String + + # +
                            + +
                            +
                            + + [View source] + +
                            +
                            + + + + + +
                            + + + diff --git a/docs/index.html b/docs/index.html index 36297f80..d5cb7b44 100644 --- a/docs/index.html +++ b/docs/index.html @@ -136,6 +136,11 @@

                          • +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -745,10 +775,16 @@

                          • Enums
                          • Throw when defining an already-defined class
                          • uint type
                          • +
                          • String interpolation literals
                          • Allow "!" character identifiers for macros
                          • Stack trace
                          • Package manager
                          • -
                          • Performance boosts lol
                          • +
                          • Performance boosts lol +
                              +
                            • Parser
                            • +
                            • Interpreter (!!)
                            • +
                            +
                          • Multiple assignment
                          • Somehow typecheck blocks before execution
                          • Fix weird expression parsing ([0].123 evaluates to 0.123??)
                          • @@ -758,15 +794,12 @@

                            • single inheritance
                            • mixins
                            • -
                            • methods
                            • -
                            • $ (this)

                          • Better type system
                            • generics
                            • casting
                            • -
                            • typeof
                            • intersections
                          • diff --git a/docs/index.json b/docs/index.json index 61a64aaa..bcb7e3ae 100644 --- a/docs/index.json +++ b/docs/index.json @@ -1 +1 @@ -{"repository_name":"Cosmo","body":"![build](https://github.com/R-unic/cosmo/actions/workflows/crystal.yml/badge.svg)\n# Cosmo\n\nCosmo is a statically-typed programming language written in pure Crystal.
                            \nWe have an [extension for VS code](https://marketplace.visualstudio.com/items?itemName=cosmo.vscode-cosmo) ([source](https://github.com/R-unic/vscode-cosmo)), however it currently only features syntax highlighting.\n\n## Things I Gotta Do\n\n- Enums\n- Throw when defining an already-defined class\n- `uint` type\n- Allow \"!\" character identifiers for macros\n- Stack trace\n- Package manager\n- Performance boosts lol\n- Multiple assignment\n- Somehow typecheck blocks before execution\n- Fix weird expression parsing (`[0].123` evaluates to 0.123??)\n- Literal wrapper classes (vector, table) for utility methods (filter, map, etc)\n- Interfaces\n- Classes\n * single inheritance\n * mixins\n * methods\n * `$` (this)\n- Better type system\n * generics\n * casting\n * `typeof`\n * intersections\n\n## Things I Might Do\n\n- Make declarations immutable by default and replace `const` with `mut`\n- Make into a VM or compiler\n- C bindings\n\n## Installation\n\n1. Install [Crystal](https://crystal-lang.org/install/).\n2. Run `sudo make install`.\n3. Assert everything is working by running `cosmo -h`\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Test your code (`make test`)\n5. Push to the branch (`make publish`)\n6. Create a new Pull Request\n\n## Contributors\n\n- [R-unic](https://github.com/R-unic) - creator and maintainer\n","program":{"html_id":"Cosmo/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"ancestors":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"locations":[],"repository_name":"Cosmo","program":true,"enum":false,"alias":false,"const":false,"constants":[{"id":"MAX_INTRINSIC_PARAMS","name":"MAX_INTRINSIC_PARAMS","value":"255"},{"id":"TAB","name":"TAB","value":"\" \""}],"included_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"extended_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"class_methods":[{"html_id":"get_elapsed(start:Time::Span,finish:Time::Span):String-class-method","name":"get_elapsed","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Time::Span"},{"name":"finish","external_name":"finish","restriction":"Time::Span"}],"args_string":"(start : Time::Span, finish : Time::Span) : String","args_html":"(start : Time::Span, finish : Time::Span) : String","location":{"filename":"src/util.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/util.cr#L4"},"def":{"name":"get_elapsed","args":[{"name":"start","external_name":"start","restriction":"Time::Span"},{"name":"finish","external_name":"finish","restriction":"Time::Span"}],"return_type":"String","visibility":"Public","body":"span = finish - start\nms = span.total_milliseconds.round(5)\nif ms > 1000\n return \"#{(ms / 1000).round(2)} seconds\"\nend\n\"#{ms}ms\"\n"}},{"html_id":"get_shard:YAML::Any-class-method","name":"get_shard","doc":"Returns `shard.yml` as a `YAML::Any`","summary":"

                            Returns shard.yml as a YAML::Any

                            ","abstract":false,"location":{"filename":"src/util.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/util.cr#L12"},"def":{"name":"get_shard","return_type":"YAML::Any","visibility":"Public","body":"raw_yaml = File.read(File.join(File.dirname(\"/home/runic/Dev/crystal/cosmo/src/util.cr\"), \"..\", \"shard.yml\"))\nYAML.parse(raw_yaml)\n"}}],"types":[{"html_id":"Cosmo/Cosmo","path":"Cosmo.html","kind":"module","full_name":"Cosmo","name":"Cosmo","abstract":false,"locations":[{"filename":"src/cosmo.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo.cr#L7"},{"filename":"src/cosmo/logger.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L1"},{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L3"},{"filename":"src/cosmo/runtime/typechecker.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L6"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Version","name":"Version","value":"\"v\" + get_shard[\"version\"].to_s"}],"extended_modules":[{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"}],"instance_methods":[{"html_id":"read_file(path:String)-instance-method","name":"read_file","doc":"Reads a file at `path` and returns it's contents","summary":"

                            Reads a file at path and returns it's contents

                            ","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cosmo.cr","line_number":48,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo.cr#L48"},"def":{"name":"read_file","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"begin\n contents = File.read(path)\n read_source(contents, file_path: path)\nrescue ex : Exception\n abort(\"Failed to read file \\\"#{path}\\\": \\n#{ex.message}\\n\\t#{ex.backtrace.join(\"\\n\\t\")}\", 1)\nend"}},{"html_id":"read_source(source:String,file_path:String):ValueType-instance-method","name":"read_source","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(source : String, file_path : String) : ValueType","args_html":"(source : String, file_path : String) :
                            ValueType","location":{"filename":"src/cosmo.cr","line_number":43,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo.cr#L43"},"def":{"name":"read_source","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@@interpreter.interpret(source, file_path)"}},{"html_id":"run_repl-instance-method","name":"run_repl","doc":"Starts the REPL","summary":"

                            Starts the REPL

                            ","abstract":false,"location":{"filename":"src/cosmo.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo.cr#L77"},"def":{"name":"run_repl","visibility":"Public","body":"puts(\"Welcome to the #{rainbow(\"Cosmo\")} REPL\")\nloop do\n line = read_line\n if line.nil?\n break\n end\n puts((read_source(line, file_path: \"repl\")).to_s)\nend\n"}}],"types":[{"html_id":"Cosmo/Cosmo/AST","path":"Cosmo/AST.html","kind":"module","full_name":"Cosmo::AST","name":"AST","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L3"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/AST/Expression","path":"Cosmo/AST/Expression.html","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression","abstract":false,"ancestors":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"types":[{"html_id":"Cosmo/Cosmo/AST/Expression/Access","path":"Cosmo/AST/Expression/Access.html","kind":"class","full_name":"Cosmo::AST::Expression::Access","name":"Access","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L76"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,key:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::Token"}],"args_string":"(object : Cosmo::AST::Expression::Base, key : Cosmo::Token)","args_html":"(object : Cosmo::AST::Expression::Base, key : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":80,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L80"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, key)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":83,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L83"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_access_expr(self)"}},{"html_id":"key:Token-instance-method","name":"key","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":78,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L78"},"def":{"name":"key","return_type":"Token","visibility":"Public","body":"@key"}},{"html_id":"object:Base-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L77"},"def":{"name":"object","return_type":"Base","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":91,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L91"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Access<\\n\" + \" #{TAB * indent}object: #{@object.to_s(indent + 1)},\\n\") + \" #{TAB * indent}key: #{@key.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":87,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L87"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","path":"Cosmo/AST/Expression/Base.html","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L21"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/Access","kind":"class","full_name":"Cosmo::AST::Expression::Access","name":"Access"},{"html_id":"Cosmo/Cosmo/AST/Expression/BinaryOp","kind":"class","full_name":"Cosmo::AST::Expression::BinaryOp","name":"BinaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/CompoundAssignment","kind":"class","full_name":"Cosmo::AST::Expression::CompoundAssignment","name":"CompoundAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/FunctionCall","kind":"class","full_name":"Cosmo::AST::Expression::FunctionCall","name":"FunctionCall"},{"html_id":"Cosmo/Cosmo/AST/Expression/Index","kind":"class","full_name":"Cosmo::AST::Expression::Index","name":"Index"},{"html_id":"Cosmo/Cosmo/AST/Expression/Is","kind":"class","full_name":"Cosmo::AST::Expression::Is","name":"Is"},{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Parameter","kind":"class","full_name":"Cosmo::AST::Expression::Parameter","name":"Parameter"},{"html_id":"Cosmo/Cosmo/AST/Expression/PropertyAssignment","kind":"class","full_name":"Cosmo::AST::Expression::PropertyAssignment","name":"PropertyAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/RangeLiteral","kind":"class","full_name":"Cosmo::AST::Expression::RangeLiteral","name":"RangeLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/TableLiteral","kind":"class","full_name":"Cosmo::AST::Expression::TableLiteral","name":"TableLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/TernaryOp","kind":"class","full_name":"Cosmo::AST::Expression::TernaryOp","name":"TernaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeAlias","kind":"class","full_name":"Cosmo::AST::Expression::TypeAlias","name":"TypeAlias"},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeRef","kind":"class","full_name":"Cosmo::AST::Expression::TypeRef","name":"TypeRef"},{"html_id":"Cosmo/Cosmo/AST/Expression/UnaryOp","kind":"class","full_name":"Cosmo::AST::Expression::UnaryOp","name":"UnaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/Var","kind":"class","full_name":"Cosmo::AST::Expression::Var","name":"Var"},{"html_id":"Cosmo/Cosmo/AST/Expression/VarAssignment","kind":"class","full_name":"Cosmo::AST::Expression::VarAssignment","name":"VarAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/VarDeclaration","kind":"class","full_name":"Cosmo::AST::Expression::VarDeclaration","name":"VarDeclaration"},{"html_id":"Cosmo/Cosmo/AST/Expression/VectorLiteral","kind":"class","full_name":"Cosmo::AST::Expression::VectorLiteral","name":"VectorLiteral"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"instance_methods":[{"html_id":"accept(visitor:Visitor(R))forallR-instance-method","name":"accept","abstract":true,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) forall R","args_html":"(visitor : Visitor(R)) forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L22"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BigIntLiteral","path":"Cosmo/AST/Expression/BigIntLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::BigIntLiteral","name":"BigIntLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":467,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L467"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Int128,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int128"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Int128, token)","args_html":"(value : Int128, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":468,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L468"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Int128"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":469,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L469"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BinaryOp","path":"Cosmo/AST/Expression/BinaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::BinaryOp","name":"BinaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":331,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L331"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(left:Cosmo::AST::Expression::Base,operator:Cosmo::Token,right:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"right","external_name":"right","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(left : Cosmo::AST::Expression::Base, operator : Cosmo::Token, right : Cosmo::AST::Expression::Base)","args_html":"(left : Cosmo::AST::Expression::Base, operator : Cosmo::Token, right : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L336"},"def":{"name":"new","args":[{"name":"left","external_name":"left","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"right","external_name":"right","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(left, operator, right)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":339,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L339"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_binary_op_expr(self)"}},{"html_id":"left:Base-instance-method","name":"left","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":332,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L332"},"def":{"name":"left","return_type":"Base","visibility":"Public","body":"@left"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":333,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L333"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"right:Base-instance-method","name":"right","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L334"},"def":{"name":"right","return_type":"Base","visibility":"Public","body":"@right"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":347,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L347"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Binary<\\n\" + \" #{TAB * indent}left: #{@left.to_s(indent + 1)},\\n\") + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}right: #{@right.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":343,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L343"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@left.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BooleanLiteral","path":"Cosmo/AST/Expression/BooleanLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::BooleanLiteral","name":"BooleanLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":488,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L488"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Bool,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Bool, token)","args_html":"(value : Bool, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":489,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L489"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Bool"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":490,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L490"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/CharLiteral","path":"Cosmo/AST/Expression/CharLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::CharLiteral","name":"CharLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":460,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L460"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Char,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Char"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Char, token)","args_html":"(value : Char, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":461,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L461"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Char"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":462,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L462"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<'#{@value}'>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/CompoundAssignment","path":"Cosmo/AST/Expression/CompoundAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::CompoundAssignment","name":"CompoundAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":239,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L239"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(name:Cosmo::Token,operator:Cosmo::Token,value:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(name : Cosmo::Token, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)","args_html":"(name : Cosmo::Token, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":244,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L244"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, operator, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":247,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L247"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_compound_assignment_expr(self)"}},{"html_id":"name:Token-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":240,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L240"},"def":{"name":"name","return_type":"Token","visibility":"Public","body":"@name"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":241,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L241"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":255,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L255"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"CompoundAssignment<\\n\"\n\" #{TAB * indent}name: #{@name.value},\\n\"\n\" #{TAB * indent}operator: #{@operator.to_s},\\n\"\n\" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\"\n\"#{TAB * indent}>\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":251,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L251"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@name"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":242,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L242"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/FloatLiteral","path":"Cosmo/AST/Expression/FloatLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::FloatLiteral","name":"FloatLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":481,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L481"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Float64|Float32|Float16|Float8,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Float32 | Float16 | Float8"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Float64 | Float32 | Float16 | Float8, token)","args_html":"(value : Float64 | Float32 | Float16 | Float8, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":482,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L482"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Float64 | Float32 | Float16 | Float8"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":483,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L483"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/FunctionCall","path":"Cosmo/AST/Expression/FunctionCall.html","kind":"class","full_name":"Cosmo::AST::Expression::FunctionCall","name":"FunctionCall","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":189,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L189"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(callee:Cosmo::AST::Expression::Base,arguments:Array(Cosmo::AST::Expression::Base))-class-method","name":"new","abstract":false,"args":[{"name":"callee","external_name":"callee","restriction":"::Cosmo::AST::Expression::Base"},{"name":"arguments","external_name":"arguments","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"args_string":"(callee : Cosmo::AST::Expression::Base, arguments : Array(Cosmo::AST::Expression::Base))","args_html":"(callee : Cosmo::AST::Expression::Base, arguments : Array(Cosmo::AST::Expression::Base))","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":193,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L193"},"def":{"name":"new","args":[{"name":"callee","external_name":"callee","restriction":"::Cosmo::AST::Expression::Base"},{"name":"arguments","external_name":"arguments","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(callee, arguments)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L196"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_fn_call_expr(self)"}},{"html_id":"arguments:Array(Base)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L191"},"def":{"name":"arguments","return_type":"Array(Base)","visibility":"Public","body":"@arguments"}},{"html_id":"callee:Base-instance-method","name":"callee","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":190,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L190"},"def":{"name":"callee","return_type":"Base","visibility":"Public","body":"@callee"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":204,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L204"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((((\"FunctionCall<\\n\" + \" #{TAB * indent}var: #{@callee.to_s(indent + 1)},\\n\") + \" #{TAB * indent}arguments: [\\n\") + \" #{TAB * indent}#{@arguments.map(&.to_s(indent + 2)).join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}]\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":200,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L200"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@callee.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Index","path":"Cosmo/AST/Expression/Index.html","kind":"class","full_name":"Cosmo::AST::Expression::Index","name":"Index","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L99"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,key:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(object : Cosmo::AST::Expression::Base, key : Cosmo::AST::Expression::Base)","args_html":"(object : Cosmo::AST::Expression::Base, key : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L103"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, key)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":106,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L106"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_index_expr(self)"}},{"html_id":"key:Base-instance-method","name":"key","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L101"},"def":{"name":"key","return_type":"Base","visibility":"Public","body":"@key"}},{"html_id":"object:Base-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":100,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L100"},"def":{"name":"object","return_type":"Base","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":114,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L114"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Index<\\n\" + \" #{TAB * indent}object: #{@object.to_s(indent + 1)},\\n\") + \" #{TAB * indent}key: #{@key.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":110,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L110"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/IntLiteral","path":"Cosmo/AST/Expression/IntLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::IntLiteral","name":"IntLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":474,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L474"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Int64|Int32|Int16|Int8,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int64 | Int32 | Int16 | Int8"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Int64 | Int32 | Int16 | Int8, token)","args_html":"(value : Int64 | Int32 | Int16 | Int8, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":475,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L475"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Int64 | Int32 | Int16 | Int8"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":476,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L476"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Is","path":"Cosmo/AST/Expression/Is.html","kind":"class","full_name":"Cosmo::AST::Expression::Is","name":"Is","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":122,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L122"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Cosmo::AST::Expression::Base,type:Cosmo::AST::Expression::TypeRef)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"type","external_name":"type","restriction":"::Cosmo::AST::Expression::TypeRef"}],"args_string":"(value : Cosmo::AST::Expression::Base, type : Cosmo::AST::Expression::TypeRef)","args_html":"(value : Cosmo::AST::Expression::Base, type : Cosmo::AST::Expression::TypeRef)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":126,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L126"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"type","external_name":"type","restriction":"::Cosmo::AST::Expression::TypeRef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":129,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L129"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_is_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":137,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L137"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Is<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)},\\n\") + \" #{TAB * indent}type: #{@type.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":133,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L133"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@value.token"}},{"html_id":"type:TypeRef-instance-method","name":"type","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":124,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L124"},"def":{"name":"type","return_type":"TypeRef","visibility":"Public","body":"@type"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L123"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","path":"Cosmo/AST/Expression/Literal.html","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":379,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L379"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/BigIntLiteral","kind":"class","full_name":"Cosmo::AST::Expression::BigIntLiteral","name":"BigIntLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/BooleanLiteral","kind":"class","full_name":"Cosmo::AST::Expression::BooleanLiteral","name":"BooleanLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/CharLiteral","kind":"class","full_name":"Cosmo::AST::Expression::CharLiteral","name":"CharLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/FloatLiteral","kind":"class","full_name":"Cosmo::AST::Expression::FloatLiteral","name":"FloatLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/IntLiteral","kind":"class","full_name":"Cosmo::AST::Expression::IntLiteral","name":"IntLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/NoneLiteral","kind":"class","full_name":"Cosmo::AST::Expression::NoneLiteral","name":"NoneLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/StringLiteral","kind":"class","full_name":"Cosmo::AST::Expression::StringLiteral","name":"StringLiteral"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Bool|Char|Float32|Float64|Int128|Int16|Int32|Int64|Int8|String|Nil,token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, token : Cosmo::Token)","args_html":"(value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":383,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L383"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":385,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L385"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_literal_expr(self)"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":380,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L380"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}},{"html_id":"value:LiteralType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":381,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L381"},"def":{"name":"value","return_type":"LiteralType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/NoneLiteral","path":"Cosmo/AST/Expression/NoneLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::NoneLiteral","name":"NoneLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":495,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L495"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Nil,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Nil"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Nil, token)","args_html":"(value : Nil, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":496,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L496"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Nil"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":497,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L497"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Parameter","path":"Cosmo/AST/Expression/Parameter.html","kind":"class","full_name":"Cosmo::AST::Expression::Parameter","name":"Parameter","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":214,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L214"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(typedef:Cosmo::Token,identifier:Cosmo::Token,const:Bool,default_value:Cosmo::AST::Expression::Base|Nil=NoneLiteral.new(nil,identifier))-class-method","name":"new","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"const","external_name":"const","restriction":"::Bool"},{"name":"default_value","default_value":"NoneLiteral.new(nil, identifier)","external_name":"default_value","restriction":"::Cosmo::AST::Expression::Base | ::Nil"}],"args_string":"(typedef : Cosmo::Token, identifier : Cosmo::Token, const : Bool, default_value : Cosmo::AST::Expression::Base | Nil = NoneLiteral.new(nil, identifier))","args_html":"(typedef : Cosmo::Token, identifier : Cosmo::Token, const : Bool, default_value : Cosmo::AST::Expression::Base | Nil = NoneLiteral.new(nil, identifier))","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":220,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L220"},"def":{"name":"new","args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"const","external_name":"const","restriction":"::Bool"},{"name":"default_value","default_value":"NoneLiteral.new(nil, identifier)","external_name":"default_value","restriction":"::Cosmo::AST::Expression::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(typedef, identifier, const, default_value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":223,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L223"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"const?:Bool-instance-method","name":"const?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L217"},"def":{"name":"const?","return_type":"Bool","visibility":"Public","body":"@const"}},{"html_id":"default_value:Base|Nil-instance-method","name":"default_value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":218,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L218"},"def":{"name":"default_value","return_type":"Base | ::Nil","visibility":"Public","body":"@default_value"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L216"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L230"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Parameter<\\n\" + \" #{TAB * indent}typedef: #{@typedef.value},\\n\") + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}value: #{@default_value.nil? ? \"none\" : @default_value.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":226,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L226"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"typedef:Token-instance-method","name":"typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":215,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L215"},"def":{"name":"typedef","return_type":"Token","visibility":"Public","body":"@typedef"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/PropertyAssignment","path":"Cosmo/AST/Expression/PropertyAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::PropertyAssignment","name":"PropertyAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L51"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,value:Array(Cosmo::ValueType)|Bool|Char|Cosmo::AST::Expression::Base|Cosmo::Callable|Cosmo::Class|Cosmo::Type|Float32|Float64|Hash(Cosmo::ValueType,Cosmo::ValueType)|Int128|Int16|Int32|Int64|Int8|Range(Int128|Int16|Int32|Int64|Int8,Int128|Int16|Int32|Int64|Int8)|String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"value","external_name":"value","restriction":"::Array(::Cosmo::ValueType) | ::Bool | ::Char | ::Cosmo::AST::Expression::Base | ::Cosmo::Callable | ::Cosmo::Class | ::Cosmo::Type | ::Float32 | ::Float64 | ::Hash(::Cosmo::ValueType, ::Cosmo::ValueType) | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::Range(::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8, ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8) | ::String | ::Nil"}],"args_string":"(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","args_html":"(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":55,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L55"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"value","external_name":"value","restriction":"::Array(::Cosmo::ValueType) | ::Bool | ::Char | ::Cosmo::AST::Expression::Base | ::Cosmo::Callable | ::Cosmo::Class | ::Cosmo::Type | ::Float32 | ::Float64 | ::Hash(::Cosmo::ValueType, ::Cosmo::ValueType) | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::Range(::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8, ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8) | ::String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":58,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L58"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_property_assignment_expr(self)"}},{"html_id":"object:Access|Index-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L52"},"def":{"name":"object","return_type":"Access | Index","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":66,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L66"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"if value.is_a?(Base)\n value_s = (@value.as(Base)).to_s(indent + 1)\nelse\n value_s = @value.to_s\nend\n\"PropertyAssignment\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":62,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L62"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}},{"html_id":"value:Base|ValueType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L53"},"def":{"name":"value","return_type":"Base | ValueType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/RangeLiteral","path":"Cosmo/AST/Expression/RangeLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::RangeLiteral","name":"RangeLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":390,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L390"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(from:Cosmo::AST::Expression::Base,to:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"::Cosmo::AST::Expression::Base"},{"name":"to","external_name":"to","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(from : Cosmo::AST::Expression::Base, to : Cosmo::AST::Expression::Base)","args_html":"(from : Cosmo::AST::Expression::Base, to : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":394,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L394"},"def":{"name":"new","args":[{"name":"from","external_name":"from","restriction":"::Cosmo::AST::Expression::Base"},{"name":"to","external_name":"to","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(from, to)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":397,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L397"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_range_literal_expr(self)"}},{"html_id":"from:Base-instance-method","name":"from","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":391,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L391"},"def":{"name":"from","return_type":"Base","visibility":"Public","body":"@from"}},{"html_id":"to:Base-instance-method","name":"to","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":392,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L392"},"def":{"name":"to","return_type":"Base","visibility":"Public","body":"@to"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":405,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L405"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"RangeLiteral<\\n\" + \" #{TAB * indent}from: #{@from.to_s(indent + 1)},\\n\") + \" #{TAB * indent}to: #{@to.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":401,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L401"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@from.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/StringLiteral","path":"Cosmo/AST/Expression/StringLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::StringLiteral","name":"StringLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":453,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L453"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:String,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : String, token)","args_html":"(value : String, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":454,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L454"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":455,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L455"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<\\\"#{@value}\\\">\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TableLiteral","path":"Cosmo/AST/Expression/TableLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::TableLiteral","name":"TableLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":413,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L413"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(hashmap:Hash(Cosmo::AST::Expression::Base,Cosmo::AST::Expression::Base),token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"hashmap","external_name":"hashmap","restriction":"::Hash(::Cosmo::AST::Expression::Base, ::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(hashmap : Hash(Cosmo::AST::Expression::Base, Cosmo::AST::Expression::Base), token : Cosmo::Token)","args_html":"(hashmap : Hash(Cosmo::AST::Expression::Base, Cosmo::AST::Expression::Base), token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":417,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L417"},"def":{"name":"new","args":[{"name":"hashmap","external_name":"hashmap","restriction":"::Hash(::Cosmo::AST::Expression::Base, ::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(hashmap, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":419,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L419"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_table_literal_expr(self)"}},{"html_id":"hashmap:Hash(Base,Base)-instance-method","name":"hashmap","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":415,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L415"},"def":{"name":"hashmap","return_type":"Hash(Base, Base)","visibility":"Public","body":"@hashmap"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":423,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L423"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"s = \"Literal<{\\n\"\n@hashmap.keys.each do |k|\n s = s + (TAB * (indent + 1))\n s = s + (k.to_s(indent + 1))\n s = s + \" -> \"\n s = s + (@hashmap[k].to_s(indent + 1))\n s = s + \"\\n\"\nend\ns + \"#{TAB * indent}}>\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":414,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L414"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TernaryOp","path":"Cosmo/AST/Expression/TernaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::TernaryOp","name":"TernaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L25"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(condition:Cosmo::AST::Expression::Base,operator:Cosmo::Token,then:Cosmo::AST::Expression::Base,else:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Expression::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(condition : Cosmo::AST::Expression::Base, operator : Cosmo::Token, then : Cosmo::AST::Expression::Base, else : Cosmo::AST::Expression::Base)","args_html":"(condition : Cosmo::AST::Expression::Base, operator : Cosmo::Token, then : Cosmo::AST::Expression::Base, else : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L31"},"def":{"name":"new","args":[{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Expression::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(condition, operator, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L34"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_ternary_op_expr(self)"}},{"html_id":"condition:Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L26"},"def":{"name":"condition","return_type":"Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L29"},"def":{"name":"else","return_type":"Base","visibility":"Public","body":"@else"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L27"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L28"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":42,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L42"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Ternary<\\n\" + \" #{TAB * indent}left: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)}\\n\") + \" #{TAB * indent}else: #{@else.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":38,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L38"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeAlias","path":"Cosmo/AST/Expression/TypeAlias.html","kind":"class","full_name":"Cosmo::AST::Expression::TypeAlias","name":"TypeAlias","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":164,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L164"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(type_token:Cosmo::Token,var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base,constant:Bool,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"type_token","external_name":"type_token","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(type_token : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","args_html":"(type_token : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":171,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L171"},"def":{"name":"new","args":[{"name":"type_token","external_name":"type_token","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(type_token, var, value, constant, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":174,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L174"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_type_alias_expr(self)"}},{"html_id":"constant?:Bool-instance-method","name":"constant?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":168,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L168"},"def":{"name":"constant?","return_type":"Bool","visibility":"Public","body":"@constant"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":182,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L182"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"TypeAlias<\\n\" + \" #{TAB * indent}#{@var.token.value.to_s}: #{@value.nil? ? \"none\" : @value.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L178"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"type_token:Token-instance-method","name":"type_token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L165"},"def":{"name":"type_token","return_type":"Token","visibility":"Public","body":"@type_token"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L167"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":166,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L166"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":169,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L169"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeRef","path":"Cosmo/AST/Expression/TypeRef.html","kind":"class","full_name":"Cosmo::AST::Expression::TypeRef","name":"TypeRef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L145"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(name:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"}],"args_string":"(name : Cosmo::Token)","args_html":"(name : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":148,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L148"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":151,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L151"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_type_ref_expr(self)"}},{"html_id":"name:Token-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":146,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L146"},"def":{"name":"name","return_type":"Token","visibility":"Public","body":"@name"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":159,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L159"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"TypeRef<\\\"#{@name.value.to_s}\\\">\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":155,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L155"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@name"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/UnaryOp","path":"Cosmo/AST/Expression/UnaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::UnaryOp","name":"UnaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":356,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L356"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(operator:Cosmo::Token,operand:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(operator : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","args_html":"(operator : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":360,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L360"},"def":{"name":"new","args":[{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(operator, operand)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":363,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L363"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_unary_op_expr(self)"}},{"html_id":"operand:Base-instance-method","name":"operand","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":358,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L358"},"def":{"name":"operand","return_type":"Base","visibility":"Public","body":"@operand"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":357,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L357"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":371,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L371"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Unary<\\n\" + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}operand: #{@operand.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":367,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L367"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Var","path":"Cosmo/AST/Expression/Var.html","kind":"class","full_name":"Cosmo::AST::Expression::Var","name":"Var","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":316,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L316"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(token : Cosmo::Token)","args_html":"(token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":319,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L319"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":322,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L322"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":326,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L326"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Var<\\\"#{@token.value.to_s}\\\">\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":317,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L317"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VarAssignment","path":"Cosmo/AST/Expression/VarAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::VarAssignment","name":"VarAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":293,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L293"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base)","args_html":"(var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":297,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L297"},"def":{"name":"new","args":[{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(var, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":300,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L300"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_assignment_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":308,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L308"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"VarAssignment<\\n\" + \" #{TAB * indent}var: #{@var.token.value.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":304,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L304"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":295,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L295"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":294,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L294"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VarDeclaration","path":"Cosmo/AST/Expression/VarDeclaration.html","kind":"class","full_name":"Cosmo::AST::Expression::VarDeclaration","name":"VarDeclaration","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":264,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L264"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(typedef:Cosmo::Token,var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base,constant:Bool,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(typedef : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","args_html":"(typedef : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":271,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L271"},"def":{"name":"new","args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(typedef, var, value, constant, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L274"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_declaration_expr(self)"}},{"html_id":"constant?:Bool-instance-method","name":"constant?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":268,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L268"},"def":{"name":"constant?","return_type":"Bool","visibility":"Public","body":"@constant"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":282,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L282"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((\"VarDeclaration<\\n\" + \" #{TAB * indent}typedef: #{@typedef.value},\\n\") + \" #{TAB * indent}var: #{@var.token.value.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \" #{TAB * indent}constant?: #{@constant}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":278,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L278"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"typedef:Token-instance-method","name":"typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":265,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L265"},"def":{"name":"typedef","return_type":"Token","visibility":"Public","body":"@typedef"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":267,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L267"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":266,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L266"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":269,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L269"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VectorLiteral","path":"Cosmo/AST/Expression/VectorLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::VectorLiteral","name":"VectorLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":436,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L436"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(values:Array(Cosmo::AST::Expression::Base),token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"values","external_name":"values","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(values : Array(Cosmo::AST::Expression::Base), token : Cosmo::Token)","args_html":"(values : Array(Cosmo::AST::Expression::Base), token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":440,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L440"},"def":{"name":"new","args":[{"name":"values","external_name":"values","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(values, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":442,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L442"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_vector_literal_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":446,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L446"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Literal<[\\n\" + \" #{TAB * indent}#{@values.map(&.to_s(indent + 2)).join(\",\\n#{TAB * (indent + 1)}\")}\\n\") + \"#{TAB * indent}]>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":437,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L437"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}},{"html_id":"values:Array(Base)-instance-method","name":"values","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":438,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L438"},"def":{"name":"values","return_type":"Array(Base)","visibility":"Public","body":"@values"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","path":"Cosmo/AST/Expression/Visitor.html","kind":"module","full_name":"Cosmo::AST::Expression::Visitor(R)","name":"Visitor","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/Interpreter","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter"},{"html_id":"Cosmo/Cosmo/Resolver","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"instance_methods":[{"html_id":"visit_binary_op_expr(expr:BinaryOp):R-instance-method","name":"visit_binary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"BinaryOp"}],"args_string":"(expr : BinaryOp) : R","args_html":"(expr : BinaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L13"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"BinaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_fn_call_expr(expr:FunctionCall):R-instance-method","name":"visit_fn_call_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"FunctionCall"}],"args_string":"(expr : FunctionCall) : R","args_html":"(expr : FunctionCall) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L8"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"FunctionCall"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_is_expr(expr:Is):R-instance-method","name":"visit_is_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Is"}],"args_string":"(expr : Is) : R","args_html":"(expr : Is) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L5"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Is"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_literal_expr(expr:Literal):R-instance-method","name":"visit_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Literal"}],"args_string":"(expr : Literal) : R","args_html":"(expr : Literal) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L15"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Literal"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_range_literal_expr(expr:RangeLiteral):R-instance-method","name":"visit_range_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"RangeLiteral"}],"args_string":"(expr : RangeLiteral) : R","args_html":"(expr : RangeLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L16"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"RangeLiteral"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_table_literal_expr(expr:TableLiteral):R-instance-method","name":"visit_table_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TableLiteral"}],"args_string":"(expr : TableLiteral) : R","args_html":"(expr : TableLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L17"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"TableLiteral"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_ternary_op_expr(expr:TernaryOp):R-instance-method","name":"visit_ternary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TernaryOp"}],"args_string":"(expr : TernaryOp) : R","args_html":"(expr : TernaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L12"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"TernaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_type_alias_expr(expr:TypeAlias):R-instance-method","name":"visit_type_alias_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TypeAlias"}],"args_string":"(expr : TypeAlias) : R","args_html":"(expr : TypeAlias) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L6"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"TypeAlias"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_type_ref_expr(expr:TypeRef):R-instance-method","name":"visit_type_ref_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TypeRef"}],"args_string":"(expr : TypeRef) : R","args_html":"(expr : TypeRef) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L7"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"TypeRef"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_unary_op_expr(expr:UnaryOp):R-instance-method","name":"visit_unary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"UnaryOp"}],"args_string":"(expr : UnaryOp) : R","args_html":"(expr : UnaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L14"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"UnaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_assignment_expr(expr:VarAssignment):R-instance-method","name":"visit_var_assignment_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VarAssignment"}],"args_string":"(expr : VarAssignment) : R","args_html":"(expr : VarAssignment) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L10"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"VarAssignment"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_declaration_expr(expr:VarDeclaration):R-instance-method","name":"visit_var_declaration_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VarDeclaration"}],"args_string":"(expr : VarDeclaration) : R","args_html":"(expr : VarDeclaration) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L9"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"VarDeclaration"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_expr(expr:Var):R-instance-method","name":"visit_var_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Var"}],"args_string":"(expr : Var) : R","args_html":"(expr : Var) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L11"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Var"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_vector_literal_expr(expr:VectorLiteral):R-instance-method","name":"visit_vector_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VectorLiteral"}],"args_string":"(expr : VectorLiteral) : R","args_html":"(expr : VectorLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L18"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"VectorLiteral"}],"return_type":"R","visibility":"Public","body":""}}]}]},{"html_id":"Cosmo/Cosmo/AST/Node","path":"Cosmo/AST/Node.html","kind":"class","full_name":"Cosmo::AST::Node","name":"Node","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L11"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"instance_methods":[{"html_id":"end_location:Location|Nil-instance-method","name":"end_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L13"},"def":{"name":"end_location","return_type":"Location | ::Nil","visibility":"Public","body":"@end_location"}},{"html_id":"end_location=(end_location:Location|Nil)-instance-method","name":"end_location=","abstract":false,"args":[{"name":"end_location","external_name":"end_location","restriction":"Location | ::Nil"}],"args_string":"(end_location : Location | Nil)","args_html":"(end_location : Location | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L13"},"def":{"name":"end_location=","args":[{"name":"end_location","external_name":"end_location","restriction":"Location | ::Nil"}],"visibility":"Public","body":"@end_location = end_location"}},{"html_id":"single_expression:Node-instance-method","name":"single_expression","doc":"It yields itself for any node, but if it's a\n`Statement::ExpressionList`, then it returns the\nfirst node of the `ExpressionList` statement","summary":"

                            It yields itself for any node, but if it's a Statement::ExpressionList, then it returns the first node of the ExpressionList statement

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L21"},"def":{"name":"single_expression","return_type":"Node","visibility":"Public","body":"single_expression? || self"}},{"html_id":"single_expression?:Node|Nil-instance-method","name":"single_expression?","doc":"It yields `nil` always for any regular node.\n(It is overridden by `ExpressionList` to implement `#single_expression`.)","summary":"

                            It yields nil always for any regular node.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L27"},"def":{"name":"single_expression?","return_type":"Node | ::Nil","visibility":"Public","body":"nil"}},{"html_id":"start_location:Location|Nil-instance-method","name":"start_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L12"},"def":{"name":"start_location","return_type":"Location | ::Nil","visibility":"Public","body":"@start_location"}},{"html_id":"start_location=(start_location:Location|Nil)-instance-method","name":"start_location=","abstract":false,"args":[{"name":"start_location","external_name":"start_location","restriction":"Location | ::Nil"}],"args_string":"(start_location : Location | Nil)","args_html":"(start_location : Location | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L12"},"def":{"name":"start_location=","args":[{"name":"start_location","external_name":"start_location","restriction":"Location | ::Nil"}],"visibility":"Public","body":"@start_location = start_location"}},{"html_id":"token:Token-instance-method","name":"token","abstract":true,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L16"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":""}},{"html_id":"visibility:Cosmo::AST::Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L14"},"def":{"name":"visibility","visibility":"Public","body":"@visibility"}},{"html_id":"visibility=(visibility:Cosmo::AST::Visibility)-instance-method","name":"visibility=","abstract":false,"args":[{"name":"visibility","external_name":"visibility","restriction":"::Cosmo::AST::Visibility"}],"args_string":"(visibility : Cosmo::AST::Visibility)","args_html":"(visibility : Cosmo::AST::Visibility)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L14"},"def":{"name":"visibility=","args":[{"name":"visibility","external_name":"visibility","restriction":"::Cosmo::AST::Visibility"}],"visibility":"Public","body":"@visibility = visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement","path":"Cosmo/AST/Statement.html","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"types":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","path":"Cosmo/AST/Statement/Base.html","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L19"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Statement/Block","kind":"class","full_name":"Cosmo::AST::Statement::Block","name":"Block"},{"html_id":"Cosmo/Cosmo/AST/Statement/Break","kind":"class","full_name":"Cosmo::AST::Statement::Break","name":"Break"},{"html_id":"Cosmo/Cosmo/AST/Statement/Case","kind":"class","full_name":"Cosmo::AST::Statement::Case","name":"Case"},{"html_id":"Cosmo/Cosmo/AST/Statement/ClassDef","kind":"class","full_name":"Cosmo::AST::Statement::ClassDef","name":"ClassDef"},{"html_id":"Cosmo/Cosmo/AST/Statement/Every","kind":"class","full_name":"Cosmo::AST::Statement::Every","name":"Every"},{"html_id":"Cosmo/Cosmo/AST/Statement/FunctionDef","kind":"class","full_name":"Cosmo::AST::Statement::FunctionDef","name":"FunctionDef"},{"html_id":"Cosmo/Cosmo/AST/Statement/If","kind":"class","full_name":"Cosmo::AST::Statement::If","name":"If"},{"html_id":"Cosmo/Cosmo/AST/Statement/Next","kind":"class","full_name":"Cosmo::AST::Statement::Next","name":"Next"},{"html_id":"Cosmo/Cosmo/AST/Statement/Return","kind":"class","full_name":"Cosmo::AST::Statement::Return","name":"Return"},{"html_id":"Cosmo/Cosmo/AST/Statement/SingleExpression","kind":"class","full_name":"Cosmo::AST::Statement::SingleExpression","name":"SingleExpression"},{"html_id":"Cosmo/Cosmo/AST/Statement/Throw","kind":"class","full_name":"Cosmo::AST::Statement::Throw","name":"Throw"},{"html_id":"Cosmo/Cosmo/AST/Statement/Unless","kind":"class","full_name":"Cosmo::AST::Statement::Unless","name":"Unless"},{"html_id":"Cosmo/Cosmo/AST/Statement/Until","kind":"class","full_name":"Cosmo::AST::Statement::Until","name":"Until"},{"html_id":"Cosmo/Cosmo/AST/Statement/Use","kind":"class","full_name":"Cosmo::AST::Statement::Use","name":"Use"},{"html_id":"Cosmo/Cosmo/AST/Statement/While","kind":"class","full_name":"Cosmo::AST::Statement::While","name":"While"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"instance_methods":[{"html_id":"accept(visitor:Visitor(R))forallR-instance-method","name":"accept","abstract":true,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) forall R","args_html":"(visitor : Visitor(R)) forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L20"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Block","path":"Cosmo/AST/Statement/Block.html","kind":"class","full_name":"Cosmo::AST::Statement::Block","name":"Block","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":383,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L383"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(nodes:Array(Cosmo::AST::Statement::Base)=[]ofNode)-class-method","name":"new","abstract":false,"args":[{"name":"nodes","default_value":"[] of Node","external_name":"nodes","restriction":"::Array(::Cosmo::AST::Statement::Base)"}],"args_string":"(nodes : Array(Cosmo::AST::Statement::Base) = [] of Node)","args_html":"(nodes : Array(Cosmo::AST::Statement::Base) = [] of Node)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":386,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L386"},"def":{"name":"new","args":[{"name":"nodes","default_value":"[] of Node","external_name":"nodes","restriction":"::Array(::Cosmo::AST::Statement::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(nodes)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](i:UInt):Node-instance-method","name":"[]","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"UInt"}],"args_string":"(i : UInt) : Node","args_html":"(i : UInt) : Node","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":393,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L393"},"def":{"name":"[]","args":[{"name":"i","external_name":"i","restriction":"UInt"}],"return_type":"Node","visibility":"Public","body":"@nodes[i]"}},{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":427,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L427"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_block_stmt(self)"}},{"html_id":"empty?-instance-method","name":"empty?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":389,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L389"},"def":{"name":"empty?","visibility":"Public","body":"@nodes.empty?"}},{"html_id":"end_location:Location-instance-method","name":"end_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":409,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L409"},"def":{"name":"end_location","return_type":"Location","visibility":"Public","body":"@end_location || @nodes.last?.try(&.end_location)"}},{"html_id":"first:Node-instance-method","name":"first","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":397,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L397"},"def":{"name":"first","return_type":"Node","visibility":"Public","body":"@nodes.first"}},{"html_id":"last:Node-instance-method","name":"last","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":401,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L401"},"def":{"name":"last","return_type":"Node","visibility":"Public","body":"@nodes.last"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":405,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L405"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location || @nodes.first?.try(&.location)"}},{"html_id":"nodes:Array(Base)-instance-method","name":"nodes","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":384,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L384"},"def":{"name":"nodes","return_type":"Array(Base)","visibility":"Public","body":"@nodes"}},{"html_id":"single_expression?:Expression::Base|Nil-instance-method","name":"single_expression?","doc":"It yields first node if this holds only one node, or yields `nil`.","summary":"

                            It yields first node if this holds only one node, or yields nil.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":414,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L414"},"def":{"name":"single_expression?","return_type":"Expression::Base | ::Nil","visibility":"Public","body":"if @nodes.size == 1\n expr = @nodes.first.single_expression\n if expr.is_a?(Statement::SingleExpression)\n expr.expression\n else\n expr.as(Expression::Base)\n end\nelse\n nil\nend"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":435,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L435"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Block\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":431,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L431"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@nodes.empty? ? Token.new(\"none\", Syntax::None, nil, Location.new(\"\", 0, 0)) : @nodes.first.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Break","path":"Cosmo/AST/Statement/Break.html","kind":"class","full_name":"Cosmo::AST::Statement::Break","name":"Break","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":164,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L164"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(keyword : Cosmo::Token)","args_html":"(keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L167"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L170"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_break_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L165"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L178"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Break\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":174,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L174"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Case","path":"Cosmo/AST/Statement/Case.html","kind":"class","full_name":"Cosmo::AST::Statement::Case","name":"Case","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":73,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L73"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,value:Cosmo::AST::Expression::Base,comparisons:Array(Cosmo::AST::Statement::When),else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"comparisons","external_name":"comparisons","restriction":"::Array(::Cosmo::AST::Statement::When)"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, value : Cosmo::AST::Expression::Base, comparisons : Array(Cosmo::AST::Statement::When), else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, value : Cosmo::AST::Expression::Base, comparisons : Array(Cosmo::AST::Statement::When), else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L79"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"comparisons","external_name":"comparisons","restriction":"::Array(::Cosmo::AST::Statement::When)"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, value, comparisons, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":82,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L82"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_case_stmt(self)"}},{"html_id":"comparisons:Array(When)-instance-method","name":"comparisons","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L76"},"def":{"name":"comparisons","return_type":"Array(When)","visibility":"Public","body":"@comparisons"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L77"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L74"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":90,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L90"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((\"Case<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)},\\n\") + \" #{TAB * indent}comparisons: [\\n\") + \" #{TAB * indent}#{@comparisons.map() do |__arg1|\n (__arg1.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":86,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L86"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":75,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L75"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/ClassDef","path":"Cosmo/AST/Statement/ClassDef.html","kind":"class","full_name":"Cosmo::AST::Statement::ClassDef","name":"ClassDef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L23"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(identifier:Cosmo::Token,body:Cosmo::AST::Statement::Block,visibility,superclass:Cosmo::AST::Expression::Base|Nil,mixins:Array(Cosmo::AST::Expression::Base))-class-method","name":"new","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"visibility","external_name":"visibility","restriction":""},{"name":"superclass","external_name":"superclass","restriction":"::Cosmo::AST::Expression::Base | ::Nil"},{"name":"mixins","external_name":"mixins","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"args_string":"(identifier : Cosmo::Token, body : Cosmo::AST::Statement::Block, visibility, superclass : Cosmo::AST::Expression::Base | Nil, mixins : Array(Cosmo::AST::Expression::Base))","args_html":"(identifier : Cosmo::Token, body : Cosmo::AST::Statement::Block, visibility, superclass : Cosmo::AST::Expression::Base | Nil, mixins : Array(Cosmo::AST::Expression::Base))","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L31"},"def":{"name":"new","args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"visibility","external_name":"visibility","restriction":""},{"name":"superclass","external_name":"superclass","restriction":"::Cosmo::AST::Expression::Base | ::Nil"},{"name":"mixins","external_name":"mixins","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(identifier, body, visibility, superclass, mixins)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L34"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_class_def_stmt(self)"}},{"html_id":"body:Block-instance-method","name":"body","doc":"getter parameters : Array(Expression::Parameter) # generics?","summary":"

                            getter parameters : Array(Expression::Parameter) # generics?

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L26"},"def":{"name":"body","return_type":"Block","visibility":"Public","body":"@body"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L24"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"mixins:Array(Expression::Base)-instance-method","name":"mixins","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L29"},"def":{"name":"mixins","return_type":"Array(Expression::Base)","visibility":"Public","body":"@mixins"}},{"html_id":"superclass:Expression::Base|Nil-instance-method","name":"superclass","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L28"},"def":{"name":"superclass","return_type":"Expression::Base | ::Nil","visibility":"Public","body":"@superclass"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":42,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L42"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"ClassDef<\\n\" + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}body: #{@body.to_s(indent + 1)}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":38,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L38"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L27"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Every","path":"Cosmo/AST/Statement/Every.html","kind":"class","full_name":"Cosmo::AST::Statement::Every","name":"Every","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L183"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,var:Cosmo::AST::Expression::VarDeclaration,enumerable:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::VarDeclaration"},{"name":"enumerable","external_name":"enumerable","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, var : Cosmo::AST::Expression::VarDeclaration, enumerable : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, var : Cosmo::AST::Expression::VarDeclaration, enumerable : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":189,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L189"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::VarDeclaration"},{"name":"enumerable","external_name":"enumerable","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, var, enumerable, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L192"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_every_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":187,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L187"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"enumerable:Expression::Base-instance-method","name":"enumerable","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":186,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L186"},"def":{"name":"enumerable","return_type":"Expression::Base","visibility":"Public","body":"@enumerable"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":184,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L184"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":200,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L200"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Every<\\n\" + \" #{TAB * indent}var: #{@var.to_s(indent + 1)},\\n\") + \" #{TAB * indent}in: #{@enumerable.to_s(indent + 1)}\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L196"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"var:Expression::VarDeclaration-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":185,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L185"},"def":{"name":"var","return_type":"Expression::VarDeclaration","visibility":"Public","body":"@var"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/FunctionDef","path":"Cosmo/AST/Statement/FunctionDef.html","kind":"class","full_name":"Cosmo::AST::Statement::FunctionDef","name":"FunctionDef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":331,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L331"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(identifier:Cosmo::Token,parameters:Array(Cosmo::AST::Expression::Parameter),body:Cosmo::AST::Statement::Block,return_typedef:Cosmo::Token,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"parameters","external_name":"parameters","restriction":"::Array(::Cosmo::AST::Expression::Parameter)"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"return_typedef","external_name":"return_typedef","restriction":"::Cosmo::Token"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(identifier : Cosmo::Token, parameters : Array(Cosmo::AST::Expression::Parameter), body : Cosmo::AST::Statement::Block, return_typedef : Cosmo::Token, visibility)","args_html":"(identifier : Cosmo::Token, parameters : Array(Cosmo::AST::Expression::Parameter), body : Cosmo::AST::Statement::Block, return_typedef : Cosmo::Token, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":338,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L338"},"def":{"name":"new","args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"parameters","external_name":"parameters","restriction":"::Array(::Cosmo::AST::Expression::Parameter)"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"return_typedef","external_name":"return_typedef","restriction":"::Cosmo::Token"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(identifier, parameters, body, return_typedef, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":341,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L341"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_fn_def_stmt(self)"}},{"html_id":"body:Block-instance-method","name":"body","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L334"},"def":{"name":"body","return_type":"Block","visibility":"Public","body":"@body"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":332,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L332"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"parameters:Array(Expression::Parameter)-instance-method","name":"parameters","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":333,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L333"},"def":{"name":"parameters","return_type":"Array(Expression::Parameter)","visibility":"Public","body":"@parameters"}},{"html_id":"return_typedef:Token-instance-method","name":"return_typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L335"},"def":{"name":"return_typedef","return_type":"Token","visibility":"Public","body":"@return_typedef"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":349,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L349"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((((\"FunctionDef<\\n\" + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}parameters: [\\n\") + \" #{TAB * indent}#{@parameters.map() do |__arg2|\n (__arg2.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}return_typedef: #{@return_typedef.value},\\n\") + \" #{TAB * indent}body: #{@body.to_s(indent + 1)}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":345,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L345"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L336"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/If","path":"Cosmo/AST/Statement/If.html","kind":"class","full_name":"Cosmo::AST::Statement::If","name":"If","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":257,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L257"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,then:Cosmo::AST::Statement::Base,else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":263,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L263"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":266,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L266"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_if_stmt(self)"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L259"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":261,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L261"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":258,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L258"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":260,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L260"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L274"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"If<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)},\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L270"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Next","path":"Cosmo/AST/Statement/Next.html","kind":"class","full_name":"Cosmo::AST::Statement::Next","name":"Next","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L145"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(keyword : Cosmo::Token)","args_html":"(keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":148,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L148"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":151,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L151"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_next_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":146,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L146"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":159,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L159"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Next\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":155,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L155"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Return","path":"Cosmo/AST/Statement/Return.html","kind":"class","full_name":"Cosmo::AST::Statement::Return","name":"Return","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L309"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(value:Cosmo::AST::Expression::Base,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(value : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","args_html":"(value : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":313,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L313"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":316,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L316"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_return_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":311,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L311"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":324,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L324"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Return<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":320,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L320"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":310,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L310"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/SingleExpression","path":"Cosmo/AST/Statement/SingleExpression.html","kind":"class","full_name":"Cosmo::AST::Statement::SingleExpression","name":"SingleExpression","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L362"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(expression:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"expression","external_name":"expression","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(expression : Cosmo::AST::Expression::Base)","args_html":"(expression : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":365,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L365"},"def":{"name":"new","args":[{"name":"expression","external_name":"expression","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(expression)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":368,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L368"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_single_expr_stmt(self)"}},{"html_id":"expression:Expression::Base-instance-method","name":"expression","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":363,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L363"},"def":{"name":"expression","return_type":"Expression::Base","visibility":"Public","body":"@expression"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":376,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L376"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"SingleExpression<\\n\" + \" #{TAB * indent}expression: #{@expression.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":372,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L372"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@expression.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Throw","path":"Cosmo/AST/Statement/Throw.html","kind":"class","full_name":"Cosmo::AST::Statement::Throw","name":"Throw","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L123"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(err:Cosmo::AST::Expression::Base,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"err","external_name":"err","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(err : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","args_html":"(err : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L127"},"def":{"name":"new","args":[{"name":"err","external_name":"err","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(err, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L130"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_throw_stmt(self)"}},{"html_id":"err:Expression::Base-instance-method","name":"err","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":124,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L124"},"def":{"name":"err","return_type":"Expression::Base","visibility":"Public","body":"@err"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":125,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L125"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L138"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Throw<\\n\" + \" #{TAB * indent}err: #{@err.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":134,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L134"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Unless","path":"Cosmo/AST/Statement/Unless.html","kind":"class","full_name":"Cosmo::AST::Statement::Unless","name":"Unless","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L283"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,then:Cosmo::AST::Statement::Base,else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":289,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L289"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":292,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L292"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_unless_stmt(self)"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":285,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L285"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":287,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L287"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":284,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L284"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":286,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L286"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":300,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L300"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Unless<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)},\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L296"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Until","path":"Cosmo/AST/Statement/Until.html","kind":"class","full_name":"Cosmo::AST::Statement::Until","name":"Until","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":233,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L233"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":238,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L238"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":241,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L241"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_until_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":236,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L236"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L235"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":234,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L234"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":249,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L249"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Until<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":245,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L245"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Use","path":"Cosmo/AST/Statement/Use.html","kind":"class","full_name":"Cosmo::AST::Statement::Use","name":"Use","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L101"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(module_path:Cosmo::Token,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"module_path","external_name":"module_path","restriction":"::Cosmo::Token"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(module_path : Cosmo::Token, keyword : Cosmo::Token)","args_html":"(module_path : Cosmo::Token, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":105,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L105"},"def":{"name":"new","args":[{"name":"module_path","external_name":"module_path","restriction":"::Cosmo::Token"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(module_path, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":108,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L108"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_use_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L103"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"module_path:Token-instance-method","name":"module_path","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":102,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L102"},"def":{"name":"module_path","return_type":"Token","visibility":"Public","body":"@module_path"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":116,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L116"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Use<\\n\" + \" #{TAB * indent}module_path: #{@module_path.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":112,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L112"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","path":"Cosmo/AST/Statement/Visitor.html","kind":"module","full_name":"Cosmo::AST::Statement::Visitor(R)","name":"Visitor","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L2"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/Interpreter","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter"},{"html_id":"Cosmo/Cosmo/Resolver","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"instance_methods":[{"html_id":"visit_block_stmt(stmt:Block):R-instance-method","name":"visit_block_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Block"}],"args_string":"(stmt : Block) : R","args_html":"(stmt : Block) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L16"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Block"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_break_stmt(stmt:Break):R-instance-method","name":"visit_break_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Break"}],"args_string":"(stmt : Break) : R","args_html":"(stmt : Break) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L10"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Break"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_case_stmt(stmt:Case):R-instance-method","name":"visit_case_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Case"}],"args_string":"(stmt : Case) : R","args_html":"(stmt : Case) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L3"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Case"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_every_stmt(stmt:Every):R-instance-method","name":"visit_every_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Every"}],"args_string":"(stmt : Every) : R","args_html":"(stmt : Every) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L4"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Every"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_fn_def_stmt(stmt:FunctionDef):R-instance-method","name":"visit_fn_def_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"FunctionDef"}],"args_string":"(stmt : FunctionDef) : R","args_html":"(stmt : FunctionDef) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L14"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"FunctionDef"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_if_stmt(stmt:If):R-instance-method","name":"visit_if_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"If"}],"args_string":"(stmt : If) : R","args_html":"(stmt : If) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L7"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"If"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_next_stmt(stmt:Next):R-instance-method","name":"visit_next_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Next"}],"args_string":"(stmt : Next) : R","args_html":"(stmt : Next) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L11"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Next"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_return_stmt(stmt:Return):R-instance-method","name":"visit_return_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Return"}],"args_string":"(stmt : Return) : R","args_html":"(stmt : Return) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L9"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Return"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_single_expr_stmt(stmt:SingleExpression):R-instance-method","name":"visit_single_expr_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"SingleExpression"}],"args_string":"(stmt : SingleExpression) : R","args_html":"(stmt : SingleExpression) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L15"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"SingleExpression"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_throw_stmt(stmt:Throw):R-instance-method","name":"visit_throw_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Throw"}],"args_string":"(stmt : Throw) : R","args_html":"(stmt : Throw) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L12"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Throw"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_unless_stmt(stmt:Unless):R-instance-method","name":"visit_unless_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Unless"}],"args_string":"(stmt : Unless) : R","args_html":"(stmt : Unless) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L8"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Unless"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_until_stmt(stmt:Until):R-instance-method","name":"visit_until_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Until"}],"args_string":"(stmt : Until) : R","args_html":"(stmt : Until) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L6"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Until"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_use_stmt(stmt:Use):R-instance-method","name":"visit_use_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Use"}],"args_string":"(stmt : Use) : R","args_html":"(stmt : Use) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L13"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Use"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_while_stmt(stmt:While):R-instance-method","name":"visit_while_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"While"}],"args_string":"(stmt : While) : R","args_html":"(stmt : While) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L5"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"While"}],"return_type":"R","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/When","path":"Cosmo/AST/Statement/When.html","kind":"struct","full_name":"Cosmo::AST::Statement::When","name":"When","abstract":false,"superclass":{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L51"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,conditions:Array(Cosmo::AST::Expression::Base),block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"conditions","external_name":"conditions","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, conditions : Array(Cosmo::AST::Expression::Base), block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, conditions : Array(Cosmo::AST::Expression::Base), block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L56"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"conditions","external_name":"conditions","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, conditions, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L54"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"conditions:Array(Expression::Base)-instance-method","name":"conditions","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L53"},"def":{"name":"conditions","return_type":"Array(Expression::Base)","visibility":"Public","body":"@conditions"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L52"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L63"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((((\"When<\\n\" + \" #{TAB * indent}conditions: [\\n\") + \" #{TAB * indent}#{@conditions.map() do |__arg0|\n (__arg0.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}block: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L59"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/While","path":"Cosmo/AST/Statement/While.html","kind":"class","full_name":"Cosmo::AST::Statement::While","name":"While","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":209,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L209"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":214,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L214"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L217"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_while_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":212,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L212"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":211,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L211"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":210,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L210"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":225,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L225"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"While<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":221,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L221"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]}]},{"html_id":"Cosmo/Cosmo/AST/Visibility","path":"Cosmo/AST/Visibility.html","kind":"enum","full_name":"Cosmo::AST::Visibility","name":"Visibility","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Public","name":"Public","value":"0"},{"id":"Protected","name":"Protected","value":"1"},{"id":"Private","name":"Private","value":"2"},{"id":"Static","name":"Static","value":"3"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"instance_methods":[{"html_id":"private?-instance-method","name":"private?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L7"},"def":{"name":"private?","visibility":"Public","body":"self == Private"}},{"html_id":"protected?-instance-method","name":"protected?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L6"},"def":{"name":"protected?","visibility":"Public","body":"self == Protected"}},{"html_id":"public?-instance-method","name":"public?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L5"},"def":{"name":"public?","visibility":"Public","body":"self == Public"}},{"html_id":"static?-instance-method","name":"static?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L8"},"def":{"name":"static?","visibility":"Public","body":"self == Static"}}]}]},{"html_id":"Cosmo/Cosmo/Callable","path":"Cosmo/Callable.html","kind":"class","full_name":"Cosmo::Callable","name":"Callable","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/function.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/Function","kind":"class","full_name":"Cosmo::Function","name":"Function"},{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L3"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":""}},{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":true,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/function.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L2"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":""}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L4"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":""}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L5"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/Class","path":"Cosmo/Class.html","kind":"class","full_name":"Cosmo::Class","name":"Class","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/class.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/class.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Cosmo::Interpreter,closure:Cosmo::Scope,definition:Cosmo::AST::Statement::ClassDef)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::ClassDef"}],"args_string":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::ClassDef)","args_html":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::ClassDef)","location":{"filename":"src/cosmo/runtime/class.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/class.cr#L6"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::ClassDef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter, closure, definition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"definition:AST::Statement::ClassDef-instance-method","name":"definition","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/class.cr#L4"},"def":{"name":"definition","return_type":"AST::Statement::ClassDef","visibility":"Public","body":"@definition"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/class.cr#L10"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}}]},{"html_id":"Cosmo/Cosmo/Function","path":"Cosmo/Function.html","kind":"class","full_name":"Cosmo::Function","name":"Function","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},"ancestors":[{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/function.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Cosmo::Interpreter,closure:Cosmo::Scope,definition:Cosmo::AST::Statement::FunctionDef)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::FunctionDef"}],"args_string":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::FunctionDef)","args_html":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::FunctionDef)","location":{"filename":"src/cosmo/runtime/function.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L14"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::FunctionDef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter, closure, definition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":42,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L42"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"@non_nullable_params.size.to_u..@definition.parameters.size.to_u"}},{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/function.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L23"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", @definition.return_typedef.value.to_s)\nscope = Scope.new(@closure)\n@definition.parameters.each_with_index do |param, i|\n value = (args[i] || (param.default_value.nil? ? nil : @interpreter.evaluate(param.default_value.not_nil!))).as(ValueType)\n scope.declare(param.typedef, param.identifier, value, const: param.const?)\nend\nresult = nil\nbegin\n result = @interpreter.execute_block(@definition.body, scope, is_fn: true)\nrescue returner : HookedExceptions::Return\n result = returner.value\nend\nresult\n"}},{"html_id":"definition:AST::Statement::FunctionDef-instance-method","name":"definition","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L12"},"def":{"name":"definition","return_type":"AST::Statement::FunctionDef","visibility":"Public","body":"@definition"}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L46"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":"false"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":50,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L50"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions","path":"Cosmo/HookedExceptions.html","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions","abstract":false,"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/HookedExceptions/Break","path":"Cosmo/HookedExceptions/Break.html","kind":"class","full_name":"Cosmo::HookedExceptions::Break","name":"Break","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L16"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token)","args_html":"(token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L17"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions/Next","path":"Cosmo/HookedExceptions/Next.html","kind":"class","full_name":"Cosmo::HookedExceptions::Next","name":"Next","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L22"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token)","args_html":"(token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L23"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions/Return","path":"Cosmo/HookedExceptions/Return.html","kind":"class","full_name":"Cosmo::HookedExceptions::Return","name":"Return","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(value:Cosmo::ValueType,token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(value : Cosmo::ValueType, token : Token)","args_html":"(value : Cosmo::ValueType, token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L11"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"value:ValueType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L9"},"def":{"name":"value","return_type":"ValueType","visibility":"Public","body":"@value"}}]}]},{"html_id":"Cosmo/Cosmo/Interpreter","path":"Cosmo/Interpreter.html","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/interpreter.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L13"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(output_ast:Bool,run_benchmarks:Bool,debug_mode:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"output_ast","external_name":"output_ast","restriction":"Bool"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"},{"name":"debug_mode","external_name":"debug_mode","restriction":"Bool"}],"args_string":"(output_ast : Bool, run_benchmarks : Bool, debug_mode : Bool)","args_html":"(output_ast : Bool, run_benchmarks : Bool, debug_mode : Bool)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L24"},"def":{"name":"new","args":[{"name":"output_ast","external_name":"output_ast","restriction":"Bool"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"},{"name":"debug_mode","external_name":"debug_mode","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(output_ast, run_benchmarks, debug_mode)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"add_object_value(token:Token,object:V,key:ValueType,value:ValueType):VforallV-instance-method","name":"add_object_value","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"},{"name":"object","external_name":"object","restriction":"V"},{"name":"key","external_name":"key","restriction":"ValueType"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(token : Token, object : V, key : ValueType, value : ValueType) : V forall V","args_html":"(token : Token, object : V, key : ValueType, value : ValueType) : V forall V","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":444,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L444"},"def":{"name":"add_object_value","args":[{"name":"token","external_name":"token","restriction":"Token"},{"name":"object","external_name":"object","restriction":"V"},{"name":"key","external_name":"key","restriction":"ValueType"},{"name":"value","external_name":"value","restriction":"ValueType"}],"return_type":"V","visibility":"Public","body":"if object.is_a?(Array)\n if key.is_a?(Int)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), token)\n end\n object.insert(key, value)\nelse\n if object.is_a?(Hash)\n object[key] = value\n else\n Logger.report_error(\"Attempt to assign to index of\", TypeChecker.get_mapped(object.class), token)\n end\nend\nobject\n"}},{"html_id":"declare_intrinsic(type:String,ident:String,value:ValueType)-instance-method","name":"declare_intrinsic","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"ident","external_name":"ident","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(type : String, ident : String, value : ValueType)","args_html":"(type : String, ident : String, value : ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":45,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L45"},"def":{"name":"declare_intrinsic","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"ident","external_name":"ident","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"}],"visibility":"Public","body":"location = Location.new(\"intrinsic\", 0, 0)\nident_token = Token.new(ident, Syntax::Identifier, ident, location)\ntypedef_token = Token.new(type, Syntax::TypeDef, type, location)\n@globals.declare(typedef_token, ident_token, value, const: true)\n"}},{"html_id":"evaluate(expr:Expression::Base):ValueType-instance-method","name":"evaluate","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"}],"args_string":"(expr : Expression::Base) : ValueType","args_html":"(expr : Expression::Base) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":122,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L122"},"def":{"name":"evaluate","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"}],"return_type":"ValueType","visibility":"Public","body":"expr.accept(self)"}},{"html_id":"execute(stmt:Statement::Base):ValueType-instance-method","name":"execute","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Base"}],"args_string":"(stmt : Statement::Base) : ValueType","args_html":"(stmt : Statement::Base) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":126,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L126"},"def":{"name":"execute","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Base"}],"return_type":"ValueType","visibility":"Public","body":"stmt.accept(self)"}},{"html_id":"execute_block(block:Statement::Base,block_scope:Scope,is_fn:Bool=false):ValueType-instance-method","name":"execute_block","abstract":false,"args":[{"name":"block","external_name":"block","restriction":"Statement::Base"},{"name":"block_scope","external_name":"block_scope","restriction":"Scope"},{"name":"is_fn","default_value":"false","external_name":"is_fn","restriction":"Bool"}],"args_string":"(block : Statement::Base, block_scope : Scope, is_fn : Bool = false) : ValueType","args_html":"(block : Statement::Base, block_scope : Scope, is_fn : Bool = false) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L130"},"def":{"name":"execute_block","args":[{"name":"block","external_name":"block","restriction":"Statement::Base"},{"name":"block_scope","external_name":"block_scope","restriction":"Scope"},{"name":"is_fn","default_value":"false","external_name":"is_fn","restriction":"Bool"}],"return_type":"ValueType","visibility":"Public","body":"prev_scope = @scope\nbegin\n @scope = block_scope\n if block.is_a?(Statement::Block)\n if block.nodes.empty?\n else\n return_node = block.nodes.find do |node|\n node.is_a?(Statement::Return)\n end || block.nodes.last\n body_nodes = block.nodes[0..-2]\n body_nodes.each do |expr|\n execute(expr.as(Statement::Base))\n end\n if return_node.nil?\n else\n return_value = execute(return_node.as(Statement::Base))\n end\n end\n if is_fn\n return_type = @meta[\"block_return_type\"]? || \"void\"\n token = return_node.nil? ? Token.new(\"none\", Syntax::None, nil, Location.new(\"\", 0, 0)) : return_node.token\n TypeChecker.assert(return_type, return_value, token)\n end\n else\n return_value = execute(block)\n end\n return_value\nrescue ex : Exception\n raise(ex)\nensure\n @scope = prev_scope\nend\n"}},{"html_id":"globals:Cosmo::Scope-instance-method","name":"globals","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L17"},"def":{"name":"globals","visibility":"Public","body":"@globals"}},{"html_id":"interpret(source:String,file_path:String):ValueType-instance-method","name":"interpret","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(source : String, file_path : String) : ValueType","args_html":"(source : String, file_path : String) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":57,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L57"},"def":{"name":"interpret","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@file_path = file_path\nparser = Parser.new(source, @file_path, @run_benchmarks)\nstatements = parser.parse\nstatement_list_str = \"\"\nstatements.each do |stmt|\n statement_list_str = statement_list_str + (stmt.to_s + \"\\n\")\nend\nif @output_ast\n puts(statement_list_str)\nend\nresolver = Resolver.new(self)\nresolver.resolve(statements)\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Resolver @#{@file_path} took #{get_elapsed(resolver.start_time, end_time)}.\")\nend\nstart_time = Time.monotonic\nresult = nil\nstatements.each do |stmt|\n result = execute(stmt)\nend\nlookup_token = Token.new(\"main\", Syntax::Identifier, \"main\", Location.new(\"\", 0, 0))\nmain_fn = @globals.lookup?(lookup_token)\nis_public = @globals.public?(lookup_token)\nfound_main = ((!main_fn.nil?) && main_fn.is_a?(Function)) && is_public\nif found_main\n main_fn = main_fn.as(Function)\n return_typedef = main_fn.definition.return_typedef\n if TypeChecker.is?(return_typedef.lexeme, 1, return_typedef)\n else\n Logger.report_error(\"Invalid main() function\", \"A main() function may only return 'int'\", return_typedef)\n end\n @meta[\"block_return_type\"] = \"int\"\n main_result = main_fn.call([ARGV.map() do |__arg0|\n __arg0.as(ValueType)\n end])\n TypeChecker.assert(\"int\", main_result, return_typedef)\nend\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Interpreter @#{file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\nif (found_main && (@file_path != \"test\")) && (@file_path != \"repl\")\n code = main_result.not_nil!.as(Int64)\n if code == 0\n Process.exit(code)\n else\n raise(\"Process exited with code #{code}\")\n end\nend\nresult\n"}},{"html_id":"resolve(expr:Expression::Base,depth:UInt32):Nil-instance-method","name":"resolve","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"},{"name":"depth","external_name":"depth","restriction":"UInt32"}],"args_string":"(expr : Expression::Base, depth : UInt32) : Nil","args_html":"(expr : Expression::Base, depth : UInt32) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":112,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L112"},"def":{"name":"resolve","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"},{"name":"depth","external_name":"depth","restriction":"UInt32"}],"return_type":"Nil","visibility":"Public","body":"@locals[expr] = depth"}},{"html_id":"scope:Scope-instance-method","name":"scope","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L18"},"def":{"name":"scope","return_type":"Scope","visibility":"Public","body":"@scope"}},{"html_id":"set_meta(key:String,value:String|Nil):Nil-instance-method","name":"set_meta","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"args_string":"(key : String, value : String | Nil) : Nil","args_html":"(key : String, value : String | Nil) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L52"},"def":{"name":"set_meta","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"if value.nil?\n return\nend\n@meta[key] = value\n"}},{"html_id":"visit_access_expr(expr:Expression::Access):ValueType-instance-method","name":"visit_access_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"args_string":"(expr : Expression::Access) : ValueType","args_html":"(expr : Expression::Access) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":367,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L367"},"def":{"name":"visit_access_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"return_type":"ValueType","visibility":"Public","body":"object = evaluate(expr.object)\nkey = expr.key.value.to_s\nif object.is_a?(Hash)\n object[key]?\nelse\n Logger.report_error(\"Attempt to index\", TypeChecker.get_mapped(object.class), expr.token)\nend\n"}},{"html_id":"visit_binary_op_expr(expr:Expression::BinaryOp):ValueType-instance-method","name":"visit_binary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":551,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L551"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = evaluate(expr.left)\nright = evaluate(expr.right)\ncase expr.operator.type\nwhen Syntax::Plus\n op = Operator::Plus.new(self)\n op.apply(expr)\nwhen Syntax::Minus\n op = Operator::Minus.new(self)\n op.apply(expr)\nwhen Syntax::Star\n op = Operator::Mul.new(self)\n op.apply(expr)\nwhen Syntax::Slash\n op = Operator::Div.new(self)\n op.apply(expr)\nwhen Syntax::Carat\n op = Operator::Pow.new(self)\n op.apply(expr)\nwhen Syntax::Percent\n op = Operator::Mod.new(self)\n op.apply(expr)\nwhen Syntax::ColonAmpersand\n left && right\nwhen Syntax::ColonPipe\n left || right\nwhen Syntax::EqualEqual\n left == right\nwhen Syntax::BangEqual\n left != right\nwhen Syntax::Less\n op = Operator::LT.new(self)\n op.apply(expr)\nwhen Syntax::LessEqual\n op = Operator::LTE.new(self)\n op.apply(expr)\nwhen Syntax::Greater\n op = Operator::GT.new(self)\n op.apply(expr)\nwhen Syntax::GreaterEqual\n op = Operator::GTE.new(self)\n op.apply(expr)\nwhen Syntax::Tilde\n op = Operator::Bxor.new(self)\n op.apply(expr)\nwhen Syntax::Pipe\n op = Operator::Bor.new(self)\n op.apply(expr)\nwhen Syntax::Ampersand\n op = Operator::Band.new(self)\n op.apply(expr)\nwhen Syntax::RDoubleArrow\n op = Operator::Bshr.new(self)\n op.apply(expr)\nwhen Syntax::LDoubleArrow\n op = Operator::Bshl.new(self)\n op.apply(expr)\nend\n"}},{"html_id":"visit_block_stmt(stmt:Statement::Block):ValueType-instance-method","name":"visit_block_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"args_string":"(stmt : Statement::Block) : ValueType","args_html":"(stmt : Statement::Block) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":648,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L648"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"return_type":"ValueType","visibility":"Public","body":"execute_block(stmt, Scope.new(@scope))"}},{"html_id":"visit_break_stmt(stmt:Statement::Break):Nil-instance-method","name":"visit_break_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"args_string":"(stmt : Statement::Break) : Nil","args_html":"(stmt : Statement::Break) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":292,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L292"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"return_type":"Nil","visibility":"Public","body":"raise(HookedExceptions::Break.new(stmt.keyword))"}},{"html_id":"visit_case_stmt(stmt:Statement::Case):ValueType-instance-method","name":"visit_case_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"args_string":"(stmt : Statement::Case) : ValueType","args_html":"(stmt : Statement::Case) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L259"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(stmt.value)\ngo_to_else = false\nstmt.comparisons.each do |when_stmt|\n condition = true\n when_stmt.conditions.each do |condition_expr|\n if condition_expr.is_a?(Expression::TypeRef)\n condition = condition & (TypeChecker.is?(condition_expr.name.lexeme, value, when_stmt.token))\n else\n condition = condition & ((evaluate(condition_expr)) == value)\n end\n end\n if condition\n return execute(when_stmt.block)\n end\n go_to_else = true\nend\nif (!stmt.else.nil?) && go_to_else\n return execute(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_class_def_stmt(stmt:Statement::ClassDef):ValueType-instance-method","name":"visit_class_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"args_string":"(stmt : Statement::ClassDef) : ValueType","args_html":"(stmt : Statement::ClassDef) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":343,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L343"},"def":{"name":"visit_class_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"return_type":"ValueType","visibility":"Public","body":"_class = Class.new(self, @scope, stmt)\ntypedef = Token.new(\"class\", Syntax::TypeDef, \"class\", Location.new(@file_path, 0, 0))\n@scope.declare(typedef, stmt.identifier, _class, const: true, visibility: stmt.visibility)\n"}},{"html_id":"visit_compound_assignment_expr(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"visit_compound_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":485,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L485"},"def":{"name":"visit_compound_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"case expr.operator.type\nwhen Syntax::PlusEqual\n op = Operator::PlusAssign.new(self)\n op.apply(expr)\nwhen Syntax::MinusEqual\n op = Operator::MinusAssign.new(self)\n op.apply(expr)\nwhen Syntax::StarEqual\n op = Operator::MulAssign.new(self)\n op.apply(expr)\nwhen Syntax::SlashEqual\n op = Operator::DivAssign.new(self)\n op.apply(expr)\nwhen Syntax::PercentEqual\n op = Operator::ModAssign.new(self)\n op.apply(expr)\nwhen Syntax::CaratEqual\n op = Operator::PowAssign.new(self)\n op.apply(expr)\nend"}},{"html_id":"visit_every_stmt(stmt:Statement::Every):Nil-instance-method","name":"visit_every_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"args_string":"(stmt : Statement::Every) : Nil","args_html":"(stmt : Statement::Every) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":157,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L157"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"return_type":"Nil","visibility":"Public","body":"enclosing = @scope\n@scope = Scope.new(@scope)\nenumerable = evaluate(stmt.enumerable)\n@scope.declare(stmt.var.typedef, stmt.var.token, nil)\nif enumerable.is_a?(Array) || enumerable.is_a?(Range)\n enumerable.each do |value|\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\nelse\n if enumerable.is_a?(String)\n enumerable.chars.each do |value|\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\n else\n if enumerable.is_a?(Callable)\n if enumerable.is_a?(IntrinsicFunction)\n Logger.report_error(\"Invalid iterator\", \"An iterator cannot be an intrinsic function\", stmt.enumerable.token)\n end\n if enumerable.is_a?(Function)\n else\n Logger.report_error(\"Invalid iterator\", \"An iterator must return a generator function\", stmt.enumerable.token)\n end\n while !( value = enumerable.call([] of ValueType)).nil?\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\n else\n Logger.report_error(\"Invalid iterator type\", TypeChecker.get_mapped(enumerable.class), stmt.token)\n end\n end\nend\n@scope = enclosing\n"}},{"html_id":"visit_fn_call_expr(expr:Expression::FunctionCall):ValueType-instance-method","name":"visit_fn_call_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"args_string":"(expr : Expression::FunctionCall) : ValueType","args_html":"(expr : Expression::FunctionCall) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":407,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L407"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"return_type":"ValueType","visibility":"Public","body":"fn = evaluate(expr.callee)\nif fn.is_a?(Function) || fn.is_a?(IntrinsicFunction)\nelse\n Logger.report_error(\"Attempt to call\", TypeChecker.get_mapped(fn.class), expr.token)\nend\nif fn.arity.includes?(expr.arguments.size)\nelse\n arg_size = fn.arity.begin == fn.arity.end ? fn.arity.begin : fn.arity.to_s\n Logger.report_error(\"Expected #{arg_size} arguments, got\", expr.arguments.size.to_s, expr.token)\nend\narg_values = expr.arguments.map do |arg|\n evaluate(arg)\nend\nenclosing_return_type = @meta[\"block_return_type\"]?\nresult = fn.call(arg_values)\nset_meta(\"block_return_type\", enclosing_return_type)\nresult\n"}},{"html_id":"visit_fn_def_stmt(stmt:Statement::FunctionDef):ValueType-instance-method","name":"visit_fn_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"args_string":"(stmt : Statement::FunctionDef) : ValueType","args_html":"(stmt : Statement::FunctionDef) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":355,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L355"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"return_type":"ValueType","visibility":"Public","body":"fn = Function.new(self, @scope, stmt)\ntypedef = Token.new(\"func\", Syntax::TypeDef, \"func\", Location.new(@file_path, 0, 0))\n@scope.declare(typedef, stmt.identifier, fn, const: true, visibility: stmt.visibility)\n"}},{"html_id":"visit_if_stmt(stmt:Statement::If):ValueType-instance-method","name":"visit_if_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"args_string":"(stmt : Statement::If) : ValueType","args_html":"(stmt : Statement::If) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L334"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(stmt.condition)\nif condition\n execute(stmt.then)\nelse\n if stmt.else.nil?\n else\n execute(stmt.else.not_nil!)\n end\nend\n"}},{"html_id":"visit_index_expr(expr:Expression::Index):ValueType-instance-method","name":"visit_index_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"args_string":"(expr : Expression::Index) : ValueType","args_html":"(expr : Expression::Index) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":377,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L377"},"def":{"name":"visit_index_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"return_type":"ValueType","visibility":"Public","body":"object = evaluate(expr.object)\nkey = evaluate(expr.key)\nif object.is_a?(String) || object.is_a?(Array)\n if key.is_a?(Int) || key.is_a?(Range)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), expr.token)\n end\n object[key]?\nelse\n if object.is_a?(Hash)\n object[key]?\n else\n Logger.report_error(\"Attempt to index\", TypeChecker.get_mapped(object.class), expr.token)\n end\nend\n"}},{"html_id":"visit_is_expr(expr:Expression::Is):Bool-instance-method","name":"visit_is_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"args_string":"(expr : Expression::Is) : Bool","args_html":"(expr : Expression::Is) : Bool","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":393,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L393"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"return_type":"Bool","visibility":"Public","body":"value = evaluate(expr.value)\nTypeChecker.is?(expr.type.name.lexeme, value, expr.token)\n"}},{"html_id":"visit_literal_expr(expr:Expression::Literal):ValueType-instance-method","name":"visit_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"args_string":"(expr : Expression::Literal) : ValueType","args_html":"(expr : Expression::Literal) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":640,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L640"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"return_type":"ValueType","visibility":"Public","body":"expr.value"}},{"html_id":"visit_next_stmt(stmt:Statement::Next):Nil-instance-method","name":"visit_next_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"args_string":"(stmt : Statement::Next) : Nil","args_html":"(stmt : Statement::Next) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":288,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L288"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"return_type":"Nil","visibility":"Public","body":"raise(HookedExceptions::Next.new(stmt.keyword))"}},{"html_id":"visit_property_assignment_expr(expr:Expression::PropertyAssignment):ValueType-instance-method","name":"visit_property_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"args_string":"(expr : Expression::PropertyAssignment) : ValueType","args_html":"(expr : Expression::PropertyAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":458,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L458"},"def":{"name":"visit_property_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"return_type":"ValueType","visibility":"Public","body":"if expr.object.is_a?(Expression::Index)\n index = expr.object.as(Expression::Index)\n object_node = index.object\n key = evaluate(index.key)\n object = evaluate(object_node)\nelse\n access = expr.object.as(Expression::Access)\n object_node = access.object\n key = access.key.lexeme\n object = evaluate(object_node)\nend\nvalue = expr.value.is_a?(Expression::Base) ? evaluate(expr.value.as(Expression::Base)) : expr.value.as(ValueType)\nif object_node.is_a?(Expression::Index) || object_node.is_a?(Expression::Access)\n object = add_object_value(expr.token, object, key, value)\n prop_assignment = Expression::PropertyAssignment.new(object_node, object)\n return visit_property_assignment_expr(prop_assignment)\nend\nobject = add_object_value(expr.token, object, key, value)\n@scope.assign(expr.token, object)\n"}},{"html_id":"visit_range_literal_expr(expr:Expression::RangeLiteral):Range(Int128|Int64|Int32|Int16|Int8,Int128|Int64|Int32|Int16|Int8)-instance-method","name":"visit_range_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"args_string":"(expr : Expression::RangeLiteral) : Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","args_html":"(expr : Expression::RangeLiteral) : Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":612,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L612"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"return_type":"Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","visibility":"Public","body":"from = evaluate(expr.from)\nto = evaluate(expr.to)\nif from.is_a?(Int)\nelse\n Logger.report_error(\"Invalid left side of range literal\", \"Ranges can only be of integers, got '#{TypeChecker.get_mapped(from.class)}'\", expr.token)\nend\nif to.is_a?(Int)\nelse\n Logger.report_error(\"Invalid right side of range literal\", \"Ranges can only be of integers, got '#{TypeChecker.get_mapped(to.class)}'\", expr.token)\nend\nfrom..to\n"}},{"html_id":"visit_return_stmt(stmt:Statement::Return):Nil-instance-method","name":"visit_return_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"args_string":"(stmt : Statement::Return) : Nil","args_html":"(stmt : Statement::Return) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L296"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"return_type":"Nil","visibility":"Public","body":"value = evaluate(stmt.value)\nraise(HookedExceptions::Return.new(value, stmt.keyword))\n"}},{"html_id":"visit_single_expr_stmt(stmt:Statement::SingleExpression):ValueType-instance-method","name":"visit_single_expr_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"args_string":"(stmt : Statement::SingleExpression) : ValueType","args_html":"(stmt : Statement::SingleExpression) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":644,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L644"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"return_type":"ValueType","visibility":"Public","body":"evaluate(stmt.expression)"}},{"html_id":"visit_table_literal_expr(expr:Expression::TableLiteral):Hash(ValueType,ValueType)-instance-method","name":"visit_table_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"args_string":"(expr : Expression::TableLiteral) : Hash(ValueType, ValueType)","args_html":"(expr : Expression::TableLiteral) : Hash(ValueType, ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":626,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L626"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"return_type":"Hash(ValueType, ValueType)","visibility":"Public","body":"hash = {} of ValueType => ValueType\nexpr.hashmap.each do |k, v|\n key = evaluate(k)\n value = evaluate(v)\n hash[key] = value\nend\nhash\n"}},{"html_id":"visit_ternary_op_expr(expr:Expression::TernaryOp):ValueType-instance-method","name":"visit_ternary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"args_string":"(expr : Expression::TernaryOp) : ValueType","args_html":"(expr : Expression::TernaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":508,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L508"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(expr.condition)\nif condition\n return evaluate(expr.then)\nend\nevaluate(expr.else)\n"}},{"html_id":"visit_throw_stmt(stmt:Statement::Throw):Nil-instance-method","name":"visit_throw_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"args_string":"(stmt : Statement::Throw) : Nil","args_html":"(stmt : Statement::Throw) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":280,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L280"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"return_type":"Nil","visibility":"Public","body":"err = evaluate(stmt.err)\nif TypeChecker.is?(\"string\", err, stmt.token)\nelse\n Logger.report_error(\"Throw statement can only be invoked with a string currently, got\", TypeChecker.get_mapped(err.class), stmt.token)\nend\nraise(err.to_s)\n"}},{"html_id":"visit_type_alias_expr(expr:Expression::TypeAlias):Nil-instance-method","name":"visit_type_alias_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"args_string":"(expr : Expression::TypeAlias) : Nil","args_html":"(expr : Expression::TypeAlias) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":402,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L402"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"return_type":"Nil","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.declare(expr.type_token, expr.token, value, expr.constant?, expr.visibility)\n"}},{"html_id":"visit_type_ref_expr(expr:Expression::TypeRef):Type-instance-method","name":"visit_type_ref_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"args_string":"(expr : Expression::TypeRef) : Type","args_html":"(expr : Expression::TypeRef) : Type","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":398,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L398"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"return_type":"Type","visibility":"Public","body":"TypeChecker.get_registered_type(expr.name.value.to_s, expr.name)"}},{"html_id":"visit_unary_op_expr(expr:Expression::UnaryOp):ValueType-instance-method","name":"visit_unary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : ValueType","args_html":"(expr : Expression::UnaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":515,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L515"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"ValueType","visibility":"Public","body":"operand = evaluate(expr.operand)\ncase expr.operator.type\nwhen Syntax::Plus\n if operand.is_a?(Float) || operand.is_a?(Int)\n operand.abs\n else\n Logger.report_error(\"Invalid '+' operand type\", operand.class.to_s, expr.operator)\n end\nwhen Syntax::Minus\n if operand.is_a?(Float) || operand.is_a?(Int)\n -operand\n else\n Logger.report_error(\"Invalid '-' operand type\", operand.class.to_s, expr.operator)\n end\nwhen Syntax::PlusPlus\n op = Operator::PlusAssign.new(self)\n op.apply(expr, \"++\")\nwhen Syntax::MinusMinus\n op = Operator::MinusAssign.new(self)\n op.apply(expr, \"--\")\nwhen Syntax::Bang\n !operand\nwhen Syntax::Tilde\n op = Operator::Bnot.new(self)\n op.apply(expr)\nwhen Syntax::Star\n raise(\"'*' unary operator has not yet implemented.\")\nwhen Syntax::Hashtag\n if operand.is_a?(Array) || operand.is_a?(Hash)\n else\n Logger.report_error(\"Invalid '#' operand type\", TypeChecker.get_mapped(operand.class), expr.operator)\n end\n operand.size\nend\n"}},{"html_id":"visit_unless_stmt(stmt:Statement::Unless):ValueType-instance-method","name":"visit_unless_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"args_string":"(stmt : Statement::Unless) : ValueType","args_html":"(stmt : Statement::Unless) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":325,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L325"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(stmt.condition)\nif condition\n if stmt.else.nil?\n else\n execute(stmt.else.not_nil!)\n end\nelse\n execute(stmt.then)\nend\n"}},{"html_id":"visit_until_stmt(stmt:Statement::Until):Nil-instance-method","name":"visit_until_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"args_string":"(stmt : Statement::Until) : Nil","args_html":"(stmt : Statement::Until) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":301,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L301"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"return_type":"Nil","visibility":"Public","body":"while !(evaluate(stmt.condition))\n begin\n execute(stmt.block)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\nend"}},{"html_id":"visit_use_stmt(stmt:Statement::Use):Nil-instance-method","name":"visit_use_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"args_string":"(stmt : Statement::Use) : Nil","args_html":"(stmt : Statement::Use) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":225,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L225"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"return_type":"Nil","visibility":"Public","body":"relative_module_path = stmt.module_path.lexeme\nif relative_module_path.includes?(\"/\")\n if @file_path == \"repl\"\n Logger.report_error(\"Cannot import\", \"Non-package modules are not supported in the REPL\", stmt.module_path)\n end\n full_module_path = File.join(File.dirname(@file_path), relative_module_path)\n ext_file_path = File.exists?(full_module_path + \".cos\") ? full_module_path + \".cos\" : full_module_path + \".⭐\"\n if full_module_path.includes?(\"././\")\n Logger.report_error(\"Recursive import detected\", ext_file_path.gsub(\"./\", \"\"), stmt.module_path)\n end\n module_path = ext_file_path.gsub(\"./\", \"\")\n if File.exists?(ext_file_path)\n else\n Logger.report_error(\"Invalid import\", \"No such file '#{module_path}.cos/⭐' exists\", stmt.module_path)\n end\n import_file(ext_file_path)\nelse\n if @importable_intrinsics.has_key?(relative_module_path)\n @importable_intrinsics[relative_module_path].inject\n else\n file_path = File.join(File.dirname(\"/home/runic/Dev/crystal/cosmo/src/cosmo/runtime/interpreter.cr\"), \"../../../libraries\", relative_module_path)\n full_path = File.exists?(file_path + \".cos\") ? file_path + \".cos\" : file_path + \".⭐\"\n if File.exists?(full_path)\n import_file(full_path)\n else\n Logger.report_error(\"Invalid import\", \"No package management system implemented yet. If you are trying to import a file path, prepend './' to the path.\", stmt.module_path)\n end\n end\nend\n"}},{"html_id":"visit_var_assignment_expr(expr:Expression::VarAssignment):ValueType-instance-method","name":"visit_var_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"args_string":"(expr : Expression::VarAssignment) : ValueType","args_html":"(expr : Expression::VarAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":439,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L439"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.assign(expr.var.token, value)\n"}},{"html_id":"visit_var_declaration_expr(expr:Expression::VarDeclaration):ValueType-instance-method","name":"visit_var_declaration_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"args_string":"(expr : Expression::VarDeclaration) : ValueType","args_html":"(expr : Expression::VarDeclaration) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":428,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L428"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.declare(expr.typedef, expr.var.token, value, const: expr.constant?, visibility: expr.visibility)\n"}},{"html_id":"visit_var_expr(expr:Expression::Var):ValueType-instance-method","name":"visit_var_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"args_string":"(expr : Expression::Var) : ValueType","args_html":"(expr : Expression::Var) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":424,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L424"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"return_type":"ValueType","visibility":"Public","body":"@scope.lookup(expr.token)"}},{"html_id":"visit_vector_literal_expr(expr:Expression::VectorLiteral):Array(ValueType)-instance-method","name":"visit_vector_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"args_string":"(expr : Expression::VectorLiteral) : Array(ValueType)","args_html":"(expr : Expression::VectorLiteral) : Array(ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":636,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L636"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"return_type":"Array(ValueType)","visibility":"Public","body":"expr.values.map do |v|\n evaluate(v)\nend"}},{"html_id":"visit_while_stmt(stmt:Statement::While):Nil-instance-method","name":"visit_while_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"args_string":"(stmt : Statement::While) : Nil","args_html":"(stmt : Statement::While) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":313,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L313"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"return_type":"Nil","visibility":"Public","body":"while evaluate(stmt.condition)\n begin\n execute(stmt.block)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\nend"}}]},{"html_id":"Cosmo/Cosmo/IntrinsicFunction","path":"Cosmo/IntrinsicFunction.html","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},"ancestors":[{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/MathLib/Acos","kind":"class","full_name":"Cosmo::MathLib::Acos","name":"Acos"},{"html_id":"Cosmo/Cosmo/MathLib/Acosh","kind":"class","full_name":"Cosmo::MathLib::Acosh","name":"Acosh"},{"html_id":"Cosmo/Cosmo/MathLib/Asin","kind":"class","full_name":"Cosmo::MathLib::Asin","name":"Asin"},{"html_id":"Cosmo/Cosmo/MathLib/Asinh","kind":"class","full_name":"Cosmo::MathLib::Asinh","name":"Asinh"},{"html_id":"Cosmo/Cosmo/MathLib/Atan","kind":"class","full_name":"Cosmo::MathLib::Atan","name":"Atan"},{"html_id":"Cosmo/Cosmo/MathLib/Atan2","kind":"class","full_name":"Cosmo::MathLib::Atan2","name":"Atan2"},{"html_id":"Cosmo/Cosmo/MathLib/Atanh","kind":"class","full_name":"Cosmo::MathLib::Atanh","name":"Atanh"},{"html_id":"Cosmo/Cosmo/MathLib/Cbrt","kind":"class","full_name":"Cosmo::MathLib::Cbrt","name":"Cbrt"},{"html_id":"Cosmo/Cosmo/MathLib/Ceil","kind":"class","full_name":"Cosmo::MathLib::Ceil","name":"Ceil"},{"html_id":"Cosmo/Cosmo/MathLib/Cos","kind":"class","full_name":"Cosmo::MathLib::Cos","name":"Cos"},{"html_id":"Cosmo/Cosmo/MathLib/Cosh","kind":"class","full_name":"Cosmo::MathLib::Cosh","name":"Cosh"},{"html_id":"Cosmo/Cosmo/MathLib/Exp","kind":"class","full_name":"Cosmo::MathLib::Exp","name":"Exp"},{"html_id":"Cosmo/Cosmo/MathLib/Floor","kind":"class","full_name":"Cosmo::MathLib::Floor","name":"Floor"},{"html_id":"Cosmo/Cosmo/MathLib/Isqrt","kind":"class","full_name":"Cosmo::MathLib::Isqrt","name":"Isqrt"},{"html_id":"Cosmo/Cosmo/MathLib/Log","kind":"class","full_name":"Cosmo::MathLib::Log","name":"Log"},{"html_id":"Cosmo/Cosmo/MathLib/Log10","kind":"class","full_name":"Cosmo::MathLib::Log10","name":"Log10"},{"html_id":"Cosmo/Cosmo/MathLib/Log2","kind":"class","full_name":"Cosmo::MathLib::Log2","name":"Log2"},{"html_id":"Cosmo/Cosmo/MathLib/Max","kind":"class","full_name":"Cosmo::MathLib::Max","name":"Max"},{"html_id":"Cosmo/Cosmo/MathLib/Min","kind":"class","full_name":"Cosmo::MathLib::Min","name":"Min"},{"html_id":"Cosmo/Cosmo/MathLib/Round","kind":"class","full_name":"Cosmo::MathLib::Round","name":"Round"},{"html_id":"Cosmo/Cosmo/MathLib/Sin","kind":"class","full_name":"Cosmo::MathLib::Sin","name":"Sin"},{"html_id":"Cosmo/Cosmo/MathLib/Sinh","kind":"class","full_name":"Cosmo::MathLib::Sinh","name":"Sinh"},{"html_id":"Cosmo/Cosmo/MathLib/Sqrt","kind":"class","full_name":"Cosmo::MathLib::Sqrt","name":"Sqrt"},{"html_id":"Cosmo/Cosmo/MathLib/Tan","kind":"class","full_name":"Cosmo::MathLib::Tan","name":"Tan"},{"html_id":"Cosmo/Cosmo/MathLib/Tanh","kind":"class","full_name":"Cosmo::MathLib::Tanh","name":"Tanh"},{"html_id":"Cosmo/Cosmo/PutsIntrinsic","kind":"class","full_name":"Cosmo::PutsIntrinsic","name":"PutsIntrinsic"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"args_string":"(interpreter : Interpreter)","args_html":"(interpreter : Interpreter)","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L5"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":true,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L8"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":""}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L10"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L19"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}},{"html_id":"token(name:String):Token-instance-method","name":"token","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : Token","args_html":"(name : String) : Token","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L14"},"def":{"name":"token","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"Token","visibility":"Public","body":"location = Location.new(\"intrinsic\", 0, 0)\nToken.new(name, Syntax::Identifier, name, location)\n"}}]},{"html_id":"Cosmo/Cosmo/IntrinsicLib","path":"Cosmo/IntrinsicLib.html","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L24"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(i:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Interpreter"}],"args_string":"(i : Interpreter)","args_html":"(i : Interpreter)","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L25"},"def":{"name":"new","args":[{"name":"i","external_name":"i","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(i)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"inject:Nil-instance-method","name":"inject","abstract":true,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L28"},"def":{"name":"inject","return_type":"Nil","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/Keywords","path":"Cosmo/Keywords.html","kind":"module","full_name":"Cosmo::Keywords","name":"Keywords","abstract":false,"locations":[{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L3"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CLASS_VISIBILITY_KEYWORDS","name":"CLASS_VISIBILITY_KEYWORDS","value":"[\"protected\", \"static\"]"},{"id":"KEYWORDS","name":"KEYWORDS","value":"{\"true\" => Syntax::Boolean, \"false\" => Syntax::Boolean, \"none\" => Syntax::None, \"fn\" => Syntax::Function, \"if\" => Syntax::If, \"unless\" => Syntax::Unless, \"in\" => Syntax::In, \"of\" => Syntax::Of, \"is\" => Syntax::Is, \"else\" => Syntax::Else, \"every\" => Syntax::Every, \"while\" => Syntax::While, \"until\" => Syntax::Until, \"break\" => Syntax::Break, \"next\" => Syntax::Next, \"use\" => Syntax::Use, \"case\" => Syntax::Case, \"when\" => Syntax::When, \"const\" => Syntax::Const, \"return\" => Syntax::Return, \"throw\" => Syntax::Throw, \"class\" => Syntax::Class, \"mixin\" => Syntax::Mixin, \"new\" => Syntax::New}"},{"id":"TYPE_KEYWORDS","name":"TYPE_KEYWORDS","value":"[\"type\", \"any\", \"bool\", \"string\", \"char\", \"int\", \"bigint\", \"float\", \"void\", \"func\"]","doc":"These cannot be any of the keywords above","summary":"

                            These cannot be any of the keywords above

                            "}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"class_methods":[{"html_id":"class_visibility?(s:String)-class-method","name":"class_visibility?","doc":"Returns whether or not `s` is a class vibility keyword","summary":"

                            Returns whether or not s is a class vibility keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L36"},"def":{"name":"class_visibility?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"CLASS_VISIBILITY_KEYWORDS.includes?(s)"}},{"html_id":"get_syntax(s:String):Syntax-class-method","name":"get_syntax","doc":"Returns the syntax type of `s` if it is a regular keyword","summary":"

                            Returns the syntax type of s if it is a regular keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String) : Syntax","args_html":"(s : String) : Syntax","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L51"},"def":{"name":"get_syntax","args":[{"name":"s","external_name":"s","restriction":"String"}],"return_type":"Syntax","visibility":"Public","body":"KEYWORDS.fetch(s) do\n raise(\"Invalid keyword #{s}\")\nend"}},{"html_id":"keyword?(s:String)-class-method","name":"keyword?","doc":"Returns whether or not `s` is a regular keyword","summary":"

                            Returns whether or not s is a regular keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L46"},"def":{"name":"keyword?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"KEYWORDS.has_key?(s)"}},{"html_id":"type?(s:String)-class-method","name":"type?","doc":"Returns whether or not `s` is a type keyword","summary":"

                            Returns whether or not s is a type keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":41,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L41"},"def":{"name":"type?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"TYPE_KEYWORDS.includes?(s)"}}]},{"html_id":"Cosmo/Cosmo/Lexer","path":"Cosmo/Lexer.html","kind":"class","full_name":"Cosmo::Lexer","name":"Lexer","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer.cr#L9"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(source:String,file_path:String,run_benchmarks:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"args_string":"(source : String, file_path : String, run_benchmarks : Bool)","args_html":"(source : String, file_path : String, run_benchmarks : Bool)","location":{"filename":"src/cosmo/syntax/lexer.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer.cr#L17"},"def":{"name":"new","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(source, file_path, run_benchmarks)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"tokenize:Array(Token)-instance-method","name":"tokenize","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer.cr#L20"},"def":{"name":"tokenize","return_type":"Array(Token)","visibility":"Public","body":"start_time = Time.monotonic\nwhile !finished?\n lex\nend\nadd_token(Syntax::EOF, nil)\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Lexer @#{@file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\n@tokens\n"}}]},{"html_id":"Cosmo/Cosmo/Location","path":"Cosmo/Location.html","kind":"class","full_name":"Cosmo::Location","name":"Location","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(file_name:String,line:UInt32,position:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"file_name","external_name":"file_name","restriction":"::String"},{"name":"line","external_name":"line","restriction":"::UInt32"},{"name":"position","external_name":"position","restriction":"::UInt32"}],"args_string":"(file_name : String, line : UInt32, position : UInt32)","args_html":"(file_name : String, line : UInt32, position : UInt32)","location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L6"},"def":{"name":"new","args":[{"name":"file_name","external_name":"file_name","restriction":"::String"},{"name":"line","external_name":"line","restriction":"::UInt32"},{"name":"position","external_name":"position","restriction":"::UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(file_name, line, position)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"between?(min:UInt32,max:UInt32)-instance-method","name":"between?","abstract":false,"args":[{"name":"min","external_name":"min","restriction":"UInt32"},{"name":"max","external_name":"max","restriction":"UInt32"}],"args_string":"(min : UInt32, max : UInt32)","args_html":"(min : UInt32, max : UInt32)","location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L9"},"def":{"name":"between?","args":[{"name":"min","external_name":"min","restriction":"UInt32"},{"name":"max","external_name":"max","restriction":"UInt32"}],"visibility":"Public","body":"if min && max\nelse\n return false\nend\nmin <= self && self <= max\n"}},{"html_id":"directory-instance-method","name":"directory","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L14"},"def":{"name":"directory","visibility":"Public","body":"@file_name.try do |file_name|\n File.dirname(file_name)\nend"}},{"html_id":"file_name:String-instance-method","name":"file_name","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L4"},"def":{"name":"file_name","return_type":"String","visibility":"Public","body":"@file_name"}},{"html_id":"line:UInt32-instance-method","name":"line","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L2"},"def":{"name":"line","return_type":"UInt32","visibility":"Public","body":"@line"}},{"html_id":"position:UInt32-instance-method","name":"position","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L3"},"def":{"name":"position","return_type":"UInt32","visibility":"Public","body":"@position"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L18"},"def":{"name":"to_s","visibility":"Public","body":"\"#{@file_name}:#{@line}:#{position}\""}}]},{"html_id":"Cosmo/Cosmo/Logger","path":"Cosmo/Logger.html","kind":"module","full_name":"Cosmo::Logger","name":"Logger","abstract":false,"locations":[{"filename":"src/cosmo/logger.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"Cosmo/Cosmo/Logger","kind":"module","full_name":"Cosmo::Logger","name":"Logger"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"debug=(on:Bool):Nil-instance-method","name":"debug=","abstract":false,"args":[{"name":"on","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool) : Nil","args_html":"(on : Bool) : Nil","location":{"filename":"src/cosmo/logger.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L6"},"def":{"name":"debug=","args":[{"name":"on","external_name":"on","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"@@debug = on"}},{"html_id":"report_error(error_type:String,message:String,line:UInt32,pos:UInt32,file_path:String):Exception-instance-method","name":"report_error","abstract":false,"args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"line","external_name":"line","restriction":"UInt32"},{"name":"pos","external_name":"pos","restriction":"UInt32"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(error_type : String, message : String, line : UInt32, pos : UInt32, file_path : String) : Exception","args_html":"(error_type : String, message : String, line : UInt32, pos : UInt32, file_path : String) : Exception","location":{"filename":"src/cosmo/logger.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L18"},"def":{"name":"report_error","args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"line","external_name":"line","restriction":"UInt32"},{"name":"pos","external_name":"pos","restriction":"UInt32"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"Exception","visibility":"Public","body":"full_message = \"@#{file_path.gsub(\"./\", \"\")} [#{line}:#{pos + 1}] #{error_type}: #{message}\"\nif @@debug\n raise(full_message)\nelse\n abort(full_message, 1)\nend\n"}},{"html_id":"report_error(error_type:String,message:String,token:Token):Exception-instance-method","name":"report_error","abstract":false,"args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(error_type : String, message : String, token : Token) : Exception","args_html":"(error_type : String, message : String, token : Token) : Exception","location":{"filename":"src/cosmo/logger.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L14"},"def":{"name":"report_error","args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Exception","visibility":"Public","body":"report_error(error_type, message, token.location.line, token.location.position, token.location.file_name)"}},{"html_id":"report_exception(ex:E)forallE-instance-method","name":"report_exception","abstract":false,"args":[{"name":"ex","external_name":"ex","restriction":"E"}],"args_string":"(ex : E) forall E","args_html":"(ex : E) forall E","location":{"filename":"src/cosmo/logger.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L10"},"def":{"name":"report_exception","args":[{"name":"ex","external_name":"ex","restriction":"E"}],"visibility":"Public","body":"raise(ex)"}}]},{"html_id":"Cosmo/Cosmo/MathLib","path":"Cosmo/MathLib.html","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicLib","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicLib","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"inject:Nil-instance-method","name":"inject","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L2"},"def":{"name":"inject","return_type":"Nil","visibility":"Public","body":"math = {} of String => IntrinsicFunction | Float64\nmath[\"e\"] = Math::E\nmath[\"pi\"] = Math::PI\nmath[\"floor\"] = Floor.new(@i)\nmath[\"ceil\"] = Ceil.new(@i)\nmath[\"round\"] = Round.new(@i)\nmath[\"min\"] = Min.new(@i)\nmath[\"max\"] = Max.new(@i)\nmath[\"log\"] = Log.new(@i)\nmath[\"log2\"] = Log2.new(@i)\nmath[\"log10\"] = Log10.new(@i)\nmath[\"exp\"] = Exp.new(@i)\nmath[\"sqrt\"] = Sqrt.new(@i)\nmath[\"isqrt\"] = Isqrt.new(@i)\nmath[\"cbrt\"] = Cbrt.new(@i)\nmath[\"sin\"] = Sin.new(@i)\nmath[\"cos\"] = Cos.new(@i)\nmath[\"tan\"] = Tan.new(@i)\nmath[\"sinh\"] = Sinh.new(@i)\nmath[\"cosh\"] = Cosh.new(@i)\nmath[\"tanh\"] = Tanh.new(@i)\nmath[\"asinh\"] = Asinh.new(@i)\nmath[\"acosh\"] = Acosh.new(@i)\nmath[\"atanh\"] = Atanh.new(@i)\nmath[\"asin\"] = Asin.new(@i)\nmath[\"acos\"] = Acos.new(@i)\nmath[\"atan\"] = Atan.new(@i)\nmath[\"atan2\"] = Atan2.new(@i)\n@i.declare_intrinsic(\"string->(func|float)\", \"Math\", math)\n"}}],"types":[{"html_id":"Cosmo/Cosmo/MathLib/Acos","path":"Cosmo/MathLib/Acos.html","kind":"class","full_name":"Cosmo::MathLib::Acos","name":"Acos","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":256,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L256"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":257,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L257"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":261,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L261"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"acos\"))\nx = args.first.as(Float64)\n(Math.acos(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Acosh","path":"Cosmo/MathLib/Acosh.html","kind":"class","full_name":"Cosmo::MathLib::Acosh","name":"Acosh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":348,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L348"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":349,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L349"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":353,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L353"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"acosh\"))\nx = args.first.as(Number)\n(Math.acosh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Asin","path":"Cosmo/MathLib/Asin.html","kind":"class","full_name":"Cosmo::MathLib::Asin","name":"Asin","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L243"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":244,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L244"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":248,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L248"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"asin\"))\nx = args.first.as(Number)\n(Math.asin(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Asinh","path":"Cosmo/MathLib/Asinh.html","kind":"class","full_name":"Cosmo::MathLib::Asinh","name":"Asinh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L335"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L336"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":340,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L340"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"asinh\"))\nx = args.first.as(Number)\n(Math.asinh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atan","path":"Cosmo/MathLib/Atan.html","kind":"class","full_name":"Cosmo::MathLib::Atan","name":"Atan","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":269,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L269"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L270"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L274"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atan\"))\nx = args.first.as(Number)\n(Math.atan(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atan2","path":"Cosmo/MathLib/Atan2.html","kind":"class","full_name":"Cosmo::MathLib::Atan2","name":"Atan2","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":282,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L282"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L283"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..2.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":287,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L287"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atan2\"))\ny = args.first.as(Number)\nx = args.last.as(Number)\n(Math.atan2(y, x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atanh","path":"Cosmo/MathLib/Atanh.html","kind":"class","full_name":"Cosmo::MathLib::Atanh","name":"Atanh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L361"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L362"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":366,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L366"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atanh\"))\nx = args.first.as(Number)\n(Math.atanh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cbrt","path":"Cosmo/MathLib/Cbrt.html","kind":"class","full_name":"Cosmo::MathLib::Cbrt","name":"Cbrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L191"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L192"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L196"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cbrt\"))\nx = args.first.as(Number)\n(Math.cbrt(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Ceil","path":"Cosmo/MathLib/Ceil.html","kind":"class","full_name":"Cosmo::MathLib::Ceil","name":"Ceil","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L46"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":47,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L47"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L51"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\n((args.first.as(Number)).round(:to_positive)).to_i64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cos","path":"Cosmo/MathLib/Cos.html","kind":"class","full_name":"Cosmo::MathLib::Cos","name":"Cos","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L217"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":218,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L218"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":222,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L222"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cos\"))\nx = args.first.as(Number)\n(Math.cos(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cosh","path":"Cosmo/MathLib/Cosh.html","kind":"class","full_name":"Cosmo::MathLib::Cosh","name":"Cosh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L309"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":310,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L310"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":314,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L314"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cosh\"))\nx = args.first.as(Number)\n(Math.cosh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Exp","path":"Cosmo/MathLib/Exp.html","kind":"class","full_name":"Cosmo::MathLib::Exp","name":"Exp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":153,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L153"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":154,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L154"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":158,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L158"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.exp(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Floor","path":"Cosmo/MathLib/Floor.html","kind":"class","full_name":"Cosmo::MathLib::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L34"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L35"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":39,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L39"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\n((args.first.as(Number)).round(:to_negative)).to_i64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Isqrt","path":"Cosmo/MathLib/Isqrt.html","kind":"class","full_name":"Cosmo::MathLib::Isqrt","name":"Isqrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":166,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L166"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L167"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":171,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L171"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"int\", args.first, token(\"isqrt\"))\nMath.isqrt(args.first.as(Int64))\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log","path":"Cosmo/MathLib/Log.html","kind":"class","full_name":"Cosmo::MathLib::Log","name":"Log","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":140,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L140"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":141,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L141"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L145"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log10","path":"Cosmo/MathLib/Log10.html","kind":"class","full_name":"Cosmo::MathLib::Log10","name":"Log10","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L127"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":128,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L128"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":132,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L132"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log10(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log2","path":"Cosmo/MathLib/Log2.html","kind":"class","full_name":"Cosmo::MathLib::Log2","name":"Log2","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":114,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L114"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L115"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":119,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L119"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log2(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Max","path":"Cosmo/MathLib/Max.html","kind":"class","full_name":"Cosmo::MathLib::Max","name":"Max","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":94,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L94"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":95,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L95"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L99"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nargs.each do |arg|\n TypeChecker.assert(\"float|int\", arg, token(\"max\"))\nend\nmax = args.first.as(Number)\nargs.shift\nargs.each do |arg|\n max = Math.max(arg.as(Number), max)\nend\nmax.as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Min","path":"Cosmo/MathLib/Min.html","kind":"class","full_name":"Cosmo::MathLib::Min","name":"Min","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L74"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":75,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L75"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L79"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nargs.each do |arg|\n TypeChecker.assert(\"float|int\", arg, token(\"min\"))\nend\nmin = args.first.as(Number)\nargs.shift\nargs.each do |arg|\n min = Math.min(arg.as(Number), min)\nend\nmin.as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Round","path":"Cosmo/MathLib/Round.html","kind":"class","full_name":"Cosmo::MathLib::Round","name":"Round","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":58,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L58"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L59"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..2.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L63"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"round\"))\nTypeChecker.assert(\"int\", args.last, token(\"round\"))\nn = args.first.as(Number)\nd = args.last.as(Int64)\n(n.round(d)).as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sin","path":"Cosmo/MathLib/Sin.html","kind":"class","full_name":"Cosmo::MathLib::Sin","name":"Sin","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":204,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L204"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":205,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L205"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":209,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L209"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sin\"))\nx = args.first.as(Number)\n(Math.sin(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sinh","path":"Cosmo/MathLib/Sinh.html","kind":"class","full_name":"Cosmo::MathLib::Sinh","name":"Sinh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L296"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":297,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L297"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":301,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L301"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sinh\"))\nx = args.first.as(Number)\n(Math.sinh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sqrt","path":"Cosmo/MathLib/Sqrt.html","kind":"class","full_name":"Cosmo::MathLib::Sqrt","name":"Sqrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L178"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":179,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L179"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L183"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sqrt\"))\nx = args.first.as(Number)\n(Math.sqrt(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Tan","path":"Cosmo/MathLib/Tan.html","kind":"class","full_name":"Cosmo::MathLib::Tan","name":"Tan","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L230"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":231,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L231"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L235"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"tan\"))\nx = args.first.as(Number)\n(Math.tan(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Tanh","path":"Cosmo/MathLib/Tanh.html","kind":"class","full_name":"Cosmo::MathLib::Tanh","name":"Tanh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":322,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L322"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":323,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L323"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":327,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L327"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"tanh\"))\nx = args.first.as(Number)\n(Math.tanh(x)).to_f64\n"}}]}]},{"html_id":"Cosmo/Cosmo/Operator","path":"Cosmo/Operator.html","kind":"module","full_name":"Cosmo::Operator","name":"Operator","abstract":false,"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/Operator/Band","path":"Cosmo/Operator/Band.html","kind":"class","full_name":"Cosmo::Operator::Band","name":"Band","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L235"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":236,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L236"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"&\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left & right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bnot","path":"Cosmo/Operator/Bnot.html","kind":"class","full_name":"Cosmo::Operator::Bnot","name":"Bnot","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":198,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L198"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::UnaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : ValueType","args_html":"(expr : Expression::UnaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":199,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L199"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"ValueType","visibility":"Public","body":"operand = @interpreter.evaluate(expr.operand)\nop = \"~\"\nif operand.is_a?(Int)\n return ~operand\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", operand.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bor","path":"Cosmo/Operator/Bor.html","kind":"class","full_name":"Cosmo::Operator::Bor","name":"Bor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":221,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L221"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":222,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L222"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"|\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left | right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bshl","path":"Cosmo/Operator/Bshl.html","kind":"class","full_name":"Cosmo::Operator::Bshl","name":"Bshl","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":263,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L263"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":264,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L264"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"<<\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left << right\n end\nelse\n if left.is_a?(Array)\n left = @interpreter.add_object_value(expr.operator, left, left.size, right)\n return @interpreter.scope.assign(expr.token, left)\n else\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bshr","path":"Cosmo/Operator/Bshr.html","kind":"class","full_name":"Cosmo::Operator::Bshr","name":"Bshr","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":249,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L249"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":250,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L250"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \">>\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left >> right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bxor","path":"Cosmo/Operator/Bxor.html","kind":"class","full_name":"Cosmo::Operator::Bxor","name":"Bxor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":207,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L207"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":208,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L208"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"~\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left ^ right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Div","path":"Cosmo/Operator/Div.html","kind":"class","full_name":"Cosmo::Operator::Div","name":"Div","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":72,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L72"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":73,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L73"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '/'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left / right\n end\n if right.is_a?(Int)\n return left / right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left / right\n end\n if right.is_a?(Float)\n return left.to_f / right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/DivAssign","path":"Cosmo/Operator/DivAssign.html","kind":"class","full_name":"Cosmo::Operator::DivAssign","name":"DivAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":342,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L342"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":343,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L343"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"var = @interpreter.scope.lookup(expr.name)\nvalue = @interpreter.evaluate(expr.value)\nop = \"/=\"\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var / value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var / value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var / value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var.to_f / value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/GT","path":"Cosmo/Operator/GT.html","kind":"class","full_name":"Cosmo::Operator::GT","name":"GT","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":162,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L162"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":163,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L163"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '>'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left > right\n end\n if right.is_a?(Int)\n return left > right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left > right\n end\n if right.is_a?(Float)\n return left.to_f > right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/GTE","path":"Cosmo/Operator/GTE.html","kind":"class","full_name":"Cosmo::Operator::GTE","name":"GTE","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":180,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L180"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":181,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L181"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \">=\"\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left >= right\n end\n if right.is_a?(Int)\n return left >= right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left >= right\n end\n if right.is_a?(Float)\n return left.to_f >= right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/LT","path":"Cosmo/Operator/LT.html","kind":"class","full_name":"Cosmo::Operator::LT","name":"LT","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":126,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L126"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L127"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '<'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left < right\n end\n if right.is_a?(Int)\n return left < right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left < right\n end\n if right.is_a?(Float)\n return left.to_f < right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/LTE","path":"Cosmo/Operator/LTE.html","kind":"class","full_name":"Cosmo::Operator::LTE","name":"LTE","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":144,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L144"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L145"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"<=\"\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left <= right\n end\n if right.is_a?(Int)\n return left <= right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left <= right\n end\n if right.is_a?(Float)\n return left.to_f <= right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Minus","path":"Cosmo/Operator/Minus.html","kind":"class","full_name":"Cosmo::Operator::Minus","name":"Minus","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L36"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":37,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L37"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '-'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left - right\n end\n if right.is_a?(Int)\n return left - right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left - right\n end\n if right.is_a?(Float)\n return left.to_f - right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/MinusAssign","path":"Cosmo/Operator/MinusAssign.html","kind":"class","full_name":"Cosmo::Operator::MinusAssign","name":"MinusAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":306,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L306"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment|Expression::UnaryOp,op:String=\"-=\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op","default_value":"\"-=\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = \"-=\") : ValueType","args_html":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = "-=") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":307,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L307"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op","default_value":"\"-=\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"name_token = expr.is_a?(Expression::CompoundAssignment) ? expr.name : expr.operand.token\nvar = @interpreter.scope.lookup(name_token)\nvalue = expr.is_a?(Expression::CompoundAssignment) ? @interpreter.evaluate(expr.value) : 1\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(name_token, var - value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(name_token, var - value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(name_token, var - value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(name_token, var.to_f - value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Mod","path":"Cosmo/Operator/Mod.html","kind":"class","full_name":"Cosmo::Operator::Mod","name":"Mod","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":108,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L108"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":109,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L109"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '%'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left % right\n end\n if right.is_a?(Int)\n return left % right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left % right\n end\n if right.is_a?(Float)\n return left.to_f % right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/ModAssign","path":"Cosmo/Operator/ModAssign.html","kind":"class","full_name":"Cosmo::Operator::ModAssign","name":"ModAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":378,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L378"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":379,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L379"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"var = @interpreter.scope.lookup(expr.name)\nvalue = @interpreter.evaluate(expr.value)\nop = \"%=\"\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var % value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var % value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var % value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var.to_f % value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Mul","path":"Cosmo/Operator/Mul.html","kind":"class","full_name":"Cosmo::Operator::Mul","name":"Mul","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L54"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":55,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L55"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '*'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left * right\n end\n if right.is_a?(Int)\n return left * right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left * right\n end\n if right.is_a?(Float)\n return left.to_f * right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/MulAssign","path":"Cosmo/Operator/MulAssign.html","kind":"class","full_name":"Cosmo::Operator::MulAssign","name":"MulAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":324,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L324"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":325,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L325"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"var = @interpreter.scope.lookup(expr.name)\nvalue = @interpreter.evaluate(expr.value)\nop = \"*=\"\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var * value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var * value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var * value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var.to_f * value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Plus","path":"Cosmo/Operator/Plus.html","kind":"class","full_name":"Cosmo::Operator::Plus","name":"Plus","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L10"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L11"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '+'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left + right\n end\n if right.is_a?(Int)\n return left + right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left + right\n end\n if right.is_a?(Float)\n return left.to_f + right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n else\n if left.is_a?(String)\n if right.is_a?(String)\n return left + right\n end\n if right.is_a?(Char)\n return left + right.to_s\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n else\n if left.is_a?(Char)\n if right.is_a?(Char)\n return left.to_s + right.to_s\n end\n if right.is_a?(String)\n return left.to_s + right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\n end\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/PlusAssign","path":"Cosmo/Operator/PlusAssign.html","kind":"class","full_name":"Cosmo::Operator::PlusAssign","name":"PlusAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":280,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L280"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment|Expression::UnaryOp,op:String=\"+=\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op","default_value":"\"+=\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = \"+=\") : ValueType","args_html":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = "+=") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":281,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L281"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op","default_value":"\"+=\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"name_token = expr.is_a?(Expression::CompoundAssignment) ? expr.name : expr.operand.token\nvar = @interpreter.scope.lookup(name_token)\nvalue = expr.is_a?(Expression::CompoundAssignment) ? @interpreter.evaluate(expr.value) : 1\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(name_token, var + value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(name_token, var + value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(name_token, var + value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(name_token, var.to_f + value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n else\n if var.is_a?(String)\n if value.is_a?(String)\n return @interpreter.scope.assign(name_token, var + value)\n end\n if value.is_a?(Char)\n return @interpreter.scope.assign(name_token, var + value.to_s)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n else\n if var.is_a?(Char)\n if value.is_a?(Char)\n return @interpreter.scope.assign(name_token, var.to_s + value.to_s)\n end\n if value.is_a?(String)\n return @interpreter.scope.assign(name_token, var.to_s + value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\n end\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Pow","path":"Cosmo/Operator/Pow.html","kind":"class","full_name":"Cosmo::Operator::Pow","name":"Pow","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":90,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L90"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":91,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L91"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '^'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left ** right\n end\n if right.is_a?(Int)\n return left ** right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left ** right\n end\n if right.is_a?(Float)\n return left.to_f ** right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/PowAssign","path":"Cosmo/Operator/PowAssign.html","kind":"class","full_name":"Cosmo::Operator::PowAssign","name":"PowAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":360,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L360"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L361"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"var = @interpreter.scope.lookup(expr.name)\nvalue = @interpreter.evaluate(expr.value)\nop = \"^=\"\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var ** value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var ** value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var ** value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var.to_f ** value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]}]},{"html_id":"Cosmo/Cosmo/Parser","path":"Cosmo/Parser.html","kind":"class","full_name":"Cosmo::Parser","name":"Parser","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(source:String,file_path:String,run_benchmarks:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"args_string":"(source : String, file_path : String, run_benchmarks : Bool)","args_html":"(source : String, file_path : String, run_benchmarks : Bool)","location":{"filename":"src/cosmo/syntax/parser.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser.cr#L8"},"def":{"name":"new","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(source, file_path, run_benchmarks)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"parse:Array(Statement::Base)-instance-method","name":"parse","doc":"Entry point","summary":"

                            Entry point

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser.cr#L16"},"def":{"name":"parse","return_type":"Array(Statement::Base)","visibility":"Public","body":"start_time = Time.monotonic\nstatements = [] of Statement::Base\nwhile !finished?\n stmt = parse_statement\n statements << stmt\nend\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Parser @#{@file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\nstatements\n"}}]},{"html_id":"Cosmo/Cosmo/PutsIntrinsic","path":"Cosmo/PutsIntrinsic.html","kind":"class","full_name":"Cosmo::PutsIntrinsic","name":"PutsIntrinsic","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L31"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L32"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Nil-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Nil","args_html":"(args : Array(ValueType)) : Nil","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L36"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Nil","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"void\")\nputs(args.map do |arg|\n arg.nil? ? \"none\" : arg.to_s\nend.join('\\t'))\n"}}]},{"html_id":"Cosmo/Cosmo/Resolver","path":"Cosmo/Resolver.html","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/resolver.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L6"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"args_string":"(interpreter : Interpreter)","args_html":"(interpreter : Interpreter)","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L14"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"resolve(statements:Expression::Base|Statement::Base|Array(Statement::Base)):Nil-instance-method","name":"resolve","abstract":false,"args":[{"name":"statements","external_name":"statements","restriction":"Expression::Base | Statement::Base | Array(Statement::Base)"}],"args_string":"(statements : Expression::Base | Statement::Base | Array(Statement::Base)) : Nil","args_html":"(statements : Expression::Base | Statement::Base | Array(Statement::Base)) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L18"},"def":{"name":"resolve","args":[{"name":"statements","external_name":"statements","restriction":"Expression::Base | Statement::Base | Array(Statement::Base)"}],"return_type":"Nil","visibility":"Public","body":"if statements.is_a?(Array)\n statements.each do |stmt|\n resolve(stmt)\n end\nelse\n statements.accept(self)\nend"}},{"html_id":"start_time:Time::Span-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L12"},"def":{"name":"start_time","return_type":"Time::Span","visibility":"Public","body":"@start_time"}},{"html_id":"visit_access_expr(expr:Expression::Access):Nil-instance-method","name":"visit_access_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"args_string":"(expr : Expression::Access) : Nil","args_html":"(expr : Expression::Access) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":186,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L186"},"def":{"name":"visit_access_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.object)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_binary_op_expr(expr:Expression::BinaryOp):Nil-instance-method","name":"visit_binary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : Nil","args_html":"(expr : Expression::BinaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":207,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L207"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.left)\nresolve(expr.right)\n"}},{"html_id":"visit_block_stmt(stmt:Statement::Block):Nil-instance-method","name":"visit_block_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"args_string":"(stmt : Statement::Block) : Nil","args_html":"(stmt : Statement::Block) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L76"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"return_type":"Nil","visibility":"Public","body":"begin_scope\nresolve(stmt.nodes)\nend_scope\n"}},{"html_id":"visit_break_stmt(stmt:Statement::Break):Nil-instance-method","name":"visit_break_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"args_string":"(stmt : Statement::Break) : Nil","args_html":"(stmt : Statement::Break) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":247,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L247"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_case_stmt(stmt:Statement::Case):Nil-instance-method","name":"visit_case_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"args_string":"(stmt : Statement::Case) : Nil","args_html":"(stmt : Statement::Case) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":92,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L92"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.value)\nstmt.comparisons.each do |comparison|\n comparison.conditions.each do |condition_expr|\n resolve(condition_expr)\n end\n resolve(comparison.block)\nend\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_class_def_stmt(stmt:Statement::ClassDef):Nil-instance-method","name":"visit_class_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"args_string":"(stmt : Statement::ClassDef) : Nil","args_html":"(stmt : Statement::ClassDef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L130"},"def":{"name":"visit_class_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"return_type":"Nil","visibility":"Public","body":"declare(stmt.identifier)\ndefine(stmt.identifier)\nif stmt.superclass.nil?\nelse\n resolve(stmt.superclass.not_nil!)\nend\nstmt.mixins.each do |mixin|\n resolve(mixin)\nend\nresolve(stmt.body)\n"}},{"html_id":"visit_compound_assignment_expr(expr:Expression::CompoundAssignment):Nil-instance-method","name":"visit_compound_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : Nil","args_html":"(expr : Expression::CompoundAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L196"},"def":{"name":"visit_compound_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve_local(expr, expr.name)\n"}},{"html_id":"visit_every_stmt(stmt:Statement::Every):Nil-instance-method","name":"visit_every_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"args_string":"(stmt : Statement::Every) : Nil","args_html":"(stmt : Statement::Every) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":82,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L82"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.var)\nresolve(stmt.enumerable)\nresolve(stmt.block)\n"}},{"html_id":"visit_fn_call_expr(expr:Expression::FunctionCall):Nil-instance-method","name":"visit_fn_call_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"args_string":"(expr : Expression::FunctionCall) : Nil","args_html":"(expr : Expression::FunctionCall) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":181,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L181"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.callee)\nexpr.arguments.each do |arg|\n resolve(arg)\nend\n"}},{"html_id":"visit_fn_def_stmt(stmt:Statement::FunctionDef):Nil-instance-method","name":"visit_fn_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"args_string":"(stmt : Statement::FunctionDef) : Nil","args_html":"(stmt : Statement::FunctionDef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L138"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"return_type":"Nil","visibility":"Public","body":"declare(stmt.identifier)\ndefine(stmt.identifier)\nresolve_fn(stmt, FnType::Fn)\n"}},{"html_id":"visit_if_stmt(stmt:Statement::If):Nil-instance-method","name":"visit_if_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"args_string":"(stmt : Statement::If) : Nil","args_html":"(stmt : Statement::If) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L103"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.then)\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_index_expr(expr:Expression::Index):Nil-instance-method","name":"visit_index_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"args_string":"(expr : Expression::Index) : Nil","args_html":"(expr : Expression::Index) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L191"},"def":{"name":"visit_index_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.key)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_is_expr(expr:Expression::Is):Nil-instance-method","name":"visit_is_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"args_string":"(expr : Expression::Is) : Nil","args_html":"(expr : Expression::Is) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L170"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve(expr.type)\n"}},{"html_id":"visit_literal_expr(expr:Expression::Literal):Nil-instance-method","name":"visit_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"args_string":"(expr : Expression::Literal) : Nil","args_html":"(expr : Expression::Literal) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L243"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_next_stmt(stmt:Statement::Next):Nil-instance-method","name":"visit_next_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"args_string":"(stmt : Statement::Next) : Nil","args_html":"(stmt : Statement::Next) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":251,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L251"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_property_assignment_expr(expr:Expression::PropertyAssignment):Nil-instance-method","name":"visit_property_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"args_string":"(expr : Expression::PropertyAssignment) : Nil","args_html":"(expr : Expression::PropertyAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L165"},"def":{"name":"visit_property_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.object)\nif expr.value.is_a?(Expression::Base)\n resolve(expr.value.as(Expression::Base))\nend\n"}},{"html_id":"visit_range_literal_expr(expr:Expression::RangeLiteral):Nil-instance-method","name":"visit_range_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"args_string":"(expr : Expression::RangeLiteral) : Nil","args_html":"(expr : Expression::RangeLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L230"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.from)\nresolve(expr.to)\n"}},{"html_id":"visit_return_stmt(stmt:Statement::Return):Nil-instance-method","name":"visit_return_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"args_string":"(stmt : Statement::Return) : Nil","args_html":"(stmt : Statement::Return) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L123"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"return_type":"Nil","visibility":"Public","body":"if @current_fn == FnType::None\n Logger.report_error(\"Invalid return\", \"A 'return' statement can only be used within a method body.\", stmt.keyword)\nend\nif stmt.value.nil?\nelse\n resolve(stmt.value)\nend\n"}},{"html_id":"visit_single_expr_stmt(stmt:Statement::SingleExpression):Nil-instance-method","name":"visit_single_expr_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"args_string":"(stmt : Statement::SingleExpression) : Nil","args_html":"(stmt : Statement::SingleExpression) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":88,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L88"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.expression)"}},{"html_id":"visit_table_literal_expr(expr:Expression::TableLiteral):Nil-instance-method","name":"visit_table_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"args_string":"(expr : Expression::TableLiteral) : Nil","args_html":"(expr : Expression::TableLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L235"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_ternary_op_expr(expr:Expression::TernaryOp):Nil-instance-method","name":"visit_ternary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"args_string":"(expr : Expression::TernaryOp) : Nil","args_html":"(expr : Expression::TernaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":201,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L201"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.condition)\nresolve(expr.then)\nresolve(expr.else)\n"}},{"html_id":"visit_throw_stmt(stmt:Statement::Throw):Nil-instance-method","name":"visit_throw_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"args_string":"(stmt : Statement::Throw) : Nil","args_html":"(stmt : Statement::Throw) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":119,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L119"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"return_type":"Nil","visibility":"Public","body":"if stmt.err.nil?\nelse\n resolve(stmt.err)\nend"}},{"html_id":"visit_type_alias_expr(expr:Expression::TypeAlias):Nil-instance-method","name":"visit_type_alias_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"args_string":"(expr : Expression::TypeAlias) : Nil","args_html":"(expr : Expression::TypeAlias) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":175,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L175"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"return_type":"Nil","visibility":"Public","body":"declare(expr.token)\nif expr.value.nil?\nelse\n resolve(expr.value.not_nil!)\nend\ndefine(expr.token)\n"}},{"html_id":"visit_type_ref_expr(expr:Expression::TypeRef):Nil-instance-method","name":"visit_type_ref_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"args_string":"(expr : Expression::TypeRef) : Nil","args_html":"(expr : Expression::TypeRef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":223,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L223"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"return_type":"Nil","visibility":"Public","body":"if ((!@scopes.empty?) && (!@scopes.last.nil?)) && (@scopes.last[expr.token.lexeme]? == false)\n Logger.report_error(\"Failed to assign '#{expr.token.lexeme}'\", \"Cannot read variable in it's own initializer\", expr.token)\nend\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_unary_op_expr(expr:Expression::UnaryOp):Nil-instance-method","name":"visit_unary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : Nil","args_html":"(expr : Expression::UnaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":212,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L212"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.operand)"}},{"html_id":"visit_unless_stmt(stmt:Statement::Unless):Nil-instance-method","name":"visit_unless_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"args_string":"(stmt : Statement::Unless) : Nil","args_html":"(stmt : Statement::Unless) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":109,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L109"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.then)\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_until_stmt(stmt:Statement::Until):Nil-instance-method","name":"visit_until_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"args_string":"(stmt : Statement::Until) : Nil","args_html":"(stmt : Statement::Until) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":149,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L149"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.block)\n"}},{"html_id":"visit_use_stmt(stmt:Statement::Use):Nil-instance-method","name":"visit_use_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"args_string":"(stmt : Statement::Use) : Nil","args_html":"(stmt : Statement::Use) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L115"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_var_assignment_expr(expr:Expression::VarAssignment):Nil-instance-method","name":"visit_var_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"args_string":"(expr : Expression::VarAssignment) : Nil","args_html":"(expr : Expression::VarAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":160,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L160"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_var_declaration_expr(expr:Expression::VarDeclaration):Nil-instance-method","name":"visit_var_declaration_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"args_string":"(expr : Expression::VarDeclaration) : Nil","args_html":"(expr : Expression::VarDeclaration) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":154,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L154"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"return_type":"Nil","visibility":"Public","body":"declare(expr.token)\nresolve(expr.value)\ndefine(expr.token)\n"}},{"html_id":"visit_var_expr(expr:Expression::Var):Nil-instance-method","name":"visit_var_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"args_string":"(expr : Expression::Var) : Nil","args_html":"(expr : Expression::Var) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L216"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"return_type":"Nil","visibility":"Public","body":"if ((!@scopes.empty?) && (!@scopes.last.nil?)) && (@scopes.last[expr.token.lexeme]? == false)\n Logger.report_error(\"Failed to assign '#{expr.token.lexeme}'\", \"Cannot read variable in it's own initializer\", expr.token)\nend\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_vector_literal_expr(expr:Expression::VectorLiteral):Nil-instance-method","name":"visit_vector_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"args_string":"(expr : Expression::VectorLiteral) : Nil","args_html":"(expr : Expression::VectorLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":239,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L239"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_while_stmt(stmt:Statement::While):Nil-instance-method","name":"visit_while_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"args_string":"(stmt : Statement::While) : Nil","args_html":"(stmt : Statement::While) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":144,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L144"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.block)\n"}}]},{"html_id":"Cosmo/Cosmo/Scope","path":"Cosmo/Scope.html","kind":"class","full_name":"Cosmo::Scope","name":"Scope","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/scope.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(parent:Nil|Cosmo::Scope=nil)-class-method","name":"new","abstract":false,"args":[{"name":"parent","default_value":"nil","external_name":"parent","restriction":"::Nil | ::Cosmo::Scope"}],"args_string":"(parent : Nil | Cosmo::Scope = nil)","args_html":"(parent : Nil | Cosmo::Scope = nil)","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L15"},"def":{"name":"new","args":[{"name":"parent","default_value":"nil","external_name":"parent","restriction":"::Nil | ::Cosmo::Scope"}],"visibility":"Public","body":"_ = allocate\n_.initialize(parent)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"assign(identifier:Token,value:ValueType):ValueType-instance-method","name":"assign","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(identifier : Token, value : ValueType) : ValueType","args_html":"(identifier : Token, value : ValueType) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L56"},"def":{"name":"assign","args":[{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"}],"return_type":"ValueType","visibility":"Public","body":"if @variables.has_key?(identifier.lexeme)\n var : Variable = @variables[identifier.lexeme]\n if var[:constant]\n Logger.report_error(\"Attempt to assign to constant variable\", identifier.lexeme, identifier)\n end\n TypeChecker.assert(var[:type], value, identifier)\n return create_variable(var[:type], identifier, value, constant: false, visibility: var[:visibility])\nend\nif @parent.nil?\nelse\n return @parent.not_nil!.assign(identifier, value)\nend\nLogger.report_error(\"Attempt to assign to undefined variable\", identifier.lexeme, identifier)\n"}},{"html_id":"declare(typedef:Token,identifier:Token,value:ValueType,const:Bool=false,visibility:Visibility=Visibility::Private):ValueType-instance-method","name":"declare","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"Token"},{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"const","default_value":"false","external_name":"const","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Private","external_name":"visibility","restriction":"Visibility"}],"args_string":"(typedef : Token, identifier : Token, value : ValueType, const : Bool = false, visibility : Visibility = Visibility::Private) : ValueType","args_html":"(typedef : Token, identifier : Token, value : ValueType, const : Bool = false, visibility : Visibility = Visibility::Private) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":44,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L44"},"def":{"name":"declare","args":[{"name":"typedef","external_name":"typedef","restriction":"Token"},{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"const","default_value":"false","external_name":"const","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Private","external_name":"visibility","restriction":"Visibility"}],"return_type":"ValueType","visibility":"Public","body":"if value.nil?\nelse\n TypeChecker.assert(typedef.lexeme, value, typedef)\nend\ncreate_variable(typedef, identifier, value, const, visibility)\n"}},{"html_id":"extend(other:Cosmo::Scope):Cosmo::Scope-instance-method","name":"extend","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Cosmo::Scope"}],"args_string":"(other : Cosmo::Scope) : Cosmo::Scope","args_html":"(other : Cosmo::Scope) : Cosmo::Scope","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L18"},"def":{"name":"extend","args":[{"name":"other","external_name":"other","restriction":"Cosmo::Scope"}],"return_type":"Cosmo::Scope","visibility":"Public","body":"other.variables.each do |name, data|\n if data[:visibility] == Visibility::Public\n @variables[name] = data\n end\nend\nself\n"}},{"html_id":"lookup(token:Token):ValueType-instance-method","name":"lookup","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token) : ValueType","args_html":"(token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":93,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L93"},"def":{"name":"lookup","args":[{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"value = lookup?(token)\nif value.nil?\n if value.nil? && @parent.nil?\n Logger.report_error(\"Undefined variable\", token.value.to_s, token)\n end\nend\nvalue\n"}},{"html_id":"lookup?(token:Token):ValueType-instance-method","name":"lookup?","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token) : ValueType","args_html":"(token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L77"},"def":{"name":"lookup?","args":[{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"ident = token.lexeme\nif @variables.has_key?(ident)\n var = @variables[ident]\n typedef = var[:type]\n return var[:value]\nelse\n if @parent.nil?\n else\n parent = @parent.not_nil!\n value = parent.lookup(token)\n return value\n end\nend\nnil\n"}},{"html_id":"lookup_at(distance:UInt32,token:Token):ValueType-instance-method","name":"lookup_at","abstract":false,"args":[{"name":"distance","external_name":"distance","restriction":"UInt32"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(distance : UInt32, token : Token) : ValueType","args_html":"(distance : UInt32, token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L101"},"def":{"name":"lookup_at","args":[{"name":"distance","external_name":"distance","restriction":"UInt32"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"var = (ancestor(distance)).variables[token.value.to_s]?\nvar.value\n"}},{"html_id":"parent:Cosmo::Scope|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L12"},"def":{"name":"parent","return_type":"Cosmo::Scope | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"parent=(parent:Cosmo::Scope|Nil)-instance-method","name":"parent=","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"Cosmo::Scope | ::Nil"}],"args_string":"(parent : Cosmo::Scope | Nil)","args_html":"(parent : Cosmo::Scope | Nil)","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L12"},"def":{"name":"parent=","args":[{"name":"parent","external_name":"parent","restriction":"Cosmo::Scope | ::Nil"}],"visibility":"Public","body":"@parent = parent"}},{"html_id":"public?(token:Token):Bool-instance-method","name":"public?","doc":"Returns true if the variable exists and is public, otherwise false","summary":"

                            Returns true if the variable exists and is public, otherwise false

                            ","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token) : Bool","args_html":"(token : Token) : Bool","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":71,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L71"},"def":{"name":"public?","args":[{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Bool","visibility":"Public","body":"ident = token.lexeme\nif @variables.has_key?(ident)\nelse\n return false\nend\n@variables[ident][:visibility] == Visibility::Public\n"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":114,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L114"},"def":{"name":"to_s","visibility":"Public","body":"\"Scope<#{@parent ? (\"parent: \" + @parent.to_s) + \", \" : \"\"}#{@variables}>\""}},{"html_id":"variables:Hash(String,{type:String,value:Cosmo::ValueType,constant:Bool,visibility:Cosmo::AST::Visibility})-instance-method","name":"variables","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L13"},"def":{"name":"variables","visibility":"Public","body":"@variables"}},{"html_id":"variables=(variables:Hash(String,NamedTuple(type:String,value:Cosmo::ValueType,constant:Bool,visibility:Cosmo::AST::Visibility)))-instance-method","name":"variables=","abstract":false,"args":[{"name":"variables","external_name":"variables","restriction":"::Hash(::String, ::NamedTuple(type: ::String, value: ::Cosmo::ValueType, constant: ::Bool, visibility: ::Cosmo::AST::Visibility))"}],"args_string":"(variables : Hash(String, NamedTuple(type: String, value: Cosmo::ValueType, constant: Bool, visibility: Cosmo::AST::Visibility)))","args_html":"(variables : Hash(String, NamedTuple(type: String, value: Cosmo::ValueType, constant: Bool, visibility: Cosmo::AST::Visibility)))","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L13"},"def":{"name":"variables=","args":[{"name":"variables","external_name":"variables","restriction":"::Hash(::String, ::NamedTuple(type: ::String, value: ::Cosmo::ValueType, constant: ::Bool, visibility: ::Cosmo::AST::Visibility))"}],"visibility":"Public","body":"@variables = variables"}}]},{"html_id":"Cosmo/Cosmo/Syntax","path":"Cosmo/Syntax.html","kind":"enum","full_name":"Cosmo::Syntax","name":"Syntax","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Identifier","name":"Identifier","value":"0"},{"id":"Integer","name":"Integer","value":"1"},{"id":"Float","name":"Float","value":"2"},{"id":"String","name":"String","value":"3"},{"id":"Char","name":"Char","value":"4"},{"id":"Boolean","name":"Boolean","value":"5"},{"id":"None","name":"None","value":"6"},{"id":"TypeDef","name":"TypeDef","value":"7"},{"id":"Public","name":"Public","value":"8"},{"id":"ClassVisibility","name":"ClassVisibility","value":"9"},{"id":"PlusPlus","name":"PlusPlus","value":"10"},{"id":"MinusMinus","name":"MinusMinus","value":"11"},{"id":"Plus","name":"Plus","value":"12"},{"id":"PlusEqual","name":"PlusEqual","value":"13"},{"id":"Minus","name":"Minus","value":"14"},{"id":"MinusEqual","name":"MinusEqual","value":"15"},{"id":"Star","name":"Star","value":"16"},{"id":"StarEqual","name":"StarEqual","value":"17"},{"id":"Slash","name":"Slash","value":"18"},{"id":"SlashEqual","name":"SlashEqual","value":"19"},{"id":"Carat","name":"Carat","value":"20"},{"id":"CaratEqual","name":"CaratEqual","value":"21"},{"id":"Percent","name":"Percent","value":"22"},{"id":"PercentEqual","name":"PercentEqual","value":"23"},{"id":"Less","name":"Less","value":"24"},{"id":"LessEqual","name":"LessEqual","value":"25"},{"id":"Greater","name":"Greater","value":"26"},{"id":"GreaterEqual","name":"GreaterEqual","value":"27"},{"id":"Equal","name":"Equal","value":"28"},{"id":"EqualEqual","name":"EqualEqual","value":"29"},{"id":"Bang","name":"Bang","value":"30"},{"id":"BangEqual","name":"BangEqual","value":"31"},{"id":"Ampersand","name":"Ampersand","value":"32"},{"id":"Pipe","name":"Pipe","value":"33"},{"id":"Tilde","name":"Tilde","value":"34"},{"id":"RDoubleArrow","name":"RDoubleArrow","value":"35"},{"id":"LDoubleArrow","name":"LDoubleArrow","value":"36"},{"id":"ColonAmpersand","name":"ColonAmpersand","value":"37"},{"id":"ColonPipe","name":"ColonPipe","value":"38"},{"id":"Question","name":"Question","value":"39"},{"id":"ColonColon","name":"ColonColon","value":"40"},{"id":"Colon","name":"Colon","value":"41"},{"id":"Dot","name":"Dot","value":"42"},{"id":"DotDot","name":"DotDot","value":"43"},{"id":"HyphenArrow","name":"HyphenArrow","value":"44"},{"id":"FatArrow","name":"FatArrow","value":"45"},{"id":"This","name":"This","value":"46"},{"id":"LBrace","name":"LBrace","value":"47"},{"id":"RBrace","name":"RBrace","value":"48"},{"id":"DoubleLBrace","name":"DoubleLBrace","value":"49"},{"id":"DoubleRBrace","name":"DoubleRBrace","value":"50"},{"id":"LBracket","name":"LBracket","value":"51"},{"id":"RBracket","name":"RBracket","value":"52"},{"id":"LParen","name":"LParen","value":"53"},{"id":"RParen","name":"RParen","value":"54"},{"id":"Comma","name":"Comma","value":"55"},{"id":"Hashtag","name":"Hashtag","value":"56"},{"id":"Class","name":"Class","value":"57"},{"id":"Mixin","name":"Mixin","value":"58"},{"id":"New","name":"New","value":"59"},{"id":"Function","name":"Function","value":"60"},{"id":"If","name":"If","value":"61"},{"id":"Unless","name":"Unless","value":"62"},{"id":"In","name":"In","value":"63"},{"id":"Of","name":"Of","value":"64"},{"id":"Is","name":"Is","value":"65"},{"id":"Else","name":"Else","value":"66"},{"id":"Every","name":"Every","value":"67"},{"id":"While","name":"While","value":"68"},{"id":"Until","name":"Until","value":"69"},{"id":"Const","name":"Const","value":"70"},{"id":"Throw","name":"Throw","value":"71"},{"id":"Break","name":"Break","value":"72"},{"id":"Next","name":"Next","value":"73"},{"id":"Case","name":"Case","value":"74"},{"id":"When","name":"When","value":"75"},{"id":"Return","name":"Return","value":"76"},{"id":"Use","name":"Use","value":"77"},{"id":"EOF","name":"EOF","value":"78"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"ampersand?-instance-method","name":"ampersand?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"ampersand?","visibility":"Public","body":"self == Ampersand"}},{"html_id":"bang?-instance-method","name":"bang?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"bang?","visibility":"Public","body":"self == Bang"}},{"html_id":"bang_equal?-instance-method","name":"bang_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"bang_equal?","visibility":"Public","body":"self == BangEqual"}},{"html_id":"boolean?-instance-method","name":"boolean?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"boolean?","visibility":"Public","body":"self == Boolean"}},{"html_id":"break?-instance-method","name":"break?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L29"},"def":{"name":"break?","visibility":"Public","body":"self == Break"}},{"html_id":"carat?-instance-method","name":"carat?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"carat?","visibility":"Public","body":"self == Carat"}},{"html_id":"carat_equal?-instance-method","name":"carat_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"carat_equal?","visibility":"Public","body":"self == CaratEqual"}},{"html_id":"case?-instance-method","name":"case?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L31"},"def":{"name":"case?","visibility":"Public","body":"self == Case"}},{"html_id":"char?-instance-method","name":"char?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"char?","visibility":"Public","body":"self == Char"}},{"html_id":"class?-instance-method","name":"class?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L19"},"def":{"name":"class?","visibility":"Public","body":"self == Class"}},{"html_id":"class_visibility?-instance-method","name":"class_visibility?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"class_visibility?","visibility":"Public","body":"self == ClassVisibility"}},{"html_id":"colon?-instance-method","name":"colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"colon?","visibility":"Public","body":"self == Colon"}},{"html_id":"colon_ampersand?-instance-method","name":"colon_ampersand?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"colon_ampersand?","visibility":"Public","body":"self == ColonAmpersand"}},{"html_id":"colon_colon?-instance-method","name":"colon_colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"colon_colon?","visibility":"Public","body":"self == ColonColon"}},{"html_id":"colon_pipe?-instance-method","name":"colon_pipe?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"colon_pipe?","visibility":"Public","body":"self == ColonPipe"}},{"html_id":"comma?-instance-method","name":"comma?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"comma?","visibility":"Public","body":"self == Comma"}},{"html_id":"const?-instance-method","name":"const?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L27"},"def":{"name":"const?","visibility":"Public","body":"self == Const"}},{"html_id":"dot?-instance-method","name":"dot?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"dot?","visibility":"Public","body":"self == Dot"}},{"html_id":"dot_dot?-instance-method","name":"dot_dot?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"dot_dot?","visibility":"Public","body":"self == DotDot"}},{"html_id":"double_l_brace?-instance-method","name":"double_l_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"double_l_brace?","visibility":"Public","body":"self == DoubleLBrace"}},{"html_id":"double_r_brace?-instance-method","name":"double_r_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"double_r_brace?","visibility":"Public","body":"self == DoubleRBrace"}},{"html_id":"else?-instance-method","name":"else?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L24"},"def":{"name":"else?","visibility":"Public","body":"self == Else"}},{"html_id":"eof?-instance-method","name":"eof?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L35"},"def":{"name":"eof?","visibility":"Public","body":"self == EOF"}},{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"equal_equal?-instance-method","name":"equal_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"equal_equal?","visibility":"Public","body":"self == EqualEqual"}},{"html_id":"every?-instance-method","name":"every?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L25"},"def":{"name":"every?","visibility":"Public","body":"self == Every"}},{"html_id":"fat_arrow?-instance-method","name":"fat_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L14"},"def":{"name":"fat_arrow?","visibility":"Public","body":"self == FatArrow"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"function?-instance-method","name":"function?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L20"},"def":{"name":"function?","visibility":"Public","body":"self == Function"}},{"html_id":"greater?-instance-method","name":"greater?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"greater?","visibility":"Public","body":"self == Greater"}},{"html_id":"greater_equal?-instance-method","name":"greater_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"greater_equal?","visibility":"Public","body":"self == GreaterEqual"}},{"html_id":"hashtag?-instance-method","name":"hashtag?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"hashtag?","visibility":"Public","body":"self == Hashtag"}},{"html_id":"hyphen_arrow?-instance-method","name":"hyphen_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"hyphen_arrow?","visibility":"Public","body":"self == HyphenArrow"}},{"html_id":"identifier?-instance-method","name":"identifier?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L2"},"def":{"name":"identifier?","visibility":"Public","body":"self == Identifier"}},{"html_id":"if?-instance-method","name":"if?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"if?","visibility":"Public","body":"self == If"}},{"html_id":"in?-instance-method","name":"in?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L22"},"def":{"name":"in?","visibility":"Public","body":"self == In"}},{"html_id":"integer?-instance-method","name":"integer?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"integer?","visibility":"Public","body":"self == Integer"}},{"html_id":"is?-instance-method","name":"is?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L23"},"def":{"name":"is?","visibility":"Public","body":"self == Is"}},{"html_id":"l_brace?-instance-method","name":"l_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"l_brace?","visibility":"Public","body":"self == LBrace"}},{"html_id":"l_bracket?-instance-method","name":"l_bracket?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"l_bracket?","visibility":"Public","body":"self == LBracket"}},{"html_id":"l_double_arrow?-instance-method","name":"l_double_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"l_double_arrow?","visibility":"Public","body":"self == LDoubleArrow"}},{"html_id":"l_paren?-instance-method","name":"l_paren?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"l_paren?","visibility":"Public","body":"self == LParen"}},{"html_id":"less?-instance-method","name":"less?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"less?","visibility":"Public","body":"self == Less"}},{"html_id":"less_equal?-instance-method","name":"less_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"less_equal?","visibility":"Public","body":"self == LessEqual"}},{"html_id":"minus?-instance-method","name":"minus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"minus?","visibility":"Public","body":"self == Minus"}},{"html_id":"minus_equal?-instance-method","name":"minus_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"minus_equal?","visibility":"Public","body":"self == MinusEqual"}},{"html_id":"minus_minus?-instance-method","name":"minus_minus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L5"},"def":{"name":"minus_minus?","visibility":"Public","body":"self == MinusMinus"}},{"html_id":"mixin?-instance-method","name":"mixin?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L19"},"def":{"name":"mixin?","visibility":"Public","body":"self == Mixin"}},{"html_id":"new?-instance-method","name":"new?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L19"},"def":{"name":"new?","visibility":"Public","body":"self == New"}},{"html_id":"next?-instance-method","name":"next?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L30"},"def":{"name":"next?","visibility":"Public","body":"self == Next"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"of?-instance-method","name":"of?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L22"},"def":{"name":"of?","visibility":"Public","body":"self == Of"}},{"html_id":"percent?-instance-method","name":"percent?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"percent?","visibility":"Public","body":"self == Percent"}},{"html_id":"percent_equal?-instance-method","name":"percent_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"percent_equal?","visibility":"Public","body":"self == PercentEqual"}},{"html_id":"pipe?-instance-method","name":"pipe?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"pipe?","visibility":"Public","body":"self == Pipe"}},{"html_id":"plus?-instance-method","name":"plus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"plus?","visibility":"Public","body":"self == Plus"}},{"html_id":"plus_equal?-instance-method","name":"plus_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"plus_equal?","visibility":"Public","body":"self == PlusEqual"}},{"html_id":"plus_plus?-instance-method","name":"plus_plus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L5"},"def":{"name":"plus_plus?","visibility":"Public","body":"self == PlusPlus"}},{"html_id":"public?-instance-method","name":"public?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"public?","visibility":"Public","body":"self == Public"}},{"html_id":"question?-instance-method","name":"question?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"question?","visibility":"Public","body":"self == Question"}},{"html_id":"r_brace?-instance-method","name":"r_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"r_brace?","visibility":"Public","body":"self == RBrace"}},{"html_id":"r_bracket?-instance-method","name":"r_bracket?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"r_bracket?","visibility":"Public","body":"self == RBracket"}},{"html_id":"r_double_arrow?-instance-method","name":"r_double_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"r_double_arrow?","visibility":"Public","body":"self == RDoubleArrow"}},{"html_id":"r_paren?-instance-method","name":"r_paren?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"r_paren?","visibility":"Public","body":"self == RParen"}},{"html_id":"return?-instance-method","name":"return?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":33,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L33"},"def":{"name":"return?","visibility":"Public","body":"self == Return"}},{"html_id":"slash?-instance-method","name":"slash?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"slash?","visibility":"Public","body":"self == Slash"}},{"html_id":"slash_equal?-instance-method","name":"slash_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"slash_equal?","visibility":"Public","body":"self == SlashEqual"}},{"html_id":"star?-instance-method","name":"star?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"star?","visibility":"Public","body":"self == Star"}},{"html_id":"star_equal?-instance-method","name":"star_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"star_equal?","visibility":"Public","body":"self == StarEqual"}},{"html_id":"string?-instance-method","name":"string?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"string?","visibility":"Public","body":"self == String"}},{"html_id":"this?-instance-method","name":"this?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L14"},"def":{"name":"this?","visibility":"Public","body":"self == This"}},{"html_id":"throw?-instance-method","name":"throw?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L28"},"def":{"name":"throw?","visibility":"Public","body":"self == Throw"}},{"html_id":"tilde?-instance-method","name":"tilde?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"tilde?","visibility":"Public","body":"self == Tilde"}},{"html_id":"type_def?-instance-method","name":"type_def?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"type_def?","visibility":"Public","body":"self == TypeDef"}},{"html_id":"unless?-instance-method","name":"unless?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"unless?","visibility":"Public","body":"self == Unless"}},{"html_id":"until?-instance-method","name":"until?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L26"},"def":{"name":"until?","visibility":"Public","body":"self == Until"}},{"html_id":"use?-instance-method","name":"use?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L34"},"def":{"name":"use?","visibility":"Public","body":"self == Use"}},{"html_id":"when?-instance-method","name":"when?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L32"},"def":{"name":"when?","visibility":"Public","body":"self == When"}},{"html_id":"while?-instance-method","name":"while?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L26"},"def":{"name":"while?","visibility":"Public","body":"self == While"}}]},{"html_id":"Cosmo/Cosmo/Token","path":"Cosmo/Token.html","kind":"struct","full_name":"Cosmo::Token","name":"Token","abstract":false,"superclass":{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(lexeme:String,type:Cosmo::Syntax,value:Bool|Char|Float32|Float64|Int128|Int16|Int32|Int64|Int8|String|Nil,location:Cosmo::Location)-class-method","name":"new","abstract":false,"args":[{"name":"lexeme","external_name":"lexeme","restriction":"::String"},{"name":"type","external_name":"type","restriction":"::Cosmo::Syntax"},{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"location","external_name":"location","restriction":"::Cosmo::Location"}],"args_string":"(lexeme : String, type : Cosmo::Syntax, value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, location : Cosmo::Location)","args_html":"(lexeme : String, type : Cosmo::Syntax, value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, location : Cosmo::Location)","location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L10"},"def":{"name":"new","args":[{"name":"lexeme","external_name":"lexeme","restriction":"::String"},{"name":"type","external_name":"type","restriction":"::Cosmo::Syntax"},{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"location","external_name":"location","restriction":"::Cosmo::Location"}],"visibility":"Public","body":"_ = allocate\n_.initialize(lexeme, type, value, location)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"lexeme:String-instance-method","name":"lexeme","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L8"},"def":{"name":"lexeme","return_type":"String","visibility":"Public","body":"@lexeme"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L30"},"def":{"name":"to_s","visibility":"Public","body":"\"Token\""}},{"html_id":"type:Syntax-instance-method","name":"type","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L5"},"def":{"name":"type","return_type":"Syntax","visibility":"Public","body":"@type"}},{"html_id":"value:LiteralType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L6"},"def":{"name":"value","return_type":"LiteralType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/Type","path":"Cosmo/Type.html","kind":"class","full_name":"Cosmo::Type","name":"Type","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/type.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/type.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(name:String)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cosmo/runtime/type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/type.cr#L4"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/runtime/type.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/type.cr#L2"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/type.cr#L7"},"def":{"name":"to_s","visibility":"Public","body":"\"Type<#{name}>\""}}]},{"html_id":"Cosmo/Cosmo/TypeChecker","path":"Cosmo/TypeChecker.html","kind":"module","full_name":"Cosmo::TypeChecker","name":"TypeChecker","abstract":false,"locations":[{"filename":"src/cosmo/runtime/typechecker.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L11"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ALIASES","name":"ALIASES","value":"{} of String => String"},{"id":"REGISTERED","name":"REGISTERED","value":"[] of Type"},{"id":"TYPE_MAP","name":"TYPE_MAP","value":"{Int128 => \"bigint\", Int64 => \"int\", Int32 => \"int\", Int16 => \"int\", Int8 => \"int\", Float64 => \"float\", Float32 => \"float\", String => \"string\", Char => \"char\", Bool => \"bool\", Nil => \"none\", Class => \"class\", Function => \"func\", PutsIntrinsic => \"func\", Array(Int64) => \"int[]\", Array(Int32) => \"int[]\", Array(Int16) => \"int[]\", Array(Int8) => \"int[]\", Array(Float64) => \"float[]\", Array(Float32) => \"float[]\", Array(String) => \"string[]\", Array(Char) => \"char[]\", Array(Bool) => \"bool[]\", Array(Function) => \"fn[]\", Array(ValueType) => \"any[]\", Array => \"any[]\", Hash => \"Table\", Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) => \"Range\"}"}],"extended_modules":[{"html_id":"Cosmo/Cosmo/TypeChecker","kind":"module","full_name":"Cosmo::TypeChecker","name":"TypeChecker"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"alias_type(alias_name:String,original:String):Type-instance-method","name":"alias_type","abstract":false,"args":[{"name":"alias_name","external_name":"alias_name","restriction":"String"},{"name":"original","external_name":"original","restriction":"String"}],"args_string":"(alias_name : String, original : String) : Type","args_html":"(alias_name : String, original : String) : Type","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":102,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L102"},"def":{"name":"alias_type","args":[{"name":"alias_name","external_name":"alias_name","restriction":"String"},{"name":"original","external_name":"original","restriction":"String"}],"return_type":"Type","visibility":"Public","body":"ALIASES[alias_name] = original\nregister_type(alias_name)\n"}},{"html_id":"assert(typedef:String,value:ValueType,token:Token):Nil-instance-method","name":"assert","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, value : ValueType, token : Token) : Nil","args_html":"(typedef : String, value : ValueType, token : Token) : Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":215,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L215"},"def":{"name":"assert","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Nil","visibility":"Public","body":"matches = is?(typedef, value, token)\nif typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n if value.is_a?(Array)\n else\n report_mismatch(typedef, value, token)\n end\n (value.as(Array)).each do |v|\n assert(value_type, v, token)\n end\nelse\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first.strip\n value_type = types.last.strip\n if value.is_a?(Hash)\n else\n report_mismatch(typedef, value, token)\n end\n internal = cast_hash(value)\n internal.each do |k, v|\n assert(key_type, k, token)\n assert(value_type, v, token)\n end\n else\n if typedef.starts_with?(\"(\")\n ungrouped_type = typedef[1..-2]\n assert(ungrouped_type, value, token)\n else\n if matches\n else\n report_mismatch(typedef, value, token)\n end\n end\n end\nend\n"}},{"html_id":"cast(value:T):ValueTypeforallT-instance-method","name":"cast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"T"}],"args_string":"(value : T) : ValueType forall T","args_html":"(value : T) : ValueType forall T","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":84,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L84"},"def":{"name":"cast","args":[{"name":"value","external_name":"value","restriction":"T"}],"return_type":"ValueType","visibility":"Public","body":"value.is_a?(Array) ? cast_array(value) : value.is_a?(Hash) ? cast_hash(value) : value.is_a?(Int128) && value <= Int64::MAX ? value.to_i64 : value.as(ValueType)"}},{"html_id":"cast_array(arr:Array(T)):Array(ValueType)forallT-instance-method","name":"cast_array","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(T)"}],"args_string":"(arr : Array(T)) : Array(ValueType) forall T","args_html":"(arr : Array(T)) : Array(ValueType) forall T","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L74"},"def":{"name":"cast_array","args":[{"name":"arr","external_name":"arr","restriction":"Array(T)"}],"return_type":"Array(ValueType)","visibility":"Public","body":"arr.map do |e|\n cast(e)\nend"}},{"html_id":"cast_hash(hash:Hash(K,V)):Hash(ValueType,ValueType)forallK,V-instance-method","name":"cast_hash","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":"Hash(K, V)"}],"args_string":"(hash : Hash(K, V)) : Hash(ValueType, ValueType) forall K, V","args_html":"(hash : Hash(K, V)) : Hash(ValueType, ValueType) forall K, V","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":78,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L78"},"def":{"name":"cast_hash","args":[{"name":"hash","external_name":"hash","restriction":"Hash(K, V)"}],"return_type":"Hash(ValueType, ValueType)","visibility":"Public","body":"res = {} of ValueType => ValueType\nhash.each do |k, v|\n res[cast(k)] = cast(v)\nend\nres\n"}},{"html_id":"get_mapped(t:CrystalClass):String-instance-method","name":"get_mapped","abstract":false,"args":[{"name":"t","external_name":"t","restriction":"CrystalClass"}],"args_string":"(t : CrystalClass) : String","args_html":"(t : CrystalClass) : String","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L53"},"def":{"name":"get_mapped","args":[{"name":"t","external_name":"t","restriction":"CrystalClass"}],"return_type":"String","visibility":"Public","body":"if TYPE_MAP.has_key?(t)\nelse\n raise(\"Unhandled type to map: #{t}\")\nend\nTYPE_MAP[t]\n"}},{"html_id":"get_registered_type(name:String,token:Token):Type|Nil-instance-method","name":"get_registered_type","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(name : String, token : Token) : Type | Nil","args_html":"(name : String, token : Token) : Type | Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":131,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L131"},"def":{"name":"get_registered_type","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Type | ::Nil","visibility":"Public","body":"type = get_registered_type?(name, token)\nif type.nil?\n Logger.report_error(\"Could not resolve type\", \"'#{name}'\", token)\nend\ntype\n"}},{"html_id":"get_registered_type?(typedef:String,token:Token):Type|Nil-instance-method","name":"get_registered_type?","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, token : Token) : Type | Nil","args_html":"(typedef : String, token : Token) : Type | Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":107,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L107"},"def":{"name":"get_registered_type?","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Type | ::Nil","visibility":"Public","body":"if typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n if get_registered_type?(value_type, token).nil?\n else\n Type.new(typedef)\n end\nelse\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first\n value_type = types.last\n if get_registered_type?(key_type, token).nil? && get_registered_type?(value_type, token).nil?\n else\n Type.new(typedef)\n end\n else\n if typedef.includes?(\"|\")\n types = typedef.split(\"|\")\n resolved = true\n types.each do |t|\n if get_registered_type?(t, token).nil?\n resolved = false\n break\n end\n end\n if resolved\n Type.new(typedef)\n end\n else\n REGISTERED.find do |t|\n t.name == typedef\n end\n end\n end\nend"}},{"html_id":"is?(typedef:String,value,token:Token):Bool-instance-method","name":"is?","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":""},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, value, token : Token) : Bool","args_html":"(typedef : String, value, token : Token) : Bool","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":137,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L137"},"def":{"name":"is?","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":""},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Bool","visibility":"Public","body":"case typedef\nwhen \"Range\"\n value.is_a?(Range)\nwhen \"class\"\n value.is_a?(Class)\nwhen \"type\"\n value.is_a?(Type)\nwhen \"func\"\n value.is_a?(Function) || value.is_a?(IntrinsicFunction)\nwhen \"bigint\"\n value.is_a?(Int)\nwhen \"int\"\n value.is_a?(Int64 | Int32 | Int16 | Int8)\nwhen \"float\"\n value.is_a?(Float)\nwhen \"bool\"\n value.is_a?(Bool)\nwhen \"string\"\n value.is_a?(String)\nwhen \"char\"\n value.is_a?(Char)\nwhen \"none\", \"void\"\n value == nil\nwhen \"any\"\n true\nelse\n matches = false\n if typedef.starts_with?(\"(\")\n ungrouped_type = typedef[1..-2]\n matches = is?(ungrouped_type, value, token)\n else\n if typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n matches = value.is_a?(Array)\n if value.is_a?(Array)\n (value.as(Array)).each do |v|\n matches && (matches = is?(value_type, v, token))\n end\n end\n else\n if typedef.includes?(\"|\")\n types = typedef.split(\"|\")\n types.each do |type|\n if is?(type.strip, value, token)\n matches = true\n end\n end\n else\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first.strip\n value_type = types.last.strip\n matches = value.is_a?(Hash)\n if value.is_a?(Hash)\n (value.as(Hash)).each do |k, v|\n matches && (matches = is?(key_type, k, token))\n matches && (matches = is?(value_type, v, token))\n end\n end\n else\n if typedef.ends_with?(\"?\")\n non_nullable_type = typedef[0..-2]\n matches = is?(non_nullable_type + \"|void\", value, token)\n else\n if matches\n else\n registered = get_registered_type?(typedef, token)\n if registered.nil?\n matches = false\n else\n if ALIASES.has_key?(registered.name)\n unaliased = ALIASES[registered.name]\n matches = is?(unaliased, value, token)\n else\n matches = false\n end\n end\n end\n end\n end\n end\n end\n end\n matches\nend"}},{"html_id":"register_intrinsics-instance-method","name":"register_intrinsics","abstract":false,"location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":60,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L60"},"def":{"name":"register_intrinsics","visibility":"Public","body":"register_type(\"Range\")\nregister_type(\"type\")\nregister_type(\"class\")\nregister_type(\"func\")\nregister_type(\"bigint\")\nregister_type(\"int\")\nregister_type(\"float\")\nregister_type(\"bool\")\nregister_type(\"string\")\nregister_type(\"char\")\nregister_type(\"void\")\n"}},{"html_id":"register_type(name:String):Type-instance-method","name":"register_type","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : Type","args_html":"(name : String) : Type","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":96,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L96"},"def":{"name":"register_type","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"Type","visibility":"Public","body":"type = Type.new(name)\nREGISTERED << type\ntype\n"}},{"html_id":"reset-instance-method","name":"reset","abstract":false,"location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":90,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L90"},"def":{"name":"reset","visibility":"Public","body":"ALIASES.clear\nREGISTERED.clear\nregister_intrinsics\n"}}]},{"html_id":"Cosmo/Cosmo/ValueType","path":"Cosmo/ValueType.html","kind":"alias","full_name":"Cosmo::ValueType","name":"ValueType","abstract":false,"locations":[{"filename":"src/cosmo/runtime/typechecker.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":true,"aliased":"(Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","aliased_html":"Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil","const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"}}]},{"html_id":"Cosmo/FnType","path":"FnType.html","kind":"enum","full_name":"FnType","name":"FnType","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/resolver.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Fn","name":"Fn","value":"1"}],"instance_methods":[{"html_id":"fn?-instance-method","name":"fn?","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L3"},"def":{"name":"fn?","visibility":"Public","body":"self == Fn"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L2"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"Cosmo/LiteralType","path":"LiteralType.html","kind":"alias","full_name":"LiteralType","name":"LiteralType","abstract":false,"locations":[{"filename":"src/cosmo/syntax/lexer.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":true,"aliased":"(Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil)","aliased_html":"Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil","const":false}]}} \ No newline at end of file +{"repository_name":"Cosmo","body":"![build](https://github.com/R-unic/cosmo/actions/workflows/crystal.yml/badge.svg)\n# Cosmo\n\nCosmo is a statically-typed programming language written in pure Crystal.
                            \nWe have an [extension for VS code](https://marketplace.visualstudio.com/items?itemName=cosmo.vscode-cosmo) ([source](https://github.com/R-unic/vscode-cosmo)), however it currently only features syntax highlighting.\n\n## Things I Gotta Do\n\n- Enums\n- Throw when defining an already-defined class\n- `uint` type\n- String interpolation literals\n- Allow \"!\" character identifiers for macros\n- Stack trace\n- Package manager\n- Performance boosts lol\n * Parser\n * Interpreter (!!)\n- Multiple assignment\n- Somehow typecheck blocks before execution\n- Fix weird expression parsing (`[0].123` evaluates to 0.123??)\n- Literal wrapper classes (vector, table) for utility methods (filter, map, etc)\n- Interfaces\n- Classes\n * single inheritance\n * mixins\n- Better type system\n * generics\n * casting\n * intersections\n\n## Things I Might Do\n\n- Make declarations immutable by default and replace `const` with `mut`\n- Make into a VM or compiler\n- C bindings\n\n## Installation\n\n1. Install [Crystal](https://crystal-lang.org/install/).\n2. Run `sudo make install`.\n3. Assert everything is working by running `cosmo -h`\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Test your code (`make test`)\n5. Push to the branch (`make publish`)\n6. Create a new Pull Request\n\n## Contributors\n\n- [R-unic](https://github.com/R-unic) - creator and maintainer\n","program":{"html_id":"Cosmo/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"ancestors":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"locations":[],"repository_name":"Cosmo","program":true,"enum":false,"alias":false,"const":false,"constants":[{"id":"MAX_INTRINSIC_PARAMS","name":"MAX_INTRINSIC_PARAMS","value":"255"},{"id":"TAB","name":"TAB","value":"\" \""}],"included_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"extended_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"class_methods":[{"html_id":"get_elapsed(start:Time::Span,finish:Time::Span):String-class-method","name":"get_elapsed","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Time::Span"},{"name":"finish","external_name":"finish","restriction":"Time::Span"}],"args_string":"(start : Time::Span, finish : Time::Span) : String","args_html":"(start : Time::Span, finish : Time::Span) : String","location":{"filename":"src/util.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/util.cr#L4"},"def":{"name":"get_elapsed","args":[{"name":"start","external_name":"start","restriction":"Time::Span"},{"name":"finish","external_name":"finish","restriction":"Time::Span"}],"return_type":"String","visibility":"Public","body":"span = finish - start\nms = span.total_milliseconds.round(5)\nif ms > 1000\n return \"#{(ms / 1000).round(2)} seconds\"\nend\n\"#{ms}ms\"\n"}},{"html_id":"get_shard:YAML::Any-class-method","name":"get_shard","doc":"Returns `shard.yml` as a `YAML::Any`","summary":"

                            Returns shard.yml as a YAML::Any

                            ","abstract":false,"location":{"filename":"src/util.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/util.cr#L12"},"def":{"name":"get_shard","return_type":"YAML::Any","visibility":"Public","body":"raw_yaml = File.read(File.join(File.dirname(\"/home/runic/Dev/crystal/cosmo/src/util.cr\"), \"..\", \"shard.yml\"))\nYAML.parse(raw_yaml)\n"}}],"types":[{"html_id":"Cosmo/Cosmo","path":"Cosmo.html","kind":"module","full_name":"Cosmo","name":"Cosmo","abstract":false,"locations":[{"filename":"src/cosmo.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo.cr#L7"},{"filename":"src/cosmo/logger.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L1"},{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L3"},{"filename":"src/cosmo/runtime/typechecker.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L6"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Version","name":"Version","value":"\"v\" + get_shard[\"version\"].to_s"}],"extended_modules":[{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"}],"instance_methods":[{"html_id":"read_file(path:String)-instance-method","name":"read_file","doc":"Reads a file at `path` and returns it's contents","summary":"

                            Reads a file at path and returns it's contents

                            ","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cosmo.cr","line_number":48,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo.cr#L48"},"def":{"name":"read_file","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"begin\n contents = File.read(path)\n read_source(contents, file_path: path)\nrescue ex : Exception\n abort(\"Failed to read file \\\"#{path}\\\": \\n#{ex.message}\\n\\t#{ex.backtrace.join(\"\\n\\t\")}\", 1)\nend"}},{"html_id":"read_source(source:String,file_path:String):ValueType-instance-method","name":"read_source","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(source : String, file_path : String) : ValueType","args_html":"(source : String, file_path : String) : ValueType","location":{"filename":"src/cosmo.cr","line_number":43,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo.cr#L43"},"def":{"name":"read_source","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@@interpreter.interpret(source, file_path)"}},{"html_id":"run_repl-instance-method","name":"run_repl","doc":"Starts the REPL","summary":"

                            Starts the REPL

                            ","abstract":false,"location":{"filename":"src/cosmo.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo.cr#L77"},"def":{"name":"run_repl","visibility":"Public","body":"puts(\"Welcome to the #{rainbow(\"Cosmo\")} REPL\")\nloop do\n line = read_line\n if line.nil?\n break\n end\n result = read_source(line, file_path: \"repl\")\n puts(result.is_a?(Hash) ? Stringify.hashmap(result.as(Hash(ValueType, ValueType))) : result.to_s)\nend\n"}}],"types":[{"html_id":"Cosmo/Cosmo/AST","path":"Cosmo/AST.html","kind":"module","full_name":"Cosmo::AST","name":"AST","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L3"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/AST/Expression","path":"Cosmo/AST/Expression.html","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression","abstract":false,"ancestors":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"types":[{"html_id":"Cosmo/Cosmo/AST/Expression/Access","path":"Cosmo/AST/Expression/Access.html","kind":"class","full_name":"Cosmo::AST::Expression::Access","name":"Access","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L77"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,key:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::Token"}],"args_string":"(object : Cosmo::AST::Expression::Base, key : Cosmo::Token)","args_html":"(object : Cosmo::AST::Expression::Base, key : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":81,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L81"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, key)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":84,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L84"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_access_expr(self)"}},{"html_id":"key:Token-instance-method","name":"key","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L79"},"def":{"name":"key","return_type":"Token","visibility":"Public","body":"@key"}},{"html_id":"object:Base-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":78,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L78"},"def":{"name":"object","return_type":"Base","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":92,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L92"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Access<\\n\" + \" #{TAB * indent}object: #{@object.to_s(indent + 1)},\\n\") + \" #{TAB * indent}key: #{@key.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":88,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L88"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","path":"Cosmo/AST/Expression/Base.html","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L22"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/Access","kind":"class","full_name":"Cosmo::AST::Expression::Access","name":"Access"},{"html_id":"Cosmo/Cosmo/AST/Expression/BinaryOp","kind":"class","full_name":"Cosmo::AST::Expression::BinaryOp","name":"BinaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/CompoundAssignment","kind":"class","full_name":"Cosmo::AST::Expression::CompoundAssignment","name":"CompoundAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/FunctionCall","kind":"class","full_name":"Cosmo::AST::Expression::FunctionCall","name":"FunctionCall"},{"html_id":"Cosmo/Cosmo/AST/Expression/Index","kind":"class","full_name":"Cosmo::AST::Expression::Index","name":"Index"},{"html_id":"Cosmo/Cosmo/AST/Expression/Is","kind":"class","full_name":"Cosmo::AST::Expression::Is","name":"Is"},{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/New","kind":"class","full_name":"Cosmo::AST::Expression::New","name":"New"},{"html_id":"Cosmo/Cosmo/AST/Expression/Parameter","kind":"class","full_name":"Cosmo::AST::Expression::Parameter","name":"Parameter"},{"html_id":"Cosmo/Cosmo/AST/Expression/PropertyAssignment","kind":"class","full_name":"Cosmo::AST::Expression::PropertyAssignment","name":"PropertyAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/RangeLiteral","kind":"class","full_name":"Cosmo::AST::Expression::RangeLiteral","name":"RangeLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/TableLiteral","kind":"class","full_name":"Cosmo::AST::Expression::TableLiteral","name":"TableLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/TernaryOp","kind":"class","full_name":"Cosmo::AST::Expression::TernaryOp","name":"TernaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/This","kind":"class","full_name":"Cosmo::AST::Expression::This","name":"This"},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeAlias","kind":"class","full_name":"Cosmo::AST::Expression::TypeAlias","name":"TypeAlias"},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeRef","kind":"class","full_name":"Cosmo::AST::Expression::TypeRef","name":"TypeRef"},{"html_id":"Cosmo/Cosmo/AST/Expression/UnaryOp","kind":"class","full_name":"Cosmo::AST::Expression::UnaryOp","name":"UnaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/Var","kind":"class","full_name":"Cosmo::AST::Expression::Var","name":"Var"},{"html_id":"Cosmo/Cosmo/AST/Expression/VarAssignment","kind":"class","full_name":"Cosmo::AST::Expression::VarAssignment","name":"VarAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/VarDeclaration","kind":"class","full_name":"Cosmo::AST::Expression::VarDeclaration","name":"VarDeclaration"},{"html_id":"Cosmo/Cosmo/AST/Expression/VectorLiteral","kind":"class","full_name":"Cosmo::AST::Expression::VectorLiteral","name":"VectorLiteral"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"instance_methods":[{"html_id":"accept(visitor:Visitor(R))forallR-instance-method","name":"accept","abstract":true,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) forall R","args_html":"(visitor : Visitor(R)) forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L23"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BigIntLiteral","path":"Cosmo/AST/Expression/BigIntLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::BigIntLiteral","name":"BigIntLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":500,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L500"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Int128,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int128"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Int128, token)","args_html":"(value : Int128, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":501,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L501"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Int128"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":502,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L502"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BinaryOp","path":"Cosmo/AST/Expression/BinaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::BinaryOp","name":"BinaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":332,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L332"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(left:Cosmo::AST::Expression::Base,operator:Cosmo::Token,right:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"right","external_name":"right","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(left : Cosmo::AST::Expression::Base, operator : Cosmo::Token, right : Cosmo::AST::Expression::Base)","args_html":"(left : Cosmo::AST::Expression::Base, operator : Cosmo::Token, right : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":337,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L337"},"def":{"name":"new","args":[{"name":"left","external_name":"left","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"right","external_name":"right","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(left, operator, right)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":340,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L340"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_binary_op_expr(self)"}},{"html_id":"left:Base-instance-method","name":"left","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":333,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L333"},"def":{"name":"left","return_type":"Base","visibility":"Public","body":"@left"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L334"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"right:Base-instance-method","name":"right","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L335"},"def":{"name":"right","return_type":"Base","visibility":"Public","body":"@right"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":348,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L348"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Binary<\\n\" + \" #{TAB * indent}left: #{@left.to_s(indent + 1)},\\n\") + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}right: #{@right.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":344,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L344"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@left.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BooleanLiteral","path":"Cosmo/AST/Expression/BooleanLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::BooleanLiteral","name":"BooleanLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":521,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L521"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Bool,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Bool, token)","args_html":"(value : Bool, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":522,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L522"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Bool"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":523,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L523"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/CharLiteral","path":"Cosmo/AST/Expression/CharLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::CharLiteral","name":"CharLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":493,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L493"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Char,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Char"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Char, token)","args_html":"(value : Char, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":494,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L494"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Char"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":495,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L495"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<'#{@value}'>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/CompoundAssignment","path":"Cosmo/AST/Expression/CompoundAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::CompoundAssignment","name":"CompoundAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":240,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L240"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(name:Cosmo::AST::Expression::Base,operator:Cosmo::Token,value:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(name : Cosmo::AST::Expression::Base, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)","args_html":"(name : Cosmo::AST::Expression::Base, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":245,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L245"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, operator, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":248,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L248"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_compound_assignment_expr(self)"}},{"html_id":"name:Var|Index|Access-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":241,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L241"},"def":{"name":"name","return_type":"Var | Index | Access","visibility":"Public","body":"@name"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":242,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L242"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":256,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L256"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"CompoundAssignment<\\n\" + \" #{TAB * indent}name: #{@name.to_s(indent + 1)},\\n\") + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":252,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L252"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L243"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/FloatLiteral","path":"Cosmo/AST/Expression/FloatLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::FloatLiteral","name":"FloatLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":514,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L514"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Float64|Float32|Float16|Float8,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Float32 | Float16 | Float8"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Float64 | Float32 | Float16 | Float8, token)","args_html":"(value : Float64 | Float32 | Float16 | Float8, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":515,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L515"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Float64 | Float32 | Float16 | Float8"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":516,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L516"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/FunctionCall","path":"Cosmo/AST/Expression/FunctionCall.html","kind":"class","full_name":"Cosmo::AST::Expression::FunctionCall","name":"FunctionCall","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":190,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L190"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(callee:Cosmo::AST::Expression::Base,arguments:Array(Cosmo::AST::Expression::Base))-class-method","name":"new","abstract":false,"args":[{"name":"callee","external_name":"callee","restriction":"::Cosmo::AST::Expression::Base"},{"name":"arguments","external_name":"arguments","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"args_string":"(callee : Cosmo::AST::Expression::Base, arguments : Array(Cosmo::AST::Expression::Base))","args_html":"(callee : Cosmo::AST::Expression::Base, arguments : Array(Cosmo::AST::Expression::Base))","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":194,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L194"},"def":{"name":"new","args":[{"name":"callee","external_name":"callee","restriction":"::Cosmo::AST::Expression::Base"},{"name":"arguments","external_name":"arguments","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(callee, arguments)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":197,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L197"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_fn_call_expr(self)"}},{"html_id":"arguments:Array(Base)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L192"},"def":{"name":"arguments","return_type":"Array(Base)","visibility":"Public","body":"@arguments"}},{"html_id":"callee:Base-instance-method","name":"callee","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L191"},"def":{"name":"callee","return_type":"Base","visibility":"Public","body":"@callee"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":205,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L205"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((((\"FunctionCall<\\n\" + \" #{TAB * indent}var: #{@callee.to_s(indent + 1)},\\n\") + \" #{TAB * indent}arguments: [\\n\") + \" #{TAB * indent}#{@arguments.map(&.to_s(indent + 2)).join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}]\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":201,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L201"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@callee.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Index","path":"Cosmo/AST/Expression/Index.html","kind":"class","full_name":"Cosmo::AST::Expression::Index","name":"Index","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":100,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L100"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,key:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(object : Cosmo::AST::Expression::Base, key : Cosmo::AST::Expression::Base)","args_html":"(object : Cosmo::AST::Expression::Base, key : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":104,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L104"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, key)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":107,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L107"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_index_expr(self)"}},{"html_id":"key:Base-instance-method","name":"key","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":102,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L102"},"def":{"name":"key","return_type":"Base","visibility":"Public","body":"@key"}},{"html_id":"object:Base-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L101"},"def":{"name":"object","return_type":"Base","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L115"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Index<\\n\" + \" #{TAB * indent}object: #{@object.to_s(indent + 1)},\\n\") + \" #{TAB * indent}key: #{@key.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":111,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L111"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/IntLiteral","path":"Cosmo/AST/Expression/IntLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::IntLiteral","name":"IntLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":507,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L507"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Int64|Int32|Int16|Int8,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int64 | Int32 | Int16 | Int8"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Int64 | Int32 | Int16 | Int8, token)","args_html":"(value : Int64 | Int32 | Int16 | Int8, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":508,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L508"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Int64 | Int32 | Int16 | Int8"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":509,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L509"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Is","path":"Cosmo/AST/Expression/Is.html","kind":"class","full_name":"Cosmo::AST::Expression::Is","name":"Is","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L123"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Cosmo::AST::Expression::Base,type:Cosmo::AST::Expression::TypeRef)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"type","external_name":"type","restriction":"::Cosmo::AST::Expression::TypeRef"}],"args_string":"(value : Cosmo::AST::Expression::Base, type : Cosmo::AST::Expression::TypeRef)","args_html":"(value : Cosmo::AST::Expression::Base, type : Cosmo::AST::Expression::TypeRef)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L127"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"type","external_name":"type","restriction":"::Cosmo::AST::Expression::TypeRef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L130"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_is_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L138"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Is<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)},\\n\") + \" #{TAB * indent}type: #{@type.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":134,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L134"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@value.token"}},{"html_id":"type:TypeRef-instance-method","name":"type","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":125,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L125"},"def":{"name":"type","return_type":"TypeRef","visibility":"Public","body":"@type"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":124,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L124"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","path":"Cosmo/AST/Expression/Literal.html","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":412,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L412"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/BigIntLiteral","kind":"class","full_name":"Cosmo::AST::Expression::BigIntLiteral","name":"BigIntLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/BooleanLiteral","kind":"class","full_name":"Cosmo::AST::Expression::BooleanLiteral","name":"BooleanLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/CharLiteral","kind":"class","full_name":"Cosmo::AST::Expression::CharLiteral","name":"CharLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/FloatLiteral","kind":"class","full_name":"Cosmo::AST::Expression::FloatLiteral","name":"FloatLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/IntLiteral","kind":"class","full_name":"Cosmo::AST::Expression::IntLiteral","name":"IntLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/NoneLiteral","kind":"class","full_name":"Cosmo::AST::Expression::NoneLiteral","name":"NoneLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/StringLiteral","kind":"class","full_name":"Cosmo::AST::Expression::StringLiteral","name":"StringLiteral"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Bool|Char|Float32|Float64|Int128|Int16|Int32|Int64|Int8|String|Nil,token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, token : Cosmo::Token)","args_html":"(value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":416,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L416"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":418,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L418"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_literal_expr(self)"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":413,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L413"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}},{"html_id":"value:LiteralType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":414,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L414"},"def":{"name":"value","return_type":"LiteralType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/New","path":"Cosmo/AST/Expression/New.html","kind":"class","full_name":"Cosmo::AST::Expression::New","name":"New","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":373,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L373"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(token:Cosmo::Token,operand:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(token : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","args_html":"(token : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":377,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L377"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token, operand)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":380,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L380"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_new_expr(self)"}},{"html_id":"operand:Var|FunctionCall-instance-method","name":"operand","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":375,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L375"},"def":{"name":"operand","return_type":"Var | FunctionCall","visibility":"Public","body":"@operand"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":384,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L384"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"New\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":374,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L374"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/NoneLiteral","path":"Cosmo/AST/Expression/NoneLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::NoneLiteral","name":"NoneLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":528,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L528"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Nil,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Nil"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Nil, token)","args_html":"(value : Nil, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":529,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L529"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Nil"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":530,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L530"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Parameter","path":"Cosmo/AST/Expression/Parameter.html","kind":"class","full_name":"Cosmo::AST::Expression::Parameter","name":"Parameter","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":215,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L215"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(typedef:Cosmo::Token,identifier:Cosmo::Token,const:Bool,default_value:Cosmo::AST::Expression::Base|Nil=NoneLiteral.new(nil,identifier))-class-method","name":"new","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"const","external_name":"const","restriction":"::Bool"},{"name":"default_value","default_value":"NoneLiteral.new(nil, identifier)","external_name":"default_value","restriction":"::Cosmo::AST::Expression::Base | ::Nil"}],"args_string":"(typedef : Cosmo::Token, identifier : Cosmo::Token, const : Bool, default_value : Cosmo::AST::Expression::Base | Nil = NoneLiteral.new(nil, identifier))","args_html":"(typedef : Cosmo::Token, identifier : Cosmo::Token, const : Bool, default_value : Cosmo::AST::Expression::Base | Nil = NoneLiteral.new(nil, identifier))","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":221,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L221"},"def":{"name":"new","args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"const","external_name":"const","restriction":"::Bool"},{"name":"default_value","default_value":"NoneLiteral.new(nil, identifier)","external_name":"default_value","restriction":"::Cosmo::AST::Expression::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(typedef, identifier, const, default_value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":224,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L224"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"const?:Bool-instance-method","name":"const?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":218,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L218"},"def":{"name":"const?","return_type":"Bool","visibility":"Public","body":"@const"}},{"html_id":"default_value:Base|Nil-instance-method","name":"default_value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":219,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L219"},"def":{"name":"default_value","return_type":"Base | ::Nil","visibility":"Public","body":"@default_value"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L217"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":231,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L231"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Parameter<\\n\" + \" #{TAB * indent}typedef: #{@typedef.value},\\n\") + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}value: #{@default_value.nil? ? \"none\" : @default_value.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":227,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L227"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"typedef:Token-instance-method","name":"typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L216"},"def":{"name":"typedef","return_type":"Token","visibility":"Public","body":"@typedef"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/PropertyAssignment","path":"Cosmo/AST/Expression/PropertyAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::PropertyAssignment","name":"PropertyAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L52"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,value:Array(Cosmo::ValueType)|Bool|Char|Cosmo::AST::Expression::Base|Cosmo::Callable|Cosmo::Class|Cosmo::ClassInstance|Cosmo::Type|Float32|Float64|Hash(Cosmo::ValueType,Cosmo::ValueType)|Int128|Int16|Int32|Int64|Int8|Range(Int128|Int16|Int32|Int64|Int8,Int128|Int16|Int32|Int64|Int8)|String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"value","external_name":"value","restriction":"::Array(::Cosmo::ValueType) | ::Bool | ::Char | ::Cosmo::AST::Expression::Base | ::Cosmo::Callable | ::Cosmo::Class | ::Cosmo::ClassInstance | ::Cosmo::Type | ::Float32 | ::Float64 | ::Hash(::Cosmo::ValueType, ::Cosmo::ValueType) | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::Range(::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8, ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8) | ::String | ::Nil"}],"args_string":"(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","args_html":"(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L56"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"value","external_name":"value","restriction":"::Array(::Cosmo::ValueType) | ::Bool | ::Char | ::Cosmo::AST::Expression::Base | ::Cosmo::Callable | ::Cosmo::Class | ::Cosmo::ClassInstance | ::Cosmo::Type | ::Float32 | ::Float64 | ::Hash(::Cosmo::ValueType, ::Cosmo::ValueType) | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::Range(::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8, ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8) | ::String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L59"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_property_assignment_expr(self)"}},{"html_id":"object:Access|Index-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L53"},"def":{"name":"object","return_type":"Access | Index","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":67,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L67"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"if value.is_a?(Base)\n value_s = (@value.as(Base)).to_s(indent + 1)\nelse\n value_s = @value.to_s\nend\n\"PropertyAssignment\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L63"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}},{"html_id":"value:Base|ValueType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L54"},"def":{"name":"value","return_type":"Base | ValueType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/RangeLiteral","path":"Cosmo/AST/Expression/RangeLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::RangeLiteral","name":"RangeLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":423,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L423"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(from:Cosmo::AST::Expression::Base,to:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"::Cosmo::AST::Expression::Base"},{"name":"to","external_name":"to","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(from : Cosmo::AST::Expression::Base, to : Cosmo::AST::Expression::Base)","args_html":"(from : Cosmo::AST::Expression::Base, to : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":427,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L427"},"def":{"name":"new","args":[{"name":"from","external_name":"from","restriction":"::Cosmo::AST::Expression::Base"},{"name":"to","external_name":"to","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(from, to)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":430,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L430"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_range_literal_expr(self)"}},{"html_id":"from:Base-instance-method","name":"from","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":424,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L424"},"def":{"name":"from","return_type":"Base","visibility":"Public","body":"@from"}},{"html_id":"to:Base-instance-method","name":"to","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":425,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L425"},"def":{"name":"to","return_type":"Base","visibility":"Public","body":"@to"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":438,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L438"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"RangeLiteral<\\n\" + \" #{TAB * indent}from: #{@from.to_s(indent + 1)},\\n\") + \" #{TAB * indent}to: #{@to.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":434,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L434"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@from.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/StringLiteral","path":"Cosmo/AST/Expression/StringLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::StringLiteral","name":"StringLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":486,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L486"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:String,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : String, token)","args_html":"(value : String, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":487,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L487"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":488,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L488"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<\\\"#{@value}\\\">\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TableLiteral","path":"Cosmo/AST/Expression/TableLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::TableLiteral","name":"TableLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":446,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L446"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(hashmap:Hash(Cosmo::AST::Expression::Base,Cosmo::AST::Expression::Base),token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"hashmap","external_name":"hashmap","restriction":"::Hash(::Cosmo::AST::Expression::Base, ::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(hashmap : Hash(Cosmo::AST::Expression::Base, Cosmo::AST::Expression::Base), token : Cosmo::Token)","args_html":"(hashmap : Hash(Cosmo::AST::Expression::Base, Cosmo::AST::Expression::Base), token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":450,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L450"},"def":{"name":"new","args":[{"name":"hashmap","external_name":"hashmap","restriction":"::Hash(::Cosmo::AST::Expression::Base, ::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(hashmap, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":452,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L452"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_table_literal_expr(self)"}},{"html_id":"hashmap:Hash(Base,Base)-instance-method","name":"hashmap","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":448,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L448"},"def":{"name":"hashmap","return_type":"Hash(Base, Base)","visibility":"Public","body":"@hashmap"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":456,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L456"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"s = \"Literal<{\\n\"\n@hashmap.keys.each do |k|\n s = s + (TAB * (indent + 1))\n s = s + (k.to_s(indent + 1))\n s = s + \" -> \"\n s = s + (@hashmap[k].to_s(indent + 1))\n s = s + \"\\n\"\nend\ns + \"#{TAB * indent}}>\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":447,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L447"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TernaryOp","path":"Cosmo/AST/Expression/TernaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::TernaryOp","name":"TernaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L26"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(condition:Cosmo::AST::Expression::Base,operator:Cosmo::Token,then:Cosmo::AST::Expression::Base,else:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Expression::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(condition : Cosmo::AST::Expression::Base, operator : Cosmo::Token, then : Cosmo::AST::Expression::Base, else : Cosmo::AST::Expression::Base)","args_html":"(condition : Cosmo::AST::Expression::Base, operator : Cosmo::Token, then : Cosmo::AST::Expression::Base, else : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L32"},"def":{"name":"new","args":[{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Expression::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(condition, operator, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L35"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_ternary_op_expr(self)"}},{"html_id":"condition:Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L27"},"def":{"name":"condition","return_type":"Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L30"},"def":{"name":"else","return_type":"Base","visibility":"Public","body":"@else"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L28"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L29"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":43,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L43"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Ternary<\\n\" + \" #{TAB * indent}left: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)}\\n\") + \" #{TAB * indent}else: #{@else.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":39,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L39"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/This","path":"Cosmo/AST/Expression/This.html","kind":"class","full_name":"Cosmo::AST::Expression::This","name":"This","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":357,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L357"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(token:Cosmo::Token,class_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"},{"name":"class_name","external_name":"class_name","restriction":"::String"}],"args_string":"(token : Cosmo::Token, class_name : String)","args_html":"(token : Cosmo::Token, class_name : String)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L361"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"},{"name":"class_name","external_name":"class_name","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token, class_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":364,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L364"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_this_expr(self)"}},{"html_id":"class_name:String-instance-method","name":"class_name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":359,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L359"},"def":{"name":"class_name","return_type":"String","visibility":"Public","body":"@class_name"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":368,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L368"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"This\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":358,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L358"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeAlias","path":"Cosmo/AST/Expression/TypeAlias.html","kind":"class","full_name":"Cosmo::AST::Expression::TypeAlias","name":"TypeAlias","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L165"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(type_token:Cosmo::Token,var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base,constant:Bool,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"type_token","external_name":"type_token","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(type_token : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","args_html":"(type_token : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":172,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L172"},"def":{"name":"new","args":[{"name":"type_token","external_name":"type_token","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(type_token, var, value, constant, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":175,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L175"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_type_alias_expr(self)"}},{"html_id":"constant?:Bool-instance-method","name":"constant?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":169,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L169"},"def":{"name":"constant?","return_type":"Bool","visibility":"Public","body":"@constant"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L183"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"TypeAlias<\\n\" + \" #{TAB * indent}#{@var.token.value.to_s}: #{@value.nil? ? \"none\" : @value.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":179,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L179"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"type_token:Token-instance-method","name":"type_token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":166,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L166"},"def":{"name":"type_token","return_type":"Token","visibility":"Public","body":"@type_token"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":168,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L168"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L167"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L170"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeRef","path":"Cosmo/AST/Expression/TypeRef.html","kind":"class","full_name":"Cosmo::AST::Expression::TypeRef","name":"TypeRef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":146,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L146"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(name:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"}],"args_string":"(name : Cosmo::Token)","args_html":"(name : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":149,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L149"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":152,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L152"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_type_ref_expr(self)"}},{"html_id":"name:Token-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":147,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L147"},"def":{"name":"name","return_type":"Token","visibility":"Public","body":"@name"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":160,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L160"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"TypeRef<\\\"#{@name.value.to_s}\\\">\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":156,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L156"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@name"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/UnaryOp","path":"Cosmo/AST/Expression/UnaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::UnaryOp","name":"UnaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":389,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L389"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(operator:Cosmo::Token,operand:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(operator : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","args_html":"(operator : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":393,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L393"},"def":{"name":"new","args":[{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(operator, operand)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":396,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L396"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_unary_op_expr(self)"}},{"html_id":"operand:Base-instance-method","name":"operand","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":391,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L391"},"def":{"name":"operand","return_type":"Base","visibility":"Public","body":"@operand"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":390,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L390"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":404,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L404"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Unary<\\n\" + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}operand: #{@operand.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":400,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L400"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Var","path":"Cosmo/AST/Expression/Var.html","kind":"class","full_name":"Cosmo::AST::Expression::Var","name":"Var","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":317,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L317"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(token : Cosmo::Token)","args_html":"(token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":320,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L320"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":323,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L323"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":327,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L327"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Var<\\\"#{@token.value.to_s}\\\">\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":318,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L318"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VarAssignment","path":"Cosmo/AST/Expression/VarAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::VarAssignment","name":"VarAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":294,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L294"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base)","args_html":"(var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":298,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L298"},"def":{"name":"new","args":[{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(var, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":301,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L301"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_assignment_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L309"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"VarAssignment<\\n\" + \" #{TAB * indent}var: #{@var.token.value.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":305,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L305"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L296"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":295,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L295"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VarDeclaration","path":"Cosmo/AST/Expression/VarDeclaration.html","kind":"class","full_name":"Cosmo::AST::Expression::VarDeclaration","name":"VarDeclaration","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":265,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L265"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(typedef:Cosmo::Token,var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base,constant:Bool,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(typedef : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","args_html":"(typedef : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":272,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L272"},"def":{"name":"new","args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(typedef, var, value, constant, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":275,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L275"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_declaration_expr(self)"}},{"html_id":"constant?:Bool-instance-method","name":"constant?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":269,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L269"},"def":{"name":"constant?","return_type":"Bool","visibility":"Public","body":"@constant"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L283"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((\"VarDeclaration<\\n\" + \" #{TAB * indent}typedef: #{@typedef.value},\\n\") + \" #{TAB * indent}var: #{@var.token.value.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \" #{TAB * indent}constant?: #{@constant}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":279,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L279"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"typedef:Token-instance-method","name":"typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":266,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L266"},"def":{"name":"typedef","return_type":"Token","visibility":"Public","body":"@typedef"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":268,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L268"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":267,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L267"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L270"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VectorLiteral","path":"Cosmo/AST/Expression/VectorLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::VectorLiteral","name":"VectorLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":469,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L469"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(values:Array(Cosmo::AST::Expression::Base),token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"values","external_name":"values","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(values : Array(Cosmo::AST::Expression::Base), token : Cosmo::Token)","args_html":"(values : Array(Cosmo::AST::Expression::Base), token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":473,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L473"},"def":{"name":"new","args":[{"name":"values","external_name":"values","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(values, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":475,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L475"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_vector_literal_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":479,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L479"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Literal<[\\n\" + \" #{TAB * indent}#{@values.map(&.to_s(indent + 2)).join(\",\\n#{TAB * (indent + 1)}\")}\\n\") + \"#{TAB * indent}]>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":470,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L470"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}},{"html_id":"values:Array(Base)-instance-method","name":"values","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":471,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L471"},"def":{"name":"values","return_type":"Array(Base)","visibility":"Public","body":"@values"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","path":"Cosmo/AST/Expression/Visitor.html","kind":"module","full_name":"Cosmo::AST::Expression::Visitor(R)","name":"Visitor","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/Interpreter","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter"},{"html_id":"Cosmo/Cosmo/Resolver","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"instance_methods":[{"html_id":"visit_binary_op_expr(expr:BinaryOp):R-instance-method","name":"visit_binary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"BinaryOp"}],"args_string":"(expr : BinaryOp) : R","args_html":"(expr : BinaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L14"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"BinaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_fn_call_expr(expr:FunctionCall):R-instance-method","name":"visit_fn_call_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"FunctionCall"}],"args_string":"(expr : FunctionCall) : R","args_html":"(expr : FunctionCall) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L9"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"FunctionCall"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_is_expr(expr:Is):R-instance-method","name":"visit_is_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Is"}],"args_string":"(expr : Is) : R","args_html":"(expr : Is) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L6"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Is"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_literal_expr(expr:Literal):R-instance-method","name":"visit_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Literal"}],"args_string":"(expr : Literal) : R","args_html":"(expr : Literal) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L16"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Literal"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_range_literal_expr(expr:RangeLiteral):R-instance-method","name":"visit_range_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"RangeLiteral"}],"args_string":"(expr : RangeLiteral) : R","args_html":"(expr : RangeLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L17"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"RangeLiteral"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_table_literal_expr(expr:TableLiteral):R-instance-method","name":"visit_table_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TableLiteral"}],"args_string":"(expr : TableLiteral) : R","args_html":"(expr : TableLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L18"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"TableLiteral"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_ternary_op_expr(expr:TernaryOp):R-instance-method","name":"visit_ternary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TernaryOp"}],"args_string":"(expr : TernaryOp) : R","args_html":"(expr : TernaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L13"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"TernaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_this_expr(expr:This):R-instance-method","name":"visit_this_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"This"}],"args_string":"(expr : This) : R","args_html":"(expr : This) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L5"},"def":{"name":"visit_this_expr","args":[{"name":"expr","external_name":"expr","restriction":"This"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_type_alias_expr(expr:TypeAlias):R-instance-method","name":"visit_type_alias_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TypeAlias"}],"args_string":"(expr : TypeAlias) : R","args_html":"(expr : TypeAlias) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L7"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"TypeAlias"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_type_ref_expr(expr:TypeRef):R-instance-method","name":"visit_type_ref_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TypeRef"}],"args_string":"(expr : TypeRef) : R","args_html":"(expr : TypeRef) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L8"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"TypeRef"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_unary_op_expr(expr:UnaryOp):R-instance-method","name":"visit_unary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"UnaryOp"}],"args_string":"(expr : UnaryOp) : R","args_html":"(expr : UnaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L15"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"UnaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_assignment_expr(expr:VarAssignment):R-instance-method","name":"visit_var_assignment_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VarAssignment"}],"args_string":"(expr : VarAssignment) : R","args_html":"(expr : VarAssignment) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L11"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"VarAssignment"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_declaration_expr(expr:VarDeclaration):R-instance-method","name":"visit_var_declaration_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VarDeclaration"}],"args_string":"(expr : VarDeclaration) : R","args_html":"(expr : VarDeclaration) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L10"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"VarDeclaration"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_expr(expr:Var):R-instance-method","name":"visit_var_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Var"}],"args_string":"(expr : Var) : R","args_html":"(expr : Var) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L12"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Var"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_vector_literal_expr(expr:VectorLiteral):R-instance-method","name":"visit_vector_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VectorLiteral"}],"args_string":"(expr : VectorLiteral) : R","args_html":"(expr : VectorLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L19"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"VectorLiteral"}],"return_type":"R","visibility":"Public","body":""}}]}]},{"html_id":"Cosmo/Cosmo/AST/Node","path":"Cosmo/AST/Node.html","kind":"class","full_name":"Cosmo::AST::Node","name":"Node","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L11"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"instance_methods":[{"html_id":"end_location:Location|Nil-instance-method","name":"end_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L13"},"def":{"name":"end_location","return_type":"Location | ::Nil","visibility":"Public","body":"@end_location"}},{"html_id":"end_location=(end_location:Location|Nil)-instance-method","name":"end_location=","abstract":false,"args":[{"name":"end_location","external_name":"end_location","restriction":"Location | ::Nil"}],"args_string":"(end_location : Location | Nil)","args_html":"(end_location : Location | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L13"},"def":{"name":"end_location=","args":[{"name":"end_location","external_name":"end_location","restriction":"Location | ::Nil"}],"visibility":"Public","body":"@end_location = end_location"}},{"html_id":"single_expression:Node-instance-method","name":"single_expression","doc":"It yields itself for any node, but if it's a\n`Statement::ExpressionList`, then it returns the\nfirst node of the `ExpressionList` statement","summary":"

                            It yields itself for any node, but if it's a Statement::ExpressionList, then it returns the first node of the ExpressionList statement

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L21"},"def":{"name":"single_expression","return_type":"Node","visibility":"Public","body":"single_expression? || self"}},{"html_id":"single_expression?:Node|Nil-instance-method","name":"single_expression?","doc":"It yields `nil` always for any regular node.\n(It is overridden by `ExpressionList` to implement `#single_expression`.)","summary":"

                            It yields nil always for any regular node.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L27"},"def":{"name":"single_expression?","return_type":"Node | ::Nil","visibility":"Public","body":"nil"}},{"html_id":"start_location:Location|Nil-instance-method","name":"start_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L12"},"def":{"name":"start_location","return_type":"Location | ::Nil","visibility":"Public","body":"@start_location"}},{"html_id":"start_location=(start_location:Location|Nil)-instance-method","name":"start_location=","abstract":false,"args":[{"name":"start_location","external_name":"start_location","restriction":"Location | ::Nil"}],"args_string":"(start_location : Location | Nil)","args_html":"(start_location : Location | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L12"},"def":{"name":"start_location=","args":[{"name":"start_location","external_name":"start_location","restriction":"Location | ::Nil"}],"visibility":"Public","body":"@start_location = start_location"}},{"html_id":"token:Token-instance-method","name":"token","abstract":true,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L16"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":""}},{"html_id":"visibility:Cosmo::AST::Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L14"},"def":{"name":"visibility","visibility":"Public","body":"@visibility"}},{"html_id":"visibility=(visibility:Cosmo::AST::Visibility)-instance-method","name":"visibility=","abstract":false,"args":[{"name":"visibility","external_name":"visibility","restriction":"::Cosmo::AST::Visibility"}],"args_string":"(visibility : Cosmo::AST::Visibility)","args_html":"(visibility : Cosmo::AST::Visibility)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L14"},"def":{"name":"visibility=","args":[{"name":"visibility","external_name":"visibility","restriction":"::Cosmo::AST::Visibility"}],"visibility":"Public","body":"@visibility = visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement","path":"Cosmo/AST/Statement.html","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"types":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","path":"Cosmo/AST/Statement/Base.html","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L19"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Statement/Block","kind":"class","full_name":"Cosmo::AST::Statement::Block","name":"Block"},{"html_id":"Cosmo/Cosmo/AST/Statement/Break","kind":"class","full_name":"Cosmo::AST::Statement::Break","name":"Break"},{"html_id":"Cosmo/Cosmo/AST/Statement/Case","kind":"class","full_name":"Cosmo::AST::Statement::Case","name":"Case"},{"html_id":"Cosmo/Cosmo/AST/Statement/ClassDef","kind":"class","full_name":"Cosmo::AST::Statement::ClassDef","name":"ClassDef"},{"html_id":"Cosmo/Cosmo/AST/Statement/Every","kind":"class","full_name":"Cosmo::AST::Statement::Every","name":"Every"},{"html_id":"Cosmo/Cosmo/AST/Statement/FunctionDef","kind":"class","full_name":"Cosmo::AST::Statement::FunctionDef","name":"FunctionDef"},{"html_id":"Cosmo/Cosmo/AST/Statement/If","kind":"class","full_name":"Cosmo::AST::Statement::If","name":"If"},{"html_id":"Cosmo/Cosmo/AST/Statement/Next","kind":"class","full_name":"Cosmo::AST::Statement::Next","name":"Next"},{"html_id":"Cosmo/Cosmo/AST/Statement/Return","kind":"class","full_name":"Cosmo::AST::Statement::Return","name":"Return"},{"html_id":"Cosmo/Cosmo/AST/Statement/SingleExpression","kind":"class","full_name":"Cosmo::AST::Statement::SingleExpression","name":"SingleExpression"},{"html_id":"Cosmo/Cosmo/AST/Statement/Throw","kind":"class","full_name":"Cosmo::AST::Statement::Throw","name":"Throw"},{"html_id":"Cosmo/Cosmo/AST/Statement/Unless","kind":"class","full_name":"Cosmo::AST::Statement::Unless","name":"Unless"},{"html_id":"Cosmo/Cosmo/AST/Statement/Until","kind":"class","full_name":"Cosmo::AST::Statement::Until","name":"Until"},{"html_id":"Cosmo/Cosmo/AST/Statement/Use","kind":"class","full_name":"Cosmo::AST::Statement::Use","name":"Use"},{"html_id":"Cosmo/Cosmo/AST/Statement/While","kind":"class","full_name":"Cosmo::AST::Statement::While","name":"While"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"instance_methods":[{"html_id":"accept(visitor:Visitor(R))forallR-instance-method","name":"accept","abstract":true,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) forall R","args_html":"(visitor : Visitor(R)) forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L20"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Block","path":"Cosmo/AST/Statement/Block.html","kind":"class","full_name":"Cosmo::AST::Statement::Block","name":"Block","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":383,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L383"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(nodes:Array(Cosmo::AST::Statement::Base)=[]ofNode)-class-method","name":"new","abstract":false,"args":[{"name":"nodes","default_value":"[] of Node","external_name":"nodes","restriction":"::Array(::Cosmo::AST::Statement::Base)"}],"args_string":"(nodes : Array(Cosmo::AST::Statement::Base) = [] of Node)","args_html":"(nodes : Array(Cosmo::AST::Statement::Base) = [] of Node)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":386,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L386"},"def":{"name":"new","args":[{"name":"nodes","default_value":"[] of Node","external_name":"nodes","restriction":"::Array(::Cosmo::AST::Statement::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(nodes)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](i:UInt):Node-instance-method","name":"[]","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"UInt"}],"args_string":"(i : UInt) : Node","args_html":"(i : UInt) : Node","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":393,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L393"},"def":{"name":"[]","args":[{"name":"i","external_name":"i","restriction":"UInt"}],"return_type":"Node","visibility":"Public","body":"@nodes[i]"}},{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":427,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L427"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_block_stmt(self)"}},{"html_id":"empty?-instance-method","name":"empty?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":389,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L389"},"def":{"name":"empty?","visibility":"Public","body":"@nodes.empty?"}},{"html_id":"end_location:Location-instance-method","name":"end_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":409,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L409"},"def":{"name":"end_location","return_type":"Location","visibility":"Public","body":"@end_location || @nodes.last?.try(&.end_location)"}},{"html_id":"first:Node-instance-method","name":"first","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":397,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L397"},"def":{"name":"first","return_type":"Node","visibility":"Public","body":"@nodes.first"}},{"html_id":"last:Node-instance-method","name":"last","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":401,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L401"},"def":{"name":"last","return_type":"Node","visibility":"Public","body":"@nodes.last"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":405,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L405"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location || @nodes.first?.try(&.location)"}},{"html_id":"nodes:Array(Base)-instance-method","name":"nodes","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":384,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L384"},"def":{"name":"nodes","return_type":"Array(Base)","visibility":"Public","body":"@nodes"}},{"html_id":"single_expression?:Expression::Base|Nil-instance-method","name":"single_expression?","doc":"It yields first node if this holds only one node, or yields `nil`.","summary":"

                            It yields first node if this holds only one node, or yields nil.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":414,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L414"},"def":{"name":"single_expression?","return_type":"Expression::Base | ::Nil","visibility":"Public","body":"if @nodes.size == 1\n expr = @nodes.first.single_expression\n if expr.is_a?(Statement::SingleExpression)\n expr.expression\n else\n expr.as(Expression::Base)\n end\nelse\n nil\nend"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":435,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L435"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Block\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":431,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L431"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@nodes.empty? ? Token.new(\"none\", Syntax::None, nil, Location.new(\"\", 0, 0)) : @nodes.first.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Break","path":"Cosmo/AST/Statement/Break.html","kind":"class","full_name":"Cosmo::AST::Statement::Break","name":"Break","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":164,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L164"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(keyword : Cosmo::Token)","args_html":"(keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L167"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L170"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_break_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L165"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L178"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Break\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":174,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L174"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Case","path":"Cosmo/AST/Statement/Case.html","kind":"class","full_name":"Cosmo::AST::Statement::Case","name":"Case","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":73,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L73"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,value:Cosmo::AST::Expression::Base,comparisons:Array(Cosmo::AST::Statement::When),else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"comparisons","external_name":"comparisons","restriction":"::Array(::Cosmo::AST::Statement::When)"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, value : Cosmo::AST::Expression::Base, comparisons : Array(Cosmo::AST::Statement::When), else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, value : Cosmo::AST::Expression::Base, comparisons : Array(Cosmo::AST::Statement::When), else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L79"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"comparisons","external_name":"comparisons","restriction":"::Array(::Cosmo::AST::Statement::When)"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, value, comparisons, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":82,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L82"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_case_stmt(self)"}},{"html_id":"comparisons:Array(When)-instance-method","name":"comparisons","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L76"},"def":{"name":"comparisons","return_type":"Array(When)","visibility":"Public","body":"@comparisons"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L77"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L74"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":90,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L90"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((\"Case<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)},\\n\") + \" #{TAB * indent}comparisons: [\\n\") + \" #{TAB * indent}#{@comparisons.map() do |__arg1|\n (__arg1.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":86,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L86"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":75,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L75"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/ClassDef","path":"Cosmo/AST/Statement/ClassDef.html","kind":"class","full_name":"Cosmo::AST::Statement::ClassDef","name":"ClassDef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L23"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(identifier:Cosmo::Token,body:Cosmo::AST::Statement::Block,visibility,superclass:Cosmo::AST::Expression::Base|Nil,mixins:Array(Cosmo::AST::Expression::Base))-class-method","name":"new","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"visibility","external_name":"visibility","restriction":""},{"name":"superclass","external_name":"superclass","restriction":"::Cosmo::AST::Expression::Base | ::Nil"},{"name":"mixins","external_name":"mixins","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"args_string":"(identifier : Cosmo::Token, body : Cosmo::AST::Statement::Block, visibility, superclass : Cosmo::AST::Expression::Base | Nil, mixins : Array(Cosmo::AST::Expression::Base))","args_html":"(identifier : Cosmo::Token, body : Cosmo::AST::Statement::Block, visibility, superclass : Cosmo::AST::Expression::Base | Nil, mixins : Array(Cosmo::AST::Expression::Base))","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L31"},"def":{"name":"new","args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"visibility","external_name":"visibility","restriction":""},{"name":"superclass","external_name":"superclass","restriction":"::Cosmo::AST::Expression::Base | ::Nil"},{"name":"mixins","external_name":"mixins","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(identifier, body, visibility, superclass, mixins)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L34"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_class_def_stmt(self)"}},{"html_id":"body:Block-instance-method","name":"body","doc":"getter parameters : Array(Expression::Parameter) # generics?","summary":"

                            getter parameters : Array(Expression::Parameter) # generics?

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L26"},"def":{"name":"body","return_type":"Block","visibility":"Public","body":"@body"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L24"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"mixins:Array(Expression::Base)-instance-method","name":"mixins","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L29"},"def":{"name":"mixins","return_type":"Array(Expression::Base)","visibility":"Public","body":"@mixins"}},{"html_id":"superclass:Expression::Base|Nil-instance-method","name":"superclass","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L28"},"def":{"name":"superclass","return_type":"Expression::Base | ::Nil","visibility":"Public","body":"@superclass"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":42,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L42"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"ClassDef<\\n\" + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}body: #{@body.to_s(indent + 1)}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":38,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L38"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L27"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Every","path":"Cosmo/AST/Statement/Every.html","kind":"class","full_name":"Cosmo::AST::Statement::Every","name":"Every","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L183"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,var:Cosmo::AST::Expression::VarDeclaration,enumerable:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::VarDeclaration"},{"name":"enumerable","external_name":"enumerable","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, var : Cosmo::AST::Expression::VarDeclaration, enumerable : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, var : Cosmo::AST::Expression::VarDeclaration, enumerable : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":189,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L189"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::VarDeclaration"},{"name":"enumerable","external_name":"enumerable","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, var, enumerable, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L192"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_every_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":187,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L187"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"enumerable:Expression::Base-instance-method","name":"enumerable","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":186,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L186"},"def":{"name":"enumerable","return_type":"Expression::Base","visibility":"Public","body":"@enumerable"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":184,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L184"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":200,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L200"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Every<\\n\" + \" #{TAB * indent}var: #{@var.to_s(indent + 1)},\\n\") + \" #{TAB * indent}in: #{@enumerable.to_s(indent + 1)}\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L196"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"var:Expression::VarDeclaration-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":185,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L185"},"def":{"name":"var","return_type":"Expression::VarDeclaration","visibility":"Public","body":"@var"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/FunctionDef","path":"Cosmo/AST/Statement/FunctionDef.html","kind":"class","full_name":"Cosmo::AST::Statement::FunctionDef","name":"FunctionDef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":331,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L331"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(identifier:Cosmo::Token,parameters:Array(Cosmo::AST::Expression::Parameter),body:Cosmo::AST::Statement::Block,return_typedef:Cosmo::Token,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"parameters","external_name":"parameters","restriction":"::Array(::Cosmo::AST::Expression::Parameter)"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"return_typedef","external_name":"return_typedef","restriction":"::Cosmo::Token"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(identifier : Cosmo::Token, parameters : Array(Cosmo::AST::Expression::Parameter), body : Cosmo::AST::Statement::Block, return_typedef : Cosmo::Token, visibility)","args_html":"(identifier : Cosmo::Token, parameters : Array(Cosmo::AST::Expression::Parameter), body : Cosmo::AST::Statement::Block, return_typedef : Cosmo::Token, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":338,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L338"},"def":{"name":"new","args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"parameters","external_name":"parameters","restriction":"::Array(::Cosmo::AST::Expression::Parameter)"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"return_typedef","external_name":"return_typedef","restriction":"::Cosmo::Token"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(identifier, parameters, body, return_typedef, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":341,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L341"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_fn_def_stmt(self)"}},{"html_id":"body:Block-instance-method","name":"body","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L334"},"def":{"name":"body","return_type":"Block","visibility":"Public","body":"@body"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":332,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L332"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"parameters:Array(Expression::Parameter)-instance-method","name":"parameters","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":333,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L333"},"def":{"name":"parameters","return_type":"Array(Expression::Parameter)","visibility":"Public","body":"@parameters"}},{"html_id":"return_typedef:Token-instance-method","name":"return_typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L335"},"def":{"name":"return_typedef","return_type":"Token","visibility":"Public","body":"@return_typedef"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":349,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L349"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((((\"FunctionDef<\\n\" + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}parameters: [\\n\") + \" #{TAB * indent}#{@parameters.map() do |__arg2|\n (__arg2.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}return_typedef: #{@return_typedef.value},\\n\") + \" #{TAB * indent}body: #{@body.to_s(indent + 1)}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":345,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L345"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L336"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/If","path":"Cosmo/AST/Statement/If.html","kind":"class","full_name":"Cosmo::AST::Statement::If","name":"If","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":257,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L257"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,then:Cosmo::AST::Statement::Base,else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":263,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L263"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":266,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L266"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_if_stmt(self)"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L259"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":261,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L261"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":258,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L258"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":260,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L260"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L274"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"If<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)},\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L270"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Next","path":"Cosmo/AST/Statement/Next.html","kind":"class","full_name":"Cosmo::AST::Statement::Next","name":"Next","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L145"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(keyword : Cosmo::Token)","args_html":"(keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":148,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L148"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":151,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L151"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_next_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":146,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L146"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":159,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L159"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Next\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":155,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L155"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Return","path":"Cosmo/AST/Statement/Return.html","kind":"class","full_name":"Cosmo::AST::Statement::Return","name":"Return","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L309"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(value:Cosmo::AST::Expression::Base,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(value : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","args_html":"(value : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":313,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L313"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":316,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L316"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_return_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":311,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L311"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":324,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L324"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Return<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":320,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L320"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":310,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L310"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/SingleExpression","path":"Cosmo/AST/Statement/SingleExpression.html","kind":"class","full_name":"Cosmo::AST::Statement::SingleExpression","name":"SingleExpression","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L362"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(expression:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"expression","external_name":"expression","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(expression : Cosmo::AST::Expression::Base)","args_html":"(expression : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":365,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L365"},"def":{"name":"new","args":[{"name":"expression","external_name":"expression","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(expression)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":368,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L368"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_single_expr_stmt(self)"}},{"html_id":"expression:Expression::Base-instance-method","name":"expression","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":363,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L363"},"def":{"name":"expression","return_type":"Expression::Base","visibility":"Public","body":"@expression"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":376,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L376"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"SingleExpression<\\n\" + \" #{TAB * indent}expression: #{@expression.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":372,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L372"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@expression.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Throw","path":"Cosmo/AST/Statement/Throw.html","kind":"class","full_name":"Cosmo::AST::Statement::Throw","name":"Throw","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L123"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(err:Cosmo::AST::Expression::Base,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"err","external_name":"err","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(err : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","args_html":"(err : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L127"},"def":{"name":"new","args":[{"name":"err","external_name":"err","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(err, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L130"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_throw_stmt(self)"}},{"html_id":"err:Expression::Base-instance-method","name":"err","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":124,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L124"},"def":{"name":"err","return_type":"Expression::Base","visibility":"Public","body":"@err"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":125,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L125"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L138"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Throw<\\n\" + \" #{TAB * indent}err: #{@err.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":134,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L134"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Unless","path":"Cosmo/AST/Statement/Unless.html","kind":"class","full_name":"Cosmo::AST::Statement::Unless","name":"Unless","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L283"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,then:Cosmo::AST::Statement::Base,else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":289,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L289"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":292,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L292"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_unless_stmt(self)"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":285,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L285"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":287,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L287"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":284,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L284"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":286,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L286"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":300,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L300"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Unless<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)},\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L296"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Until","path":"Cosmo/AST/Statement/Until.html","kind":"class","full_name":"Cosmo::AST::Statement::Until","name":"Until","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":233,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L233"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":238,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L238"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":241,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L241"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_until_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":236,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L236"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L235"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":234,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L234"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":249,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L249"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Until<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":245,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L245"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Use","path":"Cosmo/AST/Statement/Use.html","kind":"class","full_name":"Cosmo::AST::Statement::Use","name":"Use","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L101"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(module_path:Cosmo::Token,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"module_path","external_name":"module_path","restriction":"::Cosmo::Token"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(module_path : Cosmo::Token, keyword : Cosmo::Token)","args_html":"(module_path : Cosmo::Token, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":105,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L105"},"def":{"name":"new","args":[{"name":"module_path","external_name":"module_path","restriction":"::Cosmo::Token"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(module_path, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":108,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L108"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_use_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L103"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"module_path:Token-instance-method","name":"module_path","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":102,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L102"},"def":{"name":"module_path","return_type":"Token","visibility":"Public","body":"@module_path"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":116,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L116"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Use<\\n\" + \" #{TAB * indent}module_path: #{@module_path.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":112,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L112"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","path":"Cosmo/AST/Statement/Visitor.html","kind":"module","full_name":"Cosmo::AST::Statement::Visitor(R)","name":"Visitor","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L2"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/Interpreter","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter"},{"html_id":"Cosmo/Cosmo/Resolver","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"instance_methods":[{"html_id":"visit_block_stmt(stmt:Block):R-instance-method","name":"visit_block_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Block"}],"args_string":"(stmt : Block) : R","args_html":"(stmt : Block) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L16"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Block"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_break_stmt(stmt:Break):R-instance-method","name":"visit_break_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Break"}],"args_string":"(stmt : Break) : R","args_html":"(stmt : Break) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L10"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Break"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_case_stmt(stmt:Case):R-instance-method","name":"visit_case_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Case"}],"args_string":"(stmt : Case) : R","args_html":"(stmt : Case) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L3"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Case"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_every_stmt(stmt:Every):R-instance-method","name":"visit_every_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Every"}],"args_string":"(stmt : Every) : R","args_html":"(stmt : Every) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L4"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Every"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_fn_def_stmt(stmt:FunctionDef):R-instance-method","name":"visit_fn_def_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"FunctionDef"}],"args_string":"(stmt : FunctionDef) : R","args_html":"(stmt : FunctionDef) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L14"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"FunctionDef"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_if_stmt(stmt:If):R-instance-method","name":"visit_if_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"If"}],"args_string":"(stmt : If) : R","args_html":"(stmt : If) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L7"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"If"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_next_stmt(stmt:Next):R-instance-method","name":"visit_next_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Next"}],"args_string":"(stmt : Next) : R","args_html":"(stmt : Next) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L11"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Next"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_return_stmt(stmt:Return):R-instance-method","name":"visit_return_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Return"}],"args_string":"(stmt : Return) : R","args_html":"(stmt : Return) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L9"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Return"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_single_expr_stmt(stmt:SingleExpression):R-instance-method","name":"visit_single_expr_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"SingleExpression"}],"args_string":"(stmt : SingleExpression) : R","args_html":"(stmt : SingleExpression) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L15"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"SingleExpression"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_throw_stmt(stmt:Throw):R-instance-method","name":"visit_throw_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Throw"}],"args_string":"(stmt : Throw) : R","args_html":"(stmt : Throw) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L12"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Throw"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_unless_stmt(stmt:Unless):R-instance-method","name":"visit_unless_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Unless"}],"args_string":"(stmt : Unless) : R","args_html":"(stmt : Unless) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L8"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Unless"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_until_stmt(stmt:Until):R-instance-method","name":"visit_until_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Until"}],"args_string":"(stmt : Until) : R","args_html":"(stmt : Until) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L6"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Until"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_use_stmt(stmt:Use):R-instance-method","name":"visit_use_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Use"}],"args_string":"(stmt : Use) : R","args_html":"(stmt : Use) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L13"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Use"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_while_stmt(stmt:While):R-instance-method","name":"visit_while_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"While"}],"args_string":"(stmt : While) : R","args_html":"(stmt : While) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L5"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"While"}],"return_type":"R","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/When","path":"Cosmo/AST/Statement/When.html","kind":"struct","full_name":"Cosmo::AST::Statement::When","name":"When","abstract":false,"superclass":{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L51"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,conditions:Array(Cosmo::AST::Expression::Base),block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"conditions","external_name":"conditions","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, conditions : Array(Cosmo::AST::Expression::Base), block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, conditions : Array(Cosmo::AST::Expression::Base), block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L56"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"conditions","external_name":"conditions","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, conditions, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L54"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"conditions:Array(Expression::Base)-instance-method","name":"conditions","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L53"},"def":{"name":"conditions","return_type":"Array(Expression::Base)","visibility":"Public","body":"@conditions"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L52"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L63"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((((\"When<\\n\" + \" #{TAB * indent}conditions: [\\n\") + \" #{TAB * indent}#{@conditions.map() do |__arg0|\n (__arg0.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}block: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L59"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/While","path":"Cosmo/AST/Statement/While.html","kind":"class","full_name":"Cosmo::AST::Statement::While","name":"While","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":209,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L209"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":214,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L214"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L217"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_while_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":212,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L212"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":211,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L211"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":210,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L210"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":225,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L225"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"While<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":221,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L221"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]}]},{"html_id":"Cosmo/Cosmo/AST/Visibility","path":"Cosmo/AST/Visibility.html","kind":"enum","full_name":"Cosmo::AST::Visibility","name":"Visibility","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Public","name":"Public","value":"0"},{"id":"Protected","name":"Protected","value":"1"},{"id":"Private","name":"Private","value":"2"},{"id":"Static","name":"Static","value":"3"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"instance_methods":[{"html_id":"private?-instance-method","name":"private?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L7"},"def":{"name":"private?","visibility":"Public","body":"self == Private"}},{"html_id":"protected?-instance-method","name":"protected?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L6"},"def":{"name":"protected?","visibility":"Public","body":"self == Protected"}},{"html_id":"public?-instance-method","name":"public?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L5"},"def":{"name":"public?","visibility":"Public","body":"self == Public"}},{"html_id":"static?-instance-method","name":"static?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L8"},"def":{"name":"static?","visibility":"Public","body":"self == Static"}}]}]},{"html_id":"Cosmo/Cosmo/Callable","path":"Cosmo/Callable.html","kind":"class","full_name":"Cosmo::Callable","name":"Callable","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/function.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/Function","kind":"class","full_name":"Cosmo::Function","name":"Function"},{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L3"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":""}},{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":true,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/function.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L2"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":""}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L4"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":""}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L5"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/Class","path":"Cosmo/Class.html","kind":"class","full_name":"Cosmo::Class","name":"Class","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/class.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Cosmo::Interpreter,closure:Cosmo::Scope,definition:Cosmo::AST::Statement::ClassDef)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::ClassDef"}],"args_string":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::ClassDef)","args_html":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::ClassDef)","location":{"filename":"src/cosmo/runtime/class.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L6"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::ClassDef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter, closure, definition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"construct(args:Array(ValueType)):ClassInstance-instance-method","name":"construct","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ClassInstance","args_html":"(args : Array(ValueType)) : ClassInstance","location":{"filename":"src/cosmo/runtime/class.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L13"},"def":{"name":"construct","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ClassInstance","visibility":"Public","body":"instance = ClassInstance.new(self, args)\n@interpreter.set_meta(\"this\", instance)\n@interpreter.execute_block(@definition.body, Scope.new(@closure))\n@interpreter.delete_meta(\"this\")\ninstance.setup\n"}},{"html_id":"definition:Statement::ClassDef-instance-method","name":"definition","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L4"},"def":{"name":"definition","return_type":"Statement::ClassDef","visibility":"Public","body":"@definition"}},{"html_id":"interpreter:Interpreter-instance-method","name":"interpreter","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L3"},"def":{"name":"interpreter","return_type":"Interpreter","visibility":"Public","body":"@interpreter"}},{"html_id":"name-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L9"},"def":{"name":"name","visibility":"Public","body":"@definition.identifier.lexeme"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L21"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}}]},{"html_id":"Cosmo/Cosmo/ClassInstance","path":"Cosmo/ClassInstance.html","kind":"class","full_name":"Cosmo::ClassInstance","name":"ClassInstance","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/class.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L26"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(parent:Cosmo::Class,args:Array(Cosmo::ValueType))-class-method","name":"new","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"::Cosmo::Class"},{"name":"args","external_name":"args","restriction":"::Array(::Cosmo::ValueType)"}],"args_string":"(parent : Cosmo::Class, args : Array(Cosmo::ValueType))","args_html":"(parent : Cosmo::Class, args : Array(Cosmo::ValueType))","location":{"filename":"src/cosmo/runtime/class.cr","line_number":49,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L49"},"def":{"name":"new","args":[{"name":"parent","external_name":"parent","restriction":"::Cosmo::Class"},{"name":"args","external_name":"args","restriction":"::Array(::Cosmo::ValueType)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(parent, args)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"define_field(name:String,value:ValueType,token:Token|Nil,constant:Bool=false,visibility:Visibility=Visibility::Public,typedef:Token|Nil=nil):ClassInstance-instance-method","name":"define_field","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token | ::Nil"},{"name":"constant","default_value":"false","external_name":"constant","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Public","external_name":"visibility","restriction":"Visibility"},{"name":"typedef","default_value":"nil","external_name":"typedef","restriction":"Token | ::Nil"}],"args_string":"(name : String, value : ValueType, token : Token | Nil, constant : Bool = false, visibility : Visibility = Visibility::Public, typedef : Token | Nil = nil) : ClassInstance","args_html":"(name : String, value : ValueType, token : Token | Nil, constant : Bool = false, visibility : Visibility = Visibility::Public, typedef : Token | Nil = nil) : ClassInstance","location":{"filename":"src/cosmo/runtime/class.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L63"},"def":{"name":"define_field","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token | ::Nil"},{"name":"constant","default_value":"false","external_name":"constant","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Public","external_name":"visibility","restriction":"Visibility"},{"name":"typedef","default_value":"nil","external_name":"typedef","restriction":"Token | ::Nil"}],"return_type":"ClassInstance","visibility":"Public","body":"current_meta = @field_meta[name]?\nif current_meta.nil?\nelse\n if current_meta[:\"constant?\"] && (!@constructing)\n Logger.report_error(\"Attempt to assign to constant property\", name, token.not_nil!)\n end\nend\nif @field_meta[name]?.nil?\n meta_hash = {} of Symbol => Token | Bool\n meta_hash[:\"constant?\"] = constant\n if typedef.nil?\n if current_meta.nil?\n else\n typedef = current_meta[:type]\n TypeChecker.assert(typedef.lexeme + \"|void\", value, typedef)\n end\n else\n meta_hash[:type] = typedef\n end\n @field_meta[name] = FieldMeta.from(meta_hash)\nend\nregistry = visibility == Visibility::Public ? @public : visibility == Visibility::Protected ? @protected : @private\n(registry[\"fields\"].as(Hash(String, ValueType)))[name] = value\nself\n"}},{"html_id":"define_method(name:String,value:Function,token:Token|Nil=nil,visibility:Visibility=Visibility::Public):ClassInstance-instance-method","name":"define_method","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Function"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"visibility","default_value":"Visibility::Public","external_name":"visibility","restriction":"Visibility"}],"args_string":"(name : String, value : Function, token : Token | Nil = nil, visibility : Visibility = Visibility::Public) : ClassInstance","args_html":"(name : String, value : Function, token : Token | Nil = nil, visibility : Visibility = Visibility::Public) : ClassInstance","location":{"filename":"src/cosmo/runtime/class.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L99"},"def":{"name":"define_method","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Function"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"visibility","default_value":"Visibility::Public","external_name":"visibility","restriction":"Visibility"}],"return_type":"ClassInstance","visibility":"Public","body":"registry = visibility == Visibility::Public ? @public : visibility == Visibility::Protected ? @protected : @private\nif (!token.nil?) && ((registry[\"methods\"].as(Hash(String, Function))).has_key?(name))\n Logger.report_error(\"Duplicate method definition in '#{name}'\", name, token)\nend\n(registry[\"methods\"].as(Hash(String, Function)))[name] = value\nself\n"}},{"html_id":"get_field(name:String,token:Token|Nil=nil,include_private:Bool=true,include_protected:Bool=false):ValueType|Nil-instance-method","name":"get_field","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"args_string":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil","args_html":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil","location":{"filename":"src/cosmo/runtime/class.cr","line_number":113,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L113"},"def":{"name":"get_field","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"return_type":"ValueType | ::Nil","visibility":"Public","body":"field = @public[\"fields\"][name]?\nif include_private\n field || (field = @private[\"fields\"][name]?)\nend\nif include_protected\n field || (field = @protected[\"fields\"][name]?)\nend\nif (token.nil? || include_private) || @private[\"fields\"][name]?.nil?\nelse\n Logger.report_error(\"Attempt to access private field\", name, token)\nend\nif (token.nil? || include_protected) || @protected[\"methods\"][name]?.nil?\nelse\n Logger.report_error(\"Attempt to access protected field outside of class definition\", name, token)\nend\nfield.as(ValueType | ::Nil)\n"}},{"html_id":"get_member(name:String,token:Token|Nil=nil,include_private:Bool=true,include_protected:Bool=false):ValueType|Nil-instance-method","name":"get_member","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"args_string":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil","args_html":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil","location":{"filename":"src/cosmo/runtime/class.cr","line_number":109,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L109"},"def":{"name":"get_member","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"return_type":"ValueType | ::Nil","visibility":"Public","body":"(get_method(name, token, include_private, include_protected)) || (get_field(name, token, include_private, include_protected))"}},{"html_id":"get_method(name:String,token:Token|Nil=nil,include_private:Bool=true,include_protected:Bool=false):Function|Nil-instance-method","name":"get_method","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"args_string":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : Function | Nil","args_html":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : Function | Nil","location":{"filename":"src/cosmo/runtime/class.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L130"},"def":{"name":"get_method","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"return_type":"Function | ::Nil","visibility":"Public","body":"method = @public[\"methods\"][name]?\nif include_private\n method || (method = @private[\"methods\"][name]?)\nend\nif include_protected\n method || (method = @protected[\"methods\"][name]?)\nend\nif (token.nil? || include_private) || @private[\"methods\"][name]?.nil?\nelse\n Logger.report_error(\"Attempt to access private method\", name, token)\nend\nif (token.nil? || include_protected) || @protected[\"methods\"][name]?.nil?\nelse\n Logger.report_error(\"Attempt to access protected method outside of class definition\", name, token)\nend\nmethod.as(Function | ::Nil)\n"}},{"html_id":"name-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":147,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L147"},"def":{"name":"name","visibility":"Public","body":"@parent.name"}},{"html_id":"setup:ClassInstance-instance-method","name":"setup","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L52"},"def":{"name":"setup","return_type":"ClassInstance","visibility":"Public","body":"ctor_method = get_method(\"construct\", include_private: false)\nif ctor_method.nil?\nelse\n @constructing = true\n ctor_method.call(@args, return_type_override: \"void\")\n @constructing = false\nend\nself\n"}}]},{"html_id":"Cosmo/Cosmo/Function","path":"Cosmo/Function.html","kind":"class","full_name":"Cosmo::Function","name":"Function","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},"ancestors":[{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/function.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Cosmo::Interpreter,closure:Cosmo::Scope,definition:Cosmo::AST::Statement::FunctionDef)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::FunctionDef"}],"args_string":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::FunctionDef)","args_html":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::FunctionDef)","location":{"filename":"src/cosmo/runtime/function.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L14"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::FunctionDef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter, closure, definition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L46"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"@non_nullable_params.size.to_u..@definition.parameters.size.to_u"}},{"html_id":"call(args:Array(ValueType),return_type_override:String=@definition.return_typedef.value.to_s):ValueType-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"},{"name":"return_type_override","default_value":"@definition.return_typedef.value.to_s","external_name":"return_type_override","restriction":"String"}],"args_string":"(args : Array(ValueType), return_type_override : String = @definition.return_typedef.value.to_s) : ValueType","args_html":"(args : Array(ValueType), return_type_override : String = @definition.return_typedef.value.to_s) : ValueType","location":{"filename":"src/cosmo/runtime/function.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L23"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"},{"name":"return_type_override","default_value":"@definition.return_typedef.value.to_s","external_name":"return_type_override","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", return_type_override)\nscope = Scope.new(@closure)\n@definition.parameters.each_with_index do |param, i|\n value = (args[i] || (param.default_value.nil? ? nil : @interpreter.evaluate(param.default_value.not_nil!))).as(ValueType)\n scope.declare(param.typedef, param.identifier, value, const: param.const?)\nend\nresult = nil\nbegin\n result = @interpreter.execute_block(@definition.body, scope, is_fn: true)\nrescue returner : HookedExceptions::Return\n result = returner.value\nrescue ex : Exception\n raise(ex)\nend\n@interpreter.delete_meta(\"block_return_type\")\nresult\n"}},{"html_id":"definition:Statement::FunctionDef-instance-method","name":"definition","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L12"},"def":{"name":"definition","return_type":"Statement::FunctionDef","visibility":"Public","body":"@definition"}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":50,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L50"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":"false"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L54"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions","path":"Cosmo/HookedExceptions.html","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions","abstract":false,"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/HookedExceptions/Break","path":"Cosmo/HookedExceptions/Break.html","kind":"class","full_name":"Cosmo::HookedExceptions::Break","name":"Break","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L16"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token)","args_html":"(token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L17"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions/Next","path":"Cosmo/HookedExceptions/Next.html","kind":"class","full_name":"Cosmo::HookedExceptions::Next","name":"Next","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L22"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token)","args_html":"(token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L23"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions/Return","path":"Cosmo/HookedExceptions/Return.html","kind":"class","full_name":"Cosmo::HookedExceptions::Return","name":"Return","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(value:Cosmo::ValueType,token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(value : Cosmo::ValueType, token : Token)","args_html":"(value : Cosmo::ValueType, token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L11"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"value:ValueType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L9"},"def":{"name":"value","return_type":"ValueType","visibility":"Public","body":"@value"}}]}]},{"html_id":"Cosmo/Cosmo/Interpreter","path":"Cosmo/Interpreter.html","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/interpreter.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L13"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(output_ast:Bool,run_benchmarks:Bool,debug_mode:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"output_ast","external_name":"output_ast","restriction":"Bool"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"},{"name":"debug_mode","external_name":"debug_mode","restriction":"Bool"}],"args_string":"(output_ast : Bool, run_benchmarks : Bool, debug_mode : Bool)","args_html":"(output_ast : Bool, run_benchmarks : Bool, debug_mode : Bool)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L26"},"def":{"name":"new","args":[{"name":"output_ast","external_name":"output_ast","restriction":"Bool"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"},{"name":"debug_mode","external_name":"debug_mode","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(output_ast, run_benchmarks, debug_mode)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"add_object_value(token:Token,object:V,key:ValueType,value:ValueType):VforallV-instance-method","name":"add_object_value","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"},{"name":"object","external_name":"object","restriction":"V"},{"name":"key","external_name":"key","restriction":"ValueType"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(token : Token, object : V, key : ValueType, value : ValueType) : V forall V","args_html":"(token : Token, object : V, key : ValueType, value : ValueType) : V forall V","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":506,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L506"},"def":{"name":"add_object_value","args":[{"name":"token","external_name":"token","restriction":"Token"},{"name":"object","external_name":"object","restriction":"V"},{"name":"key","external_name":"key","restriction":"ValueType"},{"name":"value","external_name":"value","restriction":"ValueType"}],"return_type":"V","visibility":"Public","body":"if object.is_a?(Array)\n if key.is_a?(Int)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), token)\n end\n if object[key]?.nil?\n object.insert(key, value)\n else\n object[key] = value\n end\nelse\n if object.is_a?(Hash)\n object[key] = value\n else\n if object.is_a?(ClassInstance)\n if key.is_a?(String)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), token)\n end\n object.define_field(key, value, token)\n else\n Logger.report_error(\"Attempt to assign to index of\", TypeChecker.get_mapped(object.class), token)\n end\n end\nend\nobject\n"}},{"html_id":"declare_intrinsic(type:String,ident:String,value:ValueType)-instance-method","name":"declare_intrinsic","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"ident","external_name":"ident","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(type : String, ident : String, value : ValueType)","args_html":"(type : String, ident : String, value : ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":55,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L55"},"def":{"name":"declare_intrinsic","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"ident","external_name":"ident","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"}],"visibility":"Public","body":"location = Location.new(\"intrinsic\", 0, 0)\nident_token = fake_ident(ident, location)\ntypedef_token = fake_typedef(type, location)\n@globals.declare(typedef_token, ident_token, value, const: true)\n"}},{"html_id":"delete_meta(key:String):Nil-instance-method","name":"delete_meta","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String) : Nil","args_html":"(key : String) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":62,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L62"},"def":{"name":"delete_meta","args":[{"name":"key","external_name":"key","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"@meta.delete(key)"}},{"html_id":"evaluate(expr:Expression::Base):ValueType-instance-method","name":"evaluate","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"}],"args_string":"(expr : Expression::Base) : ValueType","args_html":"(expr : Expression::Base) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":135,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L135"},"def":{"name":"evaluate","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"}],"return_type":"ValueType","visibility":"Public","body":"expr.accept(self)"}},{"html_id":"execute(stmt:Statement::Base):ValueType-instance-method","name":"execute","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Base"}],"args_string":"(stmt : Statement::Base) : ValueType","args_html":"(stmt : Statement::Base) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":139,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L139"},"def":{"name":"execute","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Base"}],"return_type":"ValueType","visibility":"Public","body":"stmt.accept(self)"}},{"html_id":"execute_block(block:Statement::Base,block_scope:Scope,is_fn:Bool=false):ValueType-instance-method","name":"execute_block","abstract":false,"args":[{"name":"block","external_name":"block","restriction":"Statement::Base"},{"name":"block_scope","external_name":"block_scope","restriction":"Scope"},{"name":"is_fn","default_value":"false","external_name":"is_fn","restriction":"Bool"}],"args_string":"(block : Statement::Base, block_scope : Scope, is_fn : Bool = false) : ValueType","args_html":"(block : Statement::Base, block_scope : Scope, is_fn : Bool = false) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":143,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L143"},"def":{"name":"execute_block","args":[{"name":"block","external_name":"block","restriction":"Statement::Base"},{"name":"block_scope","external_name":"block_scope","restriction":"Scope"},{"name":"is_fn","default_value":"false","external_name":"is_fn","restriction":"Bool"}],"return_type":"ValueType","visibility":"Public","body":"prev_scope = @scope\nbegin\n @scope = block_scope\n if @meta[\"this\"]?.nil? || (!@scope.lookup?(\"$\").nil?)\n else\n this = @meta[\"this\"].as(ClassInstance)\n @scope.declare(fake_typedef(this.name), fake_ident(\"$\"), this)\n end\n if block.is_a?(Statement::Block)\n if block.nodes.empty?\n else\n return_node = block.nodes.find do |node|\n node.is_a?(Statement::Return)\n end || block.nodes.last\n body_nodes = block.nodes[0..-2]\n body_nodes.each do |expr|\n execute(expr.as(Statement::Base))\n end\n if return_node.nil?\n else\n return_value = execute(return_node.as(Statement::Base))\n end\n end\n if is_fn\n return_type = @meta[\"block_return_type\"]? || \"void\"\n token = return_node.nil? ? Token.new(\"none\", Syntax::None, nil, Location.new(\"\", 0, 0)) : return_node.token\n if return_type.to_s == \"void\"\n else\n TypeChecker.assert(return_type.to_s, return_value, token)\n end\n end\n else\n return_value = execute(block)\n end\n if return_type.to_s == \"void\"\n else\n return return_value\n end\n nil\nrescue ex : Exception\n raise(ex)\nensure\n @scope = prev_scope\nend\n"}},{"html_id":"globals:Cosmo::Scope-instance-method","name":"globals","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L19"},"def":{"name":"globals","visibility":"Public","body":"@globals"}},{"html_id":"interpret(source:String,file_path:String):ValueType-instance-method","name":"interpret","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(source : String, file_path : String) : ValueType","args_html":"(source : String, file_path : String) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":71,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L71"},"def":{"name":"interpret","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@file_path = file_path\nparser = Parser.new(source, @file_path, @run_benchmarks)\nstatements = parser.parse\nstatement_list_str = \"\"\nstatements.each do |stmt|\n statement_list_str = statement_list_str + (stmt.to_s + \"\\n\")\nend\nif @output_ast\n puts(statement_list_str)\nend\nresolver = Resolver.new(self)\nresolver.resolve(statements)\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Resolver @#{@file_path} took #{get_elapsed(resolver.start_time, end_time)}.\")\nend\nstart_time = Time.monotonic\nresult = nil\nstatements.each do |stmt|\n result = execute(stmt)\nend\nmain_fn = @globals.lookup?(\"main\")\nis_public = @globals.public?(\"main\")\nfound_main = ((!main_fn.nil?) && main_fn.is_a?(Function)) && is_public\nif found_main\n main_fn = main_fn.as(Function)\n return_typedef = main_fn.definition.return_typedef\n if TypeChecker.is?(return_typedef.lexeme, 1, return_typedef)\n else\n Logger.report_error(\"Invalid main() function\", \"A main() function may only return 'int'\", return_typedef)\n end\n set_meta(\"block_return_type\", \"int\")\n main_result = main_fn.call([ARGV.map() do |__arg0|\n __arg0.as(ValueType)\n end])\n TypeChecker.assert(\"int\", main_result, return_typedef)\nend\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Interpreter @#{file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\nif (found_main && (@file_path != \"test\")) && (@file_path != \"repl\")\n code = main_result.not_nil!.as(Int64)\n if code == 0\n Process.exit(code)\n else\n raise(\"Process exited with code #{code}\")\n end\nend\nresult\n"}},{"html_id":"meta:Hash(String,Cosmo::ClassInstance|String)-instance-method","name":"meta","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L21"},"def":{"name":"meta","visibility":"Public","body":"@meta"}},{"html_id":"resolve(expr:Expression::Base,depth:UInt32):Nil-instance-method","name":"resolve","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"},{"name":"depth","external_name":"depth","restriction":"UInt32"}],"args_string":"(expr : Expression::Base, depth : UInt32) : Nil","args_html":"(expr : Expression::Base, depth : UInt32) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":125,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L125"},"def":{"name":"resolve","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"},{"name":"depth","external_name":"depth","restriction":"UInt32"}],"return_type":"Nil","visibility":"Public","body":"@locals[expr] = depth"}},{"html_id":"scope:Scope-instance-method","name":"scope","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L20"},"def":{"name":"scope","return_type":"Scope","visibility":"Public","body":"@scope"}},{"html_id":"set_meta(key:String,value:MetaType|Nil):Nil-instance-method","name":"set_meta","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"MetaType | ::Nil"}],"args_string":"(key : String, value : MetaType | Nil) : Nil","args_html":"(key : String, value : MetaType | Nil) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":66,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L66"},"def":{"name":"set_meta","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"MetaType | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"if value.nil?\n return\nend\n@meta[key] = value\n"}},{"html_id":"visit_access_expr(expr:Expression::Access):ValueType-instance-method","name":"visit_access_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"args_string":"(expr : Expression::Access) : ValueType","args_html":"(expr : Expression::Access) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":394,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L394"},"def":{"name":"visit_access_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"return_type":"ValueType","visibility":"Public","body":"object = evaluate(expr.object)\nkey = expr.key.lexeme\nif object.is_a?(Hash)\n object[key]?\nelse\n if object.is_a?(ClassInstance)\n object.get_member(key, expr.key, include_private: !@meta[\"this\"]?.nil?)\n else\n Logger.report_error(\"Attempt to index\", TypeChecker.get_mapped(object.class), expr.token)\n end\nend\n"}},{"html_id":"visit_binary_op_expr(expr:Expression::BinaryOp):ValueType-instance-method","name":"visit_binary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":632,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L632"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = evaluate(expr.left)\nright = evaluate(expr.right)\ncase expr.operator.type\nwhen Syntax::Plus\n op = Operator::Plus.new(self)\n op.apply(expr)\nwhen Syntax::Minus\n op = Operator::Minus.new(self)\n op.apply(expr)\nwhen Syntax::Star\n op = Operator::Mul.new(self)\n op.apply(expr)\nwhen Syntax::Slash\n op = Operator::Div.new(self)\n op.apply(expr)\nwhen Syntax::Carat\n op = Operator::Pow.new(self)\n op.apply(expr)\nwhen Syntax::Percent\n op = Operator::Mod.new(self)\n op.apply(expr)\nwhen Syntax::AmpersandColon\n left && right\nwhen Syntax::PipeColon\n left || right\nwhen Syntax::EqualEqual\n left == right\nwhen Syntax::BangEqual\n left != right\nwhen Syntax::Less\n op = Operator::LT.new(self)\n op.apply(expr)\nwhen Syntax::LessEqual\n op = Operator::LTE.new(self)\n op.apply(expr)\nwhen Syntax::Greater\n op = Operator::GT.new(self)\n op.apply(expr)\nwhen Syntax::GreaterEqual\n op = Operator::GTE.new(self)\n op.apply(expr)\nwhen Syntax::Tilde\n op = Operator::Bxor.new(self)\n op.apply(expr)\nwhen Syntax::Pipe\n op = Operator::Bor.new(self)\n op.apply(expr)\nwhen Syntax::Ampersand\n op = Operator::Band.new(self)\n op.apply(expr)\nwhen Syntax::RDoubleArrow\n op = Operator::Bshr.new(self)\n op.apply(expr)\nwhen Syntax::LDoubleArrow\n op = Operator::Bshl.new(self)\n op.apply(expr)\nend\n"}},{"html_id":"visit_block_stmt(stmt:Statement::Block):ValueType-instance-method","name":"visit_block_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"args_string":"(stmt : Statement::Block) : ValueType","args_html":"(stmt : Statement::Block) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":729,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L729"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"return_type":"ValueType","visibility":"Public","body":"execute_block(stmt, Scope.new(@scope))"}},{"html_id":"visit_break_stmt(stmt:Statement::Break):Nil-instance-method","name":"visit_break_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"args_string":"(stmt : Statement::Break) : Nil","args_html":"(stmt : Statement::Break) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":315,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L315"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"return_type":"Nil","visibility":"Public","body":"raise(HookedExceptions::Break.new(stmt.keyword))"}},{"html_id":"visit_case_stmt(stmt:Statement::Case):ValueType-instance-method","name":"visit_case_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"args_string":"(stmt : Statement::Case) : ValueType","args_html":"(stmt : Statement::Case) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":282,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L282"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(stmt.value)\ngo_to_else = false\nstmt.comparisons.each do |when_stmt|\n condition = true\n when_stmt.conditions.each do |condition_expr|\n if condition_expr.is_a?(Expression::TypeRef)\n condition = condition & (TypeChecker.is?(condition_expr.name.lexeme, value, when_stmt.token))\n else\n condition = condition & ((evaluate(condition_expr)) == value)\n end\n end\n if condition\n return execute(when_stmt.block)\n end\n go_to_else = true\nend\nif (!stmt.else.nil?) && go_to_else\n return execute(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_class_def_stmt(stmt:Statement::ClassDef):ValueType-instance-method","name":"visit_class_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"args_string":"(stmt : Statement::ClassDef) : ValueType","args_html":"(stmt : Statement::ClassDef) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":366,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L366"},"def":{"name":"visit_class_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"return_type":"ValueType","visibility":"Public","body":"_class = Class.new(self, @scope, stmt)\n@scope.declare(fake_typedef(\"class\"), stmt.identifier, _class, const: true, visibility: stmt.visibility)\n"}},{"html_id":"visit_compound_assignment_expr(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"visit_compound_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":560,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L560"},"def":{"name":"visit_compound_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"case expr.operator.type\nwhen Syntax::PlusEqual\n op = Operator::PlusAssign.new(self)\n op.apply(expr)\nwhen Syntax::MinusEqual\n op = Operator::MinusAssign.new(self)\n op.apply(expr)\nwhen Syntax::StarEqual\n op = Operator::MulAssign.new(self)\n op.apply(expr)\nwhen Syntax::SlashEqual\n op = Operator::DivAssign.new(self)\n op.apply(expr)\nwhen Syntax::PercentEqual\n op = Operator::ModAssign.new(self)\n op.apply(expr)\nwhen Syntax::CaratEqual\n op = Operator::PowAssign.new(self)\n op.apply(expr)\nwhen Syntax::AmpersandColonEqual\n op = Operator::AndAssign.new(self)\n op.apply(expr)\nwhen Syntax::PipeColonEqual\n op = Operator::OrAssign.new(self)\n op.apply(expr)\nend"}},{"html_id":"visit_every_stmt(stmt:Statement::Every):Nil-instance-method","name":"visit_every_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"args_string":"(stmt : Statement::Every) : Nil","args_html":"(stmt : Statement::Every) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":180,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L180"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"return_type":"Nil","visibility":"Public","body":"enclosing = @scope\n@scope = Scope.new(@scope)\nenumerable = evaluate(stmt.enumerable)\n@scope.declare(stmt.var.typedef, stmt.var.token, nil)\nif enumerable.is_a?(Array) || enumerable.is_a?(Range)\n enumerable.each do |value|\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\nelse\n if enumerable.is_a?(String)\n enumerable.chars.each do |value|\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\n else\n if enumerable.is_a?(Callable)\n if enumerable.is_a?(IntrinsicFunction)\n Logger.report_error(\"Invalid iterator\", \"An iterator cannot be an intrinsic function\", stmt.enumerable.token)\n end\n if enumerable.is_a?(Function)\n else\n Logger.report_error(\"Invalid iterator\", \"An iterator must return a generator function\", stmt.enumerable.token)\n end\n while !( value = enumerable.call([] of ValueType)).nil?\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\n else\n Logger.report_error(\"Invalid iterator type\", TypeChecker.get_mapped(enumerable.class), stmt.token)\n end\n end\nend\n@scope = enclosing\n"}},{"html_id":"visit_fn_call_expr(expr:Expression::FunctionCall):ValueType-instance-method","name":"visit_fn_call_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"args_string":"(expr : Expression::FunctionCall) : ValueType","args_html":"(expr : Expression::FunctionCall) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":456,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L456"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"return_type":"ValueType","visibility":"Public","body":"fn = evaluate(expr.callee)\nif fn.is_a?(Function) || fn.is_a?(IntrinsicFunction)\nelse\n Logger.report_error(\"Attempt to call\", TypeChecker.get_mapped(fn.class), expr.token)\nend\nif fn.arity.includes?(expr.arguments.size)\nelse\n arg_size = fn.arity.begin == fn.arity.end ? fn.arity.begin : fn.arity.to_s\n Logger.report_error(\"Expected #{arg_size} arguments, got\", expr.arguments.size.to_s, expr.token)\nend\narg_values = expr.arguments.map do |arg|\n evaluate(arg)\nend\nenclosing_return_type = @meta[\"block_return_type\"]?\nresult = fn.call(arg_values)\nset_meta(\"block_return_type\", enclosing_return_type)\nresult\n"}},{"html_id":"visit_fn_def_stmt(stmt:Statement::FunctionDef):ValueType-instance-method","name":"visit_fn_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"args_string":"(stmt : Statement::FunctionDef) : ValueType","args_html":"(stmt : Statement::FunctionDef) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":377,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L377"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"return_type":"ValueType","visibility":"Public","body":"fn = Function.new(self, @scope, stmt)\nif @meta[\"this\"]?.nil?\n @scope.declare(fake_typedef(\"func\"), stmt.identifier, fn, const: true, visibility: stmt.visibility)\nelse\n instance = @meta[\"this\"].as(ClassInstance)\n instance.define_method(stmt.identifier.lexeme, fn, visibility: stmt.visibility)\nend\nfn\n"}},{"html_id":"visit_if_stmt(stmt:Statement::If):ValueType-instance-method","name":"visit_if_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"args_string":"(stmt : Statement::If) : ValueType","args_html":"(stmt : Statement::If) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":357,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L357"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(stmt.condition)\nif condition\n execute(stmt.then)\nelse\n if stmt.else.nil?\n else\n execute(stmt.else.not_nil!)\n end\nend\n"}},{"html_id":"visit_index_expr(expr:Expression::Index):ValueType-instance-method","name":"visit_index_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"args_string":"(expr : Expression::Index) : ValueType","args_html":"(expr : Expression::Index) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":406,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L406"},"def":{"name":"visit_index_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"return_type":"ValueType","visibility":"Public","body":"object = evaluate(expr.object)\nkey = evaluate(expr.key)\nif object.is_a?(String) || object.is_a?(Array)\n if key.is_a?(Int) || key.is_a?(Range)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), expr.token)\n end\n object[key]?\nelse\n if object.is_a?(Hash)\n object[key]?\n else\n if object.is_a?(ClassInstance)\n Logger.report_error(\"Attempt to index class instance\", expr.token.lexeme, expr.token)\n else\n Logger.report_error(\"Attempt to index\", TypeChecker.get_mapped(object.class), expr.token)\n end\n end\nend\n"}},{"html_id":"visit_is_expr(expr:Expression::Is):Bool-instance-method","name":"visit_is_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"args_string":"(expr : Expression::Is) : Bool","args_html":"(expr : Expression::Is) : Bool","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":442,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L442"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"return_type":"Bool","visibility":"Public","body":"value = evaluate(expr.value)\nTypeChecker.is?(expr.type.name.lexeme, value, expr.token)\n"}},{"html_id":"visit_literal_expr(expr:Expression::Literal):ValueType-instance-method","name":"visit_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"args_string":"(expr : Expression::Literal) : ValueType","args_html":"(expr : Expression::Literal) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":721,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L721"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"return_type":"ValueType","visibility":"Public","body":"expr.value"}},{"html_id":"visit_new_expr(expr:Expression::New):ClassInstance-instance-method","name":"visit_new_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::New"}],"args_string":"(expr : Expression::New) : ClassInstance","args_html":"(expr : Expression::New) : ClassInstance","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":424,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L424"},"def":{"name":"visit_new_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::New"}],"return_type":"ClassInstance","visibility":"Public","body":"args = [] of Expression::Base\nclass_obj = @scope.lookup(expr.operand.token)\nif class_obj.is_a?(Class)\nelse\n Logger.report_error(\"Invalid 'new' invocation. Expected a class name, got\", expr.operand.token.lexeme, expr.operand.token)\nend\nif expr.operand.is_a?(Expression::FunctionCall)\n args = (expr.operand.as(Expression::FunctionCall)).arguments\nend\nTypeChecker.assert(\"class\", class_obj, expr.operand.token)\nclass_obj.construct(args.map do |arg|\n evaluate(arg)\nend)\n"}},{"html_id":"visit_next_stmt(stmt:Statement::Next):Nil-instance-method","name":"visit_next_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"args_string":"(stmt : Statement::Next) : Nil","args_html":"(stmt : Statement::Next) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":311,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L311"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"return_type":"Nil","visibility":"Public","body":"raise(HookedExceptions::Next.new(stmt.keyword))"}},{"html_id":"visit_property_assignment_expr(expr:Expression::PropertyAssignment):ValueType-instance-method","name":"visit_property_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"args_string":"(expr : Expression::PropertyAssignment) : ValueType","args_html":"(expr : Expression::PropertyAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":529,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L529"},"def":{"name":"visit_property_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"return_type":"ValueType","visibility":"Public","body":"if expr.object.is_a?(Expression::Index)\n index = expr.object.as(Expression::Index)\n object_node = index.object\n key = evaluate(index.key)\n object = evaluate(object_node)\nelse\n access = expr.object.as(Expression::Access)\n object_node = access.object\n key = access.key.lexeme\n object = evaluate(object_node)\nend\nvalue = expr.value.is_a?(Expression::Base) ? evaluate(expr.value.as(Expression::Base)) : expr.value.as(ValueType)\nif object_node.is_a?(Expression::Index) || object_node.is_a?(Expression::Access)\n object = add_object_value(expr.token, object, key, value)\n prop_assignment = Expression::PropertyAssignment.new(object_node, object)\n return visit_property_assignment_expr(prop_assignment)\nend\nobject = add_object_value(expr.token, object, key, value)\nif (meta[\"this\"]?.nil? || (expr.token.lexeme != \"$\")) || (!object.is_a?(ClassInstance))\n @scope.assign(expr.token, object)\nelse\n value\nend\n"}},{"html_id":"visit_range_literal_expr(expr:Expression::RangeLiteral):Range(Int128|Int64|Int32|Int16|Int8,Int128|Int64|Int32|Int16|Int8)-instance-method","name":"visit_range_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"args_string":"(expr : Expression::RangeLiteral) : Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","args_html":"(expr : Expression::RangeLiteral) : Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":693,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L693"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"return_type":"Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","visibility":"Public","body":"from = evaluate(expr.from)\nto = evaluate(expr.to)\nif from.is_a?(Int)\nelse\n Logger.report_error(\"Invalid left side of range literal\", \"Ranges can only be of integers, got '#{TypeChecker.get_mapped(from.class)}'\", expr.token)\nend\nif to.is_a?(Int)\nelse\n Logger.report_error(\"Invalid right side of range literal\", \"Ranges can only be of integers, got '#{TypeChecker.get_mapped(to.class)}'\", expr.token)\nend\nfrom..to\n"}},{"html_id":"visit_return_stmt(stmt:Statement::Return):Nil-instance-method","name":"visit_return_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"args_string":"(stmt : Statement::Return) : Nil","args_html":"(stmt : Statement::Return) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":319,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L319"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"return_type":"Nil","visibility":"Public","body":"value = evaluate(stmt.value)\nraise(HookedExceptions::Return.new(value, stmt.keyword))\n"}},{"html_id":"visit_single_expr_stmt(stmt:Statement::SingleExpression):ValueType-instance-method","name":"visit_single_expr_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"args_string":"(stmt : Statement::SingleExpression) : ValueType","args_html":"(stmt : Statement::SingleExpression) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":725,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L725"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"return_type":"ValueType","visibility":"Public","body":"evaluate(stmt.expression)"}},{"html_id":"visit_table_literal_expr(expr:Expression::TableLiteral):Hash(ValueType,ValueType)-instance-method","name":"visit_table_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"args_string":"(expr : Expression::TableLiteral) : Hash(ValueType, ValueType)","args_html":"(expr : Expression::TableLiteral) : Hash(ValueType, ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":707,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L707"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"return_type":"Hash(ValueType, ValueType)","visibility":"Public","body":"hash = {} of ValueType => ValueType\nexpr.hashmap.each do |k, v|\n key = evaluate(k)\n value = evaluate(v)\n hash[key] = value\nend\nhash\n"}},{"html_id":"visit_ternary_op_expr(expr:Expression::TernaryOp):ValueType-instance-method","name":"visit_ternary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"args_string":"(expr : Expression::TernaryOp) : ValueType","args_html":"(expr : Expression::TernaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":589,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L589"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(expr.condition)\nif condition\n return evaluate(expr.then)\nend\nevaluate(expr.else)\n"}},{"html_id":"visit_this_expr(expr:Expression::This):ValueType-instance-method","name":"visit_this_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::This"}],"args_string":"(expr : Expression::This) : ValueType","args_html":"(expr : Expression::This) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":438,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L438"},"def":{"name":"visit_this_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::This"}],"return_type":"ValueType","visibility":"Public","body":"res = @scope.lookup?(\"$\")"}},{"html_id":"visit_throw_stmt(stmt:Statement::Throw):Nil-instance-method","name":"visit_throw_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"args_string":"(stmt : Statement::Throw) : Nil","args_html":"(stmt : Statement::Throw) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":303,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L303"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"return_type":"Nil","visibility":"Public","body":"err = evaluate(stmt.err)\nif TypeChecker.is?(\"string\", err, stmt.token)\nelse\n Logger.report_error(\"Throw statement can only be invoked with a string currently, got\", TypeChecker.get_mapped(err.class), stmt.token)\nend\nraise(err.to_s)\n"}},{"html_id":"visit_type_alias_expr(expr:Expression::TypeAlias):Nil-instance-method","name":"visit_type_alias_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"args_string":"(expr : Expression::TypeAlias) : Nil","args_html":"(expr : Expression::TypeAlias) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":451,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L451"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"return_type":"Nil","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.declare(expr.type_token, expr.token, value, expr.constant?, expr.visibility)\n"}},{"html_id":"visit_type_ref_expr(expr:Expression::TypeRef):Type-instance-method","name":"visit_type_ref_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"args_string":"(expr : Expression::TypeRef) : Type","args_html":"(expr : Expression::TypeRef) : Type","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":447,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L447"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"return_type":"Type","visibility":"Public","body":"TypeChecker.get_registered_type(expr.name.value.to_s, expr.name)"}},{"html_id":"visit_unary_op_expr(expr:Expression::UnaryOp):ValueType-instance-method","name":"visit_unary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : ValueType","args_html":"(expr : Expression::UnaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":596,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L596"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"ValueType","visibility":"Public","body":"operand = evaluate(expr.operand)\ncase expr.operator.type\nwhen Syntax::Plus\n if operand.is_a?(Float) || operand.is_a?(Int)\n operand.abs\n else\n Logger.report_error(\"Invalid '+' operand type\", operand.class.to_s, expr.operator)\n end\nwhen Syntax::Minus\n if operand.is_a?(Float) || operand.is_a?(Int)\n -operand\n else\n Logger.report_error(\"Invalid '-' operand type\", operand.class.to_s, expr.operator)\n end\nwhen Syntax::PlusPlus\n op = Operator::PlusAssign.new(self)\n op.apply(expr, \"++\")\nwhen Syntax::MinusMinus\n op = Operator::MinusAssign.new(self)\n op.apply(expr, \"--\")\nwhen Syntax::Bang\n !operand\nwhen Syntax::Tilde\n op = Operator::Bnot.new(self)\n op.apply(expr)\nwhen Syntax::Star\n raise(\"'*' unary operator has not yet implemented.\")\nwhen Syntax::Hashtag\n if operand.is_a?(Array) || operand.is_a?(Hash)\n else\n Logger.report_error(\"Invalid '#' operand type\", TypeChecker.get_mapped(operand.class), expr.operator)\n end\n operand.size\nend\n"}},{"html_id":"visit_unless_stmt(stmt:Statement::Unless):ValueType-instance-method","name":"visit_unless_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"args_string":"(stmt : Statement::Unless) : ValueType","args_html":"(stmt : Statement::Unless) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":348,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L348"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(stmt.condition)\nif condition\n if stmt.else.nil?\n else\n execute(stmt.else.not_nil!)\n end\nelse\n execute(stmt.then)\nend\n"}},{"html_id":"visit_until_stmt(stmt:Statement::Until):Nil-instance-method","name":"visit_until_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"args_string":"(stmt : Statement::Until) : Nil","args_html":"(stmt : Statement::Until) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":324,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L324"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"return_type":"Nil","visibility":"Public","body":"while !(evaluate(stmt.condition))\n begin\n execute(stmt.block)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\nend"}},{"html_id":"visit_use_stmt(stmt:Statement::Use):Nil-instance-method","name":"visit_use_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"args_string":"(stmt : Statement::Use) : Nil","args_html":"(stmt : Statement::Use) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":248,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L248"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"return_type":"Nil","visibility":"Public","body":"relative_module_path = stmt.module_path.lexeme\nif relative_module_path.includes?(\"/\")\n if @file_path == \"repl\"\n Logger.report_error(\"Cannot import\", \"Non-package modules are not supported in the REPL\", stmt.module_path)\n end\n full_module_path = File.join(File.dirname(@file_path), relative_module_path)\n ext_file_path = File.exists?(full_module_path + \".cos\") ? full_module_path + \".cos\" : full_module_path + \".⭐\"\n if full_module_path.includes?(\"././\")\n Logger.report_error(\"Recursive import detected\", ext_file_path.gsub(\"./\", \"\"), stmt.module_path)\n end\n module_path = ext_file_path.gsub(\"./\", \"\")\n if File.exists?(ext_file_path)\n else\n Logger.report_error(\"Invalid import\", \"No such file '#{module_path}.cos/⭐' exists\", stmt.module_path)\n end\n import_file(ext_file_path)\nelse\n if @importable_intrinsics.has_key?(relative_module_path)\n @importable_intrinsics[relative_module_path].inject\n else\n file_path = File.join(File.dirname(\"/home/runic/Dev/crystal/cosmo/src/cosmo/runtime/interpreter.cr\"), \"../../../libraries\", relative_module_path)\n full_path = File.exists?(file_path + \".cos\") ? file_path + \".cos\" : file_path + \".⭐\"\n if File.exists?(full_path)\n import_file(full_path)\n else\n Logger.report_error(\"Invalid import\", \"No package management system implemented yet. If you are trying to import a file path, prepend './' to the path.\", stmt.module_path)\n end\n end\nend\n"}},{"html_id":"visit_var_assignment_expr(expr:Expression::VarAssignment):ValueType-instance-method","name":"visit_var_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"args_string":"(expr : Expression::VarAssignment) : ValueType","args_html":"(expr : Expression::VarAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":501,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L501"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.assign(expr.var.token, value)\n"}},{"html_id":"visit_var_declaration_expr(expr:Expression::VarDeclaration):ValueType-instance-method","name":"visit_var_declaration_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"args_string":"(expr : Expression::VarDeclaration) : ValueType","args_html":"(expr : Expression::VarDeclaration) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":477,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L477"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"return_type":"ValueType","visibility":"Public","body":"in_global = @meta[\"this\"]?.nil?\nvalue = evaluate(expr.value)\nif in_global\n @scope.declare(expr.typedef, expr.var.token, value, const: expr.constant?, visibility: expr.visibility)\nelse\n instance = @meta[\"this\"].as(ClassInstance)\n instance.define_field(expr.var.token.lexeme, value, expr.token, visibility: expr.visibility, constant: expr.constant?, typedef: expr.typedef)\nend\n"}},{"html_id":"visit_var_expr(expr:Expression::Var):ValueType-instance-method","name":"visit_var_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"args_string":"(expr : Expression::Var) : ValueType","args_html":"(expr : Expression::Var) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":473,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L473"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"return_type":"ValueType","visibility":"Public","body":"@scope.lookup(expr.token)"}},{"html_id":"visit_vector_literal_expr(expr:Expression::VectorLiteral):Array(ValueType)-instance-method","name":"visit_vector_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"args_string":"(expr : Expression::VectorLiteral) : Array(ValueType)","args_html":"(expr : Expression::VectorLiteral) : Array(ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":717,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L717"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"return_type":"Array(ValueType)","visibility":"Public","body":"expr.values.map do |v|\n evaluate(v)\nend"}},{"html_id":"visit_while_stmt(stmt:Statement::While):Nil-instance-method","name":"visit_while_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"args_string":"(stmt : Statement::While) : Nil","args_html":"(stmt : Statement::While) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L336"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"return_type":"Nil","visibility":"Public","body":"while evaluate(stmt.condition)\n begin\n execute(stmt.block)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\nend"}}]},{"html_id":"Cosmo/Cosmo/IntrinsicFunction","path":"Cosmo/IntrinsicFunction.html","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},"ancestors":[{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/MathLib/Acos","kind":"class","full_name":"Cosmo::MathLib::Acos","name":"Acos"},{"html_id":"Cosmo/Cosmo/MathLib/Acosh","kind":"class","full_name":"Cosmo::MathLib::Acosh","name":"Acosh"},{"html_id":"Cosmo/Cosmo/MathLib/Asin","kind":"class","full_name":"Cosmo::MathLib::Asin","name":"Asin"},{"html_id":"Cosmo/Cosmo/MathLib/Asinh","kind":"class","full_name":"Cosmo::MathLib::Asinh","name":"Asinh"},{"html_id":"Cosmo/Cosmo/MathLib/Atan","kind":"class","full_name":"Cosmo::MathLib::Atan","name":"Atan"},{"html_id":"Cosmo/Cosmo/MathLib/Atan2","kind":"class","full_name":"Cosmo::MathLib::Atan2","name":"Atan2"},{"html_id":"Cosmo/Cosmo/MathLib/Atanh","kind":"class","full_name":"Cosmo::MathLib::Atanh","name":"Atanh"},{"html_id":"Cosmo/Cosmo/MathLib/Cbrt","kind":"class","full_name":"Cosmo::MathLib::Cbrt","name":"Cbrt"},{"html_id":"Cosmo/Cosmo/MathLib/Ceil","kind":"class","full_name":"Cosmo::MathLib::Ceil","name":"Ceil"},{"html_id":"Cosmo/Cosmo/MathLib/Cos","kind":"class","full_name":"Cosmo::MathLib::Cos","name":"Cos"},{"html_id":"Cosmo/Cosmo/MathLib/Cosh","kind":"class","full_name":"Cosmo::MathLib::Cosh","name":"Cosh"},{"html_id":"Cosmo/Cosmo/MathLib/Exp","kind":"class","full_name":"Cosmo::MathLib::Exp","name":"Exp"},{"html_id":"Cosmo/Cosmo/MathLib/Floor","kind":"class","full_name":"Cosmo::MathLib::Floor","name":"Floor"},{"html_id":"Cosmo/Cosmo/MathLib/Isqrt","kind":"class","full_name":"Cosmo::MathLib::Isqrt","name":"Isqrt"},{"html_id":"Cosmo/Cosmo/MathLib/Log","kind":"class","full_name":"Cosmo::MathLib::Log","name":"Log"},{"html_id":"Cosmo/Cosmo/MathLib/Log10","kind":"class","full_name":"Cosmo::MathLib::Log10","name":"Log10"},{"html_id":"Cosmo/Cosmo/MathLib/Log2","kind":"class","full_name":"Cosmo::MathLib::Log2","name":"Log2"},{"html_id":"Cosmo/Cosmo/MathLib/Max","kind":"class","full_name":"Cosmo::MathLib::Max","name":"Max"},{"html_id":"Cosmo/Cosmo/MathLib/Min","kind":"class","full_name":"Cosmo::MathLib::Min","name":"Min"},{"html_id":"Cosmo/Cosmo/MathLib/Round","kind":"class","full_name":"Cosmo::MathLib::Round","name":"Round"},{"html_id":"Cosmo/Cosmo/MathLib/Sin","kind":"class","full_name":"Cosmo::MathLib::Sin","name":"Sin"},{"html_id":"Cosmo/Cosmo/MathLib/Sinh","kind":"class","full_name":"Cosmo::MathLib::Sinh","name":"Sinh"},{"html_id":"Cosmo/Cosmo/MathLib/Sqrt","kind":"class","full_name":"Cosmo::MathLib::Sqrt","name":"Sqrt"},{"html_id":"Cosmo/Cosmo/MathLib/Tan","kind":"class","full_name":"Cosmo::MathLib::Tan","name":"Tan"},{"html_id":"Cosmo/Cosmo/MathLib/Tanh","kind":"class","full_name":"Cosmo::MathLib::Tanh","name":"Tanh"},{"html_id":"Cosmo/Cosmo/PutsIntrinsic","kind":"class","full_name":"Cosmo::PutsIntrinsic","name":"PutsIntrinsic"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"args_string":"(interpreter : Interpreter)","args_html":"(interpreter : Interpreter)","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L5"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":true,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L8"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":""}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L10"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L19"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}},{"html_id":"token(name:String):Token-instance-method","name":"token","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : Token","args_html":"(name : String) : Token","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L14"},"def":{"name":"token","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"Token","visibility":"Public","body":"location = Location.new(\"intrinsic\", 0, 0)\nToken.new(name, Syntax::Identifier, name, location)\n"}}]},{"html_id":"Cosmo/Cosmo/IntrinsicLib","path":"Cosmo/IntrinsicLib.html","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L24"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(i:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Interpreter"}],"args_string":"(i : Interpreter)","args_html":"(i : Interpreter)","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L25"},"def":{"name":"new","args":[{"name":"i","external_name":"i","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(i)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"inject:Nil-instance-method","name":"inject","abstract":true,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L28"},"def":{"name":"inject","return_type":"Nil","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/Keywords","path":"Cosmo/Keywords.html","kind":"module","full_name":"Cosmo::Keywords","name":"Keywords","abstract":false,"locations":[{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L3"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CLASS_VISIBILITY_KEYWORDS","name":"CLASS_VISIBILITY_KEYWORDS","value":"[\"protected\", \"static\"]"},{"id":"KEYWORDS","name":"KEYWORDS","value":"{\"true\" => Syntax::Boolean, \"false\" => Syntax::Boolean, \"none\" => Syntax::None, \"fn\" => Syntax::Function, \"if\" => Syntax::If, \"unless\" => Syntax::Unless, \"in\" => Syntax::In, \"of\" => Syntax::Of, \"is\" => Syntax::Is, \"else\" => Syntax::Else, \"every\" => Syntax::Every, \"while\" => Syntax::While, \"until\" => Syntax::Until, \"break\" => Syntax::Break, \"next\" => Syntax::Next, \"use\" => Syntax::Use, \"case\" => Syntax::Case, \"when\" => Syntax::When, \"const\" => Syntax::Const, \"return\" => Syntax::Return, \"throw\" => Syntax::Throw, \"class\" => Syntax::Class, \"mixin\" => Syntax::Mixin, \"new\" => Syntax::New}"},{"id":"TYPE_KEYWORDS","name":"TYPE_KEYWORDS","value":"[\"type\", \"any\", \"bool\", \"string\", \"char\", \"int\", \"bigint\", \"float\", \"void\", \"func\"]","doc":"These cannot be any of the keywords above","summary":"

                            These cannot be any of the keywords above

                            "}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"class_methods":[{"html_id":"class_visibility?(s:String)-class-method","name":"class_visibility?","doc":"Returns whether or not `s` is a class vibility keyword","summary":"

                            Returns whether or not s is a class vibility keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L36"},"def":{"name":"class_visibility?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"CLASS_VISIBILITY_KEYWORDS.includes?(s)"}},{"html_id":"get_syntax(s:String):Syntax-class-method","name":"get_syntax","doc":"Returns the syntax type of `s` if it is a regular keyword","summary":"

                            Returns the syntax type of s if it is a regular keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String) : Syntax","args_html":"(s : String) : Syntax","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L51"},"def":{"name":"get_syntax","args":[{"name":"s","external_name":"s","restriction":"String"}],"return_type":"Syntax","visibility":"Public","body":"KEYWORDS.fetch(s) do\n raise(\"Invalid keyword #{s}\")\nend"}},{"html_id":"keyword?(s:String)-class-method","name":"keyword?","doc":"Returns whether or not `s` is a regular keyword","summary":"

                            Returns whether or not s is a regular keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L46"},"def":{"name":"keyword?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"KEYWORDS.has_key?(s)"}},{"html_id":"type?(s:String)-class-method","name":"type?","doc":"Returns whether or not `s` is a type keyword","summary":"

                            Returns whether or not s is a type keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":41,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L41"},"def":{"name":"type?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"TYPE_KEYWORDS.includes?(s)"}}]},{"html_id":"Cosmo/Cosmo/Lexer","path":"Cosmo/Lexer.html","kind":"class","full_name":"Cosmo::Lexer","name":"Lexer","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer.cr#L9"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(source:String,file_path:String,run_benchmarks:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"args_string":"(source : String, file_path : String, run_benchmarks : Bool)","args_html":"(source : String, file_path : String, run_benchmarks : Bool)","location":{"filename":"src/cosmo/syntax/lexer.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer.cr#L17"},"def":{"name":"new","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(source, file_path, run_benchmarks)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"tokenize:Array(Token)-instance-method","name":"tokenize","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer.cr#L20"},"def":{"name":"tokenize","return_type":"Array(Token)","visibility":"Public","body":"start_time = Time.monotonic\nwhile !finished?\n lex\nend\nadd_token(Syntax::EOF, nil)\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Lexer @#{@file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\n@tokens\n"}}]},{"html_id":"Cosmo/Cosmo/Location","path":"Cosmo/Location.html","kind":"class","full_name":"Cosmo::Location","name":"Location","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(file_name:String,line:UInt32,position:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"file_name","external_name":"file_name","restriction":"::String"},{"name":"line","external_name":"line","restriction":"::UInt32"},{"name":"position","external_name":"position","restriction":"::UInt32"}],"args_string":"(file_name : String, line : UInt32, position : UInt32)","args_html":"(file_name : String, line : UInt32, position : UInt32)","location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L6"},"def":{"name":"new","args":[{"name":"file_name","external_name":"file_name","restriction":"::String"},{"name":"line","external_name":"line","restriction":"::UInt32"},{"name":"position","external_name":"position","restriction":"::UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(file_name, line, position)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"between?(min:UInt32,max:UInt32)-instance-method","name":"between?","abstract":false,"args":[{"name":"min","external_name":"min","restriction":"UInt32"},{"name":"max","external_name":"max","restriction":"UInt32"}],"args_string":"(min : UInt32, max : UInt32)","args_html":"(min : UInt32, max : UInt32)","location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L9"},"def":{"name":"between?","args":[{"name":"min","external_name":"min","restriction":"UInt32"},{"name":"max","external_name":"max","restriction":"UInt32"}],"visibility":"Public","body":"if min && max\nelse\n return false\nend\nmin <= self && self <= max\n"}},{"html_id":"directory-instance-method","name":"directory","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L14"},"def":{"name":"directory","visibility":"Public","body":"@file_name.try do |file_name|\n File.dirname(file_name)\nend"}},{"html_id":"file_name:String-instance-method","name":"file_name","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L4"},"def":{"name":"file_name","return_type":"String","visibility":"Public","body":"@file_name"}},{"html_id":"line:UInt32-instance-method","name":"line","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L2"},"def":{"name":"line","return_type":"UInt32","visibility":"Public","body":"@line"}},{"html_id":"position:UInt32-instance-method","name":"position","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L3"},"def":{"name":"position","return_type":"UInt32","visibility":"Public","body":"@position"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L18"},"def":{"name":"to_s","visibility":"Public","body":"\"#{@file_name}:#{@line}:#{position}\""}}]},{"html_id":"Cosmo/Cosmo/Logger","path":"Cosmo/Logger.html","kind":"module","full_name":"Cosmo::Logger","name":"Logger","abstract":false,"locations":[{"filename":"src/cosmo/logger.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"Cosmo/Cosmo/Logger","kind":"module","full_name":"Cosmo::Logger","name":"Logger"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"debug=(on:Bool):Nil-instance-method","name":"debug=","abstract":false,"args":[{"name":"on","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool) : Nil","args_html":"(on : Bool) : Nil","location":{"filename":"src/cosmo/logger.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L6"},"def":{"name":"debug=","args":[{"name":"on","external_name":"on","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"@@debug = on"}},{"html_id":"report_error(error_type:String,message:String,line:UInt32,pos:UInt32,file_path:String):Exception-instance-method","name":"report_error","abstract":false,"args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"line","external_name":"line","restriction":"UInt32"},{"name":"pos","external_name":"pos","restriction":"UInt32"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(error_type : String, message : String, line : UInt32, pos : UInt32, file_path : String) : Exception","args_html":"(error_type : String, message : String, line : UInt32, pos : UInt32, file_path : String) : Exception","location":{"filename":"src/cosmo/logger.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L18"},"def":{"name":"report_error","args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"line","external_name":"line","restriction":"UInt32"},{"name":"pos","external_name":"pos","restriction":"UInt32"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"Exception","visibility":"Public","body":"full_message = \"@#{file_path.gsub(\"./\", \"\")} [#{line}:#{pos + 1}] #{error_type}: #{message}\"\nif @@debug\n raise(full_message)\nelse\n abort(full_message, 1)\nend\n"}},{"html_id":"report_error(error_type:String,message:String,token:Token):Exception-instance-method","name":"report_error","abstract":false,"args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(error_type : String, message : String, token : Token) : Exception","args_html":"(error_type : String, message : String, token : Token) : Exception","location":{"filename":"src/cosmo/logger.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L14"},"def":{"name":"report_error","args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Exception","visibility":"Public","body":"report_error(error_type, message, token.location.line, token.location.position, token.location.file_name)"}},{"html_id":"report_exception(ex:E)forallE-instance-method","name":"report_exception","abstract":false,"args":[{"name":"ex","external_name":"ex","restriction":"E"}],"args_string":"(ex : E) forall E","args_html":"(ex : E) forall E","location":{"filename":"src/cosmo/logger.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L10"},"def":{"name":"report_exception","args":[{"name":"ex","external_name":"ex","restriction":"E"}],"visibility":"Public","body":"raise(ex)"}}]},{"html_id":"Cosmo/Cosmo/MathLib","path":"Cosmo/MathLib.html","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicLib","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicLib","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"inject:Nil-instance-method","name":"inject","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L2"},"def":{"name":"inject","return_type":"Nil","visibility":"Public","body":"math = {} of String => IntrinsicFunction | Float64\nmath[\"e\"] = Math::E\nmath[\"pi\"] = Math::PI\nmath[\"floor\"] = Floor.new(@i)\nmath[\"ceil\"] = Ceil.new(@i)\nmath[\"round\"] = Round.new(@i)\nmath[\"min\"] = Min.new(@i)\nmath[\"max\"] = Max.new(@i)\nmath[\"log\"] = Log.new(@i)\nmath[\"log2\"] = Log2.new(@i)\nmath[\"log10\"] = Log10.new(@i)\nmath[\"exp\"] = Exp.new(@i)\nmath[\"sqrt\"] = Sqrt.new(@i)\nmath[\"isqrt\"] = Isqrt.new(@i)\nmath[\"cbrt\"] = Cbrt.new(@i)\nmath[\"sin\"] = Sin.new(@i)\nmath[\"cos\"] = Cos.new(@i)\nmath[\"tan\"] = Tan.new(@i)\nmath[\"sinh\"] = Sinh.new(@i)\nmath[\"cosh\"] = Cosh.new(@i)\nmath[\"tanh\"] = Tanh.new(@i)\nmath[\"asinh\"] = Asinh.new(@i)\nmath[\"acosh\"] = Acosh.new(@i)\nmath[\"atanh\"] = Atanh.new(@i)\nmath[\"asin\"] = Asin.new(@i)\nmath[\"acos\"] = Acos.new(@i)\nmath[\"atan\"] = Atan.new(@i)\nmath[\"atan2\"] = Atan2.new(@i)\n@i.declare_intrinsic(\"string->(func|float)\", \"Math\", math)\n"}}],"types":[{"html_id":"Cosmo/Cosmo/MathLib/Acos","path":"Cosmo/MathLib/Acos.html","kind":"class","full_name":"Cosmo::MathLib::Acos","name":"Acos","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":256,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L256"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":257,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L257"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":261,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L261"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"acos\"))\nx = args.first.as(Float64)\n(Math.acos(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Acosh","path":"Cosmo/MathLib/Acosh.html","kind":"class","full_name":"Cosmo::MathLib::Acosh","name":"Acosh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":348,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L348"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":349,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L349"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":353,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L353"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"acosh\"))\nx = args.first.as(Number)\n(Math.acosh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Asin","path":"Cosmo/MathLib/Asin.html","kind":"class","full_name":"Cosmo::MathLib::Asin","name":"Asin","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L243"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":244,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L244"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":248,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L248"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"asin\"))\nx = args.first.as(Number)\n(Math.asin(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Asinh","path":"Cosmo/MathLib/Asinh.html","kind":"class","full_name":"Cosmo::MathLib::Asinh","name":"Asinh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L335"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L336"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":340,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L340"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"asinh\"))\nx = args.first.as(Number)\n(Math.asinh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atan","path":"Cosmo/MathLib/Atan.html","kind":"class","full_name":"Cosmo::MathLib::Atan","name":"Atan","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":269,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L269"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L270"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L274"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atan\"))\nx = args.first.as(Number)\n(Math.atan(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atan2","path":"Cosmo/MathLib/Atan2.html","kind":"class","full_name":"Cosmo::MathLib::Atan2","name":"Atan2","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":282,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L282"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L283"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..2.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":287,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L287"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atan2\"))\ny = args.first.as(Number)\nx = args.last.as(Number)\n(Math.atan2(y, x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atanh","path":"Cosmo/MathLib/Atanh.html","kind":"class","full_name":"Cosmo::MathLib::Atanh","name":"Atanh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L361"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L362"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":366,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L366"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atanh\"))\nx = args.first.as(Number)\n(Math.atanh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cbrt","path":"Cosmo/MathLib/Cbrt.html","kind":"class","full_name":"Cosmo::MathLib::Cbrt","name":"Cbrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L191"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L192"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L196"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cbrt\"))\nx = args.first.as(Number)\n(Math.cbrt(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Ceil","path":"Cosmo/MathLib/Ceil.html","kind":"class","full_name":"Cosmo::MathLib::Ceil","name":"Ceil","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L46"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":47,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L47"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L51"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\n((args.first.as(Number)).round(:to_positive)).to_i64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cos","path":"Cosmo/MathLib/Cos.html","kind":"class","full_name":"Cosmo::MathLib::Cos","name":"Cos","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L217"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":218,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L218"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":222,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L222"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cos\"))\nx = args.first.as(Number)\n(Math.cos(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cosh","path":"Cosmo/MathLib/Cosh.html","kind":"class","full_name":"Cosmo::MathLib::Cosh","name":"Cosh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L309"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":310,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L310"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":314,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L314"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cosh\"))\nx = args.first.as(Number)\n(Math.cosh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Exp","path":"Cosmo/MathLib/Exp.html","kind":"class","full_name":"Cosmo::MathLib::Exp","name":"Exp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":153,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L153"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":154,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L154"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":158,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L158"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.exp(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Floor","path":"Cosmo/MathLib/Floor.html","kind":"class","full_name":"Cosmo::MathLib::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L34"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L35"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":39,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L39"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\n((args.first.as(Number)).round(:to_negative)).to_i64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Isqrt","path":"Cosmo/MathLib/Isqrt.html","kind":"class","full_name":"Cosmo::MathLib::Isqrt","name":"Isqrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":166,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L166"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L167"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":171,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L171"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"int\", args.first, token(\"isqrt\"))\nMath.isqrt(args.first.as(Int64))\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log","path":"Cosmo/MathLib/Log.html","kind":"class","full_name":"Cosmo::MathLib::Log","name":"Log","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":140,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L140"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":141,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L141"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L145"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log10","path":"Cosmo/MathLib/Log10.html","kind":"class","full_name":"Cosmo::MathLib::Log10","name":"Log10","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L127"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":128,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L128"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":132,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L132"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log10(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log2","path":"Cosmo/MathLib/Log2.html","kind":"class","full_name":"Cosmo::MathLib::Log2","name":"Log2","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":114,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L114"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L115"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":119,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L119"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log2(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Max","path":"Cosmo/MathLib/Max.html","kind":"class","full_name":"Cosmo::MathLib::Max","name":"Max","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":94,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L94"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":95,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L95"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L99"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nargs.each do |arg|\n TypeChecker.assert(\"float|int\", arg, token(\"max\"))\nend\nmax = args.first.as(Number)\nargs.shift\nargs.each do |arg|\n max = Math.max(arg.as(Number), max)\nend\nmax.as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Min","path":"Cosmo/MathLib/Min.html","kind":"class","full_name":"Cosmo::MathLib::Min","name":"Min","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L74"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":75,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L75"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L79"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nargs.each do |arg|\n TypeChecker.assert(\"float|int\", arg, token(\"min\"))\nend\nmin = args.first.as(Number)\nargs.shift\nargs.each do |arg|\n min = Math.min(arg.as(Number), min)\nend\nmin.as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Round","path":"Cosmo/MathLib/Round.html","kind":"class","full_name":"Cosmo::MathLib::Round","name":"Round","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":58,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L58"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L59"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..2.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L63"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"round\"))\nTypeChecker.assert(\"int\", args.last, token(\"round\"))\nn = args.first.as(Number)\nd = args.last.as(Int64)\n(n.round(d)).as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sin","path":"Cosmo/MathLib/Sin.html","kind":"class","full_name":"Cosmo::MathLib::Sin","name":"Sin","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":204,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L204"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":205,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L205"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":209,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L209"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sin\"))\nx = args.first.as(Number)\n(Math.sin(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sinh","path":"Cosmo/MathLib/Sinh.html","kind":"class","full_name":"Cosmo::MathLib::Sinh","name":"Sinh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L296"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":297,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L297"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":301,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L301"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sinh\"))\nx = args.first.as(Number)\n(Math.sinh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sqrt","path":"Cosmo/MathLib/Sqrt.html","kind":"class","full_name":"Cosmo::MathLib::Sqrt","name":"Sqrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L178"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":179,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L179"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L183"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sqrt\"))\nx = args.first.as(Number)\n(Math.sqrt(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Tan","path":"Cosmo/MathLib/Tan.html","kind":"class","full_name":"Cosmo::MathLib::Tan","name":"Tan","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L230"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":231,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L231"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L235"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"tan\"))\nx = args.first.as(Number)\n(Math.tan(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Tanh","path":"Cosmo/MathLib/Tanh.html","kind":"class","full_name":"Cosmo::MathLib::Tanh","name":"Tanh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":322,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L322"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":323,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L323"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":327,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L327"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"tanh\"))\nx = args.first.as(Number)\n(Math.tanh(x)).to_f64\n"}}]}]},{"html_id":"Cosmo/Cosmo/Operator","path":"Cosmo/Operator.html","kind":"module","full_name":"Cosmo::Operator","name":"Operator","abstract":false,"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/Operator/AndAssign","path":"Cosmo/Operator/AndAssign.html","kind":"class","full_name":"Cosmo::Operator::AndAssign","name":"AndAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":378,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L378"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"doc":"# this is beyond fucked up","summary":"

                            \n \n \nthis is beyond fucked up

                            ","instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":379,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L379"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::AmpersandColon\nfixed_token.lexeme = \"&:\"\nexpr.token\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nvar_value = @interpreter.evaluate(expr.name.is_a?(Expression::Var) ? expr.name : Expression::PropertyAssignment.new(expr.name, binary))\nvalue = @interpreter.evaluate(expr.value)\nif expr.name.is_a?(Expression::Var)\n @interpreter.scope.assign(expr.name.token, var_value && value)\nelse\n var_value\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Band","path":"Cosmo/Operator/Band.html","kind":"class","full_name":"Cosmo::Operator::Band","name":"Band","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L230"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":231,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L231"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"&\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left & right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bnot","path":"Cosmo/Operator/Bnot.html","kind":"class","full_name":"Cosmo::Operator::Bnot","name":"Bnot","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":193,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L193"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::UnaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : ValueType","args_html":"(expr : Expression::UnaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":194,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L194"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"ValueType","visibility":"Public","body":"operand = @interpreter.evaluate(expr.operand)\nop = \"~\"\nif operand.is_a?(Int)\n return ~operand\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", operand.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bor","path":"Cosmo/Operator/Bor.html","kind":"class","full_name":"Cosmo::Operator::Bor","name":"Bor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L216"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L217"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"|\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left | right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bshl","path":"Cosmo/Operator/Bshl.html","kind":"class","full_name":"Cosmo::Operator::Bshl","name":"Bshl","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":258,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L258"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L259"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"<<\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left << right\n end\nelse\n if left.is_a?(Array)\n left = @interpreter.add_object_value(expr.operator, left, left.size, right)\n return @interpreter.scope.assign(expr.token, left)\n else\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bshr","path":"Cosmo/Operator/Bshr.html","kind":"class","full_name":"Cosmo::Operator::Bshr","name":"Bshr","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":244,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L244"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":245,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L245"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \">>\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left >> right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bxor","path":"Cosmo/Operator/Bxor.html","kind":"class","full_name":"Cosmo::Operator::Bxor","name":"Bxor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":202,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L202"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":203,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L203"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"~\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left ^ right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Div","path":"Cosmo/Operator/Div.html","kind":"class","full_name":"Cosmo::Operator::Div","name":"Div","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":69,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L69"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"/\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"/\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"/\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "/") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":70,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L70"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"/\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left / right\n end\n if right.is_a?(Int)\n return left / right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left / right\n end\n if right.is_a?(Float)\n return left.to_f / right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/DivAssign","path":"Cosmo/Operator/DivAssign.html","kind":"class","full_name":"Cosmo::Operator::DivAssign","name":"DivAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":329,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L329"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":330,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L330"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::Slash\nfixed_token.lexeme = \"/\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nif expr.name.is_a?(Expression::Var)\n op = Div.new(@interpreter)\n result = op.apply(binary, \"/=\")\n @interpreter.scope.assign(expr.name.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(expr.name, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/GT","path":"Cosmo/Operator/GT.html","kind":"class","full_name":"Cosmo::Operator::GT","name":"GT","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":157,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L157"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":158,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L158"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '>'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left > right\n end\n if right.is_a?(Int)\n return left > right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left > right\n end\n if right.is_a?(Float)\n return left.to_f > right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/GTE","path":"Cosmo/Operator/GTE.html","kind":"class","full_name":"Cosmo::Operator::GTE","name":"GTE","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":175,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L175"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":176,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L176"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \">=\"\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left >= right\n end\n if right.is_a?(Int)\n return left >= right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left >= right\n end\n if right.is_a?(Float)\n return left.to_f >= right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/LT","path":"Cosmo/Operator/LT.html","kind":"class","full_name":"Cosmo::Operator::LT","name":"LT","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":121,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L121"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":122,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L122"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '<'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left < right\n end\n if right.is_a?(Int)\n return left < right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left < right\n end\n if right.is_a?(Float)\n return left.to_f < right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/LTE","path":"Cosmo/Operator/LTE.html","kind":"class","full_name":"Cosmo::Operator::LTE","name":"LTE","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":139,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L139"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":140,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L140"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"<=\"\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left <= right\n end\n if right.is_a?(Int)\n return left <= right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left <= right\n end\n if right.is_a?(Float)\n return left.to_f <= right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Minus","path":"Cosmo/Operator/Minus.html","kind":"class","full_name":"Cosmo::Operator::Minus","name":"Minus","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L35"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"-\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"-\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"-\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "-") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L36"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"-\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left - right\n end\n if right.is_a?(Int)\n return left - right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left - right\n end\n if right.is_a?(Float)\n return left.to_f - right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/MinusAssign","path":"Cosmo/Operator/MinusAssign.html","kind":"class","full_name":"Cosmo::Operator::MinusAssign","name":"MinusAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":294,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L294"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment|Expression::UnaryOp,op_lexeme:String=\"-=\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op_lexeme","default_value":"\"-=\"","external_name":"op_lexeme","restriction":"String"}],"args_string":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = \"-=\") : ValueType","args_html":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = "-=") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":295,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L295"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op_lexeme","default_value":"\"-=\"","external_name":"op_lexeme","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = expr.is_a?(Expression::UnaryOp) ? expr.operand : expr.name\nliteral = Expression::IntLiteral.new(1, expr.token)\nfixed_token = expr.token\nfixed_token.type = Syntax::Minus\nfixed_token.lexeme = \"-\"\nbinary = Expression::BinaryOp.new(left, fixed_token, expr.is_a?(Expression::UnaryOp) ? literal : expr.value)\nif left.is_a?(Expression::Var)\n op = Minus.new(@interpreter)\n result = op.apply(binary, op_lexeme)\n @interpreter.scope.assign(left.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(left, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Mod","path":"Cosmo/Operator/Mod.html","kind":"class","full_name":"Cosmo::Operator::Mod","name":"Mod","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L103"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"%\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"%\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"%\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "%") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":104,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L104"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"%\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '%'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left % right\n end\n if right.is_a?(Int)\n return left % right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left % right\n end\n if right.is_a?(Float)\n return left.to_f % right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/ModAssign","path":"Cosmo/Operator/ModAssign.html","kind":"class","full_name":"Cosmo::Operator::ModAssign","name":"ModAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L361"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L362"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::Percent\nfixed_token.lexeme = \"%\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nif expr.name.is_a?(Expression::Var)\n op = Mod.new(@interpreter)\n result = op.apply(binary, \"%=\")\n @interpreter.scope.assign(expr.name.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(expr.name, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Mul","path":"Cosmo/Operator/Mul.html","kind":"class","full_name":"Cosmo::Operator::Mul","name":"Mul","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L52"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"*\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"*\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"*\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "*") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L53"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"*\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left * right\n end\n if right.is_a?(Int)\n return left * right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left * right\n end\n if right.is_a?(Float)\n return left.to_f * right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/MulAssign","path":"Cosmo/Operator/MulAssign.html","kind":"class","full_name":"Cosmo::Operator::MulAssign","name":"MulAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":313,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L313"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":314,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L314"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::Star\nfixed_token.lexeme = \"*\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nif expr.name.is_a?(Expression::Var)\n op = Mul.new(@interpreter)\n result = op.apply(binary, \"*=\")\n @interpreter.scope.assign(expr.name.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(expr.name, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/OrAssign","path":"Cosmo/Operator/OrAssign.html","kind":"class","full_name":"Cosmo::Operator::OrAssign","name":"OrAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":396,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L396"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":397,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L397"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::PipeColon\nfixed_token.lexeme = \"|:\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nprop_assignment = Expression::PropertyAssignment.new(expr.name, binary)\nvar_value = @interpreter.evaluate(expr.name.is_a?(Expression::Var) ? expr.name : prop_assignment.object)\nvalue = @interpreter.evaluate(expr.value)\nif expr.name.is_a?(Expression::Var)\n @interpreter.scope.assign(expr.name.token, var_value || value)\nelse\n var_value\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Plus","path":"Cosmo/Operator/Plus.html","kind":"class","full_name":"Cosmo::Operator::Plus","name":"Plus","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L10"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"+\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"+\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"+\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "+") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L11"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"+\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left + right\n end\n if right.is_a?(Int)\n return left + right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left + right\n end\n if right.is_a?(Float)\n return left.to_f + right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n else\n if left.is_a?(String)\n if right.is_a?(String)\n return left + right\n end\n if right.is_a?(Char)\n return left + right.to_s\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n else\n if left.is_a?(Char)\n if right.is_a?(Char)\n return left.to_s + right.to_s\n end\n if right.is_a?(String)\n return left.to_s + right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\n end\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/PlusAssign","path":"Cosmo/Operator/PlusAssign.html","kind":"class","full_name":"Cosmo::Operator::PlusAssign","name":"PlusAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":275,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L275"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment|Expression::UnaryOp,op_lexeme:String=\"+=\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op_lexeme","default_value":"\"+=\"","external_name":"op_lexeme","restriction":"String"}],"args_string":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = \"+=\") : ValueType","args_html":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = "+=") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":276,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L276"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op_lexeme","default_value":"\"+=\"","external_name":"op_lexeme","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = expr.is_a?(Expression::UnaryOp) ? expr.operand : expr.name\nliteral = Expression::IntLiteral.new(1, expr.token)\nfixed_token = expr.token\nfixed_token.type = Syntax::Plus\nfixed_token.lexeme = \"+\"\nbinary = Expression::BinaryOp.new(left, fixed_token, expr.is_a?(Expression::UnaryOp) ? literal : expr.value)\nif left.is_a?(Expression::Var)\n op = Plus.new(@interpreter)\n result = op.apply(binary, op_lexeme)\n @interpreter.scope.assign(left.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(left, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Pow","path":"Cosmo/Operator/Pow.html","kind":"class","full_name":"Cosmo::Operator::Pow","name":"Pow","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":86,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L86"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"^\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"^\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"^\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "^") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":87,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L87"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"^\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left ** right\n end\n if right.is_a?(Int)\n return left ** right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left ** right\n end\n if right.is_a?(Float)\n return left.to_f ** right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/PowAssign","path":"Cosmo/Operator/PowAssign.html","kind":"class","full_name":"Cosmo::Operator::PowAssign","name":"PowAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":345,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L345"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":346,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L346"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::Carat\nfixed_token.lexeme = \"^\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nif expr.name.is_a?(Expression::Var)\n op = Pow.new(@interpreter)\n result = op.apply(binary, \"^=\")\n @interpreter.scope.assign(expr.name.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(expr.name, binary))\nend\n"}}]}]},{"html_id":"Cosmo/Cosmo/Parser","path":"Cosmo/Parser.html","kind":"class","full_name":"Cosmo::Parser","name":"Parser","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(source:String,file_path:String,run_benchmarks:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"args_string":"(source : String, file_path : String, run_benchmarks : Bool)","args_html":"(source : String, file_path : String, run_benchmarks : Bool)","location":{"filename":"src/cosmo/syntax/parser.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser.cr#L9"},"def":{"name":"new","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(source, file_path, run_benchmarks)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"parse:Array(Statement::Base)-instance-method","name":"parse","doc":"Entry point","summary":"

                            Entry point

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser.cr#L17"},"def":{"name":"parse","return_type":"Array(Statement::Base)","visibility":"Public","body":"start_time = Time.monotonic\nstatements = [] of Statement::Base\nwhile !finished?\n stmt = parse_statement\n statements << stmt\nend\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Parser @#{@file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\nstatements\n"}}]},{"html_id":"Cosmo/Cosmo/PutsIntrinsic","path":"Cosmo/PutsIntrinsic.html","kind":"class","full_name":"Cosmo::PutsIntrinsic","name":"PutsIntrinsic","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L31"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L32"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Nil-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Nil","args_html":"(args : Array(ValueType)) : Nil","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L36"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Nil","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"void\")\nmapped = args.map do |arg|\n if arg.nil?\n \"none\"\n else\n if arg.is_a?(Hash)\n Stringify.hashmap(arg.as(Hash(ValueType, ValueType)))\n else\n arg.to_s\n end\n end\nend\nputs(mapped.join('\\t'))\n"}}]},{"html_id":"Cosmo/Cosmo/Resolver","path":"Cosmo/Resolver.html","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/resolver.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L6"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"args_string":"(interpreter : Interpreter)","args_html":"(interpreter : Interpreter)","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L14"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"resolve(statements:Expression::Base|Statement::Base|Array(Statement::Base)):Nil-instance-method","name":"resolve","abstract":false,"args":[{"name":"statements","external_name":"statements","restriction":"Expression::Base | Statement::Base | Array(Statement::Base)"}],"args_string":"(statements : Expression::Base | Statement::Base | Array(Statement::Base)) : Nil","args_html":"(statements : Expression::Base | Statement::Base | Array(Statement::Base)) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L18"},"def":{"name":"resolve","args":[{"name":"statements","external_name":"statements","restriction":"Expression::Base | Statement::Base | Array(Statement::Base)"}],"return_type":"Nil","visibility":"Public","body":"if statements.is_a?(Array)\n statements.each do |stmt|\n resolve(stmt)\n end\nelse\n statements.accept(self)\nend"}},{"html_id":"start_time:Time::Span-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L12"},"def":{"name":"start_time","return_type":"Time::Span","visibility":"Public","body":"@start_time"}},{"html_id":"visit_access_expr(expr:Expression::Access):Nil-instance-method","name":"visit_access_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"args_string":"(expr : Expression::Access) : Nil","args_html":"(expr : Expression::Access) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":190,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L190"},"def":{"name":"visit_access_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.object)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_binary_op_expr(expr:Expression::BinaryOp):Nil-instance-method","name":"visit_binary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : Nil","args_html":"(expr : Expression::BinaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":211,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L211"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.left)\nresolve(expr.right)\n"}},{"html_id":"visit_block_stmt(stmt:Statement::Block):Nil-instance-method","name":"visit_block_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"args_string":"(stmt : Statement::Block) : Nil","args_html":"(stmt : Statement::Block) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L76"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"return_type":"Nil","visibility":"Public","body":"begin_scope\nresolve(stmt.nodes)\nend_scope\n"}},{"html_id":"visit_break_stmt(stmt:Statement::Break):Nil-instance-method","name":"visit_break_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"args_string":"(stmt : Statement::Break) : Nil","args_html":"(stmt : Statement::Break) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":255,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L255"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_case_stmt(stmt:Statement::Case):Nil-instance-method","name":"visit_case_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"args_string":"(stmt : Statement::Case) : Nil","args_html":"(stmt : Statement::Case) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":92,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L92"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.value)\nstmt.comparisons.each do |comparison|\n comparison.conditions.each do |condition_expr|\n resolve(condition_expr)\n end\n resolve(comparison.block)\nend\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_class_def_stmt(stmt:Statement::ClassDef):Nil-instance-method","name":"visit_class_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"args_string":"(stmt : Statement::ClassDef) : Nil","args_html":"(stmt : Statement::ClassDef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L130"},"def":{"name":"visit_class_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"return_type":"Nil","visibility":"Public","body":"declare(stmt.identifier)\ndefine(stmt.identifier)\nif stmt.superclass.nil?\nelse\n resolve(stmt.superclass.not_nil!)\nend\nstmt.mixins.each do |mixin|\n resolve(mixin)\nend\nresolve(stmt.body)\n"}},{"html_id":"visit_compound_assignment_expr(expr:Expression::CompoundAssignment):Nil-instance-method","name":"visit_compound_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : Nil","args_html":"(expr : Expression::CompoundAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":200,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L200"},"def":{"name":"visit_compound_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve_local(expr, expr.name.token)\n"}},{"html_id":"visit_every_stmt(stmt:Statement::Every):Nil-instance-method","name":"visit_every_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"args_string":"(stmt : Statement::Every) : Nil","args_html":"(stmt : Statement::Every) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":82,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L82"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.var)\nresolve(stmt.enumerable)\nresolve(stmt.block)\n"}},{"html_id":"visit_fn_call_expr(expr:Expression::FunctionCall):Nil-instance-method","name":"visit_fn_call_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"args_string":"(expr : Expression::FunctionCall) : Nil","args_html":"(expr : Expression::FunctionCall) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":185,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L185"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.callee)\nexpr.arguments.each do |arg|\n resolve(arg)\nend\n"}},{"html_id":"visit_fn_def_stmt(stmt:Statement::FunctionDef):Nil-instance-method","name":"visit_fn_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"args_string":"(stmt : Statement::FunctionDef) : Nil","args_html":"(stmt : Statement::FunctionDef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L138"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"return_type":"Nil","visibility":"Public","body":"declare(stmt.identifier)\ndefine(stmt.identifier)\nresolve_fn(stmt, FnType::Fn)\n"}},{"html_id":"visit_if_stmt(stmt:Statement::If):Nil-instance-method","name":"visit_if_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"args_string":"(stmt : Statement::If) : Nil","args_html":"(stmt : Statement::If) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L103"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.then)\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_index_expr(expr:Expression::Index):Nil-instance-method","name":"visit_index_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"args_string":"(expr : Expression::Index) : Nil","args_html":"(expr : Expression::Index) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":195,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L195"},"def":{"name":"visit_index_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.key)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_is_expr(expr:Expression::Is):Nil-instance-method","name":"visit_is_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"args_string":"(expr : Expression::Is) : Nil","args_html":"(expr : Expression::Is) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L170"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve(expr.type)\n"}},{"html_id":"visit_literal_expr(expr:Expression::Literal):Nil-instance-method","name":"visit_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"args_string":"(expr : Expression::Literal) : Nil","args_html":"(expr : Expression::Literal) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":251,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L251"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_new_expr(expr:Expression::New):Nil-instance-method","name":"visit_new_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::New"}],"args_string":"(expr : Expression::New) : Nil","args_html":"(expr : Expression::New) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":181,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L181"},"def":{"name":"visit_new_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::New"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.operand)"}},{"html_id":"visit_next_stmt(stmt:Statement::Next):Nil-instance-method","name":"visit_next_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"args_string":"(stmt : Statement::Next) : Nil","args_html":"(stmt : Statement::Next) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L259"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_property_assignment_expr(expr:Expression::PropertyAssignment):Nil-instance-method","name":"visit_property_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"args_string":"(expr : Expression::PropertyAssignment) : Nil","args_html":"(expr : Expression::PropertyAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L165"},"def":{"name":"visit_property_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.object)\nif expr.value.is_a?(Expression::Base)\n resolve(expr.value.as(Expression::Base))\nend\n"}},{"html_id":"visit_range_literal_expr(expr:Expression::RangeLiteral):Nil-instance-method","name":"visit_range_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"args_string":"(expr : Expression::RangeLiteral) : Nil","args_html":"(expr : Expression::RangeLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":234,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L234"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.from)\nresolve(expr.to)\n"}},{"html_id":"visit_return_stmt(stmt:Statement::Return):Nil-instance-method","name":"visit_return_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"args_string":"(stmt : Statement::Return) : Nil","args_html":"(stmt : Statement::Return) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L123"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"return_type":"Nil","visibility":"Public","body":"if @current_fn == FnType::None\n Logger.report_error(\"Invalid return\", \"A 'return' statement can only be used within a method body.\", stmt.keyword)\nend\nif stmt.value.nil?\nelse\n resolve(stmt.value)\nend\n"}},{"html_id":"visit_single_expr_stmt(stmt:Statement::SingleExpression):Nil-instance-method","name":"visit_single_expr_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"args_string":"(stmt : Statement::SingleExpression) : Nil","args_html":"(stmt : Statement::SingleExpression) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":88,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L88"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.expression)"}},{"html_id":"visit_table_literal_expr(expr:Expression::TableLiteral):Nil-instance-method","name":"visit_table_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"args_string":"(expr : Expression::TableLiteral) : Nil","args_html":"(expr : Expression::TableLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L243"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_ternary_op_expr(expr:Expression::TernaryOp):Nil-instance-method","name":"visit_ternary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"args_string":"(expr : Expression::TernaryOp) : Nil","args_html":"(expr : Expression::TernaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":205,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L205"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.condition)\nresolve(expr.then)\nresolve(expr.else)\n"}},{"html_id":"visit_this_expr(expr:Expression::This):Nil-instance-method","name":"visit_this_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::This"}],"args_string":"(expr : Expression::This) : Nil","args_html":"(expr : Expression::This) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":239,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L239"},"def":{"name":"visit_this_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::This"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_throw_stmt(stmt:Statement::Throw):Nil-instance-method","name":"visit_throw_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"args_string":"(stmt : Statement::Throw) : Nil","args_html":"(stmt : Statement::Throw) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":119,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L119"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"return_type":"Nil","visibility":"Public","body":"if stmt.err.nil?\nelse\n resolve(stmt.err)\nend"}},{"html_id":"visit_type_alias_expr(expr:Expression::TypeAlias):Nil-instance-method","name":"visit_type_alias_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"args_string":"(expr : Expression::TypeAlias) : Nil","args_html":"(expr : Expression::TypeAlias) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":175,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L175"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"return_type":"Nil","visibility":"Public","body":"declare(expr.token)\nif expr.value.nil?\nelse\n resolve(expr.value.not_nil!)\nend\ndefine(expr.token)\n"}},{"html_id":"visit_type_ref_expr(expr:Expression::TypeRef):Nil-instance-method","name":"visit_type_ref_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"args_string":"(expr : Expression::TypeRef) : Nil","args_html":"(expr : Expression::TypeRef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":227,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L227"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"return_type":"Nil","visibility":"Public","body":"if ((!@scopes.empty?) && (!@scopes.last.nil?)) && (@scopes.last[expr.token.lexeme]? == false)\n Logger.report_error(\"Failed to assign '#{expr.token.lexeme}'\", \"Cannot read variable in it's own initializer\", expr.token)\nend\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_unary_op_expr(expr:Expression::UnaryOp):Nil-instance-method","name":"visit_unary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : Nil","args_html":"(expr : Expression::UnaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L216"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.operand)"}},{"html_id":"visit_unless_stmt(stmt:Statement::Unless):Nil-instance-method","name":"visit_unless_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"args_string":"(stmt : Statement::Unless) : Nil","args_html":"(stmt : Statement::Unless) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":109,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L109"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.then)\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_until_stmt(stmt:Statement::Until):Nil-instance-method","name":"visit_until_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"args_string":"(stmt : Statement::Until) : Nil","args_html":"(stmt : Statement::Until) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":149,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L149"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.block)\n"}},{"html_id":"visit_use_stmt(stmt:Statement::Use):Nil-instance-method","name":"visit_use_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"args_string":"(stmt : Statement::Use) : Nil","args_html":"(stmt : Statement::Use) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L115"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_var_assignment_expr(expr:Expression::VarAssignment):Nil-instance-method","name":"visit_var_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"args_string":"(expr : Expression::VarAssignment) : Nil","args_html":"(expr : Expression::VarAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":160,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L160"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_var_declaration_expr(expr:Expression::VarDeclaration):Nil-instance-method","name":"visit_var_declaration_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"args_string":"(expr : Expression::VarDeclaration) : Nil","args_html":"(expr : Expression::VarDeclaration) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":154,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L154"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"return_type":"Nil","visibility":"Public","body":"declare(expr.token)\nresolve(expr.value)\ndefine(expr.token)\n"}},{"html_id":"visit_var_expr(expr:Expression::Var):Nil-instance-method","name":"visit_var_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"args_string":"(expr : Expression::Var) : Nil","args_html":"(expr : Expression::Var) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":220,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L220"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"return_type":"Nil","visibility":"Public","body":"if ((!@scopes.empty?) && (!@scopes.last.nil?)) && (@scopes.last[expr.token.lexeme]? == false)\n Logger.report_error(\"Failed to assign '#{expr.token.lexeme}'\", \"Cannot read variable in it's own initializer\", expr.token)\nend\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_vector_literal_expr(expr:Expression::VectorLiteral):Nil-instance-method","name":"visit_vector_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"args_string":"(expr : Expression::VectorLiteral) : Nil","args_html":"(expr : Expression::VectorLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":247,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L247"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_while_stmt(stmt:Statement::While):Nil-instance-method","name":"visit_while_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"args_string":"(stmt : Statement::While) : Nil","args_html":"(stmt : Statement::While) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":144,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L144"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.block)\n"}}]},{"html_id":"Cosmo/Cosmo/Scope","path":"Cosmo/Scope.html","kind":"class","full_name":"Cosmo::Scope","name":"Scope","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/scope.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(parent:Nil|Cosmo::Scope=nil)-class-method","name":"new","abstract":false,"args":[{"name":"parent","default_value":"nil","external_name":"parent","restriction":"::Nil | ::Cosmo::Scope"}],"args_string":"(parent : Nil | Cosmo::Scope = nil)","args_html":"(parent : Nil | Cosmo::Scope = nil)","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L15"},"def":{"name":"new","args":[{"name":"parent","default_value":"nil","external_name":"parent","restriction":"::Nil | ::Cosmo::Scope"}],"visibility":"Public","body":"_ = allocate\n_.initialize(parent)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"assign(identifier:Token,value:ValueType,modifying_instance:Bool=false):ValueType-instance-method","name":"assign","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"modifying_instance","default_value":"false","external_name":"modifying_instance","restriction":"Bool"}],"args_string":"(identifier : Token, value : ValueType, modifying_instance : Bool = false) : ValueType","args_html":"(identifier : Token, value : ValueType, modifying_instance : Bool = false) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L56"},"def":{"name":"assign","args":[{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"modifying_instance","default_value":"false","external_name":"modifying_instance","restriction":"Bool"}],"return_type":"ValueType","visibility":"Public","body":"if @variables.has_key?(identifier.lexeme)\n var : Variable = @variables[identifier.lexeme]\n if var[:constant] && (!modifying_instance)\n Logger.report_error(\"Attempt to assign to constant variable\", identifier.lexeme, identifier)\n end\n TypeChecker.assert(var[:type], value, identifier)\n return create_variable(var[:type], identifier, value, constant: false, visibility: var[:visibility])\nend\nif @parent.nil?\nelse\n return @parent.not_nil!.assign(identifier, value)\nend\nLogger.report_error(\"Attempt to assign to undefined variable\", identifier.lexeme, identifier)\n"}},{"html_id":"declare(typedef:Token,identifier:Token,value:ValueType,const:Bool=false,visibility:Visibility=Visibility::Private):ValueType-instance-method","name":"declare","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"Token"},{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"const","default_value":"false","external_name":"const","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Private","external_name":"visibility","restriction":"Visibility"}],"args_string":"(typedef : Token, identifier : Token, value : ValueType, const : Bool = false, visibility : Visibility = Visibility::Private) : ValueType","args_html":"(typedef : Token, identifier : Token, value : ValueType, const : Bool = false, visibility : Visibility = Visibility::Private) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":44,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L44"},"def":{"name":"declare","args":[{"name":"typedef","external_name":"typedef","restriction":"Token"},{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"const","default_value":"false","external_name":"const","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Private","external_name":"visibility","restriction":"Visibility"}],"return_type":"ValueType","visibility":"Public","body":"if value.nil?\nelse\n TypeChecker.assert(typedef.lexeme, value, typedef)\nend\ncreate_variable(typedef, identifier, value, const, visibility)\n"}},{"html_id":"extend(other:Cosmo::Scope):Cosmo::Scope-instance-method","name":"extend","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Cosmo::Scope"}],"args_string":"(other : Cosmo::Scope) : Cosmo::Scope","args_html":"(other : Cosmo::Scope) : Cosmo::Scope","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L18"},"def":{"name":"extend","args":[{"name":"other","external_name":"other","restriction":"Cosmo::Scope"}],"return_type":"Cosmo::Scope","visibility":"Public","body":"other.variables.each do |name, data|\n if data[:visibility] == Visibility::Public\n @variables[name] = data\n end\nend\nself\n"}},{"html_id":"lookup(token:Token):ValueType-instance-method","name":"lookup","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token) : ValueType","args_html":"(token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":89,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L89"},"def":{"name":"lookup","args":[{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"value = lookup?(token.lexeme)\nif value.nil?\n if value.nil? && @parent.nil?\n Logger.report_error(\"Undefined variable\", token.value.to_s, token)\n end\nend\nvalue\n"}},{"html_id":"lookup?(ident:String):ValueType-instance-method","name":"lookup?","abstract":false,"args":[{"name":"ident","external_name":"ident","restriction":"String"}],"args_string":"(ident : String) : ValueType","args_html":"(ident : String) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L76"},"def":{"name":"lookup?","args":[{"name":"ident","external_name":"ident","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"if @variables.has_key?(ident)\n var = @variables[ident]\n typedef = var[:type]\n return var[:value]\nelse\n if @parent.nil?\n else\n return @parent.not_nil!.lookup?(ident)\n end\nend\nnil\n"}},{"html_id":"lookup_at(distance:UInt32,token:Token):ValueType-instance-method","name":"lookup_at","abstract":false,"args":[{"name":"distance","external_name":"distance","restriction":"UInt32"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(distance : UInt32, token : Token) : ValueType","args_html":"(distance : UInt32, token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":97,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L97"},"def":{"name":"lookup_at","args":[{"name":"distance","external_name":"distance","restriction":"UInt32"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"var = (ancestor(distance)).variables[token.value.to_s]?\nvar.value\n"}},{"html_id":"parent:Cosmo::Scope|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L12"},"def":{"name":"parent","return_type":"Cosmo::Scope | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"parent=(parent:Cosmo::Scope|Nil)-instance-method","name":"parent=","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"Cosmo::Scope | ::Nil"}],"args_string":"(parent : Cosmo::Scope | Nil)","args_html":"(parent : Cosmo::Scope | Nil)","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L12"},"def":{"name":"parent=","args":[{"name":"parent","external_name":"parent","restriction":"Cosmo::Scope | ::Nil"}],"visibility":"Public","body":"@parent = parent"}},{"html_id":"public?(ident:String):Bool-instance-method","name":"public?","doc":"Returns true if the variable exists and is public, otherwise false","summary":"

                            Returns true if the variable exists and is public, otherwise false

                            ","abstract":false,"args":[{"name":"ident","external_name":"ident","restriction":"String"}],"args_string":"(ident : String) : Bool","args_html":"(ident : String) : Bool","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":71,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L71"},"def":{"name":"public?","args":[{"name":"ident","external_name":"ident","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"if @variables.has_key?(ident)\nelse\n return false\nend\n@variables[ident][:visibility] == Visibility::Public\n"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":110,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L110"},"def":{"name":"to_s","visibility":"Public","body":"\"Scope<#{@parent ? (\"parent: \" + @parent.to_s) + \", \" : \"\"}#{@variables}>\""}},{"html_id":"variables:Hash(String,{type:String,value:Cosmo::ValueType,constant:Bool,visibility:Cosmo::AST::Visibility})-instance-method","name":"variables","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L13"},"def":{"name":"variables","visibility":"Public","body":"@variables"}},{"html_id":"variables=(variables:Hash(String,NamedTuple(type:String,value:Cosmo::ValueType,constant:Bool,visibility:Cosmo::AST::Visibility)))-instance-method","name":"variables=","abstract":false,"args":[{"name":"variables","external_name":"variables","restriction":"::Hash(::String, ::NamedTuple(type: ::String, value: ::Cosmo::ValueType, constant: ::Bool, visibility: ::Cosmo::AST::Visibility))"}],"args_string":"(variables : Hash(String, NamedTuple(type: String, value: Cosmo::ValueType, constant: Bool, visibility: Cosmo::AST::Visibility)))","args_html":"(variables : Hash(String, NamedTuple(type: String, value: Cosmo::ValueType, constant: Bool, visibility: Cosmo::AST::Visibility)))","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L13"},"def":{"name":"variables=","args":[{"name":"variables","external_name":"variables","restriction":"::Hash(::String, ::NamedTuple(type: ::String, value: ::Cosmo::ValueType, constant: ::Bool, visibility: ::Cosmo::AST::Visibility))"}],"visibility":"Public","body":"@variables = variables"}}]},{"html_id":"Cosmo/Cosmo/Syntax","path":"Cosmo/Syntax.html","kind":"enum","full_name":"Cosmo::Syntax","name":"Syntax","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Identifier","name":"Identifier","value":"0"},{"id":"Integer","name":"Integer","value":"1"},{"id":"Float","name":"Float","value":"2"},{"id":"String","name":"String","value":"3"},{"id":"Char","name":"Char","value":"4"},{"id":"Boolean","name":"Boolean","value":"5"},{"id":"None","name":"None","value":"6"},{"id":"TypeDef","name":"TypeDef","value":"7"},{"id":"Public","name":"Public","value":"8"},{"id":"ClassVisibility","name":"ClassVisibility","value":"9"},{"id":"PlusPlus","name":"PlusPlus","value":"10"},{"id":"MinusMinus","name":"MinusMinus","value":"11"},{"id":"Plus","name":"Plus","value":"12"},{"id":"PlusEqual","name":"PlusEqual","value":"13"},{"id":"Minus","name":"Minus","value":"14"},{"id":"MinusEqual","name":"MinusEqual","value":"15"},{"id":"Star","name":"Star","value":"16"},{"id":"StarEqual","name":"StarEqual","value":"17"},{"id":"Slash","name":"Slash","value":"18"},{"id":"SlashEqual","name":"SlashEqual","value":"19"},{"id":"Carat","name":"Carat","value":"20"},{"id":"CaratEqual","name":"CaratEqual","value":"21"},{"id":"Percent","name":"Percent","value":"22"},{"id":"PercentEqual","name":"PercentEqual","value":"23"},{"id":"Less","name":"Less","value":"24"},{"id":"LessEqual","name":"LessEqual","value":"25"},{"id":"Greater","name":"Greater","value":"26"},{"id":"GreaterEqual","name":"GreaterEqual","value":"27"},{"id":"Equal","name":"Equal","value":"28"},{"id":"EqualEqual","name":"EqualEqual","value":"29"},{"id":"Bang","name":"Bang","value":"30"},{"id":"BangEqual","name":"BangEqual","value":"31"},{"id":"Ampersand","name":"Ampersand","value":"32"},{"id":"Pipe","name":"Pipe","value":"33"},{"id":"Tilde","name":"Tilde","value":"34"},{"id":"RDoubleArrow","name":"RDoubleArrow","value":"35"},{"id":"LDoubleArrow","name":"LDoubleArrow","value":"36"},{"id":"AmpersandColon","name":"AmpersandColon","value":"37"},{"id":"PipeColon","name":"PipeColon","value":"38"},{"id":"AmpersandColonEqual","name":"AmpersandColonEqual","value":"39"},{"id":"PipeColonEqual","name":"PipeColonEqual","value":"40"},{"id":"Question","name":"Question","value":"41"},{"id":"ColonColon","name":"ColonColon","value":"42"},{"id":"Colon","name":"Colon","value":"43"},{"id":"Dot","name":"Dot","value":"44"},{"id":"DotDot","name":"DotDot","value":"45"},{"id":"HyphenArrow","name":"HyphenArrow","value":"46"},{"id":"FatArrow","name":"FatArrow","value":"47"},{"id":"This","name":"This","value":"48"},{"id":"LBrace","name":"LBrace","value":"49"},{"id":"RBrace","name":"RBrace","value":"50"},{"id":"DoubleLBrace","name":"DoubleLBrace","value":"51"},{"id":"DoubleRBrace","name":"DoubleRBrace","value":"52"},{"id":"LBracket","name":"LBracket","value":"53"},{"id":"RBracket","name":"RBracket","value":"54"},{"id":"LParen","name":"LParen","value":"55"},{"id":"RParen","name":"RParen","value":"56"},{"id":"Comma","name":"Comma","value":"57"},{"id":"Hashtag","name":"Hashtag","value":"58"},{"id":"Class","name":"Class","value":"59"},{"id":"Mixin","name":"Mixin","value":"60"},{"id":"New","name":"New","value":"61"},{"id":"Function","name":"Function","value":"62"},{"id":"If","name":"If","value":"63"},{"id":"Unless","name":"Unless","value":"64"},{"id":"In","name":"In","value":"65"},{"id":"Of","name":"Of","value":"66"},{"id":"Is","name":"Is","value":"67"},{"id":"Else","name":"Else","value":"68"},{"id":"Every","name":"Every","value":"69"},{"id":"While","name":"While","value":"70"},{"id":"Until","name":"Until","value":"71"},{"id":"Const","name":"Const","value":"72"},{"id":"Throw","name":"Throw","value":"73"},{"id":"Break","name":"Break","value":"74"},{"id":"Next","name":"Next","value":"75"},{"id":"Case","name":"Case","value":"76"},{"id":"When","name":"When","value":"77"},{"id":"Return","name":"Return","value":"78"},{"id":"Use","name":"Use","value":"79"},{"id":"EOF","name":"EOF","value":"80"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"ampersand?-instance-method","name":"ampersand?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"ampersand?","visibility":"Public","body":"self == Ampersand"}},{"html_id":"ampersand_colon?-instance-method","name":"ampersand_colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"ampersand_colon?","visibility":"Public","body":"self == AmpersandColon"}},{"html_id":"ampersand_colon_equal?-instance-method","name":"ampersand_colon_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"ampersand_colon_equal?","visibility":"Public","body":"self == AmpersandColonEqual"}},{"html_id":"bang?-instance-method","name":"bang?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"bang?","visibility":"Public","body":"self == Bang"}},{"html_id":"bang_equal?-instance-method","name":"bang_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"bang_equal?","visibility":"Public","body":"self == BangEqual"}},{"html_id":"boolean?-instance-method","name":"boolean?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"boolean?","visibility":"Public","body":"self == Boolean"}},{"html_id":"break?-instance-method","name":"break?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L31"},"def":{"name":"break?","visibility":"Public","body":"self == Break"}},{"html_id":"carat?-instance-method","name":"carat?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"carat?","visibility":"Public","body":"self == Carat"}},{"html_id":"carat_equal?-instance-method","name":"carat_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"carat_equal?","visibility":"Public","body":"self == CaratEqual"}},{"html_id":"case?-instance-method","name":"case?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":33,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L33"},"def":{"name":"case?","visibility":"Public","body":"self == Case"}},{"html_id":"char?-instance-method","name":"char?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"char?","visibility":"Public","body":"self == Char"}},{"html_id":"class?-instance-method","name":"class?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"class?","visibility":"Public","body":"self == Class"}},{"html_id":"class_visibility?-instance-method","name":"class_visibility?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"class_visibility?","visibility":"Public","body":"self == ClassVisibility"}},{"html_id":"colon?-instance-method","name":"colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"colon?","visibility":"Public","body":"self == Colon"}},{"html_id":"colon_colon?-instance-method","name":"colon_colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"colon_colon?","visibility":"Public","body":"self == ColonColon"}},{"html_id":"comma?-instance-method","name":"comma?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L19"},"def":{"name":"comma?","visibility":"Public","body":"self == Comma"}},{"html_id":"const?-instance-method","name":"const?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L29"},"def":{"name":"const?","visibility":"Public","body":"self == Const"}},{"html_id":"dot?-instance-method","name":"dot?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"dot?","visibility":"Public","body":"self == Dot"}},{"html_id":"dot_dot?-instance-method","name":"dot_dot?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"dot_dot?","visibility":"Public","body":"self == DotDot"}},{"html_id":"double_l_brace?-instance-method","name":"double_l_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"double_l_brace?","visibility":"Public","body":"self == DoubleLBrace"}},{"html_id":"double_r_brace?-instance-method","name":"double_r_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"double_r_brace?","visibility":"Public","body":"self == DoubleRBrace"}},{"html_id":"else?-instance-method","name":"else?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L26"},"def":{"name":"else?","visibility":"Public","body":"self == Else"}},{"html_id":"eof?-instance-method","name":"eof?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":37,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L37"},"def":{"name":"eof?","visibility":"Public","body":"self == EOF"}},{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"equal_equal?-instance-method","name":"equal_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"equal_equal?","visibility":"Public","body":"self == EqualEqual"}},{"html_id":"every?-instance-method","name":"every?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L27"},"def":{"name":"every?","visibility":"Public","body":"self == Every"}},{"html_id":"fat_arrow?-instance-method","name":"fat_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"fat_arrow?","visibility":"Public","body":"self == FatArrow"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"function?-instance-method","name":"function?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L22"},"def":{"name":"function?","visibility":"Public","body":"self == Function"}},{"html_id":"greater?-instance-method","name":"greater?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"greater?","visibility":"Public","body":"self == Greater"}},{"html_id":"greater_equal?-instance-method","name":"greater_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"greater_equal?","visibility":"Public","body":"self == GreaterEqual"}},{"html_id":"hashtag?-instance-method","name":"hashtag?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L20"},"def":{"name":"hashtag?","visibility":"Public","body":"self == Hashtag"}},{"html_id":"hyphen_arrow?-instance-method","name":"hyphen_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"hyphen_arrow?","visibility":"Public","body":"self == HyphenArrow"}},{"html_id":"identifier?-instance-method","name":"identifier?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L2"},"def":{"name":"identifier?","visibility":"Public","body":"self == Identifier"}},{"html_id":"if?-instance-method","name":"if?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L23"},"def":{"name":"if?","visibility":"Public","body":"self == If"}},{"html_id":"in?-instance-method","name":"in?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L24"},"def":{"name":"in?","visibility":"Public","body":"self == In"}},{"html_id":"integer?-instance-method","name":"integer?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"integer?","visibility":"Public","body":"self == Integer"}},{"html_id":"is?-instance-method","name":"is?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L25"},"def":{"name":"is?","visibility":"Public","body":"self == Is"}},{"html_id":"l_brace?-instance-method","name":"l_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"l_brace?","visibility":"Public","body":"self == LBrace"}},{"html_id":"l_bracket?-instance-method","name":"l_bracket?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"l_bracket?","visibility":"Public","body":"self == LBracket"}},{"html_id":"l_double_arrow?-instance-method","name":"l_double_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"l_double_arrow?","visibility":"Public","body":"self == LDoubleArrow"}},{"html_id":"l_paren?-instance-method","name":"l_paren?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"l_paren?","visibility":"Public","body":"self == LParen"}},{"html_id":"less?-instance-method","name":"less?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"less?","visibility":"Public","body":"self == Less"}},{"html_id":"less_equal?-instance-method","name":"less_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"less_equal?","visibility":"Public","body":"self == LessEqual"}},{"html_id":"minus?-instance-method","name":"minus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"minus?","visibility":"Public","body":"self == Minus"}},{"html_id":"minus_equal?-instance-method","name":"minus_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"minus_equal?","visibility":"Public","body":"self == MinusEqual"}},{"html_id":"minus_minus?-instance-method","name":"minus_minus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L5"},"def":{"name":"minus_minus?","visibility":"Public","body":"self == MinusMinus"}},{"html_id":"mixin?-instance-method","name":"mixin?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"mixin?","visibility":"Public","body":"self == Mixin"}},{"html_id":"new?-instance-method","name":"new?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"new?","visibility":"Public","body":"self == New"}},{"html_id":"next?-instance-method","name":"next?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L32"},"def":{"name":"next?","visibility":"Public","body":"self == Next"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"of?-instance-method","name":"of?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L24"},"def":{"name":"of?","visibility":"Public","body":"self == Of"}},{"html_id":"percent?-instance-method","name":"percent?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"percent?","visibility":"Public","body":"self == Percent"}},{"html_id":"percent_equal?-instance-method","name":"percent_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"percent_equal?","visibility":"Public","body":"self == PercentEqual"}},{"html_id":"pipe?-instance-method","name":"pipe?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"pipe?","visibility":"Public","body":"self == Pipe"}},{"html_id":"pipe_colon?-instance-method","name":"pipe_colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"pipe_colon?","visibility":"Public","body":"self == PipeColon"}},{"html_id":"pipe_colon_equal?-instance-method","name":"pipe_colon_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"pipe_colon_equal?","visibility":"Public","body":"self == PipeColonEqual"}},{"html_id":"plus?-instance-method","name":"plus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"plus?","visibility":"Public","body":"self == Plus"}},{"html_id":"plus_equal?-instance-method","name":"plus_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"plus_equal?","visibility":"Public","body":"self == PlusEqual"}},{"html_id":"plus_plus?-instance-method","name":"plus_plus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L5"},"def":{"name":"plus_plus?","visibility":"Public","body":"self == PlusPlus"}},{"html_id":"public?-instance-method","name":"public?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"public?","visibility":"Public","body":"self == Public"}},{"html_id":"question?-instance-method","name":"question?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L14"},"def":{"name":"question?","visibility":"Public","body":"self == Question"}},{"html_id":"r_brace?-instance-method","name":"r_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"r_brace?","visibility":"Public","body":"self == RBrace"}},{"html_id":"r_bracket?-instance-method","name":"r_bracket?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"r_bracket?","visibility":"Public","body":"self == RBracket"}},{"html_id":"r_double_arrow?-instance-method","name":"r_double_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"r_double_arrow?","visibility":"Public","body":"self == RDoubleArrow"}},{"html_id":"r_paren?-instance-method","name":"r_paren?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"r_paren?","visibility":"Public","body":"self == RParen"}},{"html_id":"return?-instance-method","name":"return?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L35"},"def":{"name":"return?","visibility":"Public","body":"self == Return"}},{"html_id":"slash?-instance-method","name":"slash?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"slash?","visibility":"Public","body":"self == Slash"}},{"html_id":"slash_equal?-instance-method","name":"slash_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"slash_equal?","visibility":"Public","body":"self == SlashEqual"}},{"html_id":"star?-instance-method","name":"star?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"star?","visibility":"Public","body":"self == Star"}},{"html_id":"star_equal?-instance-method","name":"star_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"star_equal?","visibility":"Public","body":"self == StarEqual"}},{"html_id":"string?-instance-method","name":"string?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"string?","visibility":"Public","body":"self == String"}},{"html_id":"this?-instance-method","name":"this?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"this?","visibility":"Public","body":"self == This"}},{"html_id":"throw?-instance-method","name":"throw?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L30"},"def":{"name":"throw?","visibility":"Public","body":"self == Throw"}},{"html_id":"tilde?-instance-method","name":"tilde?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"tilde?","visibility":"Public","body":"self == Tilde"}},{"html_id":"type_def?-instance-method","name":"type_def?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"type_def?","visibility":"Public","body":"self == TypeDef"}},{"html_id":"unless?-instance-method","name":"unless?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L23"},"def":{"name":"unless?","visibility":"Public","body":"self == Unless"}},{"html_id":"until?-instance-method","name":"until?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L28"},"def":{"name":"until?","visibility":"Public","body":"self == Until"}},{"html_id":"use?-instance-method","name":"use?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L36"},"def":{"name":"use?","visibility":"Public","body":"self == Use"}},{"html_id":"when?-instance-method","name":"when?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L34"},"def":{"name":"when?","visibility":"Public","body":"self == When"}},{"html_id":"while?-instance-method","name":"while?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L28"},"def":{"name":"while?","visibility":"Public","body":"self == While"}}]},{"html_id":"Cosmo/Cosmo/Token","path":"Cosmo/Token.html","kind":"struct","full_name":"Cosmo::Token","name":"Token","abstract":false,"superclass":{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(lexeme:String,type:Cosmo::Syntax,value:Bool|Char|Float32|Float64|Int128|Int16|Int32|Int64|Int8|String|Nil,location:Cosmo::Location)-class-method","name":"new","abstract":false,"args":[{"name":"lexeme","external_name":"lexeme","restriction":"::String"},{"name":"type","external_name":"type","restriction":"::Cosmo::Syntax"},{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"location","external_name":"location","restriction":"::Cosmo::Location"}],"args_string":"(lexeme : String, type : Cosmo::Syntax, value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, location : Cosmo::Location)","args_html":"(lexeme : String, type : Cosmo::Syntax, value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, location : Cosmo::Location)","location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L10"},"def":{"name":"new","args":[{"name":"lexeme","external_name":"lexeme","restriction":"::String"},{"name":"type","external_name":"type","restriction":"::Cosmo::Syntax"},{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"location","external_name":"location","restriction":"::Cosmo::Location"}],"visibility":"Public","body":"_ = allocate\n_.initialize(lexeme, type, value, location)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"lexeme:String-instance-method","name":"lexeme","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L8"},"def":{"name":"lexeme","return_type":"String","visibility":"Public","body":"@lexeme"}},{"html_id":"lexeme=(lexeme:String)-instance-method","name":"lexeme=","abstract":false,"args":[{"name":"lexeme","external_name":"lexeme","restriction":"String"}],"args_string":"(lexeme : String)","args_html":"(lexeme : String)","location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L8"},"def":{"name":"lexeme=","args":[{"name":"lexeme","external_name":"lexeme","restriction":"String"}],"visibility":"Public","body":"@lexeme = lexeme"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L30"},"def":{"name":"to_s","visibility":"Public","body":"\"Token\""}},{"html_id":"type:Syntax-instance-method","name":"type","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L5"},"def":{"name":"type","return_type":"Syntax","visibility":"Public","body":"@type"}},{"html_id":"type=(type:Syntax)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Syntax"}],"args_string":"(type : Syntax)","args_html":"(type : Syntax)","location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L5"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"Syntax"}],"visibility":"Public","body":"@type = type"}},{"html_id":"value:LiteralType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L6"},"def":{"name":"value","return_type":"LiteralType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/Type","path":"Cosmo/Type.html","kind":"class","full_name":"Cosmo::Type","name":"Type","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/type.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/type.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(name:String)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cosmo/runtime/type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/type.cr#L4"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/runtime/type.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/type.cr#L2"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/type.cr#L7"},"def":{"name":"to_s","visibility":"Public","body":"\"Type<#{name}>\""}}]},{"html_id":"Cosmo/Cosmo/TypeChecker","path":"Cosmo/TypeChecker.html","kind":"module","full_name":"Cosmo::TypeChecker","name":"TypeChecker","abstract":false,"locations":[{"filename":"src/cosmo/runtime/typechecker.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L14"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ALIASES","name":"ALIASES","value":"{} of String => String"},{"id":"REGISTERED","name":"REGISTERED","value":"[] of Type"},{"id":"TYPE_MAP","name":"TYPE_MAP","value":"{Int128 => \"bigint\", Int64 => \"int\", Int32 => \"int\", Int16 => \"int\", Int8 => \"int\", Float64 => \"float\", Float32 => \"float\", String => \"string\", Char => \"char\", Bool => \"bool\", Nil => \"none\", Class => \"class\", Function => \"func\", PutsIntrinsic => \"func\", Array(Int64) => \"int[]\", Array(Int32) => \"int[]\", Array(Int16) => \"int[]\", Array(Int8) => \"int[]\", Array(Float64) => \"float[]\", Array(Float32) => \"float[]\", Array(String) => \"string[]\", Array(Char) => \"char[]\", Array(Bool) => \"bool[]\", Array(Function) => \"fn[]\", Array(ValueType) => \"any[]\", Array => \"any[]\", Hash(ValueType, ValueType) => \"Table\", Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) => \"Range\"}"}],"extended_modules":[{"html_id":"Cosmo/Cosmo/TypeChecker","kind":"module","full_name":"Cosmo::TypeChecker","name":"TypeChecker"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"alias_type(alias_name:String,original:String):Type-instance-method","name":"alias_type","abstract":false,"args":[{"name":"alias_name","external_name":"alias_name","restriction":"String"},{"name":"original","external_name":"original","restriction":"String"}],"args_string":"(alias_name : String, original : String) : Type","args_html":"(alias_name : String, original : String) : Type","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":105,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L105"},"def":{"name":"alias_type","args":[{"name":"alias_name","external_name":"alias_name","restriction":"String"},{"name":"original","external_name":"original","restriction":"String"}],"return_type":"Type","visibility":"Public","body":"ALIASES[alias_name] = original\nregister_type(alias_name)\n"}},{"html_id":"assert(typedef:String,value:ValueType,token:Token):Nil-instance-method","name":"assert","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, value : ValueType, token : Token) : Nil","args_html":"(typedef : String, value : ValueType, token : Token) : Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":220,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L220"},"def":{"name":"assert","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Nil","visibility":"Public","body":"matches = is?(typedef, value, token)\nif typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n if value.is_a?(Array)\n else\n report_mismatch(typedef, value, token)\n end\n (value.as(Array)).each do |v|\n assert(value_type, v, token)\n end\nelse\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first.strip\n value_type = types.last.strip\n if value.is_a?(Hash)\n else\n report_mismatch(typedef, value, token)\n end\n internal = cast_hash(value)\n internal.each do |k, v|\n assert(key_type, k, token)\n assert(value_type, v, token)\n end\n else\n if typedef.starts_with?(\"(\")\n ungrouped_type = typedef[1..-2]\n assert(ungrouped_type, value, token)\n else\n if matches\n else\n report_mismatch(typedef, value, token)\n end\n end\n end\nend\n"}},{"html_id":"cast(value:T):ValueTypeforallT-instance-method","name":"cast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"T"}],"args_string":"(value : T) : ValueType forall T","args_html":"(value : T) : ValueType forall T","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":87,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L87"},"def":{"name":"cast","args":[{"name":"value","external_name":"value","restriction":"T"}],"return_type":"ValueType","visibility":"Public","body":"value.is_a?(Array) ? cast_array(value) : value.is_a?(Hash) ? cast_hash(value) : value.is_a?(Int128) && value <= Int64::MAX ? value.to_i64 : value.as(ValueType)"}},{"html_id":"cast_array(arr:Array(T)):Array(ValueType)forallT-instance-method","name":"cast_array","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(T)"}],"args_string":"(arr : Array(T)) : Array(ValueType) forall T","args_html":"(arr : Array(T)) : Array(ValueType) forall T","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L77"},"def":{"name":"cast_array","args":[{"name":"arr","external_name":"arr","restriction":"Array(T)"}],"return_type":"Array(ValueType)","visibility":"Public","body":"arr.map do |e|\n cast(e)\nend"}},{"html_id":"cast_hash(hash:Hash(K,V)):Hash(ValueType,ValueType)forallK,V-instance-method","name":"cast_hash","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":"Hash(K, V)"}],"args_string":"(hash : Hash(K, V)) : Hash(ValueType, ValueType) forall K, V","args_html":"(hash : Hash(K, V)) : Hash(ValueType, ValueType) forall K, V","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":81,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L81"},"def":{"name":"cast_hash","args":[{"name":"hash","external_name":"hash","restriction":"Hash(K, V)"}],"return_type":"Hash(ValueType, ValueType)","visibility":"Public","body":"res = {} of ValueType => ValueType\nhash.each do |k, v|\n res[cast(k)] = cast(v)\nend\nres\n"}},{"html_id":"get_mapped(t:CrystalClass):String-instance-method","name":"get_mapped","abstract":false,"args":[{"name":"t","external_name":"t","restriction":"CrystalClass"}],"args_string":"(t : CrystalClass) : String","args_html":"(t : CrystalClass) : String","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L56"},"def":{"name":"get_mapped","args":[{"name":"t","external_name":"t","restriction":"CrystalClass"}],"return_type":"String","visibility":"Public","body":"if TYPE_MAP.has_key?(t)\nelse\n raise(\"Unhandled type to map: #{t}\")\nend\nTYPE_MAP[t]\n"}},{"html_id":"get_registered_type(name:String,token:Token):Type|Nil-instance-method","name":"get_registered_type","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(name : String, token : Token) : Type | Nil","args_html":"(name : String, token : Token) : Type | Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":134,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L134"},"def":{"name":"get_registered_type","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Type | ::Nil","visibility":"Public","body":"type = get_registered_type?(name, token)\nif type.nil?\n Logger.report_error(\"Could not resolve type\", \"'#{name}'\", token)\nend\ntype\n"}},{"html_id":"get_registered_type?(typedef:String,token:Token):Type|Nil-instance-method","name":"get_registered_type?","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, token : Token) : Type | Nil","args_html":"(typedef : String, token : Token) : Type | Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":110,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L110"},"def":{"name":"get_registered_type?","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Type | ::Nil","visibility":"Public","body":"if typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n if get_registered_type?(value_type, token).nil?\n else\n Type.new(typedef)\n end\nelse\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first\n value_type = types.last\n if get_registered_type?(key_type, token).nil? && get_registered_type?(value_type, token).nil?\n else\n Type.new(typedef)\n end\n else\n if typedef.includes?(\"|\")\n types = typedef.split(\"|\")\n resolved = true\n types.each do |t|\n if get_registered_type?(t, token).nil?\n resolved = false\n break\n end\n end\n if resolved\n Type.new(typedef)\n end\n else\n REGISTERED.find do |t|\n t.name == typedef\n end\n end\n end\nend"}},{"html_id":"is?(typedef:String,value,token:Token):Bool-instance-method","name":"is?","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":""},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, value, token : Token) : Bool","args_html":"(typedef : String, value, token : Token) : Bool","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":140,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L140"},"def":{"name":"is?","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":""},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Bool","visibility":"Public","body":"case typedef\nwhen \"Range\"\n value.is_a?(Range)\nwhen \"class\"\n value.is_a?(Class)\nwhen \"type\"\n value.is_a?(Type)\nwhen \"func\"\n value.is_a?(Function) || value.is_a?(IntrinsicFunction)\nwhen \"bigint\"\n value.is_a?(Int)\nwhen \"int\"\n value.is_a?(Int64 | Int32 | Int16 | Int8)\nwhen \"float\"\n value.is_a?(Float)\nwhen \"bool\"\n value.is_a?(Bool)\nwhen \"string\"\n value.is_a?(String)\nwhen \"char\"\n value.is_a?(Char)\nwhen \"none\", \"void\"\n value == nil\nwhen \"any\"\n true\nelse\n matches = false\n if typedef.starts_with?(\"(\")\n ungrouped_type = typedef[1..-2]\n matches = is?(ungrouped_type, value, token)\n else\n if typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n matches = value.is_a?(Array)\n if value.is_a?(Array)\n (value.as(Array)).each do |v|\n matches && (matches = is?(value_type, v, token))\n end\n end\n else\n if typedef.includes?(\"|\")\n types = typedef.split(\"|\")\n types.each do |type|\n if is?(type.strip, value, token)\n matches = true\n end\n end\n else\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first.strip\n value_type = types.last.strip\n matches = value.is_a?(Hash)\n if value.is_a?(Hash)\n (value.as(Hash)).each do |k, v|\n matches && (matches = is?(key_type, k, token))\n matches && (matches = is?(value_type, v, token))\n end\n end\n else\n if typedef.ends_with?(\"?\")\n non_nullable_type = typedef[0..-2]\n matches = is?(non_nullable_type + \"|void\", value, token)\n else\n if matches\n else\n registered = get_registered_type?(typedef, token)\n if registered.nil?\n matches = false\n else\n if ALIASES.has_key?(registered.name)\n unaliased = ALIASES[registered.name]\n matches = is?(unaliased, value, token)\n else\n if value.is_a?(ClassInstance)\n matches = value.name == registered.name\n else\n matches = false\n end\n end\n end\n end\n end\n end\n end\n end\n end\n matches\nend"}},{"html_id":"register_intrinsics-instance-method","name":"register_intrinsics","abstract":false,"location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L63"},"def":{"name":"register_intrinsics","visibility":"Public","body":"register_type(\"Range\")\nregister_type(\"type\")\nregister_type(\"class\")\nregister_type(\"func\")\nregister_type(\"bigint\")\nregister_type(\"int\")\nregister_type(\"float\")\nregister_type(\"bool\")\nregister_type(\"string\")\nregister_type(\"char\")\nregister_type(\"void\")\n"}},{"html_id":"register_type(name:String):Type-instance-method","name":"register_type","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : Type","args_html":"(name : String) : Type","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L99"},"def":{"name":"register_type","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"Type","visibility":"Public","body":"type = Type.new(name)\nREGISTERED << type\ntype\n"}},{"html_id":"reset-instance-method","name":"reset","abstract":false,"location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":93,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L93"},"def":{"name":"reset","visibility":"Public","body":"ALIASES.clear\nREGISTERED.clear\nregister_intrinsics\n"}}]},{"html_id":"Cosmo/Cosmo/ValueType","path":"Cosmo/ValueType.html","kind":"alias","full_name":"Cosmo::ValueType","name":"ValueType","abstract":false,"locations":[{"filename":"src/cosmo/runtime/typechecker.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L11"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":true,"aliased":"(Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","aliased_html":"Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil","const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"}}]},{"html_id":"Cosmo/FnType","path":"FnType.html","kind":"enum","full_name":"FnType","name":"FnType","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/resolver.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Fn","name":"Fn","value":"1"}],"instance_methods":[{"html_id":"fn?-instance-method","name":"fn?","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L3"},"def":{"name":"fn?","visibility":"Public","body":"self == Fn"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L2"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"Cosmo/LiteralType","path":"LiteralType.html","kind":"alias","full_name":"LiteralType","name":"LiteralType","abstract":false,"locations":[{"filename":"src/cosmo/syntax/lexer.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":true,"aliased":"(Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil)","aliased_html":"Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil","const":false},{"html_id":"Cosmo/Stringify","path":"Stringify.html","kind":"module","full_name":"Stringify","name":"Stringify","abstract":false,"locations":[{"filename":"src/util.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/util.cr#L17"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"Cosmo/Stringify","kind":"module","full_name":"Stringify","name":"Stringify"}],"instance_methods":[{"html_id":"hashmap(hash:Hash,base_indent:Int=0):String-instance-method","name":"hashmap","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":"Hash"},{"name":"base_indent","default_value":"0","external_name":"base_indent","restriction":"Int"}],"args_string":"(hash : Hash, base_indent : Int = 0) : String","args_html":"(hash : Hash, base_indent : Int = 0) : String","location":{"filename":"src/util.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/util.cr#L30"},"def":{"name":"hashmap","args":[{"name":"hash","external_name":"hash","restriction":"Hash"},{"name":"base_indent","default_value":"0","external_name":"base_indent","restriction":"Int"}],"return_type":"String","visibility":"Public","body":"@@indent = base_indent\ns = String::Builder.new(\"{\")\npush_indent(s)\nhash.each_with_index do |entry, i|\n if i == 0\n s.write((\"\\n\" + (TAB * @@indent)).to_slice)\n end\n key, value = entry\n if key.is_a?(String)\n s.write('\"'.to_s.to_slice)\n end\n s.write(key.to_s.to_slice)\n if key.is_a?(String)\n s.write('\"'.to_s.to_slice)\n end\n s.write(\" -> \".to_slice)\n if value.is_a?(Hash)\n s.write((Stringify.hashmap(value, @@indent)).to_slice)\n else\n if value.is_a?(String)\n s.write('\"'.to_s.to_slice)\n end\n s.write((value.nil? ? \"none\" : value.to_s).to_slice)\n if value.is_a?(String)\n s.write('\"'.to_s.to_slice)\n end\n end\n if i == (hash.size - 1)\n else\n s.write(\",\".to_slice)\n end\n s.write(\"\\n\".to_slice)\n if i == (hash.size - 1)\n else\n s.write((TAB * @@indent).to_slice)\n end\nend\npop_indent\ns.write(\"#{TAB * @@indent}}\".to_slice)\ns.to_s\n"}}]}]}} \ No newline at end of file diff --git a/docs/search-index.js b/docs/search-index.js index c58fd077..5759d4b0 100644 --- a/docs/search-index.js +++ b/docs/search-index.js @@ -1 +1 @@ -crystal_doc_search_index_callback({"repository_name":"Cosmo","body":"![build](https://github.com/R-unic/cosmo/actions/workflows/crystal.yml/badge.svg)\n# Cosmo\n\nCosmo is a statically-typed programming language written in pure Crystal.
                            \nWe have an [extension for VS code](https://marketplace.visualstudio.com/items?itemName=cosmo.vscode-cosmo) ([source](https://github.com/R-unic/vscode-cosmo)), however it currently only features syntax highlighting.\n\n## Things I Gotta Do\n\n- Enums\n- Throw when defining an already-defined class\n- `uint` type\n- Allow \"!\" character identifiers for macros\n- Stack trace\n- Package manager\n- Performance boosts lol\n- Multiple assignment\n- Somehow typecheck blocks before execution\n- Fix weird expression parsing (`[0].123` evaluates to 0.123??)\n- Literal wrapper classes (vector, table) for utility methods (filter, map, etc)\n- Interfaces\n- Classes\n * single inheritance\n * mixins\n * methods\n * `$` (this)\n- Better type system\n * generics\n * casting\n * `typeof`\n * intersections\n\n## Things I Might Do\n\n- Make declarations immutable by default and replace `const` with `mut`\n- Make into a VM or compiler\n- C bindings\n\n## Installation\n\n1. Install [Crystal](https://crystal-lang.org/install/).\n2. Run `sudo make install`.\n3. Assert everything is working by running `cosmo -h`\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Test your code (`make test`)\n5. Push to the branch (`make publish`)\n6. Create a new Pull Request\n\n## Contributors\n\n- [R-unic](https://github.com/R-unic) - creator and maintainer\n","program":{"html_id":"Cosmo/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"ancestors":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"locations":[],"repository_name":"Cosmo","program":true,"enum":false,"alias":false,"const":false,"constants":[{"id":"MAX_INTRINSIC_PARAMS","name":"MAX_INTRINSIC_PARAMS","value":"255"},{"id":"TAB","name":"TAB","value":"\" \""}],"included_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"extended_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"class_methods":[{"html_id":"get_elapsed(start:Time::Span,finish:Time::Span):String-class-method","name":"get_elapsed","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Time::Span"},{"name":"finish","external_name":"finish","restriction":"Time::Span"}],"args_string":"(start : Time::Span, finish : Time::Span) : String","args_html":"(start : Time::Span, finish : Time::Span) : String","location":{"filename":"src/util.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/util.cr#L4"},"def":{"name":"get_elapsed","args":[{"name":"start","external_name":"start","restriction":"Time::Span"},{"name":"finish","external_name":"finish","restriction":"Time::Span"}],"return_type":"String","visibility":"Public","body":"span = finish - start\nms = span.total_milliseconds.round(5)\nif ms > 1000\n return \"#{(ms / 1000).round(2)} seconds\"\nend\n\"#{ms}ms\"\n"}},{"html_id":"get_shard:YAML::Any-class-method","name":"get_shard","doc":"Returns `shard.yml` as a `YAML::Any`","summary":"

                            Returns shard.yml as a YAML::Any

                            ","abstract":false,"location":{"filename":"src/util.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/util.cr#L12"},"def":{"name":"get_shard","return_type":"YAML::Any","visibility":"Public","body":"raw_yaml = File.read(File.join(File.dirname(\"/home/runic/Dev/crystal/cosmo/src/util.cr\"), \"..\", \"shard.yml\"))\nYAML.parse(raw_yaml)\n"}}],"types":[{"html_id":"Cosmo/Cosmo","path":"Cosmo.html","kind":"module","full_name":"Cosmo","name":"Cosmo","abstract":false,"locations":[{"filename":"src/cosmo.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo.cr#L7"},{"filename":"src/cosmo/logger.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L1"},{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L3"},{"filename":"src/cosmo/runtime/typechecker.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L6"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Version","name":"Version","value":"\"v\" + get_shard[\"version\"].to_s"}],"extended_modules":[{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"}],"instance_methods":[{"html_id":"read_file(path:String)-instance-method","name":"read_file","doc":"Reads a file at `path` and returns it's contents","summary":"

                            Reads a file at path and returns it's contents

                            ","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cosmo.cr","line_number":48,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo.cr#L48"},"def":{"name":"read_file","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"begin\n contents = File.read(path)\n read_source(contents, file_path: path)\nrescue ex : Exception\n abort(\"Failed to read file \\\"#{path}\\\": \\n#{ex.message}\\n\\t#{ex.backtrace.join(\"\\n\\t\")}\", 1)\nend"}},{"html_id":"read_source(source:String,file_path:String):ValueType-instance-method","name":"read_source","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(source : String, file_path : String) : ValueType","args_html":"(source : String, file_path : String) : ValueType","location":{"filename":"src/cosmo.cr","line_number":43,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo.cr#L43"},"def":{"name":"read_source","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@@interpreter.interpret(source, file_path)"}},{"html_id":"run_repl-instance-method","name":"run_repl","doc":"Starts the REPL","summary":"

                            Starts the REPL

                            ","abstract":false,"location":{"filename":"src/cosmo.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo.cr#L77"},"def":{"name":"run_repl","visibility":"Public","body":"puts(\"Welcome to the #{rainbow(\"Cosmo\")} REPL\")\nloop do\n line = read_line\n if line.nil?\n break\n end\n puts((read_source(line, file_path: \"repl\")).to_s)\nend\n"}}],"types":[{"html_id":"Cosmo/Cosmo/AST","path":"Cosmo/AST.html","kind":"module","full_name":"Cosmo::AST","name":"AST","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L3"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/AST/Expression","path":"Cosmo/AST/Expression.html","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression","abstract":false,"ancestors":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"types":[{"html_id":"Cosmo/Cosmo/AST/Expression/Access","path":"Cosmo/AST/Expression/Access.html","kind":"class","full_name":"Cosmo::AST::Expression::Access","name":"Access","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L76"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,key:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::Token"}],"args_string":"(object : Cosmo::AST::Expression::Base, key : Cosmo::Token)","args_html":"(object : Cosmo::AST::Expression::Base, key : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":80,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L80"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, key)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":83,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L83"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_access_expr(self)"}},{"html_id":"key:Token-instance-method","name":"key","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":78,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L78"},"def":{"name":"key","return_type":"Token","visibility":"Public","body":"@key"}},{"html_id":"object:Base-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L77"},"def":{"name":"object","return_type":"Base","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":91,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L91"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Access<\\n\" + \" #{TAB * indent}object: #{@object.to_s(indent + 1)},\\n\") + \" #{TAB * indent}key: #{@key.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":87,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L87"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","path":"Cosmo/AST/Expression/Base.html","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L21"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/Access","kind":"class","full_name":"Cosmo::AST::Expression::Access","name":"Access"},{"html_id":"Cosmo/Cosmo/AST/Expression/BinaryOp","kind":"class","full_name":"Cosmo::AST::Expression::BinaryOp","name":"BinaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/CompoundAssignment","kind":"class","full_name":"Cosmo::AST::Expression::CompoundAssignment","name":"CompoundAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/FunctionCall","kind":"class","full_name":"Cosmo::AST::Expression::FunctionCall","name":"FunctionCall"},{"html_id":"Cosmo/Cosmo/AST/Expression/Index","kind":"class","full_name":"Cosmo::AST::Expression::Index","name":"Index"},{"html_id":"Cosmo/Cosmo/AST/Expression/Is","kind":"class","full_name":"Cosmo::AST::Expression::Is","name":"Is"},{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Parameter","kind":"class","full_name":"Cosmo::AST::Expression::Parameter","name":"Parameter"},{"html_id":"Cosmo/Cosmo/AST/Expression/PropertyAssignment","kind":"class","full_name":"Cosmo::AST::Expression::PropertyAssignment","name":"PropertyAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/RangeLiteral","kind":"class","full_name":"Cosmo::AST::Expression::RangeLiteral","name":"RangeLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/TableLiteral","kind":"class","full_name":"Cosmo::AST::Expression::TableLiteral","name":"TableLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/TernaryOp","kind":"class","full_name":"Cosmo::AST::Expression::TernaryOp","name":"TernaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeAlias","kind":"class","full_name":"Cosmo::AST::Expression::TypeAlias","name":"TypeAlias"},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeRef","kind":"class","full_name":"Cosmo::AST::Expression::TypeRef","name":"TypeRef"},{"html_id":"Cosmo/Cosmo/AST/Expression/UnaryOp","kind":"class","full_name":"Cosmo::AST::Expression::UnaryOp","name":"UnaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/Var","kind":"class","full_name":"Cosmo::AST::Expression::Var","name":"Var"},{"html_id":"Cosmo/Cosmo/AST/Expression/VarAssignment","kind":"class","full_name":"Cosmo::AST::Expression::VarAssignment","name":"VarAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/VarDeclaration","kind":"class","full_name":"Cosmo::AST::Expression::VarDeclaration","name":"VarDeclaration"},{"html_id":"Cosmo/Cosmo/AST/Expression/VectorLiteral","kind":"class","full_name":"Cosmo::AST::Expression::VectorLiteral","name":"VectorLiteral"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"instance_methods":[{"html_id":"accept(visitor:Visitor(R))forallR-instance-method","name":"accept","abstract":true,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) forall R","args_html":"(visitor : Visitor(R)) forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L22"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BigIntLiteral","path":"Cosmo/AST/Expression/BigIntLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::BigIntLiteral","name":"BigIntLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":467,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L467"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Int128,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int128"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Int128, token)","args_html":"(value : Int128, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":468,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L468"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Int128"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":469,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L469"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BinaryOp","path":"Cosmo/AST/Expression/BinaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::BinaryOp","name":"BinaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":331,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L331"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(left:Cosmo::AST::Expression::Base,operator:Cosmo::Token,right:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"right","external_name":"right","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(left : Cosmo::AST::Expression::Base, operator : Cosmo::Token, right : Cosmo::AST::Expression::Base)","args_html":"(left : Cosmo::AST::Expression::Base, operator : Cosmo::Token, right : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L336"},"def":{"name":"new","args":[{"name":"left","external_name":"left","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"right","external_name":"right","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(left, operator, right)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":339,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L339"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_binary_op_expr(self)"}},{"html_id":"left:Base-instance-method","name":"left","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":332,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L332"},"def":{"name":"left","return_type":"Base","visibility":"Public","body":"@left"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":333,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L333"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"right:Base-instance-method","name":"right","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L334"},"def":{"name":"right","return_type":"Base","visibility":"Public","body":"@right"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":347,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L347"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Binary<\\n\" + \" #{TAB * indent}left: #{@left.to_s(indent + 1)},\\n\") + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}right: #{@right.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":343,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L343"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@left.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BooleanLiteral","path":"Cosmo/AST/Expression/BooleanLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::BooleanLiteral","name":"BooleanLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":488,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L488"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Bool,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Bool, token)","args_html":"(value : Bool, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":489,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L489"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Bool"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":490,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L490"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/CharLiteral","path":"Cosmo/AST/Expression/CharLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::CharLiteral","name":"CharLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":460,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L460"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Char,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Char"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Char, token)","args_html":"(value : Char, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":461,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L461"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Char"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":462,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L462"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<'#{@value}'>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/CompoundAssignment","path":"Cosmo/AST/Expression/CompoundAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::CompoundAssignment","name":"CompoundAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":239,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L239"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(name:Cosmo::Token,operator:Cosmo::Token,value:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(name : Cosmo::Token, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)","args_html":"(name : Cosmo::Token, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":244,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L244"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, operator, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":247,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L247"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_compound_assignment_expr(self)"}},{"html_id":"name:Token-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":240,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L240"},"def":{"name":"name","return_type":"Token","visibility":"Public","body":"@name"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":241,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L241"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":255,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L255"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"CompoundAssignment<\\n\"\n\" #{TAB * indent}name: #{@name.value},\\n\"\n\" #{TAB * indent}operator: #{@operator.to_s},\\n\"\n\" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\"\n\"#{TAB * indent}>\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":251,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L251"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@name"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":242,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L242"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/FloatLiteral","path":"Cosmo/AST/Expression/FloatLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::FloatLiteral","name":"FloatLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":481,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L481"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Float64|Float32|Float16|Float8,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Float32 | Float16 | Float8"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Float64 | Float32 | Float16 | Float8, token)","args_html":"(value : Float64 | Float32 | Float16 | Float8, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":482,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L482"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Float64 | Float32 | Float16 | Float8"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":483,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L483"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/FunctionCall","path":"Cosmo/AST/Expression/FunctionCall.html","kind":"class","full_name":"Cosmo::AST::Expression::FunctionCall","name":"FunctionCall","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":189,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L189"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(callee:Cosmo::AST::Expression::Base,arguments:Array(Cosmo::AST::Expression::Base))-class-method","name":"new","abstract":false,"args":[{"name":"callee","external_name":"callee","restriction":"::Cosmo::AST::Expression::Base"},{"name":"arguments","external_name":"arguments","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"args_string":"(callee : Cosmo::AST::Expression::Base, arguments : Array(Cosmo::AST::Expression::Base))","args_html":"(callee : Cosmo::AST::Expression::Base, arguments : Array(Cosmo::AST::Expression::Base))","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":193,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L193"},"def":{"name":"new","args":[{"name":"callee","external_name":"callee","restriction":"::Cosmo::AST::Expression::Base"},{"name":"arguments","external_name":"arguments","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(callee, arguments)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L196"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_fn_call_expr(self)"}},{"html_id":"arguments:Array(Base)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L191"},"def":{"name":"arguments","return_type":"Array(Base)","visibility":"Public","body":"@arguments"}},{"html_id":"callee:Base-instance-method","name":"callee","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":190,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L190"},"def":{"name":"callee","return_type":"Base","visibility":"Public","body":"@callee"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":204,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L204"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((((\"FunctionCall<\\n\" + \" #{TAB * indent}var: #{@callee.to_s(indent + 1)},\\n\") + \" #{TAB * indent}arguments: [\\n\") + \" #{TAB * indent}#{@arguments.map(&.to_s(indent + 2)).join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}]\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":200,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L200"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@callee.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Index","path":"Cosmo/AST/Expression/Index.html","kind":"class","full_name":"Cosmo::AST::Expression::Index","name":"Index","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L99"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,key:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(object : Cosmo::AST::Expression::Base, key : Cosmo::AST::Expression::Base)","args_html":"(object : Cosmo::AST::Expression::Base, key : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L103"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, key)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":106,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L106"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_index_expr(self)"}},{"html_id":"key:Base-instance-method","name":"key","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L101"},"def":{"name":"key","return_type":"Base","visibility":"Public","body":"@key"}},{"html_id":"object:Base-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":100,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L100"},"def":{"name":"object","return_type":"Base","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":114,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L114"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Index<\\n\" + \" #{TAB * indent}object: #{@object.to_s(indent + 1)},\\n\") + \" #{TAB * indent}key: #{@key.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":110,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L110"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/IntLiteral","path":"Cosmo/AST/Expression/IntLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::IntLiteral","name":"IntLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":474,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L474"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Int64|Int32|Int16|Int8,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int64 | Int32 | Int16 | Int8"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Int64 | Int32 | Int16 | Int8, token)","args_html":"(value : Int64 | Int32 | Int16 | Int8, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":475,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L475"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Int64 | Int32 | Int16 | Int8"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":476,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L476"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Is","path":"Cosmo/AST/Expression/Is.html","kind":"class","full_name":"Cosmo::AST::Expression::Is","name":"Is","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":122,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L122"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Cosmo::AST::Expression::Base,type:Cosmo::AST::Expression::TypeRef)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"type","external_name":"type","restriction":"::Cosmo::AST::Expression::TypeRef"}],"args_string":"(value : Cosmo::AST::Expression::Base, type : Cosmo::AST::Expression::TypeRef)","args_html":"(value : Cosmo::AST::Expression::Base, type : Cosmo::AST::Expression::TypeRef)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":126,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L126"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"type","external_name":"type","restriction":"::Cosmo::AST::Expression::TypeRef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":129,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L129"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_is_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":137,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L137"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Is<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)},\\n\") + \" #{TAB * indent}type: #{@type.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":133,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L133"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@value.token"}},{"html_id":"type:TypeRef-instance-method","name":"type","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":124,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L124"},"def":{"name":"type","return_type":"TypeRef","visibility":"Public","body":"@type"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L123"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","path":"Cosmo/AST/Expression/Literal.html","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":379,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L379"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/BigIntLiteral","kind":"class","full_name":"Cosmo::AST::Expression::BigIntLiteral","name":"BigIntLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/BooleanLiteral","kind":"class","full_name":"Cosmo::AST::Expression::BooleanLiteral","name":"BooleanLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/CharLiteral","kind":"class","full_name":"Cosmo::AST::Expression::CharLiteral","name":"CharLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/FloatLiteral","kind":"class","full_name":"Cosmo::AST::Expression::FloatLiteral","name":"FloatLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/IntLiteral","kind":"class","full_name":"Cosmo::AST::Expression::IntLiteral","name":"IntLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/NoneLiteral","kind":"class","full_name":"Cosmo::AST::Expression::NoneLiteral","name":"NoneLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/StringLiteral","kind":"class","full_name":"Cosmo::AST::Expression::StringLiteral","name":"StringLiteral"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Bool|Char|Float32|Float64|Int128|Int16|Int32|Int64|Int8|String|Nil,token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, token : Cosmo::Token)","args_html":"(value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":383,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L383"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":385,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L385"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_literal_expr(self)"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":380,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L380"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}},{"html_id":"value:LiteralType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":381,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L381"},"def":{"name":"value","return_type":"LiteralType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/NoneLiteral","path":"Cosmo/AST/Expression/NoneLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::NoneLiteral","name":"NoneLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":495,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L495"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Nil,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Nil"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Nil, token)","args_html":"(value : Nil, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":496,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L496"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Nil"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":497,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L497"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Parameter","path":"Cosmo/AST/Expression/Parameter.html","kind":"class","full_name":"Cosmo::AST::Expression::Parameter","name":"Parameter","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":214,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L214"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(typedef:Cosmo::Token,identifier:Cosmo::Token,const:Bool,default_value:Cosmo::AST::Expression::Base|Nil=NoneLiteral.new(nil,identifier))-class-method","name":"new","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"const","external_name":"const","restriction":"::Bool"},{"name":"default_value","default_value":"NoneLiteral.new(nil, identifier)","external_name":"default_value","restriction":"::Cosmo::AST::Expression::Base | ::Nil"}],"args_string":"(typedef : Cosmo::Token, identifier : Cosmo::Token, const : Bool, default_value : Cosmo::AST::Expression::Base | Nil = NoneLiteral.new(nil, identifier))","args_html":"(typedef : Cosmo::Token, identifier : Cosmo::Token, const : Bool, default_value : Cosmo::AST::Expression::Base | Nil = NoneLiteral.new(nil, identifier))","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":220,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L220"},"def":{"name":"new","args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"const","external_name":"const","restriction":"::Bool"},{"name":"default_value","default_value":"NoneLiteral.new(nil, identifier)","external_name":"default_value","restriction":"::Cosmo::AST::Expression::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(typedef, identifier, const, default_value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":223,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L223"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"const?:Bool-instance-method","name":"const?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L217"},"def":{"name":"const?","return_type":"Bool","visibility":"Public","body":"@const"}},{"html_id":"default_value:Base|Nil-instance-method","name":"default_value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":218,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L218"},"def":{"name":"default_value","return_type":"Base | ::Nil","visibility":"Public","body":"@default_value"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L216"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L230"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Parameter<\\n\" + \" #{TAB * indent}typedef: #{@typedef.value},\\n\") + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}value: #{@default_value.nil? ? \"none\" : @default_value.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":226,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L226"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"typedef:Token-instance-method","name":"typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":215,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L215"},"def":{"name":"typedef","return_type":"Token","visibility":"Public","body":"@typedef"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/PropertyAssignment","path":"Cosmo/AST/Expression/PropertyAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::PropertyAssignment","name":"PropertyAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L51"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,value:Array(Cosmo::ValueType)|Bool|Char|Cosmo::AST::Expression::Base|Cosmo::Callable|Cosmo::Class|Cosmo::Type|Float32|Float64|Hash(Cosmo::ValueType,Cosmo::ValueType)|Int128|Int16|Int32|Int64|Int8|Range(Int128|Int16|Int32|Int64|Int8,Int128|Int16|Int32|Int64|Int8)|String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"value","external_name":"value","restriction":"::Array(::Cosmo::ValueType) | ::Bool | ::Char | ::Cosmo::AST::Expression::Base | ::Cosmo::Callable | ::Cosmo::Class | ::Cosmo::Type | ::Float32 | ::Float64 | ::Hash(::Cosmo::ValueType, ::Cosmo::ValueType) | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::Range(::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8, ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8) | ::String | ::Nil"}],"args_string":"(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","args_html":"(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":55,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L55"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"value","external_name":"value","restriction":"::Array(::Cosmo::ValueType) | ::Bool | ::Char | ::Cosmo::AST::Expression::Base | ::Cosmo::Callable | ::Cosmo::Class | ::Cosmo::Type | ::Float32 | ::Float64 | ::Hash(::Cosmo::ValueType, ::Cosmo::ValueType) | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::Range(::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8, ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8) | ::String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":58,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L58"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_property_assignment_expr(self)"}},{"html_id":"object:Access|Index-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L52"},"def":{"name":"object","return_type":"Access | Index","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":66,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L66"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"if value.is_a?(Base)\n value_s = (@value.as(Base)).to_s(indent + 1)\nelse\n value_s = @value.to_s\nend\n\"PropertyAssignment\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":62,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L62"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}},{"html_id":"value:Base|ValueType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L53"},"def":{"name":"value","return_type":"Base | ValueType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/RangeLiteral","path":"Cosmo/AST/Expression/RangeLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::RangeLiteral","name":"RangeLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":390,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L390"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(from:Cosmo::AST::Expression::Base,to:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"::Cosmo::AST::Expression::Base"},{"name":"to","external_name":"to","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(from : Cosmo::AST::Expression::Base, to : Cosmo::AST::Expression::Base)","args_html":"(from : Cosmo::AST::Expression::Base, to : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":394,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L394"},"def":{"name":"new","args":[{"name":"from","external_name":"from","restriction":"::Cosmo::AST::Expression::Base"},{"name":"to","external_name":"to","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(from, to)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":397,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L397"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_range_literal_expr(self)"}},{"html_id":"from:Base-instance-method","name":"from","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":391,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L391"},"def":{"name":"from","return_type":"Base","visibility":"Public","body":"@from"}},{"html_id":"to:Base-instance-method","name":"to","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":392,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L392"},"def":{"name":"to","return_type":"Base","visibility":"Public","body":"@to"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":405,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L405"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"RangeLiteral<\\n\" + \" #{TAB * indent}from: #{@from.to_s(indent + 1)},\\n\") + \" #{TAB * indent}to: #{@to.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":401,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L401"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@from.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/StringLiteral","path":"Cosmo/AST/Expression/StringLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::StringLiteral","name":"StringLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":453,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L453"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:String,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : String, token)","args_html":"(value : String, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":454,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L454"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":455,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L455"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<\\\"#{@value}\\\">\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TableLiteral","path":"Cosmo/AST/Expression/TableLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::TableLiteral","name":"TableLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":413,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L413"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(hashmap:Hash(Cosmo::AST::Expression::Base,Cosmo::AST::Expression::Base),token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"hashmap","external_name":"hashmap","restriction":"::Hash(::Cosmo::AST::Expression::Base, ::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(hashmap : Hash(Cosmo::AST::Expression::Base, Cosmo::AST::Expression::Base), token : Cosmo::Token)","args_html":"(hashmap : Hash(Cosmo::AST::Expression::Base, Cosmo::AST::Expression::Base), token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":417,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L417"},"def":{"name":"new","args":[{"name":"hashmap","external_name":"hashmap","restriction":"::Hash(::Cosmo::AST::Expression::Base, ::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(hashmap, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":419,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L419"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_table_literal_expr(self)"}},{"html_id":"hashmap:Hash(Base,Base)-instance-method","name":"hashmap","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":415,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L415"},"def":{"name":"hashmap","return_type":"Hash(Base, Base)","visibility":"Public","body":"@hashmap"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":423,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L423"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"s = \"Literal<{\\n\"\n@hashmap.keys.each do |k|\n s = s + (TAB * (indent + 1))\n s = s + (k.to_s(indent + 1))\n s = s + \" -> \"\n s = s + (@hashmap[k].to_s(indent + 1))\n s = s + \"\\n\"\nend\ns + \"#{TAB * indent}}>\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":414,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L414"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TernaryOp","path":"Cosmo/AST/Expression/TernaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::TernaryOp","name":"TernaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L25"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(condition:Cosmo::AST::Expression::Base,operator:Cosmo::Token,then:Cosmo::AST::Expression::Base,else:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Expression::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(condition : Cosmo::AST::Expression::Base, operator : Cosmo::Token, then : Cosmo::AST::Expression::Base, else : Cosmo::AST::Expression::Base)","args_html":"(condition : Cosmo::AST::Expression::Base, operator : Cosmo::Token, then : Cosmo::AST::Expression::Base, else : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L31"},"def":{"name":"new","args":[{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Expression::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(condition, operator, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L34"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_ternary_op_expr(self)"}},{"html_id":"condition:Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L26"},"def":{"name":"condition","return_type":"Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L29"},"def":{"name":"else","return_type":"Base","visibility":"Public","body":"@else"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L27"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L28"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":42,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L42"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Ternary<\\n\" + \" #{TAB * indent}left: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)}\\n\") + \" #{TAB * indent}else: #{@else.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":38,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L38"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeAlias","path":"Cosmo/AST/Expression/TypeAlias.html","kind":"class","full_name":"Cosmo::AST::Expression::TypeAlias","name":"TypeAlias","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":164,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L164"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(type_token:Cosmo::Token,var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base,constant:Bool,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"type_token","external_name":"type_token","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(type_token : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","args_html":"(type_token : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":171,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L171"},"def":{"name":"new","args":[{"name":"type_token","external_name":"type_token","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(type_token, var, value, constant, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":174,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L174"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_type_alias_expr(self)"}},{"html_id":"constant?:Bool-instance-method","name":"constant?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":168,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L168"},"def":{"name":"constant?","return_type":"Bool","visibility":"Public","body":"@constant"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":182,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L182"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"TypeAlias<\\n\" + \" #{TAB * indent}#{@var.token.value.to_s}: #{@value.nil? ? \"none\" : @value.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L178"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"type_token:Token-instance-method","name":"type_token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L165"},"def":{"name":"type_token","return_type":"Token","visibility":"Public","body":"@type_token"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L167"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":166,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L166"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":169,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L169"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeRef","path":"Cosmo/AST/Expression/TypeRef.html","kind":"class","full_name":"Cosmo::AST::Expression::TypeRef","name":"TypeRef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L145"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(name:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"}],"args_string":"(name : Cosmo::Token)","args_html":"(name : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":148,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L148"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":151,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L151"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_type_ref_expr(self)"}},{"html_id":"name:Token-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":146,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L146"},"def":{"name":"name","return_type":"Token","visibility":"Public","body":"@name"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":159,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L159"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"TypeRef<\\\"#{@name.value.to_s}\\\">\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":155,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L155"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@name"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/UnaryOp","path":"Cosmo/AST/Expression/UnaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::UnaryOp","name":"UnaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":356,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L356"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(operator:Cosmo::Token,operand:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(operator : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","args_html":"(operator : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":360,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L360"},"def":{"name":"new","args":[{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(operator, operand)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":363,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L363"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_unary_op_expr(self)"}},{"html_id":"operand:Base-instance-method","name":"operand","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":358,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L358"},"def":{"name":"operand","return_type":"Base","visibility":"Public","body":"@operand"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":357,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L357"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":371,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L371"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Unary<\\n\" + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}operand: #{@operand.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":367,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L367"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Var","path":"Cosmo/AST/Expression/Var.html","kind":"class","full_name":"Cosmo::AST::Expression::Var","name":"Var","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":316,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L316"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(token : Cosmo::Token)","args_html":"(token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":319,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L319"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":322,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L322"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":326,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L326"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Var<\\\"#{@token.value.to_s}\\\">\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":317,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L317"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VarAssignment","path":"Cosmo/AST/Expression/VarAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::VarAssignment","name":"VarAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":293,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L293"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base)","args_html":"(var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":297,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L297"},"def":{"name":"new","args":[{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(var, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":300,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L300"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_assignment_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":308,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L308"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"VarAssignment<\\n\" + \" #{TAB * indent}var: #{@var.token.value.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":304,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L304"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":295,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L295"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":294,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L294"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VarDeclaration","path":"Cosmo/AST/Expression/VarDeclaration.html","kind":"class","full_name":"Cosmo::AST::Expression::VarDeclaration","name":"VarDeclaration","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":264,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L264"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(typedef:Cosmo::Token,var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base,constant:Bool,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(typedef : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","args_html":"(typedef : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":271,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L271"},"def":{"name":"new","args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(typedef, var, value, constant, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L274"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_declaration_expr(self)"}},{"html_id":"constant?:Bool-instance-method","name":"constant?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":268,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L268"},"def":{"name":"constant?","return_type":"Bool","visibility":"Public","body":"@constant"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":282,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L282"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((\"VarDeclaration<\\n\" + \" #{TAB * indent}typedef: #{@typedef.value},\\n\") + \" #{TAB * indent}var: #{@var.token.value.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \" #{TAB * indent}constant?: #{@constant}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":278,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L278"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"typedef:Token-instance-method","name":"typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":265,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L265"},"def":{"name":"typedef","return_type":"Token","visibility":"Public","body":"@typedef"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":267,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L267"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":266,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L266"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":269,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L269"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VectorLiteral","path":"Cosmo/AST/Expression/VectorLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::VectorLiteral","name":"VectorLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":436,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L436"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(values:Array(Cosmo::AST::Expression::Base),token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"values","external_name":"values","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(values : Array(Cosmo::AST::Expression::Base), token : Cosmo::Token)","args_html":"(values : Array(Cosmo::AST::Expression::Base), token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":440,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L440"},"def":{"name":"new","args":[{"name":"values","external_name":"values","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(values, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":442,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L442"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_vector_literal_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":446,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L446"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Literal<[\\n\" + \" #{TAB * indent}#{@values.map(&.to_s(indent + 2)).join(\",\\n#{TAB * (indent + 1)}\")}\\n\") + \"#{TAB * indent}]>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":437,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L437"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}},{"html_id":"values:Array(Base)-instance-method","name":"values","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":438,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L438"},"def":{"name":"values","return_type":"Array(Base)","visibility":"Public","body":"@values"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","path":"Cosmo/AST/Expression/Visitor.html","kind":"module","full_name":"Cosmo::AST::Expression::Visitor(R)","name":"Visitor","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/Interpreter","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter"},{"html_id":"Cosmo/Cosmo/Resolver","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"instance_methods":[{"html_id":"visit_binary_op_expr(expr:BinaryOp):R-instance-method","name":"visit_binary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"BinaryOp"}],"args_string":"(expr : BinaryOp) : R","args_html":"(expr : BinaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L13"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"BinaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_fn_call_expr(expr:FunctionCall):R-instance-method","name":"visit_fn_call_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"FunctionCall"}],"args_string":"(expr : FunctionCall) : R","args_html":"(expr : FunctionCall) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L8"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"FunctionCall"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_is_expr(expr:Is):R-instance-method","name":"visit_is_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Is"}],"args_string":"(expr : Is) : R","args_html":"(expr : Is) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L5"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Is"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_literal_expr(expr:Literal):R-instance-method","name":"visit_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Literal"}],"args_string":"(expr : Literal) : R","args_html":"(expr : Literal) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L15"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Literal"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_range_literal_expr(expr:RangeLiteral):R-instance-method","name":"visit_range_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"RangeLiteral"}],"args_string":"(expr : RangeLiteral) : R","args_html":"(expr : RangeLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L16"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"RangeLiteral"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_table_literal_expr(expr:TableLiteral):R-instance-method","name":"visit_table_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TableLiteral"}],"args_string":"(expr : TableLiteral) : R","args_html":"(expr : TableLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L17"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"TableLiteral"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_ternary_op_expr(expr:TernaryOp):R-instance-method","name":"visit_ternary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TernaryOp"}],"args_string":"(expr : TernaryOp) : R","args_html":"(expr : TernaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L12"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"TernaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_type_alias_expr(expr:TypeAlias):R-instance-method","name":"visit_type_alias_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TypeAlias"}],"args_string":"(expr : TypeAlias) : R","args_html":"(expr : TypeAlias) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L6"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"TypeAlias"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_type_ref_expr(expr:TypeRef):R-instance-method","name":"visit_type_ref_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TypeRef"}],"args_string":"(expr : TypeRef) : R","args_html":"(expr : TypeRef) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L7"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"TypeRef"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_unary_op_expr(expr:UnaryOp):R-instance-method","name":"visit_unary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"UnaryOp"}],"args_string":"(expr : UnaryOp) : R","args_html":"(expr : UnaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L14"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"UnaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_assignment_expr(expr:VarAssignment):R-instance-method","name":"visit_var_assignment_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VarAssignment"}],"args_string":"(expr : VarAssignment) : R","args_html":"(expr : VarAssignment) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L10"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"VarAssignment"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_declaration_expr(expr:VarDeclaration):R-instance-method","name":"visit_var_declaration_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VarDeclaration"}],"args_string":"(expr : VarDeclaration) : R","args_html":"(expr : VarDeclaration) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L9"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"VarDeclaration"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_expr(expr:Var):R-instance-method","name":"visit_var_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Var"}],"args_string":"(expr : Var) : R","args_html":"(expr : Var) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L11"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Var"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_vector_literal_expr(expr:VectorLiteral):R-instance-method","name":"visit_vector_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VectorLiteral"}],"args_string":"(expr : VectorLiteral) : R","args_html":"(expr : VectorLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/expression_nodes.cr#L18"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"VectorLiteral"}],"return_type":"R","visibility":"Public","body":""}}]}]},{"html_id":"Cosmo/Cosmo/AST/Node","path":"Cosmo/AST/Node.html","kind":"class","full_name":"Cosmo::AST::Node","name":"Node","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L11"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"instance_methods":[{"html_id":"end_location:Location|Nil-instance-method","name":"end_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L13"},"def":{"name":"end_location","return_type":"Location | ::Nil","visibility":"Public","body":"@end_location"}},{"html_id":"end_location=(end_location:Location|Nil)-instance-method","name":"end_location=","abstract":false,"args":[{"name":"end_location","external_name":"end_location","restriction":"Location | ::Nil"}],"args_string":"(end_location : Location | Nil)","args_html":"(end_location : Location | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L13"},"def":{"name":"end_location=","args":[{"name":"end_location","external_name":"end_location","restriction":"Location | ::Nil"}],"visibility":"Public","body":"@end_location = end_location"}},{"html_id":"single_expression:Node-instance-method","name":"single_expression","doc":"It yields itself for any node, but if it's a\n`Statement::ExpressionList`, then it returns the\nfirst node of the `ExpressionList` statement","summary":"

                            It yields itself for any node, but if it's a Statement::ExpressionList, then it returns the first node of the ExpressionList statement

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L21"},"def":{"name":"single_expression","return_type":"Node","visibility":"Public","body":"single_expression? || self"}},{"html_id":"single_expression?:Node|Nil-instance-method","name":"single_expression?","doc":"It yields `nil` always for any regular node.\n(It is overridden by `ExpressionList` to implement `#single_expression`.)","summary":"

                            It yields nil always for any regular node.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L27"},"def":{"name":"single_expression?","return_type":"Node | ::Nil","visibility":"Public","body":"nil"}},{"html_id":"start_location:Location|Nil-instance-method","name":"start_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L12"},"def":{"name":"start_location","return_type":"Location | ::Nil","visibility":"Public","body":"@start_location"}},{"html_id":"start_location=(start_location:Location|Nil)-instance-method","name":"start_location=","abstract":false,"args":[{"name":"start_location","external_name":"start_location","restriction":"Location | ::Nil"}],"args_string":"(start_location : Location | Nil)","args_html":"(start_location : Location | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L12"},"def":{"name":"start_location=","args":[{"name":"start_location","external_name":"start_location","restriction":"Location | ::Nil"}],"visibility":"Public","body":"@start_location = start_location"}},{"html_id":"token:Token-instance-method","name":"token","abstract":true,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L16"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":""}},{"html_id":"visibility:Cosmo::AST::Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L14"},"def":{"name":"visibility","visibility":"Public","body":"@visibility"}},{"html_id":"visibility=(visibility:Cosmo::AST::Visibility)-instance-method","name":"visibility=","abstract":false,"args":[{"name":"visibility","external_name":"visibility","restriction":"::Cosmo::AST::Visibility"}],"args_string":"(visibility : Cosmo::AST::Visibility)","args_html":"(visibility : Cosmo::AST::Visibility)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L14"},"def":{"name":"visibility=","args":[{"name":"visibility","external_name":"visibility","restriction":"::Cosmo::AST::Visibility"}],"visibility":"Public","body":"@visibility = visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement","path":"Cosmo/AST/Statement.html","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"types":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","path":"Cosmo/AST/Statement/Base.html","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L19"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Statement/Block","kind":"class","full_name":"Cosmo::AST::Statement::Block","name":"Block"},{"html_id":"Cosmo/Cosmo/AST/Statement/Break","kind":"class","full_name":"Cosmo::AST::Statement::Break","name":"Break"},{"html_id":"Cosmo/Cosmo/AST/Statement/Case","kind":"class","full_name":"Cosmo::AST::Statement::Case","name":"Case"},{"html_id":"Cosmo/Cosmo/AST/Statement/ClassDef","kind":"class","full_name":"Cosmo::AST::Statement::ClassDef","name":"ClassDef"},{"html_id":"Cosmo/Cosmo/AST/Statement/Every","kind":"class","full_name":"Cosmo::AST::Statement::Every","name":"Every"},{"html_id":"Cosmo/Cosmo/AST/Statement/FunctionDef","kind":"class","full_name":"Cosmo::AST::Statement::FunctionDef","name":"FunctionDef"},{"html_id":"Cosmo/Cosmo/AST/Statement/If","kind":"class","full_name":"Cosmo::AST::Statement::If","name":"If"},{"html_id":"Cosmo/Cosmo/AST/Statement/Next","kind":"class","full_name":"Cosmo::AST::Statement::Next","name":"Next"},{"html_id":"Cosmo/Cosmo/AST/Statement/Return","kind":"class","full_name":"Cosmo::AST::Statement::Return","name":"Return"},{"html_id":"Cosmo/Cosmo/AST/Statement/SingleExpression","kind":"class","full_name":"Cosmo::AST::Statement::SingleExpression","name":"SingleExpression"},{"html_id":"Cosmo/Cosmo/AST/Statement/Throw","kind":"class","full_name":"Cosmo::AST::Statement::Throw","name":"Throw"},{"html_id":"Cosmo/Cosmo/AST/Statement/Unless","kind":"class","full_name":"Cosmo::AST::Statement::Unless","name":"Unless"},{"html_id":"Cosmo/Cosmo/AST/Statement/Until","kind":"class","full_name":"Cosmo::AST::Statement::Until","name":"Until"},{"html_id":"Cosmo/Cosmo/AST/Statement/Use","kind":"class","full_name":"Cosmo::AST::Statement::Use","name":"Use"},{"html_id":"Cosmo/Cosmo/AST/Statement/While","kind":"class","full_name":"Cosmo::AST::Statement::While","name":"While"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"instance_methods":[{"html_id":"accept(visitor:Visitor(R))forallR-instance-method","name":"accept","abstract":true,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) forall R","args_html":"(visitor : Visitor(R)) forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L20"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Block","path":"Cosmo/AST/Statement/Block.html","kind":"class","full_name":"Cosmo::AST::Statement::Block","name":"Block","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":383,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L383"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(nodes:Array(Cosmo::AST::Statement::Base)=[]ofNode)-class-method","name":"new","abstract":false,"args":[{"name":"nodes","default_value":"[] of Node","external_name":"nodes","restriction":"::Array(::Cosmo::AST::Statement::Base)"}],"args_string":"(nodes : Array(Cosmo::AST::Statement::Base) = [] of Node)","args_html":"(nodes : Array(Cosmo::AST::Statement::Base) = [] of Node)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":386,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L386"},"def":{"name":"new","args":[{"name":"nodes","default_value":"[] of Node","external_name":"nodes","restriction":"::Array(::Cosmo::AST::Statement::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(nodes)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](i:UInt):Node-instance-method","name":"[]","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"UInt"}],"args_string":"(i : UInt) : Node","args_html":"(i : UInt) : Node","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":393,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L393"},"def":{"name":"[]","args":[{"name":"i","external_name":"i","restriction":"UInt"}],"return_type":"Node","visibility":"Public","body":"@nodes[i]"}},{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":427,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L427"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_block_stmt(self)"}},{"html_id":"empty?-instance-method","name":"empty?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":389,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L389"},"def":{"name":"empty?","visibility":"Public","body":"@nodes.empty?"}},{"html_id":"end_location:Location-instance-method","name":"end_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":409,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L409"},"def":{"name":"end_location","return_type":"Location","visibility":"Public","body":"@end_location || @nodes.last?.try(&.end_location)"}},{"html_id":"first:Node-instance-method","name":"first","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":397,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L397"},"def":{"name":"first","return_type":"Node","visibility":"Public","body":"@nodes.first"}},{"html_id":"last:Node-instance-method","name":"last","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":401,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L401"},"def":{"name":"last","return_type":"Node","visibility":"Public","body":"@nodes.last"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":405,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L405"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location || @nodes.first?.try(&.location)"}},{"html_id":"nodes:Array(Base)-instance-method","name":"nodes","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":384,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L384"},"def":{"name":"nodes","return_type":"Array(Base)","visibility":"Public","body":"@nodes"}},{"html_id":"single_expression?:Expression::Base|Nil-instance-method","name":"single_expression?","doc":"It yields first node if this holds only one node, or yields `nil`.","summary":"

                            It yields first node if this holds only one node, or yields nil.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":414,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L414"},"def":{"name":"single_expression?","return_type":"Expression::Base | ::Nil","visibility":"Public","body":"if @nodes.size == 1\n expr = @nodes.first.single_expression\n if expr.is_a?(Statement::SingleExpression)\n expr.expression\n else\n expr.as(Expression::Base)\n end\nelse\n nil\nend"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":435,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L435"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Block\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":431,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L431"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@nodes.empty? ? Token.new(\"none\", Syntax::None, nil, Location.new(\"\", 0, 0)) : @nodes.first.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Break","path":"Cosmo/AST/Statement/Break.html","kind":"class","full_name":"Cosmo::AST::Statement::Break","name":"Break","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":164,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L164"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(keyword : Cosmo::Token)","args_html":"(keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L167"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L170"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_break_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L165"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L178"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Break\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":174,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L174"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Case","path":"Cosmo/AST/Statement/Case.html","kind":"class","full_name":"Cosmo::AST::Statement::Case","name":"Case","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":73,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L73"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,value:Cosmo::AST::Expression::Base,comparisons:Array(Cosmo::AST::Statement::When),else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"comparisons","external_name":"comparisons","restriction":"::Array(::Cosmo::AST::Statement::When)"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, value : Cosmo::AST::Expression::Base, comparisons : Array(Cosmo::AST::Statement::When), else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, value : Cosmo::AST::Expression::Base, comparisons : Array(Cosmo::AST::Statement::When), else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L79"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"comparisons","external_name":"comparisons","restriction":"::Array(::Cosmo::AST::Statement::When)"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, value, comparisons, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":82,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L82"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_case_stmt(self)"}},{"html_id":"comparisons:Array(When)-instance-method","name":"comparisons","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L76"},"def":{"name":"comparisons","return_type":"Array(When)","visibility":"Public","body":"@comparisons"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L77"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L74"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":90,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L90"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((\"Case<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)},\\n\") + \" #{TAB * indent}comparisons: [\\n\") + \" #{TAB * indent}#{@comparisons.map() do |__arg1|\n (__arg1.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":86,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L86"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":75,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L75"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/ClassDef","path":"Cosmo/AST/Statement/ClassDef.html","kind":"class","full_name":"Cosmo::AST::Statement::ClassDef","name":"ClassDef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L23"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(identifier:Cosmo::Token,body:Cosmo::AST::Statement::Block,visibility,superclass:Cosmo::AST::Expression::Base|Nil,mixins:Array(Cosmo::AST::Expression::Base))-class-method","name":"new","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"visibility","external_name":"visibility","restriction":""},{"name":"superclass","external_name":"superclass","restriction":"::Cosmo::AST::Expression::Base | ::Nil"},{"name":"mixins","external_name":"mixins","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"args_string":"(identifier : Cosmo::Token, body : Cosmo::AST::Statement::Block, visibility, superclass : Cosmo::AST::Expression::Base | Nil, mixins : Array(Cosmo::AST::Expression::Base))","args_html":"(identifier : Cosmo::Token, body : Cosmo::AST::Statement::Block, visibility, superclass : Cosmo::AST::Expression::Base | Nil, mixins : Array(Cosmo::AST::Expression::Base))","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L31"},"def":{"name":"new","args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"visibility","external_name":"visibility","restriction":""},{"name":"superclass","external_name":"superclass","restriction":"::Cosmo::AST::Expression::Base | ::Nil"},{"name":"mixins","external_name":"mixins","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(identifier, body, visibility, superclass, mixins)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L34"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_class_def_stmt(self)"}},{"html_id":"body:Block-instance-method","name":"body","doc":"getter parameters : Array(Expression::Parameter) # generics?","summary":"

                            getter parameters : Array(Expression::Parameter) # generics?

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L26"},"def":{"name":"body","return_type":"Block","visibility":"Public","body":"@body"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L24"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"mixins:Array(Expression::Base)-instance-method","name":"mixins","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L29"},"def":{"name":"mixins","return_type":"Array(Expression::Base)","visibility":"Public","body":"@mixins"}},{"html_id":"superclass:Expression::Base|Nil-instance-method","name":"superclass","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L28"},"def":{"name":"superclass","return_type":"Expression::Base | ::Nil","visibility":"Public","body":"@superclass"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":42,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L42"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"ClassDef<\\n\" + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}body: #{@body.to_s(indent + 1)}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":38,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L38"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L27"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Every","path":"Cosmo/AST/Statement/Every.html","kind":"class","full_name":"Cosmo::AST::Statement::Every","name":"Every","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L183"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,var:Cosmo::AST::Expression::VarDeclaration,enumerable:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::VarDeclaration"},{"name":"enumerable","external_name":"enumerable","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, var : Cosmo::AST::Expression::VarDeclaration, enumerable : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, var : Cosmo::AST::Expression::VarDeclaration, enumerable : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":189,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L189"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::VarDeclaration"},{"name":"enumerable","external_name":"enumerable","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, var, enumerable, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L192"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_every_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":187,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L187"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"enumerable:Expression::Base-instance-method","name":"enumerable","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":186,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L186"},"def":{"name":"enumerable","return_type":"Expression::Base","visibility":"Public","body":"@enumerable"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":184,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L184"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":200,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L200"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Every<\\n\" + \" #{TAB * indent}var: #{@var.to_s(indent + 1)},\\n\") + \" #{TAB * indent}in: #{@enumerable.to_s(indent + 1)}\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L196"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"var:Expression::VarDeclaration-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":185,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L185"},"def":{"name":"var","return_type":"Expression::VarDeclaration","visibility":"Public","body":"@var"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/FunctionDef","path":"Cosmo/AST/Statement/FunctionDef.html","kind":"class","full_name":"Cosmo::AST::Statement::FunctionDef","name":"FunctionDef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":331,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L331"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(identifier:Cosmo::Token,parameters:Array(Cosmo::AST::Expression::Parameter),body:Cosmo::AST::Statement::Block,return_typedef:Cosmo::Token,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"parameters","external_name":"parameters","restriction":"::Array(::Cosmo::AST::Expression::Parameter)"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"return_typedef","external_name":"return_typedef","restriction":"::Cosmo::Token"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(identifier : Cosmo::Token, parameters : Array(Cosmo::AST::Expression::Parameter), body : Cosmo::AST::Statement::Block, return_typedef : Cosmo::Token, visibility)","args_html":"(identifier : Cosmo::Token, parameters : Array(Cosmo::AST::Expression::Parameter), body : Cosmo::AST::Statement::Block, return_typedef : Cosmo::Token, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":338,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L338"},"def":{"name":"new","args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"parameters","external_name":"parameters","restriction":"::Array(::Cosmo::AST::Expression::Parameter)"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"return_typedef","external_name":"return_typedef","restriction":"::Cosmo::Token"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(identifier, parameters, body, return_typedef, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":341,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L341"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_fn_def_stmt(self)"}},{"html_id":"body:Block-instance-method","name":"body","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L334"},"def":{"name":"body","return_type":"Block","visibility":"Public","body":"@body"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":332,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L332"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"parameters:Array(Expression::Parameter)-instance-method","name":"parameters","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":333,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L333"},"def":{"name":"parameters","return_type":"Array(Expression::Parameter)","visibility":"Public","body":"@parameters"}},{"html_id":"return_typedef:Token-instance-method","name":"return_typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L335"},"def":{"name":"return_typedef","return_type":"Token","visibility":"Public","body":"@return_typedef"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":349,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L349"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((((\"FunctionDef<\\n\" + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}parameters: [\\n\") + \" #{TAB * indent}#{@parameters.map() do |__arg2|\n (__arg2.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}return_typedef: #{@return_typedef.value},\\n\") + \" #{TAB * indent}body: #{@body.to_s(indent + 1)}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":345,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L345"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L336"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/If","path":"Cosmo/AST/Statement/If.html","kind":"class","full_name":"Cosmo::AST::Statement::If","name":"If","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":257,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L257"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,then:Cosmo::AST::Statement::Base,else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":263,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L263"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":266,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L266"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_if_stmt(self)"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L259"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":261,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L261"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":258,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L258"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":260,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L260"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L274"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"If<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)},\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L270"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Next","path":"Cosmo/AST/Statement/Next.html","kind":"class","full_name":"Cosmo::AST::Statement::Next","name":"Next","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L145"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(keyword : Cosmo::Token)","args_html":"(keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":148,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L148"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":151,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L151"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_next_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":146,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L146"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":159,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L159"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Next\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":155,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L155"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Return","path":"Cosmo/AST/Statement/Return.html","kind":"class","full_name":"Cosmo::AST::Statement::Return","name":"Return","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L309"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(value:Cosmo::AST::Expression::Base,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(value : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","args_html":"(value : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":313,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L313"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":316,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L316"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_return_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":311,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L311"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":324,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L324"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Return<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":320,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L320"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":310,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L310"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/SingleExpression","path":"Cosmo/AST/Statement/SingleExpression.html","kind":"class","full_name":"Cosmo::AST::Statement::SingleExpression","name":"SingleExpression","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L362"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(expression:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"expression","external_name":"expression","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(expression : Cosmo::AST::Expression::Base)","args_html":"(expression : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":365,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L365"},"def":{"name":"new","args":[{"name":"expression","external_name":"expression","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(expression)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":368,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L368"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_single_expr_stmt(self)"}},{"html_id":"expression:Expression::Base-instance-method","name":"expression","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":363,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L363"},"def":{"name":"expression","return_type":"Expression::Base","visibility":"Public","body":"@expression"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":376,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L376"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"SingleExpression<\\n\" + \" #{TAB * indent}expression: #{@expression.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":372,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L372"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@expression.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Throw","path":"Cosmo/AST/Statement/Throw.html","kind":"class","full_name":"Cosmo::AST::Statement::Throw","name":"Throw","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L123"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(err:Cosmo::AST::Expression::Base,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"err","external_name":"err","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(err : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","args_html":"(err : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L127"},"def":{"name":"new","args":[{"name":"err","external_name":"err","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(err, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L130"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_throw_stmt(self)"}},{"html_id":"err:Expression::Base-instance-method","name":"err","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":124,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L124"},"def":{"name":"err","return_type":"Expression::Base","visibility":"Public","body":"@err"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":125,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L125"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L138"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Throw<\\n\" + \" #{TAB * indent}err: #{@err.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":134,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L134"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Unless","path":"Cosmo/AST/Statement/Unless.html","kind":"class","full_name":"Cosmo::AST::Statement::Unless","name":"Unless","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L283"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,then:Cosmo::AST::Statement::Base,else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":289,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L289"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":292,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L292"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_unless_stmt(self)"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":285,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L285"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":287,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L287"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":284,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L284"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":286,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L286"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":300,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L300"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Unless<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)},\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L296"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Until","path":"Cosmo/AST/Statement/Until.html","kind":"class","full_name":"Cosmo::AST::Statement::Until","name":"Until","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":233,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L233"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":238,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L238"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":241,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L241"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_until_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":236,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L236"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L235"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":234,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L234"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":249,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L249"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Until<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":245,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L245"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Use","path":"Cosmo/AST/Statement/Use.html","kind":"class","full_name":"Cosmo::AST::Statement::Use","name":"Use","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L101"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(module_path:Cosmo::Token,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"module_path","external_name":"module_path","restriction":"::Cosmo::Token"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(module_path : Cosmo::Token, keyword : Cosmo::Token)","args_html":"(module_path : Cosmo::Token, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":105,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L105"},"def":{"name":"new","args":[{"name":"module_path","external_name":"module_path","restriction":"::Cosmo::Token"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(module_path, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":108,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L108"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_use_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L103"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"module_path:Token-instance-method","name":"module_path","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":102,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L102"},"def":{"name":"module_path","return_type":"Token","visibility":"Public","body":"@module_path"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":116,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L116"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Use<\\n\" + \" #{TAB * indent}module_path: #{@module_path.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":112,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L112"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","path":"Cosmo/AST/Statement/Visitor.html","kind":"module","full_name":"Cosmo::AST::Statement::Visitor(R)","name":"Visitor","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L2"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/Interpreter","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter"},{"html_id":"Cosmo/Cosmo/Resolver","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"instance_methods":[{"html_id":"visit_block_stmt(stmt:Block):R-instance-method","name":"visit_block_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Block"}],"args_string":"(stmt : Block) : R","args_html":"(stmt : Block) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L16"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Block"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_break_stmt(stmt:Break):R-instance-method","name":"visit_break_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Break"}],"args_string":"(stmt : Break) : R","args_html":"(stmt : Break) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L10"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Break"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_case_stmt(stmt:Case):R-instance-method","name":"visit_case_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Case"}],"args_string":"(stmt : Case) : R","args_html":"(stmt : Case) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L3"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Case"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_every_stmt(stmt:Every):R-instance-method","name":"visit_every_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Every"}],"args_string":"(stmt : Every) : R","args_html":"(stmt : Every) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L4"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Every"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_fn_def_stmt(stmt:FunctionDef):R-instance-method","name":"visit_fn_def_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"FunctionDef"}],"args_string":"(stmt : FunctionDef) : R","args_html":"(stmt : FunctionDef) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L14"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"FunctionDef"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_if_stmt(stmt:If):R-instance-method","name":"visit_if_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"If"}],"args_string":"(stmt : If) : R","args_html":"(stmt : If) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L7"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"If"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_next_stmt(stmt:Next):R-instance-method","name":"visit_next_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Next"}],"args_string":"(stmt : Next) : R","args_html":"(stmt : Next) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L11"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Next"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_return_stmt(stmt:Return):R-instance-method","name":"visit_return_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Return"}],"args_string":"(stmt : Return) : R","args_html":"(stmt : Return) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L9"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Return"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_single_expr_stmt(stmt:SingleExpression):R-instance-method","name":"visit_single_expr_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"SingleExpression"}],"args_string":"(stmt : SingleExpression) : R","args_html":"(stmt : SingleExpression) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L15"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"SingleExpression"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_throw_stmt(stmt:Throw):R-instance-method","name":"visit_throw_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Throw"}],"args_string":"(stmt : Throw) : R","args_html":"(stmt : Throw) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L12"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Throw"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_unless_stmt(stmt:Unless):R-instance-method","name":"visit_unless_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Unless"}],"args_string":"(stmt : Unless) : R","args_html":"(stmt : Unless) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L8"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Unless"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_until_stmt(stmt:Until):R-instance-method","name":"visit_until_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Until"}],"args_string":"(stmt : Until) : R","args_html":"(stmt : Until) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L6"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Until"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_use_stmt(stmt:Use):R-instance-method","name":"visit_use_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Use"}],"args_string":"(stmt : Use) : R","args_html":"(stmt : Use) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L13"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Use"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_while_stmt(stmt:While):R-instance-method","name":"visit_while_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"While"}],"args_string":"(stmt : While) : R","args_html":"(stmt : While) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L5"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"While"}],"return_type":"R","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/When","path":"Cosmo/AST/Statement/When.html","kind":"struct","full_name":"Cosmo::AST::Statement::When","name":"When","abstract":false,"superclass":{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L51"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,conditions:Array(Cosmo::AST::Expression::Base),block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"conditions","external_name":"conditions","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, conditions : Array(Cosmo::AST::Expression::Base), block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, conditions : Array(Cosmo::AST::Expression::Base), block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L56"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"conditions","external_name":"conditions","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, conditions, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L54"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"conditions:Array(Expression::Base)-instance-method","name":"conditions","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L53"},"def":{"name":"conditions","return_type":"Array(Expression::Base)","visibility":"Public","body":"@conditions"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L52"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L63"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((((\"When<\\n\" + \" #{TAB * indent}conditions: [\\n\") + \" #{TAB * indent}#{@conditions.map() do |__arg0|\n (__arg0.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}block: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L59"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/While","path":"Cosmo/AST/Statement/While.html","kind":"class","full_name":"Cosmo::AST::Statement::While","name":"While","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":209,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L209"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":214,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L214"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L217"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_while_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":212,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L212"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":211,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L211"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":210,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L210"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":225,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L225"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"While<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":221,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast/statement_nodes.cr#L221"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]}]},{"html_id":"Cosmo/Cosmo/AST/Visibility","path":"Cosmo/AST/Visibility.html","kind":"enum","full_name":"Cosmo::AST::Visibility","name":"Visibility","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Public","name":"Public","value":"0"},{"id":"Protected","name":"Protected","value":"1"},{"id":"Private","name":"Private","value":"2"},{"id":"Static","name":"Static","value":"3"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"instance_methods":[{"html_id":"private?-instance-method","name":"private?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L7"},"def":{"name":"private?","visibility":"Public","body":"self == Private"}},{"html_id":"protected?-instance-method","name":"protected?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L6"},"def":{"name":"protected?","visibility":"Public","body":"self == Protected"}},{"html_id":"public?-instance-method","name":"public?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L5"},"def":{"name":"public?","visibility":"Public","body":"self == Public"}},{"html_id":"static?-instance-method","name":"static?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser/ast.cr#L8"},"def":{"name":"static?","visibility":"Public","body":"self == Static"}}]}]},{"html_id":"Cosmo/Cosmo/Callable","path":"Cosmo/Callable.html","kind":"class","full_name":"Cosmo::Callable","name":"Callable","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/function.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/Function","kind":"class","full_name":"Cosmo::Function","name":"Function"},{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L3"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":""}},{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":true,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/function.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L2"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":""}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L4"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":""}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L5"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/Class","path":"Cosmo/Class.html","kind":"class","full_name":"Cosmo::Class","name":"Class","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/class.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/class.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Cosmo::Interpreter,closure:Cosmo::Scope,definition:Cosmo::AST::Statement::ClassDef)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::ClassDef"}],"args_string":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::ClassDef)","args_html":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::ClassDef)","location":{"filename":"src/cosmo/runtime/class.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/class.cr#L6"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::ClassDef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter, closure, definition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"definition:AST::Statement::ClassDef-instance-method","name":"definition","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/class.cr#L4"},"def":{"name":"definition","return_type":"AST::Statement::ClassDef","visibility":"Public","body":"@definition"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/class.cr#L10"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}}]},{"html_id":"Cosmo/Cosmo/Function","path":"Cosmo/Function.html","kind":"class","full_name":"Cosmo::Function","name":"Function","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},"ancestors":[{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/function.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Cosmo::Interpreter,closure:Cosmo::Scope,definition:Cosmo::AST::Statement::FunctionDef)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::FunctionDef"}],"args_string":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::FunctionDef)","args_html":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::FunctionDef)","location":{"filename":"src/cosmo/runtime/function.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L14"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::FunctionDef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter, closure, definition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":42,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L42"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"@non_nullable_params.size.to_u..@definition.parameters.size.to_u"}},{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/function.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L23"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", @definition.return_typedef.value.to_s)\nscope = Scope.new(@closure)\n@definition.parameters.each_with_index do |param, i|\n value = (args[i] || (param.default_value.nil? ? nil : @interpreter.evaluate(param.default_value.not_nil!))).as(ValueType)\n scope.declare(param.typedef, param.identifier, value, const: param.const?)\nend\nresult = nil\nbegin\n result = @interpreter.execute_block(@definition.body, scope, is_fn: true)\nrescue returner : HookedExceptions::Return\n result = returner.value\nend\nresult\n"}},{"html_id":"definition:AST::Statement::FunctionDef-instance-method","name":"definition","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L12"},"def":{"name":"definition","return_type":"AST::Statement::FunctionDef","visibility":"Public","body":"@definition"}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L46"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":"false"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":50,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/function.cr#L50"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions","path":"Cosmo/HookedExceptions.html","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions","abstract":false,"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/HookedExceptions/Break","path":"Cosmo/HookedExceptions/Break.html","kind":"class","full_name":"Cosmo::HookedExceptions::Break","name":"Break","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L16"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token)","args_html":"(token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L17"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions/Next","path":"Cosmo/HookedExceptions/Next.html","kind":"class","full_name":"Cosmo::HookedExceptions::Next","name":"Next","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L22"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token)","args_html":"(token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L23"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions/Return","path":"Cosmo/HookedExceptions/Return.html","kind":"class","full_name":"Cosmo::HookedExceptions::Return","name":"Return","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(value:Cosmo::ValueType,token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(value : Cosmo::ValueType, token : Token)","args_html":"(value : Cosmo::ValueType, token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L11"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"value:ValueType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/hooked_exceptions.cr#L9"},"def":{"name":"value","return_type":"ValueType","visibility":"Public","body":"@value"}}]}]},{"html_id":"Cosmo/Cosmo/Interpreter","path":"Cosmo/Interpreter.html","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/interpreter.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L13"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(output_ast:Bool,run_benchmarks:Bool,debug_mode:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"output_ast","external_name":"output_ast","restriction":"Bool"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"},{"name":"debug_mode","external_name":"debug_mode","restriction":"Bool"}],"args_string":"(output_ast : Bool, run_benchmarks : Bool, debug_mode : Bool)","args_html":"(output_ast : Bool, run_benchmarks : Bool, debug_mode : Bool)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L24"},"def":{"name":"new","args":[{"name":"output_ast","external_name":"output_ast","restriction":"Bool"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"},{"name":"debug_mode","external_name":"debug_mode","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(output_ast, run_benchmarks, debug_mode)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"add_object_value(token:Token,object:V,key:ValueType,value:ValueType):VforallV-instance-method","name":"add_object_value","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"},{"name":"object","external_name":"object","restriction":"V"},{"name":"key","external_name":"key","restriction":"ValueType"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(token : Token, object : V, key : ValueType, value : ValueType) : V forall V","args_html":"(token : Token, object : V, key : ValueType, value : ValueType) : V forall V","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":444,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L444"},"def":{"name":"add_object_value","args":[{"name":"token","external_name":"token","restriction":"Token"},{"name":"object","external_name":"object","restriction":"V"},{"name":"key","external_name":"key","restriction":"ValueType"},{"name":"value","external_name":"value","restriction":"ValueType"}],"return_type":"V","visibility":"Public","body":"if object.is_a?(Array)\n if key.is_a?(Int)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), token)\n end\n object.insert(key, value)\nelse\n if object.is_a?(Hash)\n object[key] = value\n else\n Logger.report_error(\"Attempt to assign to index of\", TypeChecker.get_mapped(object.class), token)\n end\nend\nobject\n"}},{"html_id":"declare_intrinsic(type:String,ident:String,value:ValueType)-instance-method","name":"declare_intrinsic","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"ident","external_name":"ident","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(type : String, ident : String, value : ValueType)","args_html":"(type : String, ident : String, value : ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":45,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L45"},"def":{"name":"declare_intrinsic","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"ident","external_name":"ident","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"}],"visibility":"Public","body":"location = Location.new(\"intrinsic\", 0, 0)\nident_token = Token.new(ident, Syntax::Identifier, ident, location)\ntypedef_token = Token.new(type, Syntax::TypeDef, type, location)\n@globals.declare(typedef_token, ident_token, value, const: true)\n"}},{"html_id":"evaluate(expr:Expression::Base):ValueType-instance-method","name":"evaluate","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"}],"args_string":"(expr : Expression::Base) : ValueType","args_html":"(expr : Expression::Base) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":122,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L122"},"def":{"name":"evaluate","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"}],"return_type":"ValueType","visibility":"Public","body":"expr.accept(self)"}},{"html_id":"execute(stmt:Statement::Base):ValueType-instance-method","name":"execute","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Base"}],"args_string":"(stmt : Statement::Base) : ValueType","args_html":"(stmt : Statement::Base) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":126,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L126"},"def":{"name":"execute","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Base"}],"return_type":"ValueType","visibility":"Public","body":"stmt.accept(self)"}},{"html_id":"execute_block(block:Statement::Base,block_scope:Scope,is_fn:Bool=false):ValueType-instance-method","name":"execute_block","abstract":false,"args":[{"name":"block","external_name":"block","restriction":"Statement::Base"},{"name":"block_scope","external_name":"block_scope","restriction":"Scope"},{"name":"is_fn","default_value":"false","external_name":"is_fn","restriction":"Bool"}],"args_string":"(block : Statement::Base, block_scope : Scope, is_fn : Bool = false) : ValueType","args_html":"(block : Statement::Base, block_scope : Scope, is_fn : Bool = false) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L130"},"def":{"name":"execute_block","args":[{"name":"block","external_name":"block","restriction":"Statement::Base"},{"name":"block_scope","external_name":"block_scope","restriction":"Scope"},{"name":"is_fn","default_value":"false","external_name":"is_fn","restriction":"Bool"}],"return_type":"ValueType","visibility":"Public","body":"prev_scope = @scope\nbegin\n @scope = block_scope\n if block.is_a?(Statement::Block)\n if block.nodes.empty?\n else\n return_node = block.nodes.find do |node|\n node.is_a?(Statement::Return)\n end || block.nodes.last\n body_nodes = block.nodes[0..-2]\n body_nodes.each do |expr|\n execute(expr.as(Statement::Base))\n end\n if return_node.nil?\n else\n return_value = execute(return_node.as(Statement::Base))\n end\n end\n if is_fn\n return_type = @meta[\"block_return_type\"]? || \"void\"\n token = return_node.nil? ? Token.new(\"none\", Syntax::None, nil, Location.new(\"\", 0, 0)) : return_node.token\n TypeChecker.assert(return_type, return_value, token)\n end\n else\n return_value = execute(block)\n end\n return_value\nrescue ex : Exception\n raise(ex)\nensure\n @scope = prev_scope\nend\n"}},{"html_id":"globals:Cosmo::Scope-instance-method","name":"globals","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L17"},"def":{"name":"globals","visibility":"Public","body":"@globals"}},{"html_id":"interpret(source:String,file_path:String):ValueType-instance-method","name":"interpret","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(source : String, file_path : String) : ValueType","args_html":"(source : String, file_path : String) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":57,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L57"},"def":{"name":"interpret","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@file_path = file_path\nparser = Parser.new(source, @file_path, @run_benchmarks)\nstatements = parser.parse\nstatement_list_str = \"\"\nstatements.each do |stmt|\n statement_list_str = statement_list_str + (stmt.to_s + \"\\n\")\nend\nif @output_ast\n puts(statement_list_str)\nend\nresolver = Resolver.new(self)\nresolver.resolve(statements)\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Resolver @#{@file_path} took #{get_elapsed(resolver.start_time, end_time)}.\")\nend\nstart_time = Time.monotonic\nresult = nil\nstatements.each do |stmt|\n result = execute(stmt)\nend\nlookup_token = Token.new(\"main\", Syntax::Identifier, \"main\", Location.new(\"\", 0, 0))\nmain_fn = @globals.lookup?(lookup_token)\nis_public = @globals.public?(lookup_token)\nfound_main = ((!main_fn.nil?) && main_fn.is_a?(Function)) && is_public\nif found_main\n main_fn = main_fn.as(Function)\n return_typedef = main_fn.definition.return_typedef\n if TypeChecker.is?(return_typedef.lexeme, 1, return_typedef)\n else\n Logger.report_error(\"Invalid main() function\", \"A main() function may only return 'int'\", return_typedef)\n end\n @meta[\"block_return_type\"] = \"int\"\n main_result = main_fn.call([ARGV.map() do |__arg0|\n __arg0.as(ValueType)\n end])\n TypeChecker.assert(\"int\", main_result, return_typedef)\nend\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Interpreter @#{file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\nif (found_main && (@file_path != \"test\")) && (@file_path != \"repl\")\n code = main_result.not_nil!.as(Int64)\n if code == 0\n Process.exit(code)\n else\n raise(\"Process exited with code #{code}\")\n end\nend\nresult\n"}},{"html_id":"resolve(expr:Expression::Base,depth:UInt32):Nil-instance-method","name":"resolve","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"},{"name":"depth","external_name":"depth","restriction":"UInt32"}],"args_string":"(expr : Expression::Base, depth : UInt32) : Nil","args_html":"(expr : Expression::Base, depth : UInt32) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":112,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L112"},"def":{"name":"resolve","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"},{"name":"depth","external_name":"depth","restriction":"UInt32"}],"return_type":"Nil","visibility":"Public","body":"@locals[expr] = depth"}},{"html_id":"scope:Scope-instance-method","name":"scope","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L18"},"def":{"name":"scope","return_type":"Scope","visibility":"Public","body":"@scope"}},{"html_id":"set_meta(key:String,value:String|Nil):Nil-instance-method","name":"set_meta","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"args_string":"(key : String, value : String | Nil) : Nil","args_html":"(key : String, value : String | Nil) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L52"},"def":{"name":"set_meta","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"String | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"if value.nil?\n return\nend\n@meta[key] = value\n"}},{"html_id":"visit_access_expr(expr:Expression::Access):ValueType-instance-method","name":"visit_access_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"args_string":"(expr : Expression::Access) : ValueType","args_html":"(expr : Expression::Access) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":367,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L367"},"def":{"name":"visit_access_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"return_type":"ValueType","visibility":"Public","body":"object = evaluate(expr.object)\nkey = expr.key.value.to_s\nif object.is_a?(Hash)\n object[key]?\nelse\n Logger.report_error(\"Attempt to index\", TypeChecker.get_mapped(object.class), expr.token)\nend\n"}},{"html_id":"visit_binary_op_expr(expr:Expression::BinaryOp):ValueType-instance-method","name":"visit_binary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":551,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L551"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = evaluate(expr.left)\nright = evaluate(expr.right)\ncase expr.operator.type\nwhen Syntax::Plus\n op = Operator::Plus.new(self)\n op.apply(expr)\nwhen Syntax::Minus\n op = Operator::Minus.new(self)\n op.apply(expr)\nwhen Syntax::Star\n op = Operator::Mul.new(self)\n op.apply(expr)\nwhen Syntax::Slash\n op = Operator::Div.new(self)\n op.apply(expr)\nwhen Syntax::Carat\n op = Operator::Pow.new(self)\n op.apply(expr)\nwhen Syntax::Percent\n op = Operator::Mod.new(self)\n op.apply(expr)\nwhen Syntax::ColonAmpersand\n left && right\nwhen Syntax::ColonPipe\n left || right\nwhen Syntax::EqualEqual\n left == right\nwhen Syntax::BangEqual\n left != right\nwhen Syntax::Less\n op = Operator::LT.new(self)\n op.apply(expr)\nwhen Syntax::LessEqual\n op = Operator::LTE.new(self)\n op.apply(expr)\nwhen Syntax::Greater\n op = Operator::GT.new(self)\n op.apply(expr)\nwhen Syntax::GreaterEqual\n op = Operator::GTE.new(self)\n op.apply(expr)\nwhen Syntax::Tilde\n op = Operator::Bxor.new(self)\n op.apply(expr)\nwhen Syntax::Pipe\n op = Operator::Bor.new(self)\n op.apply(expr)\nwhen Syntax::Ampersand\n op = Operator::Band.new(self)\n op.apply(expr)\nwhen Syntax::RDoubleArrow\n op = Operator::Bshr.new(self)\n op.apply(expr)\nwhen Syntax::LDoubleArrow\n op = Operator::Bshl.new(self)\n op.apply(expr)\nend\n"}},{"html_id":"visit_block_stmt(stmt:Statement::Block):ValueType-instance-method","name":"visit_block_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"args_string":"(stmt : Statement::Block) : ValueType","args_html":"(stmt : Statement::Block) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":648,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L648"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"return_type":"ValueType","visibility":"Public","body":"execute_block(stmt, Scope.new(@scope))"}},{"html_id":"visit_break_stmt(stmt:Statement::Break):Nil-instance-method","name":"visit_break_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"args_string":"(stmt : Statement::Break) : Nil","args_html":"(stmt : Statement::Break) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":292,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L292"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"return_type":"Nil","visibility":"Public","body":"raise(HookedExceptions::Break.new(stmt.keyword))"}},{"html_id":"visit_case_stmt(stmt:Statement::Case):ValueType-instance-method","name":"visit_case_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"args_string":"(stmt : Statement::Case) : ValueType","args_html":"(stmt : Statement::Case) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L259"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(stmt.value)\ngo_to_else = false\nstmt.comparisons.each do |when_stmt|\n condition = true\n when_stmt.conditions.each do |condition_expr|\n if condition_expr.is_a?(Expression::TypeRef)\n condition = condition & (TypeChecker.is?(condition_expr.name.lexeme, value, when_stmt.token))\n else\n condition = condition & ((evaluate(condition_expr)) == value)\n end\n end\n if condition\n return execute(when_stmt.block)\n end\n go_to_else = true\nend\nif (!stmt.else.nil?) && go_to_else\n return execute(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_class_def_stmt(stmt:Statement::ClassDef):ValueType-instance-method","name":"visit_class_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"args_string":"(stmt : Statement::ClassDef) : ValueType","args_html":"(stmt : Statement::ClassDef) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":343,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L343"},"def":{"name":"visit_class_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"return_type":"ValueType","visibility":"Public","body":"_class = Class.new(self, @scope, stmt)\ntypedef = Token.new(\"class\", Syntax::TypeDef, \"class\", Location.new(@file_path, 0, 0))\n@scope.declare(typedef, stmt.identifier, _class, const: true, visibility: stmt.visibility)\n"}},{"html_id":"visit_compound_assignment_expr(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"visit_compound_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":485,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L485"},"def":{"name":"visit_compound_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"case expr.operator.type\nwhen Syntax::PlusEqual\n op = Operator::PlusAssign.new(self)\n op.apply(expr)\nwhen Syntax::MinusEqual\n op = Operator::MinusAssign.new(self)\n op.apply(expr)\nwhen Syntax::StarEqual\n op = Operator::MulAssign.new(self)\n op.apply(expr)\nwhen Syntax::SlashEqual\n op = Operator::DivAssign.new(self)\n op.apply(expr)\nwhen Syntax::PercentEqual\n op = Operator::ModAssign.new(self)\n op.apply(expr)\nwhen Syntax::CaratEqual\n op = Operator::PowAssign.new(self)\n op.apply(expr)\nend"}},{"html_id":"visit_every_stmt(stmt:Statement::Every):Nil-instance-method","name":"visit_every_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"args_string":"(stmt : Statement::Every) : Nil","args_html":"(stmt : Statement::Every) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":157,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L157"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"return_type":"Nil","visibility":"Public","body":"enclosing = @scope\n@scope = Scope.new(@scope)\nenumerable = evaluate(stmt.enumerable)\n@scope.declare(stmt.var.typedef, stmt.var.token, nil)\nif enumerable.is_a?(Array) || enumerable.is_a?(Range)\n enumerable.each do |value|\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\nelse\n if enumerable.is_a?(String)\n enumerable.chars.each do |value|\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\n else\n if enumerable.is_a?(Callable)\n if enumerable.is_a?(IntrinsicFunction)\n Logger.report_error(\"Invalid iterator\", \"An iterator cannot be an intrinsic function\", stmt.enumerable.token)\n end\n if enumerable.is_a?(Function)\n else\n Logger.report_error(\"Invalid iterator\", \"An iterator must return a generator function\", stmt.enumerable.token)\n end\n while !( value = enumerable.call([] of ValueType)).nil?\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\n else\n Logger.report_error(\"Invalid iterator type\", TypeChecker.get_mapped(enumerable.class), stmt.token)\n end\n end\nend\n@scope = enclosing\n"}},{"html_id":"visit_fn_call_expr(expr:Expression::FunctionCall):ValueType-instance-method","name":"visit_fn_call_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"args_string":"(expr : Expression::FunctionCall) : ValueType","args_html":"(expr : Expression::FunctionCall) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":407,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L407"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"return_type":"ValueType","visibility":"Public","body":"fn = evaluate(expr.callee)\nif fn.is_a?(Function) || fn.is_a?(IntrinsicFunction)\nelse\n Logger.report_error(\"Attempt to call\", TypeChecker.get_mapped(fn.class), expr.token)\nend\nif fn.arity.includes?(expr.arguments.size)\nelse\n arg_size = fn.arity.begin == fn.arity.end ? fn.arity.begin : fn.arity.to_s\n Logger.report_error(\"Expected #{arg_size} arguments, got\", expr.arguments.size.to_s, expr.token)\nend\narg_values = expr.arguments.map do |arg|\n evaluate(arg)\nend\nenclosing_return_type = @meta[\"block_return_type\"]?\nresult = fn.call(arg_values)\nset_meta(\"block_return_type\", enclosing_return_type)\nresult\n"}},{"html_id":"visit_fn_def_stmt(stmt:Statement::FunctionDef):ValueType-instance-method","name":"visit_fn_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"args_string":"(stmt : Statement::FunctionDef) : ValueType","args_html":"(stmt : Statement::FunctionDef) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":355,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L355"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"return_type":"ValueType","visibility":"Public","body":"fn = Function.new(self, @scope, stmt)\ntypedef = Token.new(\"func\", Syntax::TypeDef, \"func\", Location.new(@file_path, 0, 0))\n@scope.declare(typedef, stmt.identifier, fn, const: true, visibility: stmt.visibility)\n"}},{"html_id":"visit_if_stmt(stmt:Statement::If):ValueType-instance-method","name":"visit_if_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"args_string":"(stmt : Statement::If) : ValueType","args_html":"(stmt : Statement::If) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L334"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(stmt.condition)\nif condition\n execute(stmt.then)\nelse\n if stmt.else.nil?\n else\n execute(stmt.else.not_nil!)\n end\nend\n"}},{"html_id":"visit_index_expr(expr:Expression::Index):ValueType-instance-method","name":"visit_index_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"args_string":"(expr : Expression::Index) : ValueType","args_html":"(expr : Expression::Index) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":377,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L377"},"def":{"name":"visit_index_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"return_type":"ValueType","visibility":"Public","body":"object = evaluate(expr.object)\nkey = evaluate(expr.key)\nif object.is_a?(String) || object.is_a?(Array)\n if key.is_a?(Int) || key.is_a?(Range)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), expr.token)\n end\n object[key]?\nelse\n if object.is_a?(Hash)\n object[key]?\n else\n Logger.report_error(\"Attempt to index\", TypeChecker.get_mapped(object.class), expr.token)\n end\nend\n"}},{"html_id":"visit_is_expr(expr:Expression::Is):Bool-instance-method","name":"visit_is_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"args_string":"(expr : Expression::Is) : Bool","args_html":"(expr : Expression::Is) : Bool","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":393,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L393"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"return_type":"Bool","visibility":"Public","body":"value = evaluate(expr.value)\nTypeChecker.is?(expr.type.name.lexeme, value, expr.token)\n"}},{"html_id":"visit_literal_expr(expr:Expression::Literal):ValueType-instance-method","name":"visit_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"args_string":"(expr : Expression::Literal) : ValueType","args_html":"(expr : Expression::Literal) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":640,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L640"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"return_type":"ValueType","visibility":"Public","body":"expr.value"}},{"html_id":"visit_next_stmt(stmt:Statement::Next):Nil-instance-method","name":"visit_next_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"args_string":"(stmt : Statement::Next) : Nil","args_html":"(stmt : Statement::Next) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":288,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L288"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"return_type":"Nil","visibility":"Public","body":"raise(HookedExceptions::Next.new(stmt.keyword))"}},{"html_id":"visit_property_assignment_expr(expr:Expression::PropertyAssignment):ValueType-instance-method","name":"visit_property_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"args_string":"(expr : Expression::PropertyAssignment) : ValueType","args_html":"(expr : Expression::PropertyAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":458,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L458"},"def":{"name":"visit_property_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"return_type":"ValueType","visibility":"Public","body":"if expr.object.is_a?(Expression::Index)\n index = expr.object.as(Expression::Index)\n object_node = index.object\n key = evaluate(index.key)\n object = evaluate(object_node)\nelse\n access = expr.object.as(Expression::Access)\n object_node = access.object\n key = access.key.lexeme\n object = evaluate(object_node)\nend\nvalue = expr.value.is_a?(Expression::Base) ? evaluate(expr.value.as(Expression::Base)) : expr.value.as(ValueType)\nif object_node.is_a?(Expression::Index) || object_node.is_a?(Expression::Access)\n object = add_object_value(expr.token, object, key, value)\n prop_assignment = Expression::PropertyAssignment.new(object_node, object)\n return visit_property_assignment_expr(prop_assignment)\nend\nobject = add_object_value(expr.token, object, key, value)\n@scope.assign(expr.token, object)\n"}},{"html_id":"visit_range_literal_expr(expr:Expression::RangeLiteral):Range(Int128|Int64|Int32|Int16|Int8,Int128|Int64|Int32|Int16|Int8)-instance-method","name":"visit_range_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"args_string":"(expr : Expression::RangeLiteral) : Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","args_html":"(expr : Expression::RangeLiteral) : Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":612,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L612"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"return_type":"Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","visibility":"Public","body":"from = evaluate(expr.from)\nto = evaluate(expr.to)\nif from.is_a?(Int)\nelse\n Logger.report_error(\"Invalid left side of range literal\", \"Ranges can only be of integers, got '#{TypeChecker.get_mapped(from.class)}'\", expr.token)\nend\nif to.is_a?(Int)\nelse\n Logger.report_error(\"Invalid right side of range literal\", \"Ranges can only be of integers, got '#{TypeChecker.get_mapped(to.class)}'\", expr.token)\nend\nfrom..to\n"}},{"html_id":"visit_return_stmt(stmt:Statement::Return):Nil-instance-method","name":"visit_return_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"args_string":"(stmt : Statement::Return) : Nil","args_html":"(stmt : Statement::Return) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L296"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"return_type":"Nil","visibility":"Public","body":"value = evaluate(stmt.value)\nraise(HookedExceptions::Return.new(value, stmt.keyword))\n"}},{"html_id":"visit_single_expr_stmt(stmt:Statement::SingleExpression):ValueType-instance-method","name":"visit_single_expr_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"args_string":"(stmt : Statement::SingleExpression) : ValueType","args_html":"(stmt : Statement::SingleExpression) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":644,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L644"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"return_type":"ValueType","visibility":"Public","body":"evaluate(stmt.expression)"}},{"html_id":"visit_table_literal_expr(expr:Expression::TableLiteral):Hash(ValueType,ValueType)-instance-method","name":"visit_table_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"args_string":"(expr : Expression::TableLiteral) : Hash(ValueType, ValueType)","args_html":"(expr : Expression::TableLiteral) : Hash(ValueType, ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":626,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L626"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"return_type":"Hash(ValueType, ValueType)","visibility":"Public","body":"hash = {} of ValueType => ValueType\nexpr.hashmap.each do |k, v|\n key = evaluate(k)\n value = evaluate(v)\n hash[key] = value\nend\nhash\n"}},{"html_id":"visit_ternary_op_expr(expr:Expression::TernaryOp):ValueType-instance-method","name":"visit_ternary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"args_string":"(expr : Expression::TernaryOp) : ValueType","args_html":"(expr : Expression::TernaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":508,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L508"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(expr.condition)\nif condition\n return evaluate(expr.then)\nend\nevaluate(expr.else)\n"}},{"html_id":"visit_throw_stmt(stmt:Statement::Throw):Nil-instance-method","name":"visit_throw_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"args_string":"(stmt : Statement::Throw) : Nil","args_html":"(stmt : Statement::Throw) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":280,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L280"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"return_type":"Nil","visibility":"Public","body":"err = evaluate(stmt.err)\nif TypeChecker.is?(\"string\", err, stmt.token)\nelse\n Logger.report_error(\"Throw statement can only be invoked with a string currently, got\", TypeChecker.get_mapped(err.class), stmt.token)\nend\nraise(err.to_s)\n"}},{"html_id":"visit_type_alias_expr(expr:Expression::TypeAlias):Nil-instance-method","name":"visit_type_alias_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"args_string":"(expr : Expression::TypeAlias) : Nil","args_html":"(expr : Expression::TypeAlias) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":402,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L402"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"return_type":"Nil","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.declare(expr.type_token, expr.token, value, expr.constant?, expr.visibility)\n"}},{"html_id":"visit_type_ref_expr(expr:Expression::TypeRef):Type-instance-method","name":"visit_type_ref_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"args_string":"(expr : Expression::TypeRef) : Type","args_html":"(expr : Expression::TypeRef) : Type","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":398,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L398"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"return_type":"Type","visibility":"Public","body":"TypeChecker.get_registered_type(expr.name.value.to_s, expr.name)"}},{"html_id":"visit_unary_op_expr(expr:Expression::UnaryOp):ValueType-instance-method","name":"visit_unary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : ValueType","args_html":"(expr : Expression::UnaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":515,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L515"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"ValueType","visibility":"Public","body":"operand = evaluate(expr.operand)\ncase expr.operator.type\nwhen Syntax::Plus\n if operand.is_a?(Float) || operand.is_a?(Int)\n operand.abs\n else\n Logger.report_error(\"Invalid '+' operand type\", operand.class.to_s, expr.operator)\n end\nwhen Syntax::Minus\n if operand.is_a?(Float) || operand.is_a?(Int)\n -operand\n else\n Logger.report_error(\"Invalid '-' operand type\", operand.class.to_s, expr.operator)\n end\nwhen Syntax::PlusPlus\n op = Operator::PlusAssign.new(self)\n op.apply(expr, \"++\")\nwhen Syntax::MinusMinus\n op = Operator::MinusAssign.new(self)\n op.apply(expr, \"--\")\nwhen Syntax::Bang\n !operand\nwhen Syntax::Tilde\n op = Operator::Bnot.new(self)\n op.apply(expr)\nwhen Syntax::Star\n raise(\"'*' unary operator has not yet implemented.\")\nwhen Syntax::Hashtag\n if operand.is_a?(Array) || operand.is_a?(Hash)\n else\n Logger.report_error(\"Invalid '#' operand type\", TypeChecker.get_mapped(operand.class), expr.operator)\n end\n operand.size\nend\n"}},{"html_id":"visit_unless_stmt(stmt:Statement::Unless):ValueType-instance-method","name":"visit_unless_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"args_string":"(stmt : Statement::Unless) : ValueType","args_html":"(stmt : Statement::Unless) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":325,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L325"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(stmt.condition)\nif condition\n if stmt.else.nil?\n else\n execute(stmt.else.not_nil!)\n end\nelse\n execute(stmt.then)\nend\n"}},{"html_id":"visit_until_stmt(stmt:Statement::Until):Nil-instance-method","name":"visit_until_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"args_string":"(stmt : Statement::Until) : Nil","args_html":"(stmt : Statement::Until) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":301,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L301"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"return_type":"Nil","visibility":"Public","body":"while !(evaluate(stmt.condition))\n begin\n execute(stmt.block)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\nend"}},{"html_id":"visit_use_stmt(stmt:Statement::Use):Nil-instance-method","name":"visit_use_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"args_string":"(stmt : Statement::Use) : Nil","args_html":"(stmt : Statement::Use) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":225,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L225"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"return_type":"Nil","visibility":"Public","body":"relative_module_path = stmt.module_path.lexeme\nif relative_module_path.includes?(\"/\")\n if @file_path == \"repl\"\n Logger.report_error(\"Cannot import\", \"Non-package modules are not supported in the REPL\", stmt.module_path)\n end\n full_module_path = File.join(File.dirname(@file_path), relative_module_path)\n ext_file_path = File.exists?(full_module_path + \".cos\") ? full_module_path + \".cos\" : full_module_path + \".⭐\"\n if full_module_path.includes?(\"././\")\n Logger.report_error(\"Recursive import detected\", ext_file_path.gsub(\"./\", \"\"), stmt.module_path)\n end\n module_path = ext_file_path.gsub(\"./\", \"\")\n if File.exists?(ext_file_path)\n else\n Logger.report_error(\"Invalid import\", \"No such file '#{module_path}.cos/⭐' exists\", stmt.module_path)\n end\n import_file(ext_file_path)\nelse\n if @importable_intrinsics.has_key?(relative_module_path)\n @importable_intrinsics[relative_module_path].inject\n else\n file_path = File.join(File.dirname(\"/home/runic/Dev/crystal/cosmo/src/cosmo/runtime/interpreter.cr\"), \"../../../libraries\", relative_module_path)\n full_path = File.exists?(file_path + \".cos\") ? file_path + \".cos\" : file_path + \".⭐\"\n if File.exists?(full_path)\n import_file(full_path)\n else\n Logger.report_error(\"Invalid import\", \"No package management system implemented yet. If you are trying to import a file path, prepend './' to the path.\", stmt.module_path)\n end\n end\nend\n"}},{"html_id":"visit_var_assignment_expr(expr:Expression::VarAssignment):ValueType-instance-method","name":"visit_var_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"args_string":"(expr : Expression::VarAssignment) : ValueType","args_html":"(expr : Expression::VarAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":439,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L439"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.assign(expr.var.token, value)\n"}},{"html_id":"visit_var_declaration_expr(expr:Expression::VarDeclaration):ValueType-instance-method","name":"visit_var_declaration_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"args_string":"(expr : Expression::VarDeclaration) : ValueType","args_html":"(expr : Expression::VarDeclaration) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":428,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L428"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.declare(expr.typedef, expr.var.token, value, const: expr.constant?, visibility: expr.visibility)\n"}},{"html_id":"visit_var_expr(expr:Expression::Var):ValueType-instance-method","name":"visit_var_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"args_string":"(expr : Expression::Var) : ValueType","args_html":"(expr : Expression::Var) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":424,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L424"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"return_type":"ValueType","visibility":"Public","body":"@scope.lookup(expr.token)"}},{"html_id":"visit_vector_literal_expr(expr:Expression::VectorLiteral):Array(ValueType)-instance-method","name":"visit_vector_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"args_string":"(expr : Expression::VectorLiteral) : Array(ValueType)","args_html":"(expr : Expression::VectorLiteral) : Array(ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":636,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L636"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"return_type":"Array(ValueType)","visibility":"Public","body":"expr.values.map do |v|\n evaluate(v)\nend"}},{"html_id":"visit_while_stmt(stmt:Statement::While):Nil-instance-method","name":"visit_while_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"args_string":"(stmt : Statement::While) : Nil","args_html":"(stmt : Statement::While) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":313,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/interpreter.cr#L313"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"return_type":"Nil","visibility":"Public","body":"while evaluate(stmt.condition)\n begin\n execute(stmt.block)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\nend"}}]},{"html_id":"Cosmo/Cosmo/IntrinsicFunction","path":"Cosmo/IntrinsicFunction.html","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},"ancestors":[{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/MathLib/Acos","kind":"class","full_name":"Cosmo::MathLib::Acos","name":"Acos"},{"html_id":"Cosmo/Cosmo/MathLib/Acosh","kind":"class","full_name":"Cosmo::MathLib::Acosh","name":"Acosh"},{"html_id":"Cosmo/Cosmo/MathLib/Asin","kind":"class","full_name":"Cosmo::MathLib::Asin","name":"Asin"},{"html_id":"Cosmo/Cosmo/MathLib/Asinh","kind":"class","full_name":"Cosmo::MathLib::Asinh","name":"Asinh"},{"html_id":"Cosmo/Cosmo/MathLib/Atan","kind":"class","full_name":"Cosmo::MathLib::Atan","name":"Atan"},{"html_id":"Cosmo/Cosmo/MathLib/Atan2","kind":"class","full_name":"Cosmo::MathLib::Atan2","name":"Atan2"},{"html_id":"Cosmo/Cosmo/MathLib/Atanh","kind":"class","full_name":"Cosmo::MathLib::Atanh","name":"Atanh"},{"html_id":"Cosmo/Cosmo/MathLib/Cbrt","kind":"class","full_name":"Cosmo::MathLib::Cbrt","name":"Cbrt"},{"html_id":"Cosmo/Cosmo/MathLib/Ceil","kind":"class","full_name":"Cosmo::MathLib::Ceil","name":"Ceil"},{"html_id":"Cosmo/Cosmo/MathLib/Cos","kind":"class","full_name":"Cosmo::MathLib::Cos","name":"Cos"},{"html_id":"Cosmo/Cosmo/MathLib/Cosh","kind":"class","full_name":"Cosmo::MathLib::Cosh","name":"Cosh"},{"html_id":"Cosmo/Cosmo/MathLib/Exp","kind":"class","full_name":"Cosmo::MathLib::Exp","name":"Exp"},{"html_id":"Cosmo/Cosmo/MathLib/Floor","kind":"class","full_name":"Cosmo::MathLib::Floor","name":"Floor"},{"html_id":"Cosmo/Cosmo/MathLib/Isqrt","kind":"class","full_name":"Cosmo::MathLib::Isqrt","name":"Isqrt"},{"html_id":"Cosmo/Cosmo/MathLib/Log","kind":"class","full_name":"Cosmo::MathLib::Log","name":"Log"},{"html_id":"Cosmo/Cosmo/MathLib/Log10","kind":"class","full_name":"Cosmo::MathLib::Log10","name":"Log10"},{"html_id":"Cosmo/Cosmo/MathLib/Log2","kind":"class","full_name":"Cosmo::MathLib::Log2","name":"Log2"},{"html_id":"Cosmo/Cosmo/MathLib/Max","kind":"class","full_name":"Cosmo::MathLib::Max","name":"Max"},{"html_id":"Cosmo/Cosmo/MathLib/Min","kind":"class","full_name":"Cosmo::MathLib::Min","name":"Min"},{"html_id":"Cosmo/Cosmo/MathLib/Round","kind":"class","full_name":"Cosmo::MathLib::Round","name":"Round"},{"html_id":"Cosmo/Cosmo/MathLib/Sin","kind":"class","full_name":"Cosmo::MathLib::Sin","name":"Sin"},{"html_id":"Cosmo/Cosmo/MathLib/Sinh","kind":"class","full_name":"Cosmo::MathLib::Sinh","name":"Sinh"},{"html_id":"Cosmo/Cosmo/MathLib/Sqrt","kind":"class","full_name":"Cosmo::MathLib::Sqrt","name":"Sqrt"},{"html_id":"Cosmo/Cosmo/MathLib/Tan","kind":"class","full_name":"Cosmo::MathLib::Tan","name":"Tan"},{"html_id":"Cosmo/Cosmo/MathLib/Tanh","kind":"class","full_name":"Cosmo::MathLib::Tanh","name":"Tanh"},{"html_id":"Cosmo/Cosmo/PutsIntrinsic","kind":"class","full_name":"Cosmo::PutsIntrinsic","name":"PutsIntrinsic"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"args_string":"(interpreter : Interpreter)","args_html":"(interpreter : Interpreter)","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L5"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":true,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L8"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":""}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L10"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L19"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}},{"html_id":"token(name:String):Token-instance-method","name":"token","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : Token","args_html":"(name : String) : Token","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L14"},"def":{"name":"token","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"Token","visibility":"Public","body":"location = Location.new(\"intrinsic\", 0, 0)\nToken.new(name, Syntax::Identifier, name, location)\n"}}]},{"html_id":"Cosmo/Cosmo/IntrinsicLib","path":"Cosmo/IntrinsicLib.html","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L24"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(i:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Interpreter"}],"args_string":"(i : Interpreter)","args_html":"(i : Interpreter)","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L25"},"def":{"name":"new","args":[{"name":"i","external_name":"i","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(i)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"inject:Nil-instance-method","name":"inject","abstract":true,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L28"},"def":{"name":"inject","return_type":"Nil","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/Keywords","path":"Cosmo/Keywords.html","kind":"module","full_name":"Cosmo::Keywords","name":"Keywords","abstract":false,"locations":[{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L3"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CLASS_VISIBILITY_KEYWORDS","name":"CLASS_VISIBILITY_KEYWORDS","value":"[\"protected\", \"static\"]"},{"id":"KEYWORDS","name":"KEYWORDS","value":"{\"true\" => Syntax::Boolean, \"false\" => Syntax::Boolean, \"none\" => Syntax::None, \"fn\" => Syntax::Function, \"if\" => Syntax::If, \"unless\" => Syntax::Unless, \"in\" => Syntax::In, \"of\" => Syntax::Of, \"is\" => Syntax::Is, \"else\" => Syntax::Else, \"every\" => Syntax::Every, \"while\" => Syntax::While, \"until\" => Syntax::Until, \"break\" => Syntax::Break, \"next\" => Syntax::Next, \"use\" => Syntax::Use, \"case\" => Syntax::Case, \"when\" => Syntax::When, \"const\" => Syntax::Const, \"return\" => Syntax::Return, \"throw\" => Syntax::Throw, \"class\" => Syntax::Class, \"mixin\" => Syntax::Mixin, \"new\" => Syntax::New}"},{"id":"TYPE_KEYWORDS","name":"TYPE_KEYWORDS","value":"[\"type\", \"any\", \"bool\", \"string\", \"char\", \"int\", \"bigint\", \"float\", \"void\", \"func\"]","doc":"These cannot be any of the keywords above","summary":"

                            These cannot be any of the keywords above

                            "}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"class_methods":[{"html_id":"class_visibility?(s:String)-class-method","name":"class_visibility?","doc":"Returns whether or not `s` is a class vibility keyword","summary":"

                            Returns whether or not s is a class vibility keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L36"},"def":{"name":"class_visibility?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"CLASS_VISIBILITY_KEYWORDS.includes?(s)"}},{"html_id":"get_syntax(s:String):Syntax-class-method","name":"get_syntax","doc":"Returns the syntax type of `s` if it is a regular keyword","summary":"

                            Returns the syntax type of s if it is a regular keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String) : Syntax","args_html":"(s : String) : Syntax","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L51"},"def":{"name":"get_syntax","args":[{"name":"s","external_name":"s","restriction":"String"}],"return_type":"Syntax","visibility":"Public","body":"KEYWORDS.fetch(s) do\n raise(\"Invalid keyword #{s}\")\nend"}},{"html_id":"keyword?(s:String)-class-method","name":"keyword?","doc":"Returns whether or not `s` is a regular keyword","summary":"

                            Returns whether or not s is a regular keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L46"},"def":{"name":"keyword?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"KEYWORDS.has_key?(s)"}},{"html_id":"type?(s:String)-class-method","name":"type?","doc":"Returns whether or not `s` is a type keyword","summary":"

                            Returns whether or not s is a type keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":41,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/keywords.cr#L41"},"def":{"name":"type?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"TYPE_KEYWORDS.includes?(s)"}}]},{"html_id":"Cosmo/Cosmo/Lexer","path":"Cosmo/Lexer.html","kind":"class","full_name":"Cosmo::Lexer","name":"Lexer","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer.cr#L9"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(source:String,file_path:String,run_benchmarks:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"args_string":"(source : String, file_path : String, run_benchmarks : Bool)","args_html":"(source : String, file_path : String, run_benchmarks : Bool)","location":{"filename":"src/cosmo/syntax/lexer.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer.cr#L17"},"def":{"name":"new","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(source, file_path, run_benchmarks)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"tokenize:Array(Token)-instance-method","name":"tokenize","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer.cr#L20"},"def":{"name":"tokenize","return_type":"Array(Token)","visibility":"Public","body":"start_time = Time.monotonic\nwhile !finished?\n lex\nend\nadd_token(Syntax::EOF, nil)\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Lexer @#{@file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\n@tokens\n"}}]},{"html_id":"Cosmo/Cosmo/Location","path":"Cosmo/Location.html","kind":"class","full_name":"Cosmo::Location","name":"Location","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(file_name:String,line:UInt32,position:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"file_name","external_name":"file_name","restriction":"::String"},{"name":"line","external_name":"line","restriction":"::UInt32"},{"name":"position","external_name":"position","restriction":"::UInt32"}],"args_string":"(file_name : String, line : UInt32, position : UInt32)","args_html":"(file_name : String, line : UInt32, position : UInt32)","location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L6"},"def":{"name":"new","args":[{"name":"file_name","external_name":"file_name","restriction":"::String"},{"name":"line","external_name":"line","restriction":"::UInt32"},{"name":"position","external_name":"position","restriction":"::UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(file_name, line, position)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"between?(min:UInt32,max:UInt32)-instance-method","name":"between?","abstract":false,"args":[{"name":"min","external_name":"min","restriction":"UInt32"},{"name":"max","external_name":"max","restriction":"UInt32"}],"args_string":"(min : UInt32, max : UInt32)","args_html":"(min : UInt32, max : UInt32)","location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L9"},"def":{"name":"between?","args":[{"name":"min","external_name":"min","restriction":"UInt32"},{"name":"max","external_name":"max","restriction":"UInt32"}],"visibility":"Public","body":"if min && max\nelse\n return false\nend\nmin <= self && self <= max\n"}},{"html_id":"directory-instance-method","name":"directory","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L14"},"def":{"name":"directory","visibility":"Public","body":"@file_name.try do |file_name|\n File.dirname(file_name)\nend"}},{"html_id":"file_name:String-instance-method","name":"file_name","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L4"},"def":{"name":"file_name","return_type":"String","visibility":"Public","body":"@file_name"}},{"html_id":"line:UInt32-instance-method","name":"line","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L2"},"def":{"name":"line","return_type":"UInt32","visibility":"Public","body":"@line"}},{"html_id":"position:UInt32-instance-method","name":"position","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L3"},"def":{"name":"position","return_type":"UInt32","visibility":"Public","body":"@position"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/location.cr#L18"},"def":{"name":"to_s","visibility":"Public","body":"\"#{@file_name}:#{@line}:#{position}\""}}]},{"html_id":"Cosmo/Cosmo/Logger","path":"Cosmo/Logger.html","kind":"module","full_name":"Cosmo::Logger","name":"Logger","abstract":false,"locations":[{"filename":"src/cosmo/logger.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"Cosmo/Cosmo/Logger","kind":"module","full_name":"Cosmo::Logger","name":"Logger"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"debug=(on:Bool):Nil-instance-method","name":"debug=","abstract":false,"args":[{"name":"on","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool) : Nil","args_html":"(on : Bool) : Nil","location":{"filename":"src/cosmo/logger.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L6"},"def":{"name":"debug=","args":[{"name":"on","external_name":"on","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"@@debug = on"}},{"html_id":"report_error(error_type:String,message:String,line:UInt32,pos:UInt32,file_path:String):Exception-instance-method","name":"report_error","abstract":false,"args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"line","external_name":"line","restriction":"UInt32"},{"name":"pos","external_name":"pos","restriction":"UInt32"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(error_type : String, message : String, line : UInt32, pos : UInt32, file_path : String) : Exception","args_html":"(error_type : String, message : String, line : UInt32, pos : UInt32, file_path : String) : Exception","location":{"filename":"src/cosmo/logger.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L18"},"def":{"name":"report_error","args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"line","external_name":"line","restriction":"UInt32"},{"name":"pos","external_name":"pos","restriction":"UInt32"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"Exception","visibility":"Public","body":"full_message = \"@#{file_path.gsub(\"./\", \"\")} [#{line}:#{pos + 1}] #{error_type}: #{message}\"\nif @@debug\n raise(full_message)\nelse\n abort(full_message, 1)\nend\n"}},{"html_id":"report_error(error_type:String,message:String,token:Token):Exception-instance-method","name":"report_error","abstract":false,"args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(error_type : String, message : String, token : Token) : Exception","args_html":"(error_type : String, message : String, token : Token) : Exception","location":{"filename":"src/cosmo/logger.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L14"},"def":{"name":"report_error","args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Exception","visibility":"Public","body":"report_error(error_type, message, token.location.line, token.location.position, token.location.file_name)"}},{"html_id":"report_exception(ex:E)forallE-instance-method","name":"report_exception","abstract":false,"args":[{"name":"ex","external_name":"ex","restriction":"E"}],"args_string":"(ex : E) forall E","args_html":"(ex : E) forall E","location":{"filename":"src/cosmo/logger.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/logger.cr#L10"},"def":{"name":"report_exception","args":[{"name":"ex","external_name":"ex","restriction":"E"}],"visibility":"Public","body":"raise(ex)"}}]},{"html_id":"Cosmo/Cosmo/MathLib","path":"Cosmo/MathLib.html","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicLib","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicLib","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"inject:Nil-instance-method","name":"inject","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L2"},"def":{"name":"inject","return_type":"Nil","visibility":"Public","body":"math = {} of String => IntrinsicFunction | Float64\nmath[\"e\"] = Math::E\nmath[\"pi\"] = Math::PI\nmath[\"floor\"] = Floor.new(@i)\nmath[\"ceil\"] = Ceil.new(@i)\nmath[\"round\"] = Round.new(@i)\nmath[\"min\"] = Min.new(@i)\nmath[\"max\"] = Max.new(@i)\nmath[\"log\"] = Log.new(@i)\nmath[\"log2\"] = Log2.new(@i)\nmath[\"log10\"] = Log10.new(@i)\nmath[\"exp\"] = Exp.new(@i)\nmath[\"sqrt\"] = Sqrt.new(@i)\nmath[\"isqrt\"] = Isqrt.new(@i)\nmath[\"cbrt\"] = Cbrt.new(@i)\nmath[\"sin\"] = Sin.new(@i)\nmath[\"cos\"] = Cos.new(@i)\nmath[\"tan\"] = Tan.new(@i)\nmath[\"sinh\"] = Sinh.new(@i)\nmath[\"cosh\"] = Cosh.new(@i)\nmath[\"tanh\"] = Tanh.new(@i)\nmath[\"asinh\"] = Asinh.new(@i)\nmath[\"acosh\"] = Acosh.new(@i)\nmath[\"atanh\"] = Atanh.new(@i)\nmath[\"asin\"] = Asin.new(@i)\nmath[\"acos\"] = Acos.new(@i)\nmath[\"atan\"] = Atan.new(@i)\nmath[\"atan2\"] = Atan2.new(@i)\n@i.declare_intrinsic(\"string->(func|float)\", \"Math\", math)\n"}}],"types":[{"html_id":"Cosmo/Cosmo/MathLib/Acos","path":"Cosmo/MathLib/Acos.html","kind":"class","full_name":"Cosmo::MathLib::Acos","name":"Acos","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":256,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L256"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":257,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L257"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":261,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L261"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"acos\"))\nx = args.first.as(Float64)\n(Math.acos(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Acosh","path":"Cosmo/MathLib/Acosh.html","kind":"class","full_name":"Cosmo::MathLib::Acosh","name":"Acosh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":348,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L348"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":349,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L349"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":353,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L353"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"acosh\"))\nx = args.first.as(Number)\n(Math.acosh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Asin","path":"Cosmo/MathLib/Asin.html","kind":"class","full_name":"Cosmo::MathLib::Asin","name":"Asin","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L243"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":244,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L244"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":248,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L248"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"asin\"))\nx = args.first.as(Number)\n(Math.asin(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Asinh","path":"Cosmo/MathLib/Asinh.html","kind":"class","full_name":"Cosmo::MathLib::Asinh","name":"Asinh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L335"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L336"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":340,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L340"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"asinh\"))\nx = args.first.as(Number)\n(Math.asinh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atan","path":"Cosmo/MathLib/Atan.html","kind":"class","full_name":"Cosmo::MathLib::Atan","name":"Atan","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":269,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L269"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L270"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L274"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atan\"))\nx = args.first.as(Number)\n(Math.atan(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atan2","path":"Cosmo/MathLib/Atan2.html","kind":"class","full_name":"Cosmo::MathLib::Atan2","name":"Atan2","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":282,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L282"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L283"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..2.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":287,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L287"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atan2\"))\ny = args.first.as(Number)\nx = args.last.as(Number)\n(Math.atan2(y, x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atanh","path":"Cosmo/MathLib/Atanh.html","kind":"class","full_name":"Cosmo::MathLib::Atanh","name":"Atanh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L361"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L362"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":366,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L366"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atanh\"))\nx = args.first.as(Number)\n(Math.atanh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cbrt","path":"Cosmo/MathLib/Cbrt.html","kind":"class","full_name":"Cosmo::MathLib::Cbrt","name":"Cbrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L191"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L192"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L196"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cbrt\"))\nx = args.first.as(Number)\n(Math.cbrt(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Ceil","path":"Cosmo/MathLib/Ceil.html","kind":"class","full_name":"Cosmo::MathLib::Ceil","name":"Ceil","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L46"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":47,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L47"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L51"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\n((args.first.as(Number)).round(:to_positive)).to_i64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cos","path":"Cosmo/MathLib/Cos.html","kind":"class","full_name":"Cosmo::MathLib::Cos","name":"Cos","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L217"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":218,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L218"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":222,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L222"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cos\"))\nx = args.first.as(Number)\n(Math.cos(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cosh","path":"Cosmo/MathLib/Cosh.html","kind":"class","full_name":"Cosmo::MathLib::Cosh","name":"Cosh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L309"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":310,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L310"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":314,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L314"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cosh\"))\nx = args.first.as(Number)\n(Math.cosh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Exp","path":"Cosmo/MathLib/Exp.html","kind":"class","full_name":"Cosmo::MathLib::Exp","name":"Exp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":153,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L153"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":154,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L154"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":158,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L158"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.exp(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Floor","path":"Cosmo/MathLib/Floor.html","kind":"class","full_name":"Cosmo::MathLib::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L34"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L35"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":39,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L39"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\n((args.first.as(Number)).round(:to_negative)).to_i64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Isqrt","path":"Cosmo/MathLib/Isqrt.html","kind":"class","full_name":"Cosmo::MathLib::Isqrt","name":"Isqrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":166,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L166"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L167"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":171,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L171"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"int\", args.first, token(\"isqrt\"))\nMath.isqrt(args.first.as(Int64))\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log","path":"Cosmo/MathLib/Log.html","kind":"class","full_name":"Cosmo::MathLib::Log","name":"Log","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":140,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L140"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":141,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L141"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L145"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log10","path":"Cosmo/MathLib/Log10.html","kind":"class","full_name":"Cosmo::MathLib::Log10","name":"Log10","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L127"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":128,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L128"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":132,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L132"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log10(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log2","path":"Cosmo/MathLib/Log2.html","kind":"class","full_name":"Cosmo::MathLib::Log2","name":"Log2","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":114,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L114"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L115"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":119,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L119"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log2(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Max","path":"Cosmo/MathLib/Max.html","kind":"class","full_name":"Cosmo::MathLib::Max","name":"Max","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":94,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L94"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":95,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L95"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L99"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nargs.each do |arg|\n TypeChecker.assert(\"float|int\", arg, token(\"max\"))\nend\nmax = args.first.as(Number)\nargs.shift\nargs.each do |arg|\n max = Math.max(arg.as(Number), max)\nend\nmax.as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Min","path":"Cosmo/MathLib/Min.html","kind":"class","full_name":"Cosmo::MathLib::Min","name":"Min","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L74"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":75,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L75"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L79"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nargs.each do |arg|\n TypeChecker.assert(\"float|int\", arg, token(\"min\"))\nend\nmin = args.first.as(Number)\nargs.shift\nargs.each do |arg|\n min = Math.min(arg.as(Number), min)\nend\nmin.as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Round","path":"Cosmo/MathLib/Round.html","kind":"class","full_name":"Cosmo::MathLib::Round","name":"Round","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":58,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L58"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L59"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..2.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L63"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"round\"))\nTypeChecker.assert(\"int\", args.last, token(\"round\"))\nn = args.first.as(Number)\nd = args.last.as(Int64)\n(n.round(d)).as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sin","path":"Cosmo/MathLib/Sin.html","kind":"class","full_name":"Cosmo::MathLib::Sin","name":"Sin","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":204,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L204"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":205,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L205"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":209,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L209"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sin\"))\nx = args.first.as(Number)\n(Math.sin(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sinh","path":"Cosmo/MathLib/Sinh.html","kind":"class","full_name":"Cosmo::MathLib::Sinh","name":"Sinh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L296"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":297,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L297"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":301,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L301"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sinh\"))\nx = args.first.as(Number)\n(Math.sinh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sqrt","path":"Cosmo/MathLib/Sqrt.html","kind":"class","full_name":"Cosmo::MathLib::Sqrt","name":"Sqrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L178"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":179,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L179"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L183"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sqrt\"))\nx = args.first.as(Number)\n(Math.sqrt(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Tan","path":"Cosmo/MathLib/Tan.html","kind":"class","full_name":"Cosmo::MathLib::Tan","name":"Tan","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L230"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":231,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L231"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L235"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"tan\"))\nx = args.first.as(Number)\n(Math.tan(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Tanh","path":"Cosmo/MathLib/Tanh.html","kind":"class","full_name":"Cosmo::MathLib::Tanh","name":"Tanh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":322,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L322"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":323,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L323"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":327,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/lib/math.cr#L327"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"tanh\"))\nx = args.first.as(Number)\n(Math.tanh(x)).to_f64\n"}}]}]},{"html_id":"Cosmo/Cosmo/Operator","path":"Cosmo/Operator.html","kind":"module","full_name":"Cosmo::Operator","name":"Operator","abstract":false,"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/Operator/Band","path":"Cosmo/Operator/Band.html","kind":"class","full_name":"Cosmo::Operator::Band","name":"Band","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L235"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":236,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L236"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"&\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left & right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bnot","path":"Cosmo/Operator/Bnot.html","kind":"class","full_name":"Cosmo::Operator::Bnot","name":"Bnot","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":198,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L198"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::UnaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : ValueType","args_html":"(expr : Expression::UnaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":199,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L199"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"ValueType","visibility":"Public","body":"operand = @interpreter.evaluate(expr.operand)\nop = \"~\"\nif operand.is_a?(Int)\n return ~operand\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", operand.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bor","path":"Cosmo/Operator/Bor.html","kind":"class","full_name":"Cosmo::Operator::Bor","name":"Bor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":221,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L221"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":222,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L222"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"|\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left | right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bshl","path":"Cosmo/Operator/Bshl.html","kind":"class","full_name":"Cosmo::Operator::Bshl","name":"Bshl","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":263,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L263"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":264,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L264"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"<<\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left << right\n end\nelse\n if left.is_a?(Array)\n left = @interpreter.add_object_value(expr.operator, left, left.size, right)\n return @interpreter.scope.assign(expr.token, left)\n else\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bshr","path":"Cosmo/Operator/Bshr.html","kind":"class","full_name":"Cosmo::Operator::Bshr","name":"Bshr","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":249,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L249"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":250,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L250"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \">>\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left >> right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bxor","path":"Cosmo/Operator/Bxor.html","kind":"class","full_name":"Cosmo::Operator::Bxor","name":"Bxor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":207,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L207"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":208,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L208"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"~\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left ^ right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Div","path":"Cosmo/Operator/Div.html","kind":"class","full_name":"Cosmo::Operator::Div","name":"Div","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":72,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L72"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":73,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L73"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '/'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left / right\n end\n if right.is_a?(Int)\n return left / right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left / right\n end\n if right.is_a?(Float)\n return left.to_f / right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/DivAssign","path":"Cosmo/Operator/DivAssign.html","kind":"class","full_name":"Cosmo::Operator::DivAssign","name":"DivAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":342,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L342"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":343,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L343"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"var = @interpreter.scope.lookup(expr.name)\nvalue = @interpreter.evaluate(expr.value)\nop = \"/=\"\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var / value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var / value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var / value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var.to_f / value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/GT","path":"Cosmo/Operator/GT.html","kind":"class","full_name":"Cosmo::Operator::GT","name":"GT","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":162,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L162"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":163,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L163"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '>'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left > right\n end\n if right.is_a?(Int)\n return left > right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left > right\n end\n if right.is_a?(Float)\n return left.to_f > right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/GTE","path":"Cosmo/Operator/GTE.html","kind":"class","full_name":"Cosmo::Operator::GTE","name":"GTE","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":180,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L180"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":181,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L181"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \">=\"\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left >= right\n end\n if right.is_a?(Int)\n return left >= right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left >= right\n end\n if right.is_a?(Float)\n return left.to_f >= right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/LT","path":"Cosmo/Operator/LT.html","kind":"class","full_name":"Cosmo::Operator::LT","name":"LT","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":126,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L126"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L127"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '<'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left < right\n end\n if right.is_a?(Int)\n return left < right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left < right\n end\n if right.is_a?(Float)\n return left.to_f < right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/LTE","path":"Cosmo/Operator/LTE.html","kind":"class","full_name":"Cosmo::Operator::LTE","name":"LTE","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":144,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L144"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L145"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"<=\"\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left <= right\n end\n if right.is_a?(Int)\n return left <= right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left <= right\n end\n if right.is_a?(Float)\n return left.to_f <= right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Minus","path":"Cosmo/Operator/Minus.html","kind":"class","full_name":"Cosmo::Operator::Minus","name":"Minus","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L36"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":37,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L37"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '-'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left - right\n end\n if right.is_a?(Int)\n return left - right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left - right\n end\n if right.is_a?(Float)\n return left.to_f - right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/MinusAssign","path":"Cosmo/Operator/MinusAssign.html","kind":"class","full_name":"Cosmo::Operator::MinusAssign","name":"MinusAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":306,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L306"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment|Expression::UnaryOp,op:String=\"-=\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op","default_value":"\"-=\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = \"-=\") : ValueType","args_html":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = "-=") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":307,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L307"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op","default_value":"\"-=\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"name_token = expr.is_a?(Expression::CompoundAssignment) ? expr.name : expr.operand.token\nvar = @interpreter.scope.lookup(name_token)\nvalue = expr.is_a?(Expression::CompoundAssignment) ? @interpreter.evaluate(expr.value) : 1\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(name_token, var - value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(name_token, var - value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(name_token, var - value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(name_token, var.to_f - value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Mod","path":"Cosmo/Operator/Mod.html","kind":"class","full_name":"Cosmo::Operator::Mod","name":"Mod","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":108,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L108"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":109,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L109"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '%'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left % right\n end\n if right.is_a?(Int)\n return left % right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left % right\n end\n if right.is_a?(Float)\n return left.to_f % right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/ModAssign","path":"Cosmo/Operator/ModAssign.html","kind":"class","full_name":"Cosmo::Operator::ModAssign","name":"ModAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":378,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L378"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":379,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L379"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"var = @interpreter.scope.lookup(expr.name)\nvalue = @interpreter.evaluate(expr.value)\nop = \"%=\"\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var % value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var % value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var % value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var.to_f % value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Mul","path":"Cosmo/Operator/Mul.html","kind":"class","full_name":"Cosmo::Operator::Mul","name":"Mul","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L54"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":55,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L55"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '*'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left * right\n end\n if right.is_a?(Int)\n return left * right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left * right\n end\n if right.is_a?(Float)\n return left.to_f * right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/MulAssign","path":"Cosmo/Operator/MulAssign.html","kind":"class","full_name":"Cosmo::Operator::MulAssign","name":"MulAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":324,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L324"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":325,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L325"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"var = @interpreter.scope.lookup(expr.name)\nvalue = @interpreter.evaluate(expr.value)\nop = \"*=\"\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var * value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var * value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var * value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var.to_f * value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Plus","path":"Cosmo/Operator/Plus.html","kind":"class","full_name":"Cosmo::Operator::Plus","name":"Plus","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L10"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L11"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '+'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left + right\n end\n if right.is_a?(Int)\n return left + right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left + right\n end\n if right.is_a?(Float)\n return left.to_f + right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n else\n if left.is_a?(String)\n if right.is_a?(String)\n return left + right\n end\n if right.is_a?(Char)\n return left + right.to_s\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n else\n if left.is_a?(Char)\n if right.is_a?(Char)\n return left.to_s + right.to_s\n end\n if right.is_a?(String)\n return left.to_s + right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\n end\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/PlusAssign","path":"Cosmo/Operator/PlusAssign.html","kind":"class","full_name":"Cosmo::Operator::PlusAssign","name":"PlusAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":280,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L280"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment|Expression::UnaryOp,op:String=\"+=\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op","default_value":"\"+=\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = \"+=\") : ValueType","args_html":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op : String = "+=") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":281,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L281"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op","default_value":"\"+=\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"name_token = expr.is_a?(Expression::CompoundAssignment) ? expr.name : expr.operand.token\nvar = @interpreter.scope.lookup(name_token)\nvalue = expr.is_a?(Expression::CompoundAssignment) ? @interpreter.evaluate(expr.value) : 1\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(name_token, var + value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(name_token, var + value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(name_token, var + value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(name_token, var.to_f + value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n else\n if var.is_a?(String)\n if value.is_a?(String)\n return @interpreter.scope.assign(name_token, var + value)\n end\n if value.is_a?(Char)\n return @interpreter.scope.assign(name_token, var + value.to_s)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n else\n if var.is_a?(Char)\n if value.is_a?(Char)\n return @interpreter.scope.assign(name_token, var.to_s + value.to_s)\n end\n if value.is_a?(String)\n return @interpreter.scope.assign(name_token, var.to_s + value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\n end\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Pow","path":"Cosmo/Operator/Pow.html","kind":"class","full_name":"Cosmo::Operator::Pow","name":"Pow","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":90,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L90"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":91,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L91"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '^'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left ** right\n end\n if right.is_a?(Int)\n return left ** right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left ** right\n end\n if right.is_a?(Float)\n return left.to_f ** right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/PowAssign","path":"Cosmo/Operator/PowAssign.html","kind":"class","full_name":"Cosmo::Operator::PowAssign","name":"PowAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":360,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L360"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/operator.cr#L361"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"var = @interpreter.scope.lookup(expr.name)\nvalue = @interpreter.evaluate(expr.value)\nop = \"^=\"\nif var.is_a?(Float)\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var ** value)\n end\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var ** value.to_f)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\nelse\n if var.is_a?(Int)\n if value.is_a?(Int)\n return @interpreter.scope.assign(expr.name, var ** value)\n end\n if value.is_a?(Float)\n return @interpreter.scope.assign(expr.name, var.to_f ** value)\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", value.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", var.class.to_s, expr.operator)\n"}}]}]},{"html_id":"Cosmo/Cosmo/Parser","path":"Cosmo/Parser.html","kind":"class","full_name":"Cosmo::Parser","name":"Parser","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(source:String,file_path:String,run_benchmarks:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"args_string":"(source : String, file_path : String, run_benchmarks : Bool)","args_html":"(source : String, file_path : String, run_benchmarks : Bool)","location":{"filename":"src/cosmo/syntax/parser.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser.cr#L8"},"def":{"name":"new","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(source, file_path, run_benchmarks)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"parse:Array(Statement::Base)-instance-method","name":"parse","doc":"Entry point","summary":"

                            Entry point

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/parser.cr#L16"},"def":{"name":"parse","return_type":"Array(Statement::Base)","visibility":"Public","body":"start_time = Time.monotonic\nstatements = [] of Statement::Base\nwhile !finished?\n stmt = parse_statement\n statements << stmt\nend\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Parser @#{@file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\nstatements\n"}}]},{"html_id":"Cosmo/Cosmo/PutsIntrinsic","path":"Cosmo/PutsIntrinsic.html","kind":"class","full_name":"Cosmo::PutsIntrinsic","name":"PutsIntrinsic","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L31"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L32"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Nil-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Nil","args_html":"(args : Array(ValueType)) : Nil","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/intrinsic/global.cr#L36"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Nil","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"void\")\nputs(args.map do |arg|\n arg.nil? ? \"none\" : arg.to_s\nend.join('\\t'))\n"}}]},{"html_id":"Cosmo/Cosmo/Resolver","path":"Cosmo/Resolver.html","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/resolver.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L6"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"args_string":"(interpreter : Interpreter)","args_html":"(interpreter : Interpreter)","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L14"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"resolve(statements:Expression::Base|Statement::Base|Array(Statement::Base)):Nil-instance-method","name":"resolve","abstract":false,"args":[{"name":"statements","external_name":"statements","restriction":"Expression::Base | Statement::Base | Array(Statement::Base)"}],"args_string":"(statements : Expression::Base | Statement::Base | Array(Statement::Base)) : Nil","args_html":"(statements : Expression::Base | Statement::Base | Array(Statement::Base)) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L18"},"def":{"name":"resolve","args":[{"name":"statements","external_name":"statements","restriction":"Expression::Base | Statement::Base | Array(Statement::Base)"}],"return_type":"Nil","visibility":"Public","body":"if statements.is_a?(Array)\n statements.each do |stmt|\n resolve(stmt)\n end\nelse\n statements.accept(self)\nend"}},{"html_id":"start_time:Time::Span-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L12"},"def":{"name":"start_time","return_type":"Time::Span","visibility":"Public","body":"@start_time"}},{"html_id":"visit_access_expr(expr:Expression::Access):Nil-instance-method","name":"visit_access_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"args_string":"(expr : Expression::Access) : Nil","args_html":"(expr : Expression::Access) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":186,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L186"},"def":{"name":"visit_access_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.object)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_binary_op_expr(expr:Expression::BinaryOp):Nil-instance-method","name":"visit_binary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : Nil","args_html":"(expr : Expression::BinaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":207,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L207"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.left)\nresolve(expr.right)\n"}},{"html_id":"visit_block_stmt(stmt:Statement::Block):Nil-instance-method","name":"visit_block_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"args_string":"(stmt : Statement::Block) : Nil","args_html":"(stmt : Statement::Block) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L76"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"return_type":"Nil","visibility":"Public","body":"begin_scope\nresolve(stmt.nodes)\nend_scope\n"}},{"html_id":"visit_break_stmt(stmt:Statement::Break):Nil-instance-method","name":"visit_break_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"args_string":"(stmt : Statement::Break) : Nil","args_html":"(stmt : Statement::Break) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":247,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L247"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_case_stmt(stmt:Statement::Case):Nil-instance-method","name":"visit_case_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"args_string":"(stmt : Statement::Case) : Nil","args_html":"(stmt : Statement::Case) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":92,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L92"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.value)\nstmt.comparisons.each do |comparison|\n comparison.conditions.each do |condition_expr|\n resolve(condition_expr)\n end\n resolve(comparison.block)\nend\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_class_def_stmt(stmt:Statement::ClassDef):Nil-instance-method","name":"visit_class_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"args_string":"(stmt : Statement::ClassDef) : Nil","args_html":"(stmt : Statement::ClassDef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L130"},"def":{"name":"visit_class_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"return_type":"Nil","visibility":"Public","body":"declare(stmt.identifier)\ndefine(stmt.identifier)\nif stmt.superclass.nil?\nelse\n resolve(stmt.superclass.not_nil!)\nend\nstmt.mixins.each do |mixin|\n resolve(mixin)\nend\nresolve(stmt.body)\n"}},{"html_id":"visit_compound_assignment_expr(expr:Expression::CompoundAssignment):Nil-instance-method","name":"visit_compound_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : Nil","args_html":"(expr : Expression::CompoundAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L196"},"def":{"name":"visit_compound_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve_local(expr, expr.name)\n"}},{"html_id":"visit_every_stmt(stmt:Statement::Every):Nil-instance-method","name":"visit_every_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"args_string":"(stmt : Statement::Every) : Nil","args_html":"(stmt : Statement::Every) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":82,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L82"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.var)\nresolve(stmt.enumerable)\nresolve(stmt.block)\n"}},{"html_id":"visit_fn_call_expr(expr:Expression::FunctionCall):Nil-instance-method","name":"visit_fn_call_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"args_string":"(expr : Expression::FunctionCall) : Nil","args_html":"(expr : Expression::FunctionCall) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":181,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L181"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.callee)\nexpr.arguments.each do |arg|\n resolve(arg)\nend\n"}},{"html_id":"visit_fn_def_stmt(stmt:Statement::FunctionDef):Nil-instance-method","name":"visit_fn_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"args_string":"(stmt : Statement::FunctionDef) : Nil","args_html":"(stmt : Statement::FunctionDef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L138"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"return_type":"Nil","visibility":"Public","body":"declare(stmt.identifier)\ndefine(stmt.identifier)\nresolve_fn(stmt, FnType::Fn)\n"}},{"html_id":"visit_if_stmt(stmt:Statement::If):Nil-instance-method","name":"visit_if_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"args_string":"(stmt : Statement::If) : Nil","args_html":"(stmt : Statement::If) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L103"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.then)\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_index_expr(expr:Expression::Index):Nil-instance-method","name":"visit_index_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"args_string":"(expr : Expression::Index) : Nil","args_html":"(expr : Expression::Index) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L191"},"def":{"name":"visit_index_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.key)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_is_expr(expr:Expression::Is):Nil-instance-method","name":"visit_is_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"args_string":"(expr : Expression::Is) : Nil","args_html":"(expr : Expression::Is) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L170"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve(expr.type)\n"}},{"html_id":"visit_literal_expr(expr:Expression::Literal):Nil-instance-method","name":"visit_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"args_string":"(expr : Expression::Literal) : Nil","args_html":"(expr : Expression::Literal) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L243"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_next_stmt(stmt:Statement::Next):Nil-instance-method","name":"visit_next_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"args_string":"(stmt : Statement::Next) : Nil","args_html":"(stmt : Statement::Next) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":251,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L251"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_property_assignment_expr(expr:Expression::PropertyAssignment):Nil-instance-method","name":"visit_property_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"args_string":"(expr : Expression::PropertyAssignment) : Nil","args_html":"(expr : Expression::PropertyAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L165"},"def":{"name":"visit_property_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.object)\nif expr.value.is_a?(Expression::Base)\n resolve(expr.value.as(Expression::Base))\nend\n"}},{"html_id":"visit_range_literal_expr(expr:Expression::RangeLiteral):Nil-instance-method","name":"visit_range_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"args_string":"(expr : Expression::RangeLiteral) : Nil","args_html":"(expr : Expression::RangeLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L230"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.from)\nresolve(expr.to)\n"}},{"html_id":"visit_return_stmt(stmt:Statement::Return):Nil-instance-method","name":"visit_return_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"args_string":"(stmt : Statement::Return) : Nil","args_html":"(stmt : Statement::Return) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L123"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"return_type":"Nil","visibility":"Public","body":"if @current_fn == FnType::None\n Logger.report_error(\"Invalid return\", \"A 'return' statement can only be used within a method body.\", stmt.keyword)\nend\nif stmt.value.nil?\nelse\n resolve(stmt.value)\nend\n"}},{"html_id":"visit_single_expr_stmt(stmt:Statement::SingleExpression):Nil-instance-method","name":"visit_single_expr_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"args_string":"(stmt : Statement::SingleExpression) : Nil","args_html":"(stmt : Statement::SingleExpression) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":88,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L88"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.expression)"}},{"html_id":"visit_table_literal_expr(expr:Expression::TableLiteral):Nil-instance-method","name":"visit_table_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"args_string":"(expr : Expression::TableLiteral) : Nil","args_html":"(expr : Expression::TableLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L235"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_ternary_op_expr(expr:Expression::TernaryOp):Nil-instance-method","name":"visit_ternary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"args_string":"(expr : Expression::TernaryOp) : Nil","args_html":"(expr : Expression::TernaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":201,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L201"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.condition)\nresolve(expr.then)\nresolve(expr.else)\n"}},{"html_id":"visit_throw_stmt(stmt:Statement::Throw):Nil-instance-method","name":"visit_throw_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"args_string":"(stmt : Statement::Throw) : Nil","args_html":"(stmt : Statement::Throw) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":119,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L119"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"return_type":"Nil","visibility":"Public","body":"if stmt.err.nil?\nelse\n resolve(stmt.err)\nend"}},{"html_id":"visit_type_alias_expr(expr:Expression::TypeAlias):Nil-instance-method","name":"visit_type_alias_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"args_string":"(expr : Expression::TypeAlias) : Nil","args_html":"(expr : Expression::TypeAlias) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":175,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L175"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"return_type":"Nil","visibility":"Public","body":"declare(expr.token)\nif expr.value.nil?\nelse\n resolve(expr.value.not_nil!)\nend\ndefine(expr.token)\n"}},{"html_id":"visit_type_ref_expr(expr:Expression::TypeRef):Nil-instance-method","name":"visit_type_ref_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"args_string":"(expr : Expression::TypeRef) : Nil","args_html":"(expr : Expression::TypeRef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":223,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L223"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"return_type":"Nil","visibility":"Public","body":"if ((!@scopes.empty?) && (!@scopes.last.nil?)) && (@scopes.last[expr.token.lexeme]? == false)\n Logger.report_error(\"Failed to assign '#{expr.token.lexeme}'\", \"Cannot read variable in it's own initializer\", expr.token)\nend\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_unary_op_expr(expr:Expression::UnaryOp):Nil-instance-method","name":"visit_unary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : Nil","args_html":"(expr : Expression::UnaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":212,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L212"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.operand)"}},{"html_id":"visit_unless_stmt(stmt:Statement::Unless):Nil-instance-method","name":"visit_unless_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"args_string":"(stmt : Statement::Unless) : Nil","args_html":"(stmt : Statement::Unless) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":109,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L109"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.then)\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_until_stmt(stmt:Statement::Until):Nil-instance-method","name":"visit_until_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"args_string":"(stmt : Statement::Until) : Nil","args_html":"(stmt : Statement::Until) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":149,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L149"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.block)\n"}},{"html_id":"visit_use_stmt(stmt:Statement::Use):Nil-instance-method","name":"visit_use_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"args_string":"(stmt : Statement::Use) : Nil","args_html":"(stmt : Statement::Use) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L115"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_var_assignment_expr(expr:Expression::VarAssignment):Nil-instance-method","name":"visit_var_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"args_string":"(expr : Expression::VarAssignment) : Nil","args_html":"(expr : Expression::VarAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":160,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L160"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_var_declaration_expr(expr:Expression::VarDeclaration):Nil-instance-method","name":"visit_var_declaration_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"args_string":"(expr : Expression::VarDeclaration) : Nil","args_html":"(expr : Expression::VarDeclaration) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":154,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L154"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"return_type":"Nil","visibility":"Public","body":"declare(expr.token)\nresolve(expr.value)\ndefine(expr.token)\n"}},{"html_id":"visit_var_expr(expr:Expression::Var):Nil-instance-method","name":"visit_var_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"args_string":"(expr : Expression::Var) : Nil","args_html":"(expr : Expression::Var) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L216"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"return_type":"Nil","visibility":"Public","body":"if ((!@scopes.empty?) && (!@scopes.last.nil?)) && (@scopes.last[expr.token.lexeme]? == false)\n Logger.report_error(\"Failed to assign '#{expr.token.lexeme}'\", \"Cannot read variable in it's own initializer\", expr.token)\nend\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_vector_literal_expr(expr:Expression::VectorLiteral):Nil-instance-method","name":"visit_vector_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"args_string":"(expr : Expression::VectorLiteral) : Nil","args_html":"(expr : Expression::VectorLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":239,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L239"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_while_stmt(stmt:Statement::While):Nil-instance-method","name":"visit_while_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"args_string":"(stmt : Statement::While) : Nil","args_html":"(stmt : Statement::While) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":144,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L144"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.block)\n"}}]},{"html_id":"Cosmo/Cosmo/Scope","path":"Cosmo/Scope.html","kind":"class","full_name":"Cosmo::Scope","name":"Scope","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/scope.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(parent:Nil|Cosmo::Scope=nil)-class-method","name":"new","abstract":false,"args":[{"name":"parent","default_value":"nil","external_name":"parent","restriction":"::Nil | ::Cosmo::Scope"}],"args_string":"(parent : Nil | Cosmo::Scope = nil)","args_html":"(parent : Nil | Cosmo::Scope = nil)","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L15"},"def":{"name":"new","args":[{"name":"parent","default_value":"nil","external_name":"parent","restriction":"::Nil | ::Cosmo::Scope"}],"visibility":"Public","body":"_ = allocate\n_.initialize(parent)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"assign(identifier:Token,value:ValueType):ValueType-instance-method","name":"assign","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(identifier : Token, value : ValueType) : ValueType","args_html":"(identifier : Token, value : ValueType) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L56"},"def":{"name":"assign","args":[{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"}],"return_type":"ValueType","visibility":"Public","body":"if @variables.has_key?(identifier.lexeme)\n var : Variable = @variables[identifier.lexeme]\n if var[:constant]\n Logger.report_error(\"Attempt to assign to constant variable\", identifier.lexeme, identifier)\n end\n TypeChecker.assert(var[:type], value, identifier)\n return create_variable(var[:type], identifier, value, constant: false, visibility: var[:visibility])\nend\nif @parent.nil?\nelse\n return @parent.not_nil!.assign(identifier, value)\nend\nLogger.report_error(\"Attempt to assign to undefined variable\", identifier.lexeme, identifier)\n"}},{"html_id":"declare(typedef:Token,identifier:Token,value:ValueType,const:Bool=false,visibility:Visibility=Visibility::Private):ValueType-instance-method","name":"declare","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"Token"},{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"const","default_value":"false","external_name":"const","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Private","external_name":"visibility","restriction":"Visibility"}],"args_string":"(typedef : Token, identifier : Token, value : ValueType, const : Bool = false, visibility : Visibility = Visibility::Private) : ValueType","args_html":"(typedef : Token, identifier : Token, value : ValueType, const : Bool = false, visibility : Visibility = Visibility::Private) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":44,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L44"},"def":{"name":"declare","args":[{"name":"typedef","external_name":"typedef","restriction":"Token"},{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"const","default_value":"false","external_name":"const","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Private","external_name":"visibility","restriction":"Visibility"}],"return_type":"ValueType","visibility":"Public","body":"if value.nil?\nelse\n TypeChecker.assert(typedef.lexeme, value, typedef)\nend\ncreate_variable(typedef, identifier, value, const, visibility)\n"}},{"html_id":"extend(other:Cosmo::Scope):Cosmo::Scope-instance-method","name":"extend","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Cosmo::Scope"}],"args_string":"(other : Cosmo::Scope) : Cosmo::Scope","args_html":"(other : Cosmo::Scope) : Cosmo::Scope","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L18"},"def":{"name":"extend","args":[{"name":"other","external_name":"other","restriction":"Cosmo::Scope"}],"return_type":"Cosmo::Scope","visibility":"Public","body":"other.variables.each do |name, data|\n if data[:visibility] == Visibility::Public\n @variables[name] = data\n end\nend\nself\n"}},{"html_id":"lookup(token:Token):ValueType-instance-method","name":"lookup","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token) : ValueType","args_html":"(token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":93,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L93"},"def":{"name":"lookup","args":[{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"value = lookup?(token)\nif value.nil?\n if value.nil? && @parent.nil?\n Logger.report_error(\"Undefined variable\", token.value.to_s, token)\n end\nend\nvalue\n"}},{"html_id":"lookup?(token:Token):ValueType-instance-method","name":"lookup?","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token) : ValueType","args_html":"(token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L77"},"def":{"name":"lookup?","args":[{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"ident = token.lexeme\nif @variables.has_key?(ident)\n var = @variables[ident]\n typedef = var[:type]\n return var[:value]\nelse\n if @parent.nil?\n else\n parent = @parent.not_nil!\n value = parent.lookup(token)\n return value\n end\nend\nnil\n"}},{"html_id":"lookup_at(distance:UInt32,token:Token):ValueType-instance-method","name":"lookup_at","abstract":false,"args":[{"name":"distance","external_name":"distance","restriction":"UInt32"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(distance : UInt32, token : Token) : ValueType","args_html":"(distance : UInt32, token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L101"},"def":{"name":"lookup_at","args":[{"name":"distance","external_name":"distance","restriction":"UInt32"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"var = (ancestor(distance)).variables[token.value.to_s]?\nvar.value\n"}},{"html_id":"parent:Cosmo::Scope|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L12"},"def":{"name":"parent","return_type":"Cosmo::Scope | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"parent=(parent:Cosmo::Scope|Nil)-instance-method","name":"parent=","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"Cosmo::Scope | ::Nil"}],"args_string":"(parent : Cosmo::Scope | Nil)","args_html":"(parent : Cosmo::Scope | Nil)","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L12"},"def":{"name":"parent=","args":[{"name":"parent","external_name":"parent","restriction":"Cosmo::Scope | ::Nil"}],"visibility":"Public","body":"@parent = parent"}},{"html_id":"public?(token:Token):Bool-instance-method","name":"public?","doc":"Returns true if the variable exists and is public, otherwise false","summary":"

                            Returns true if the variable exists and is public, otherwise false

                            ","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token) : Bool","args_html":"(token : Token) : Bool","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":71,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L71"},"def":{"name":"public?","args":[{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Bool","visibility":"Public","body":"ident = token.lexeme\nif @variables.has_key?(ident)\nelse\n return false\nend\n@variables[ident][:visibility] == Visibility::Public\n"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":114,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L114"},"def":{"name":"to_s","visibility":"Public","body":"\"Scope<#{@parent ? (\"parent: \" + @parent.to_s) + \", \" : \"\"}#{@variables}>\""}},{"html_id":"variables:Hash(String,{type:String,value:Cosmo::ValueType,constant:Bool,visibility:Cosmo::AST::Visibility})-instance-method","name":"variables","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L13"},"def":{"name":"variables","visibility":"Public","body":"@variables"}},{"html_id":"variables=(variables:Hash(String,NamedTuple(type:String,value:Cosmo::ValueType,constant:Bool,visibility:Cosmo::AST::Visibility)))-instance-method","name":"variables=","abstract":false,"args":[{"name":"variables","external_name":"variables","restriction":"::Hash(::String, ::NamedTuple(type: ::String, value: ::Cosmo::ValueType, constant: ::Bool, visibility: ::Cosmo::AST::Visibility))"}],"args_string":"(variables : Hash(String, NamedTuple(type: String, value: Cosmo::ValueType, constant: Bool, visibility: Cosmo::AST::Visibility)))","args_html":"(variables : Hash(String, NamedTuple(type: String, value: Cosmo::ValueType, constant: Bool, visibility: Cosmo::AST::Visibility)))","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/scope.cr#L13"},"def":{"name":"variables=","args":[{"name":"variables","external_name":"variables","restriction":"::Hash(::String, ::NamedTuple(type: ::String, value: ::Cosmo::ValueType, constant: ::Bool, visibility: ::Cosmo::AST::Visibility))"}],"visibility":"Public","body":"@variables = variables"}}]},{"html_id":"Cosmo/Cosmo/Syntax","path":"Cosmo/Syntax.html","kind":"enum","full_name":"Cosmo::Syntax","name":"Syntax","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Identifier","name":"Identifier","value":"0"},{"id":"Integer","name":"Integer","value":"1"},{"id":"Float","name":"Float","value":"2"},{"id":"String","name":"String","value":"3"},{"id":"Char","name":"Char","value":"4"},{"id":"Boolean","name":"Boolean","value":"5"},{"id":"None","name":"None","value":"6"},{"id":"TypeDef","name":"TypeDef","value":"7"},{"id":"Public","name":"Public","value":"8"},{"id":"ClassVisibility","name":"ClassVisibility","value":"9"},{"id":"PlusPlus","name":"PlusPlus","value":"10"},{"id":"MinusMinus","name":"MinusMinus","value":"11"},{"id":"Plus","name":"Plus","value":"12"},{"id":"PlusEqual","name":"PlusEqual","value":"13"},{"id":"Minus","name":"Minus","value":"14"},{"id":"MinusEqual","name":"MinusEqual","value":"15"},{"id":"Star","name":"Star","value":"16"},{"id":"StarEqual","name":"StarEqual","value":"17"},{"id":"Slash","name":"Slash","value":"18"},{"id":"SlashEqual","name":"SlashEqual","value":"19"},{"id":"Carat","name":"Carat","value":"20"},{"id":"CaratEqual","name":"CaratEqual","value":"21"},{"id":"Percent","name":"Percent","value":"22"},{"id":"PercentEqual","name":"PercentEqual","value":"23"},{"id":"Less","name":"Less","value":"24"},{"id":"LessEqual","name":"LessEqual","value":"25"},{"id":"Greater","name":"Greater","value":"26"},{"id":"GreaterEqual","name":"GreaterEqual","value":"27"},{"id":"Equal","name":"Equal","value":"28"},{"id":"EqualEqual","name":"EqualEqual","value":"29"},{"id":"Bang","name":"Bang","value":"30"},{"id":"BangEqual","name":"BangEqual","value":"31"},{"id":"Ampersand","name":"Ampersand","value":"32"},{"id":"Pipe","name":"Pipe","value":"33"},{"id":"Tilde","name":"Tilde","value":"34"},{"id":"RDoubleArrow","name":"RDoubleArrow","value":"35"},{"id":"LDoubleArrow","name":"LDoubleArrow","value":"36"},{"id":"ColonAmpersand","name":"ColonAmpersand","value":"37"},{"id":"ColonPipe","name":"ColonPipe","value":"38"},{"id":"Question","name":"Question","value":"39"},{"id":"ColonColon","name":"ColonColon","value":"40"},{"id":"Colon","name":"Colon","value":"41"},{"id":"Dot","name":"Dot","value":"42"},{"id":"DotDot","name":"DotDot","value":"43"},{"id":"HyphenArrow","name":"HyphenArrow","value":"44"},{"id":"FatArrow","name":"FatArrow","value":"45"},{"id":"This","name":"This","value":"46"},{"id":"LBrace","name":"LBrace","value":"47"},{"id":"RBrace","name":"RBrace","value":"48"},{"id":"DoubleLBrace","name":"DoubleLBrace","value":"49"},{"id":"DoubleRBrace","name":"DoubleRBrace","value":"50"},{"id":"LBracket","name":"LBracket","value":"51"},{"id":"RBracket","name":"RBracket","value":"52"},{"id":"LParen","name":"LParen","value":"53"},{"id":"RParen","name":"RParen","value":"54"},{"id":"Comma","name":"Comma","value":"55"},{"id":"Hashtag","name":"Hashtag","value":"56"},{"id":"Class","name":"Class","value":"57"},{"id":"Mixin","name":"Mixin","value":"58"},{"id":"New","name":"New","value":"59"},{"id":"Function","name":"Function","value":"60"},{"id":"If","name":"If","value":"61"},{"id":"Unless","name":"Unless","value":"62"},{"id":"In","name":"In","value":"63"},{"id":"Of","name":"Of","value":"64"},{"id":"Is","name":"Is","value":"65"},{"id":"Else","name":"Else","value":"66"},{"id":"Every","name":"Every","value":"67"},{"id":"While","name":"While","value":"68"},{"id":"Until","name":"Until","value":"69"},{"id":"Const","name":"Const","value":"70"},{"id":"Throw","name":"Throw","value":"71"},{"id":"Break","name":"Break","value":"72"},{"id":"Next","name":"Next","value":"73"},{"id":"Case","name":"Case","value":"74"},{"id":"When","name":"When","value":"75"},{"id":"Return","name":"Return","value":"76"},{"id":"Use","name":"Use","value":"77"},{"id":"EOF","name":"EOF","value":"78"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"ampersand?-instance-method","name":"ampersand?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"ampersand?","visibility":"Public","body":"self == Ampersand"}},{"html_id":"bang?-instance-method","name":"bang?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"bang?","visibility":"Public","body":"self == Bang"}},{"html_id":"bang_equal?-instance-method","name":"bang_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"bang_equal?","visibility":"Public","body":"self == BangEqual"}},{"html_id":"boolean?-instance-method","name":"boolean?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"boolean?","visibility":"Public","body":"self == Boolean"}},{"html_id":"break?-instance-method","name":"break?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L29"},"def":{"name":"break?","visibility":"Public","body":"self == Break"}},{"html_id":"carat?-instance-method","name":"carat?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"carat?","visibility":"Public","body":"self == Carat"}},{"html_id":"carat_equal?-instance-method","name":"carat_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"carat_equal?","visibility":"Public","body":"self == CaratEqual"}},{"html_id":"case?-instance-method","name":"case?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L31"},"def":{"name":"case?","visibility":"Public","body":"self == Case"}},{"html_id":"char?-instance-method","name":"char?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"char?","visibility":"Public","body":"self == Char"}},{"html_id":"class?-instance-method","name":"class?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L19"},"def":{"name":"class?","visibility":"Public","body":"self == Class"}},{"html_id":"class_visibility?-instance-method","name":"class_visibility?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"class_visibility?","visibility":"Public","body":"self == ClassVisibility"}},{"html_id":"colon?-instance-method","name":"colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"colon?","visibility":"Public","body":"self == Colon"}},{"html_id":"colon_ampersand?-instance-method","name":"colon_ampersand?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"colon_ampersand?","visibility":"Public","body":"self == ColonAmpersand"}},{"html_id":"colon_colon?-instance-method","name":"colon_colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"colon_colon?","visibility":"Public","body":"self == ColonColon"}},{"html_id":"colon_pipe?-instance-method","name":"colon_pipe?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"colon_pipe?","visibility":"Public","body":"self == ColonPipe"}},{"html_id":"comma?-instance-method","name":"comma?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"comma?","visibility":"Public","body":"self == Comma"}},{"html_id":"const?-instance-method","name":"const?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L27"},"def":{"name":"const?","visibility":"Public","body":"self == Const"}},{"html_id":"dot?-instance-method","name":"dot?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"dot?","visibility":"Public","body":"self == Dot"}},{"html_id":"dot_dot?-instance-method","name":"dot_dot?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"dot_dot?","visibility":"Public","body":"self == DotDot"}},{"html_id":"double_l_brace?-instance-method","name":"double_l_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"double_l_brace?","visibility":"Public","body":"self == DoubleLBrace"}},{"html_id":"double_r_brace?-instance-method","name":"double_r_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"double_r_brace?","visibility":"Public","body":"self == DoubleRBrace"}},{"html_id":"else?-instance-method","name":"else?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L24"},"def":{"name":"else?","visibility":"Public","body":"self == Else"}},{"html_id":"eof?-instance-method","name":"eof?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L35"},"def":{"name":"eof?","visibility":"Public","body":"self == EOF"}},{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"equal_equal?-instance-method","name":"equal_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"equal_equal?","visibility":"Public","body":"self == EqualEqual"}},{"html_id":"every?-instance-method","name":"every?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L25"},"def":{"name":"every?","visibility":"Public","body":"self == Every"}},{"html_id":"fat_arrow?-instance-method","name":"fat_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L14"},"def":{"name":"fat_arrow?","visibility":"Public","body":"self == FatArrow"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"function?-instance-method","name":"function?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L20"},"def":{"name":"function?","visibility":"Public","body":"self == Function"}},{"html_id":"greater?-instance-method","name":"greater?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"greater?","visibility":"Public","body":"self == Greater"}},{"html_id":"greater_equal?-instance-method","name":"greater_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"greater_equal?","visibility":"Public","body":"self == GreaterEqual"}},{"html_id":"hashtag?-instance-method","name":"hashtag?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"hashtag?","visibility":"Public","body":"self == Hashtag"}},{"html_id":"hyphen_arrow?-instance-method","name":"hyphen_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"hyphen_arrow?","visibility":"Public","body":"self == HyphenArrow"}},{"html_id":"identifier?-instance-method","name":"identifier?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L2"},"def":{"name":"identifier?","visibility":"Public","body":"self == Identifier"}},{"html_id":"if?-instance-method","name":"if?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"if?","visibility":"Public","body":"self == If"}},{"html_id":"in?-instance-method","name":"in?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L22"},"def":{"name":"in?","visibility":"Public","body":"self == In"}},{"html_id":"integer?-instance-method","name":"integer?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"integer?","visibility":"Public","body":"self == Integer"}},{"html_id":"is?-instance-method","name":"is?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L23"},"def":{"name":"is?","visibility":"Public","body":"self == Is"}},{"html_id":"l_brace?-instance-method","name":"l_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"l_brace?","visibility":"Public","body":"self == LBrace"}},{"html_id":"l_bracket?-instance-method","name":"l_bracket?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"l_bracket?","visibility":"Public","body":"self == LBracket"}},{"html_id":"l_double_arrow?-instance-method","name":"l_double_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"l_double_arrow?","visibility":"Public","body":"self == LDoubleArrow"}},{"html_id":"l_paren?-instance-method","name":"l_paren?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"l_paren?","visibility":"Public","body":"self == LParen"}},{"html_id":"less?-instance-method","name":"less?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"less?","visibility":"Public","body":"self == Less"}},{"html_id":"less_equal?-instance-method","name":"less_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"less_equal?","visibility":"Public","body":"self == LessEqual"}},{"html_id":"minus?-instance-method","name":"minus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"minus?","visibility":"Public","body":"self == Minus"}},{"html_id":"minus_equal?-instance-method","name":"minus_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"minus_equal?","visibility":"Public","body":"self == MinusEqual"}},{"html_id":"minus_minus?-instance-method","name":"minus_minus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L5"},"def":{"name":"minus_minus?","visibility":"Public","body":"self == MinusMinus"}},{"html_id":"mixin?-instance-method","name":"mixin?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L19"},"def":{"name":"mixin?","visibility":"Public","body":"self == Mixin"}},{"html_id":"new?-instance-method","name":"new?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L19"},"def":{"name":"new?","visibility":"Public","body":"self == New"}},{"html_id":"next?-instance-method","name":"next?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L30"},"def":{"name":"next?","visibility":"Public","body":"self == Next"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"of?-instance-method","name":"of?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L22"},"def":{"name":"of?","visibility":"Public","body":"self == Of"}},{"html_id":"percent?-instance-method","name":"percent?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"percent?","visibility":"Public","body":"self == Percent"}},{"html_id":"percent_equal?-instance-method","name":"percent_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"percent_equal?","visibility":"Public","body":"self == PercentEqual"}},{"html_id":"pipe?-instance-method","name":"pipe?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"pipe?","visibility":"Public","body":"self == Pipe"}},{"html_id":"plus?-instance-method","name":"plus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"plus?","visibility":"Public","body":"self == Plus"}},{"html_id":"plus_equal?-instance-method","name":"plus_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"plus_equal?","visibility":"Public","body":"self == PlusEqual"}},{"html_id":"plus_plus?-instance-method","name":"plus_plus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L5"},"def":{"name":"plus_plus?","visibility":"Public","body":"self == PlusPlus"}},{"html_id":"public?-instance-method","name":"public?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"public?","visibility":"Public","body":"self == Public"}},{"html_id":"question?-instance-method","name":"question?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"question?","visibility":"Public","body":"self == Question"}},{"html_id":"r_brace?-instance-method","name":"r_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"r_brace?","visibility":"Public","body":"self == RBrace"}},{"html_id":"r_bracket?-instance-method","name":"r_bracket?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"r_bracket?","visibility":"Public","body":"self == RBracket"}},{"html_id":"r_double_arrow?-instance-method","name":"r_double_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"r_double_arrow?","visibility":"Public","body":"self == RDoubleArrow"}},{"html_id":"r_paren?-instance-method","name":"r_paren?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"r_paren?","visibility":"Public","body":"self == RParen"}},{"html_id":"return?-instance-method","name":"return?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":33,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L33"},"def":{"name":"return?","visibility":"Public","body":"self == Return"}},{"html_id":"slash?-instance-method","name":"slash?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"slash?","visibility":"Public","body":"self == Slash"}},{"html_id":"slash_equal?-instance-method","name":"slash_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"slash_equal?","visibility":"Public","body":"self == SlashEqual"}},{"html_id":"star?-instance-method","name":"star?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"star?","visibility":"Public","body":"self == Star"}},{"html_id":"star_equal?-instance-method","name":"star_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"star_equal?","visibility":"Public","body":"self == StarEqual"}},{"html_id":"string?-instance-method","name":"string?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"string?","visibility":"Public","body":"self == String"}},{"html_id":"this?-instance-method","name":"this?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L14"},"def":{"name":"this?","visibility":"Public","body":"self == This"}},{"html_id":"throw?-instance-method","name":"throw?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L28"},"def":{"name":"throw?","visibility":"Public","body":"self == Throw"}},{"html_id":"tilde?-instance-method","name":"tilde?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"tilde?","visibility":"Public","body":"self == Tilde"}},{"html_id":"type_def?-instance-method","name":"type_def?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"type_def?","visibility":"Public","body":"self == TypeDef"}},{"html_id":"unless?-instance-method","name":"unless?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"unless?","visibility":"Public","body":"self == Unless"}},{"html_id":"until?-instance-method","name":"until?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L26"},"def":{"name":"until?","visibility":"Public","body":"self == Until"}},{"html_id":"use?-instance-method","name":"use?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L34"},"def":{"name":"use?","visibility":"Public","body":"self == Use"}},{"html_id":"when?-instance-method","name":"when?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L32"},"def":{"name":"when?","visibility":"Public","body":"self == When"}},{"html_id":"while?-instance-method","name":"while?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/syntax_type.cr#L26"},"def":{"name":"while?","visibility":"Public","body":"self == While"}}]},{"html_id":"Cosmo/Cosmo/Token","path":"Cosmo/Token.html","kind":"struct","full_name":"Cosmo::Token","name":"Token","abstract":false,"superclass":{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(lexeme:String,type:Cosmo::Syntax,value:Bool|Char|Float32|Float64|Int128|Int16|Int32|Int64|Int8|String|Nil,location:Cosmo::Location)-class-method","name":"new","abstract":false,"args":[{"name":"lexeme","external_name":"lexeme","restriction":"::String"},{"name":"type","external_name":"type","restriction":"::Cosmo::Syntax"},{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"location","external_name":"location","restriction":"::Cosmo::Location"}],"args_string":"(lexeme : String, type : Cosmo::Syntax, value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, location : Cosmo::Location)","args_html":"(lexeme : String, type : Cosmo::Syntax, value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, location : Cosmo::Location)","location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L10"},"def":{"name":"new","args":[{"name":"lexeme","external_name":"lexeme","restriction":"::String"},{"name":"type","external_name":"type","restriction":"::Cosmo::Syntax"},{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"location","external_name":"location","restriction":"::Cosmo::Location"}],"visibility":"Public","body":"_ = allocate\n_.initialize(lexeme, type, value, location)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"lexeme:String-instance-method","name":"lexeme","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L8"},"def":{"name":"lexeme","return_type":"String","visibility":"Public","body":"@lexeme"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L30"},"def":{"name":"to_s","visibility":"Public","body":"\"Token\""}},{"html_id":"type:Syntax-instance-method","name":"type","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L5"},"def":{"name":"type","return_type":"Syntax","visibility":"Public","body":"@type"}},{"html_id":"value:LiteralType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer/token.cr#L6"},"def":{"name":"value","return_type":"LiteralType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/Type","path":"Cosmo/Type.html","kind":"class","full_name":"Cosmo::Type","name":"Type","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/type.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/type.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(name:String)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cosmo/runtime/type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/type.cr#L4"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/runtime/type.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/type.cr#L2"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/type.cr#L7"},"def":{"name":"to_s","visibility":"Public","body":"\"Type<#{name}>\""}}]},{"html_id":"Cosmo/Cosmo/TypeChecker","path":"Cosmo/TypeChecker.html","kind":"module","full_name":"Cosmo::TypeChecker","name":"TypeChecker","abstract":false,"locations":[{"filename":"src/cosmo/runtime/typechecker.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L11"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ALIASES","name":"ALIASES","value":"{} of String => String"},{"id":"REGISTERED","name":"REGISTERED","value":"[] of Type"},{"id":"TYPE_MAP","name":"TYPE_MAP","value":"{Int128 => \"bigint\", Int64 => \"int\", Int32 => \"int\", Int16 => \"int\", Int8 => \"int\", Float64 => \"float\", Float32 => \"float\", String => \"string\", Char => \"char\", Bool => \"bool\", Nil => \"none\", Class => \"class\", Function => \"func\", PutsIntrinsic => \"func\", Array(Int64) => \"int[]\", Array(Int32) => \"int[]\", Array(Int16) => \"int[]\", Array(Int8) => \"int[]\", Array(Float64) => \"float[]\", Array(Float32) => \"float[]\", Array(String) => \"string[]\", Array(Char) => \"char[]\", Array(Bool) => \"bool[]\", Array(Function) => \"fn[]\", Array(ValueType) => \"any[]\", Array => \"any[]\", Hash => \"Table\", Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) => \"Range\"}"}],"extended_modules":[{"html_id":"Cosmo/Cosmo/TypeChecker","kind":"module","full_name":"Cosmo::TypeChecker","name":"TypeChecker"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"alias_type(alias_name:String,original:String):Type-instance-method","name":"alias_type","abstract":false,"args":[{"name":"alias_name","external_name":"alias_name","restriction":"String"},{"name":"original","external_name":"original","restriction":"String"}],"args_string":"(alias_name : String, original : String) : Type","args_html":"(alias_name : String, original : String) : Type","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":102,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L102"},"def":{"name":"alias_type","args":[{"name":"alias_name","external_name":"alias_name","restriction":"String"},{"name":"original","external_name":"original","restriction":"String"}],"return_type":"Type","visibility":"Public","body":"ALIASES[alias_name] = original\nregister_type(alias_name)\n"}},{"html_id":"assert(typedef:String,value:ValueType,token:Token):Nil-instance-method","name":"assert","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, value : ValueType, token : Token) : Nil","args_html":"(typedef : String, value : ValueType, token : Token) : Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":215,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L215"},"def":{"name":"assert","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Nil","visibility":"Public","body":"matches = is?(typedef, value, token)\nif typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n if value.is_a?(Array)\n else\n report_mismatch(typedef, value, token)\n end\n (value.as(Array)).each do |v|\n assert(value_type, v, token)\n end\nelse\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first.strip\n value_type = types.last.strip\n if value.is_a?(Hash)\n else\n report_mismatch(typedef, value, token)\n end\n internal = cast_hash(value)\n internal.each do |k, v|\n assert(key_type, k, token)\n assert(value_type, v, token)\n end\n else\n if typedef.starts_with?(\"(\")\n ungrouped_type = typedef[1..-2]\n assert(ungrouped_type, value, token)\n else\n if matches\n else\n report_mismatch(typedef, value, token)\n end\n end\n end\nend\n"}},{"html_id":"cast(value:T):ValueTypeforallT-instance-method","name":"cast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"T"}],"args_string":"(value : T) : ValueType forall T","args_html":"(value : T) : ValueType forall T","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":84,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L84"},"def":{"name":"cast","args":[{"name":"value","external_name":"value","restriction":"T"}],"return_type":"ValueType","visibility":"Public","body":"value.is_a?(Array) ? cast_array(value) : value.is_a?(Hash) ? cast_hash(value) : value.is_a?(Int128) && value <= Int64::MAX ? value.to_i64 : value.as(ValueType)"}},{"html_id":"cast_array(arr:Array(T)):Array(ValueType)forallT-instance-method","name":"cast_array","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(T)"}],"args_string":"(arr : Array(T)) : Array(ValueType) forall T","args_html":"(arr : Array(T)) : Array(ValueType) forall T","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L74"},"def":{"name":"cast_array","args":[{"name":"arr","external_name":"arr","restriction":"Array(T)"}],"return_type":"Array(ValueType)","visibility":"Public","body":"arr.map do |e|\n cast(e)\nend"}},{"html_id":"cast_hash(hash:Hash(K,V)):Hash(ValueType,ValueType)forallK,V-instance-method","name":"cast_hash","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":"Hash(K, V)"}],"args_string":"(hash : Hash(K, V)) : Hash(ValueType, ValueType) forall K, V","args_html":"(hash : Hash(K, V)) : Hash(ValueType, ValueType) forall K, V","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":78,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L78"},"def":{"name":"cast_hash","args":[{"name":"hash","external_name":"hash","restriction":"Hash(K, V)"}],"return_type":"Hash(ValueType, ValueType)","visibility":"Public","body":"res = {} of ValueType => ValueType\nhash.each do |k, v|\n res[cast(k)] = cast(v)\nend\nres\n"}},{"html_id":"get_mapped(t:CrystalClass):String-instance-method","name":"get_mapped","abstract":false,"args":[{"name":"t","external_name":"t","restriction":"CrystalClass"}],"args_string":"(t : CrystalClass) : String","args_html":"(t : CrystalClass) : String","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L53"},"def":{"name":"get_mapped","args":[{"name":"t","external_name":"t","restriction":"CrystalClass"}],"return_type":"String","visibility":"Public","body":"if TYPE_MAP.has_key?(t)\nelse\n raise(\"Unhandled type to map: #{t}\")\nend\nTYPE_MAP[t]\n"}},{"html_id":"get_registered_type(name:String,token:Token):Type|Nil-instance-method","name":"get_registered_type","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(name : String, token : Token) : Type | Nil","args_html":"(name : String, token : Token) : Type | Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":131,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L131"},"def":{"name":"get_registered_type","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Type | ::Nil","visibility":"Public","body":"type = get_registered_type?(name, token)\nif type.nil?\n Logger.report_error(\"Could not resolve type\", \"'#{name}'\", token)\nend\ntype\n"}},{"html_id":"get_registered_type?(typedef:String,token:Token):Type|Nil-instance-method","name":"get_registered_type?","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, token : Token) : Type | Nil","args_html":"(typedef : String, token : Token) : Type | Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":107,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L107"},"def":{"name":"get_registered_type?","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Type | ::Nil","visibility":"Public","body":"if typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n if get_registered_type?(value_type, token).nil?\n else\n Type.new(typedef)\n end\nelse\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first\n value_type = types.last\n if get_registered_type?(key_type, token).nil? && get_registered_type?(value_type, token).nil?\n else\n Type.new(typedef)\n end\n else\n if typedef.includes?(\"|\")\n types = typedef.split(\"|\")\n resolved = true\n types.each do |t|\n if get_registered_type?(t, token).nil?\n resolved = false\n break\n end\n end\n if resolved\n Type.new(typedef)\n end\n else\n REGISTERED.find do |t|\n t.name == typedef\n end\n end\n end\nend"}},{"html_id":"is?(typedef:String,value,token:Token):Bool-instance-method","name":"is?","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":""},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, value, token : Token) : Bool","args_html":"(typedef : String, value, token : Token) : Bool","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":137,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L137"},"def":{"name":"is?","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":""},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Bool","visibility":"Public","body":"case typedef\nwhen \"Range\"\n value.is_a?(Range)\nwhen \"class\"\n value.is_a?(Class)\nwhen \"type\"\n value.is_a?(Type)\nwhen \"func\"\n value.is_a?(Function) || value.is_a?(IntrinsicFunction)\nwhen \"bigint\"\n value.is_a?(Int)\nwhen \"int\"\n value.is_a?(Int64 | Int32 | Int16 | Int8)\nwhen \"float\"\n value.is_a?(Float)\nwhen \"bool\"\n value.is_a?(Bool)\nwhen \"string\"\n value.is_a?(String)\nwhen \"char\"\n value.is_a?(Char)\nwhen \"none\", \"void\"\n value == nil\nwhen \"any\"\n true\nelse\n matches = false\n if typedef.starts_with?(\"(\")\n ungrouped_type = typedef[1..-2]\n matches = is?(ungrouped_type, value, token)\n else\n if typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n matches = value.is_a?(Array)\n if value.is_a?(Array)\n (value.as(Array)).each do |v|\n matches && (matches = is?(value_type, v, token))\n end\n end\n else\n if typedef.includes?(\"|\")\n types = typedef.split(\"|\")\n types.each do |type|\n if is?(type.strip, value, token)\n matches = true\n end\n end\n else\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first.strip\n value_type = types.last.strip\n matches = value.is_a?(Hash)\n if value.is_a?(Hash)\n (value.as(Hash)).each do |k, v|\n matches && (matches = is?(key_type, k, token))\n matches && (matches = is?(value_type, v, token))\n end\n end\n else\n if typedef.ends_with?(\"?\")\n non_nullable_type = typedef[0..-2]\n matches = is?(non_nullable_type + \"|void\", value, token)\n else\n if matches\n else\n registered = get_registered_type?(typedef, token)\n if registered.nil?\n matches = false\n else\n if ALIASES.has_key?(registered.name)\n unaliased = ALIASES[registered.name]\n matches = is?(unaliased, value, token)\n else\n matches = false\n end\n end\n end\n end\n end\n end\n end\n end\n matches\nend"}},{"html_id":"register_intrinsics-instance-method","name":"register_intrinsics","abstract":false,"location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":60,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L60"},"def":{"name":"register_intrinsics","visibility":"Public","body":"register_type(\"Range\")\nregister_type(\"type\")\nregister_type(\"class\")\nregister_type(\"func\")\nregister_type(\"bigint\")\nregister_type(\"int\")\nregister_type(\"float\")\nregister_type(\"bool\")\nregister_type(\"string\")\nregister_type(\"char\")\nregister_type(\"void\")\n"}},{"html_id":"register_type(name:String):Type-instance-method","name":"register_type","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : Type","args_html":"(name : String) : Type","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":96,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L96"},"def":{"name":"register_type","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"Type","visibility":"Public","body":"type = Type.new(name)\nREGISTERED << type\ntype\n"}},{"html_id":"reset-instance-method","name":"reset","abstract":false,"location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":90,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L90"},"def":{"name":"reset","visibility":"Public","body":"ALIASES.clear\nREGISTERED.clear\nregister_intrinsics\n"}}]},{"html_id":"Cosmo/Cosmo/ValueType","path":"Cosmo/ValueType.html","kind":"alias","full_name":"Cosmo::ValueType","name":"ValueType","abstract":false,"locations":[{"filename":"src/cosmo/runtime/typechecker.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/typechecker.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":true,"aliased":"(Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","aliased_html":"Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil","const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"}}]},{"html_id":"Cosmo/FnType","path":"FnType.html","kind":"enum","full_name":"FnType","name":"FnType","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/resolver.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Fn","name":"Fn","value":"1"}],"instance_methods":[{"html_id":"fn?-instance-method","name":"fn?","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L3"},"def":{"name":"fn?","visibility":"Public","body":"self == Fn"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/runtime/resolver.cr#L2"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"Cosmo/LiteralType","path":"LiteralType.html","kind":"alias","full_name":"LiteralType","name":"LiteralType","abstract":false,"locations":[{"filename":"src/cosmo/syntax/lexer.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/3225f20804ff8554ff18dc9cee49916f4e4d41ed/src/cosmo/syntax/lexer.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":true,"aliased":"(Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil)","aliased_html":"Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil","const":false}]}}) \ No newline at end of file +crystal_doc_search_index_callback({"repository_name":"Cosmo","body":"![build](https://github.com/R-unic/cosmo/actions/workflows/crystal.yml/badge.svg)\n# Cosmo\n\nCosmo is a statically-typed programming language written in pure Crystal.
                            \nWe have an [extension for VS code](https://marketplace.visualstudio.com/items?itemName=cosmo.vscode-cosmo) ([source](https://github.com/R-unic/vscode-cosmo)), however it currently only features syntax highlighting.\n\n## Things I Gotta Do\n\n- Enums\n- Throw when defining an already-defined class\n- `uint` type\n- String interpolation literals\n- Allow \"!\" character identifiers for macros\n- Stack trace\n- Package manager\n- Performance boosts lol\n * Parser\n * Interpreter (!!)\n- Multiple assignment\n- Somehow typecheck blocks before execution\n- Fix weird expression parsing (`[0].123` evaluates to 0.123??)\n- Literal wrapper classes (vector, table) for utility methods (filter, map, etc)\n- Interfaces\n- Classes\n * single inheritance\n * mixins\n- Better type system\n * generics\n * casting\n * intersections\n\n## Things I Might Do\n\n- Make declarations immutable by default and replace `const` with `mut`\n- Make into a VM or compiler\n- C bindings\n\n## Installation\n\n1. Install [Crystal](https://crystal-lang.org/install/).\n2. Run `sudo make install`.\n3. Assert everything is working by running `cosmo -h`\n\n## Contributing\n\n1. Fork it ()\n2. Create your feature branch (`git checkout -b my-new-feature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Test your code (`make test`)\n5. Push to the branch (`make publish`)\n6. Create a new Pull Request\n\n## Contributors\n\n- [R-unic](https://github.com/R-unic) - creator and maintainer\n","program":{"html_id":"Cosmo/toplevel","path":"toplevel.html","kind":"module","full_name":"Top Level Namespace","name":"Top Level Namespace","abstract":false,"ancestors":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"locations":[],"repository_name":"Cosmo","program":true,"enum":false,"alias":false,"const":false,"constants":[{"id":"MAX_INTRINSIC_PARAMS","name":"MAX_INTRINSIC_PARAMS","value":"255"},{"id":"TAB","name":"TAB","value":"\" \""}],"included_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"extended_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"class_methods":[{"html_id":"get_elapsed(start:Time::Span,finish:Time::Span):String-class-method","name":"get_elapsed","abstract":false,"args":[{"name":"start","external_name":"start","restriction":"Time::Span"},{"name":"finish","external_name":"finish","restriction":"Time::Span"}],"args_string":"(start : Time::Span, finish : Time::Span) : String","args_html":"(start : Time::Span, finish : Time::Span) : String","location":{"filename":"src/util.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/util.cr#L4"},"def":{"name":"get_elapsed","args":[{"name":"start","external_name":"start","restriction":"Time::Span"},{"name":"finish","external_name":"finish","restriction":"Time::Span"}],"return_type":"String","visibility":"Public","body":"span = finish - start\nms = span.total_milliseconds.round(5)\nif ms > 1000\n return \"#{(ms / 1000).round(2)} seconds\"\nend\n\"#{ms}ms\"\n"}},{"html_id":"get_shard:YAML::Any-class-method","name":"get_shard","doc":"Returns `shard.yml` as a `YAML::Any`","summary":"

                            Returns shard.yml as a YAML::Any

                            ","abstract":false,"location":{"filename":"src/util.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/util.cr#L12"},"def":{"name":"get_shard","return_type":"YAML::Any","visibility":"Public","body":"raw_yaml = File.read(File.join(File.dirname(\"/home/runic/Dev/crystal/cosmo/src/util.cr\"), \"..\", \"shard.yml\"))\nYAML.parse(raw_yaml)\n"}}],"types":[{"html_id":"Cosmo/Cosmo","path":"Cosmo.html","kind":"module","full_name":"Cosmo","name":"Cosmo","abstract":false,"locations":[{"filename":"src/cosmo.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo.cr#L7"},{"filename":"src/cosmo/logger.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L1"},{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L3"},{"filename":"src/cosmo/runtime/typechecker.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L6"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"Version","name":"Version","value":"\"v\" + get_shard[\"version\"].to_s"}],"extended_modules":[{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"}],"instance_methods":[{"html_id":"read_file(path:String)-instance-method","name":"read_file","doc":"Reads a file at `path` and returns it's contents","summary":"

                            Reads a file at path and returns it's contents

                            ","abstract":false,"args":[{"name":"path","external_name":"path","restriction":"String"}],"args_string":"(path : String)","args_html":"(path : String)","location":{"filename":"src/cosmo.cr","line_number":48,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo.cr#L48"},"def":{"name":"read_file","args":[{"name":"path","external_name":"path","restriction":"String"}],"visibility":"Public","body":"begin\n contents = File.read(path)\n read_source(contents, file_path: path)\nrescue ex : Exception\n abort(\"Failed to read file \\\"#{path}\\\": \\n#{ex.message}\\n\\t#{ex.backtrace.join(\"\\n\\t\")}\", 1)\nend"}},{"html_id":"read_source(source:String,file_path:String):ValueType-instance-method","name":"read_source","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(source : String, file_path : String) : ValueType","args_html":"(source : String, file_path : String) : ValueType","location":{"filename":"src/cosmo.cr","line_number":43,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo.cr#L43"},"def":{"name":"read_source","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@@interpreter.interpret(source, file_path)"}},{"html_id":"run_repl-instance-method","name":"run_repl","doc":"Starts the REPL","summary":"

                            Starts the REPL

                            ","abstract":false,"location":{"filename":"src/cosmo.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo.cr#L77"},"def":{"name":"run_repl","visibility":"Public","body":"puts(\"Welcome to the #{rainbow(\"Cosmo\")} REPL\")\nloop do\n line = read_line\n if line.nil?\n break\n end\n result = read_source(line, file_path: \"repl\")\n puts(result.is_a?(Hash) ? Stringify.hashmap(result.as(Hash(ValueType, ValueType))) : result.to_s)\nend\n"}}],"types":[{"html_id":"Cosmo/Cosmo/AST","path":"Cosmo/AST.html","kind":"module","full_name":"Cosmo::AST","name":"AST","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L3"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/AST/Expression","path":"Cosmo/AST/Expression.html","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression","abstract":false,"ancestors":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"types":[{"html_id":"Cosmo/Cosmo/AST/Expression/Access","path":"Cosmo/AST/Expression/Access.html","kind":"class","full_name":"Cosmo::AST::Expression::Access","name":"Access","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L77"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,key:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::Token"}],"args_string":"(object : Cosmo::AST::Expression::Base, key : Cosmo::Token)","args_html":"(object : Cosmo::AST::Expression::Base, key : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":81,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L81"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, key)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":84,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L84"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_access_expr(self)"}},{"html_id":"key:Token-instance-method","name":"key","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L79"},"def":{"name":"key","return_type":"Token","visibility":"Public","body":"@key"}},{"html_id":"object:Base-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":78,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L78"},"def":{"name":"object","return_type":"Base","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":92,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L92"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Access<\\n\" + \" #{TAB * indent}object: #{@object.to_s(indent + 1)},\\n\") + \" #{TAB * indent}key: #{@key.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":88,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L88"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","path":"Cosmo/AST/Expression/Base.html","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L22"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/Access","kind":"class","full_name":"Cosmo::AST::Expression::Access","name":"Access"},{"html_id":"Cosmo/Cosmo/AST/Expression/BinaryOp","kind":"class","full_name":"Cosmo::AST::Expression::BinaryOp","name":"BinaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/CompoundAssignment","kind":"class","full_name":"Cosmo::AST::Expression::CompoundAssignment","name":"CompoundAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/FunctionCall","kind":"class","full_name":"Cosmo::AST::Expression::FunctionCall","name":"FunctionCall"},{"html_id":"Cosmo/Cosmo/AST/Expression/Index","kind":"class","full_name":"Cosmo::AST::Expression::Index","name":"Index"},{"html_id":"Cosmo/Cosmo/AST/Expression/Is","kind":"class","full_name":"Cosmo::AST::Expression::Is","name":"Is"},{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/New","kind":"class","full_name":"Cosmo::AST::Expression::New","name":"New"},{"html_id":"Cosmo/Cosmo/AST/Expression/Parameter","kind":"class","full_name":"Cosmo::AST::Expression::Parameter","name":"Parameter"},{"html_id":"Cosmo/Cosmo/AST/Expression/PropertyAssignment","kind":"class","full_name":"Cosmo::AST::Expression::PropertyAssignment","name":"PropertyAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/RangeLiteral","kind":"class","full_name":"Cosmo::AST::Expression::RangeLiteral","name":"RangeLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/TableLiteral","kind":"class","full_name":"Cosmo::AST::Expression::TableLiteral","name":"TableLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/TernaryOp","kind":"class","full_name":"Cosmo::AST::Expression::TernaryOp","name":"TernaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/This","kind":"class","full_name":"Cosmo::AST::Expression::This","name":"This"},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeAlias","kind":"class","full_name":"Cosmo::AST::Expression::TypeAlias","name":"TypeAlias"},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeRef","kind":"class","full_name":"Cosmo::AST::Expression::TypeRef","name":"TypeRef"},{"html_id":"Cosmo/Cosmo/AST/Expression/UnaryOp","kind":"class","full_name":"Cosmo::AST::Expression::UnaryOp","name":"UnaryOp"},{"html_id":"Cosmo/Cosmo/AST/Expression/Var","kind":"class","full_name":"Cosmo::AST::Expression::Var","name":"Var"},{"html_id":"Cosmo/Cosmo/AST/Expression/VarAssignment","kind":"class","full_name":"Cosmo::AST::Expression::VarAssignment","name":"VarAssignment"},{"html_id":"Cosmo/Cosmo/AST/Expression/VarDeclaration","kind":"class","full_name":"Cosmo::AST::Expression::VarDeclaration","name":"VarDeclaration"},{"html_id":"Cosmo/Cosmo/AST/Expression/VectorLiteral","kind":"class","full_name":"Cosmo::AST::Expression::VectorLiteral","name":"VectorLiteral"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"instance_methods":[{"html_id":"accept(visitor:Visitor(R))forallR-instance-method","name":"accept","abstract":true,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) forall R","args_html":"(visitor : Visitor(R)) forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L23"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BigIntLiteral","path":"Cosmo/AST/Expression/BigIntLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::BigIntLiteral","name":"BigIntLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":500,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L500"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Int128,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int128"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Int128, token)","args_html":"(value : Int128, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":501,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L501"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Int128"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":502,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L502"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BinaryOp","path":"Cosmo/AST/Expression/BinaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::BinaryOp","name":"BinaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":332,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L332"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(left:Cosmo::AST::Expression::Base,operator:Cosmo::Token,right:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"left","external_name":"left","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"right","external_name":"right","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(left : Cosmo::AST::Expression::Base, operator : Cosmo::Token, right : Cosmo::AST::Expression::Base)","args_html":"(left : Cosmo::AST::Expression::Base, operator : Cosmo::Token, right : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":337,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L337"},"def":{"name":"new","args":[{"name":"left","external_name":"left","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"right","external_name":"right","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(left, operator, right)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":340,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L340"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_binary_op_expr(self)"}},{"html_id":"left:Base-instance-method","name":"left","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":333,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L333"},"def":{"name":"left","return_type":"Base","visibility":"Public","body":"@left"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L334"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"right:Base-instance-method","name":"right","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L335"},"def":{"name":"right","return_type":"Base","visibility":"Public","body":"@right"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":348,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L348"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Binary<\\n\" + \" #{TAB * indent}left: #{@left.to_s(indent + 1)},\\n\") + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}right: #{@right.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":344,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L344"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@left.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/BooleanLiteral","path":"Cosmo/AST/Expression/BooleanLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::BooleanLiteral","name":"BooleanLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":521,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L521"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Bool,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Bool"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Bool, token)","args_html":"(value : Bool, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":522,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L522"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Bool"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":523,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L523"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/CharLiteral","path":"Cosmo/AST/Expression/CharLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::CharLiteral","name":"CharLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":493,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L493"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Char,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Char"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Char, token)","args_html":"(value : Char, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":494,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L494"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Char"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":495,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L495"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<'#{@value}'>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/CompoundAssignment","path":"Cosmo/AST/Expression/CompoundAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::CompoundAssignment","name":"CompoundAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":240,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L240"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(name:Cosmo::AST::Expression::Base,operator:Cosmo::Token,value:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(name : Cosmo::AST::Expression::Base, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)","args_html":"(name : Cosmo::AST::Expression::Base, operator : Cosmo::Token, value : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":245,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L245"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name, operator, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":248,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L248"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_compound_assignment_expr(self)"}},{"html_id":"name:Var|Index|Access-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":241,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L241"},"def":{"name":"name","return_type":"Var | Index | Access","visibility":"Public","body":"@name"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":242,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L242"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":256,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L256"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"CompoundAssignment<\\n\" + \" #{TAB * indent}name: #{@name.to_s(indent + 1)},\\n\") + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":252,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L252"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L243"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/FloatLiteral","path":"Cosmo/AST/Expression/FloatLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::FloatLiteral","name":"FloatLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":514,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L514"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Float64|Float32|Float16|Float8,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Float64 | Float32 | Float16 | Float8"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Float64 | Float32 | Float16 | Float8, token)","args_html":"(value : Float64 | Float32 | Float16 | Float8, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":515,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L515"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Float64 | Float32 | Float16 | Float8"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":516,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L516"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/FunctionCall","path":"Cosmo/AST/Expression/FunctionCall.html","kind":"class","full_name":"Cosmo::AST::Expression::FunctionCall","name":"FunctionCall","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":190,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L190"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(callee:Cosmo::AST::Expression::Base,arguments:Array(Cosmo::AST::Expression::Base))-class-method","name":"new","abstract":false,"args":[{"name":"callee","external_name":"callee","restriction":"::Cosmo::AST::Expression::Base"},{"name":"arguments","external_name":"arguments","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"args_string":"(callee : Cosmo::AST::Expression::Base, arguments : Array(Cosmo::AST::Expression::Base))","args_html":"(callee : Cosmo::AST::Expression::Base, arguments : Array(Cosmo::AST::Expression::Base))","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":194,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L194"},"def":{"name":"new","args":[{"name":"callee","external_name":"callee","restriction":"::Cosmo::AST::Expression::Base"},{"name":"arguments","external_name":"arguments","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(callee, arguments)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":197,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L197"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_fn_call_expr(self)"}},{"html_id":"arguments:Array(Base)-instance-method","name":"arguments","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L192"},"def":{"name":"arguments","return_type":"Array(Base)","visibility":"Public","body":"@arguments"}},{"html_id":"callee:Base-instance-method","name":"callee","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L191"},"def":{"name":"callee","return_type":"Base","visibility":"Public","body":"@callee"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":205,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L205"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((((\"FunctionCall<\\n\" + \" #{TAB * indent}var: #{@callee.to_s(indent + 1)},\\n\") + \" #{TAB * indent}arguments: [\\n\") + \" #{TAB * indent}#{@arguments.map(&.to_s(indent + 2)).join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}]\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":201,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L201"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@callee.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Index","path":"Cosmo/AST/Expression/Index.html","kind":"class","full_name":"Cosmo::AST::Expression::Index","name":"Index","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":100,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L100"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,key:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(object : Cosmo::AST::Expression::Base, key : Cosmo::AST::Expression::Base)","args_html":"(object : Cosmo::AST::Expression::Base, key : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":104,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L104"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"key","external_name":"key","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, key)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":107,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L107"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_index_expr(self)"}},{"html_id":"key:Base-instance-method","name":"key","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":102,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L102"},"def":{"name":"key","return_type":"Base","visibility":"Public","body":"@key"}},{"html_id":"object:Base-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L101"},"def":{"name":"object","return_type":"Base","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L115"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Index<\\n\" + \" #{TAB * indent}object: #{@object.to_s(indent + 1)},\\n\") + \" #{TAB * indent}key: #{@key.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":111,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L111"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/IntLiteral","path":"Cosmo/AST/Expression/IntLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::IntLiteral","name":"IntLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":507,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L507"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Int64|Int32|Int16|Int8,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Int64 | Int32 | Int16 | Int8"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Int64 | Int32 | Int16 | Int8, token)","args_html":"(value : Int64 | Int32 | Int16 | Int8, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":508,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L508"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Int64 | Int32 | Int16 | Int8"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":509,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L509"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<#{@value}>\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Is","path":"Cosmo/AST/Expression/Is.html","kind":"class","full_name":"Cosmo::AST::Expression::Is","name":"Is","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L123"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Cosmo::AST::Expression::Base,type:Cosmo::AST::Expression::TypeRef)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"type","external_name":"type","restriction":"::Cosmo::AST::Expression::TypeRef"}],"args_string":"(value : Cosmo::AST::Expression::Base, type : Cosmo::AST::Expression::TypeRef)","args_html":"(value : Cosmo::AST::Expression::Base, type : Cosmo::AST::Expression::TypeRef)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L127"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"type","external_name":"type","restriction":"::Cosmo::AST::Expression::TypeRef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, type)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L130"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_is_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L138"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Is<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)},\\n\") + \" #{TAB * indent}type: #{@type.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":134,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L134"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@value.token"}},{"html_id":"type:TypeRef-instance-method","name":"type","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":125,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L125"},"def":{"name":"type","return_type":"TypeRef","visibility":"Public","body":"@type"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":124,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L124"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","path":"Cosmo/AST/Expression/Literal.html","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":412,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L412"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/BigIntLiteral","kind":"class","full_name":"Cosmo::AST::Expression::BigIntLiteral","name":"BigIntLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/BooleanLiteral","kind":"class","full_name":"Cosmo::AST::Expression::BooleanLiteral","name":"BooleanLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/CharLiteral","kind":"class","full_name":"Cosmo::AST::Expression::CharLiteral","name":"CharLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/FloatLiteral","kind":"class","full_name":"Cosmo::AST::Expression::FloatLiteral","name":"FloatLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/IntLiteral","kind":"class","full_name":"Cosmo::AST::Expression::IntLiteral","name":"IntLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/NoneLiteral","kind":"class","full_name":"Cosmo::AST::Expression::NoneLiteral","name":"NoneLiteral"},{"html_id":"Cosmo/Cosmo/AST/Expression/StringLiteral","kind":"class","full_name":"Cosmo::AST::Expression::StringLiteral","name":"StringLiteral"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Bool|Char|Float32|Float64|Int128|Int16|Int32|Int64|Int8|String|Nil,token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, token : Cosmo::Token)","args_html":"(value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":416,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L416"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":418,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L418"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_literal_expr(self)"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":413,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L413"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}},{"html_id":"value:LiteralType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":414,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L414"},"def":{"name":"value","return_type":"LiteralType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/New","path":"Cosmo/AST/Expression/New.html","kind":"class","full_name":"Cosmo::AST::Expression::New","name":"New","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":373,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L373"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(token:Cosmo::Token,operand:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(token : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","args_html":"(token : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":377,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L377"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token, operand)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":380,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L380"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_new_expr(self)"}},{"html_id":"operand:Var|FunctionCall-instance-method","name":"operand","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":375,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L375"},"def":{"name":"operand","return_type":"Var | FunctionCall","visibility":"Public","body":"@operand"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":384,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L384"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"New\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":374,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L374"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/NoneLiteral","path":"Cosmo/AST/Expression/NoneLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::NoneLiteral","name":"NoneLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":528,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L528"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:Nil,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"Nil"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : Nil, token)","args_html":"(value : Nil, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":529,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L529"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"Nil"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":530,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L530"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Parameter","path":"Cosmo/AST/Expression/Parameter.html","kind":"class","full_name":"Cosmo::AST::Expression::Parameter","name":"Parameter","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":215,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L215"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(typedef:Cosmo::Token,identifier:Cosmo::Token,const:Bool,default_value:Cosmo::AST::Expression::Base|Nil=NoneLiteral.new(nil,identifier))-class-method","name":"new","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"const","external_name":"const","restriction":"::Bool"},{"name":"default_value","default_value":"NoneLiteral.new(nil, identifier)","external_name":"default_value","restriction":"::Cosmo::AST::Expression::Base | ::Nil"}],"args_string":"(typedef : Cosmo::Token, identifier : Cosmo::Token, const : Bool, default_value : Cosmo::AST::Expression::Base | Nil = NoneLiteral.new(nil, identifier))","args_html":"(typedef : Cosmo::Token, identifier : Cosmo::Token, const : Bool, default_value : Cosmo::AST::Expression::Base | Nil = NoneLiteral.new(nil, identifier))","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":221,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L221"},"def":{"name":"new","args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"const","external_name":"const","restriction":"::Bool"},{"name":"default_value","default_value":"NoneLiteral.new(nil, identifier)","external_name":"default_value","restriction":"::Cosmo::AST::Expression::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(typedef, identifier, const, default_value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":224,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L224"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"const?:Bool-instance-method","name":"const?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":218,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L218"},"def":{"name":"const?","return_type":"Bool","visibility":"Public","body":"@const"}},{"html_id":"default_value:Base|Nil-instance-method","name":"default_value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":219,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L219"},"def":{"name":"default_value","return_type":"Base | ::Nil","visibility":"Public","body":"@default_value"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L217"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":231,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L231"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Parameter<\\n\" + \" #{TAB * indent}typedef: #{@typedef.value},\\n\") + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}value: #{@default_value.nil? ? \"none\" : @default_value.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":227,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L227"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"typedef:Token-instance-method","name":"typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L216"},"def":{"name":"typedef","return_type":"Token","visibility":"Public","body":"@typedef"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/PropertyAssignment","path":"Cosmo/AST/Expression/PropertyAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::PropertyAssignment","name":"PropertyAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L52"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(object:Cosmo::AST::Expression::Base,value:Array(Cosmo::ValueType)|Bool|Char|Cosmo::AST::Expression::Base|Cosmo::Callable|Cosmo::Class|Cosmo::ClassInstance|Cosmo::Type|Float32|Float64|Hash(Cosmo::ValueType,Cosmo::ValueType)|Int128|Int16|Int32|Int64|Int8|Range(Int128|Int16|Int32|Int64|Int8,Int128|Int16|Int32|Int64|Int8)|String|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"value","external_name":"value","restriction":"::Array(::Cosmo::ValueType) | ::Bool | ::Char | ::Cosmo::AST::Expression::Base | ::Cosmo::Callable | ::Cosmo::Class | ::Cosmo::ClassInstance | ::Cosmo::Type | ::Float32 | ::Float64 | ::Hash(::Cosmo::ValueType, ::Cosmo::ValueType) | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::Range(::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8, ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8) | ::String | ::Nil"}],"args_string":"(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","args_html":"(object : Cosmo::AST::Expression::Base, value : Array(Cosmo::ValueType) | Bool | Char | Cosmo::AST::Expression::Base | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L56"},"def":{"name":"new","args":[{"name":"object","external_name":"object","restriction":"::Cosmo::AST::Expression::Base"},{"name":"value","external_name":"value","restriction":"::Array(::Cosmo::ValueType) | ::Bool | ::Char | ::Cosmo::AST::Expression::Base | ::Cosmo::Callable | ::Cosmo::Class | ::Cosmo::ClassInstance | ::Cosmo::Type | ::Float32 | ::Float64 | ::Hash(::Cosmo::ValueType, ::Cosmo::ValueType) | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::Range(::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8, ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8) | ::String | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(object, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L59"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_property_assignment_expr(self)"}},{"html_id":"object:Access|Index-instance-method","name":"object","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L53"},"def":{"name":"object","return_type":"Access | Index","visibility":"Public","body":"@object"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":67,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L67"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"if value.is_a?(Base)\n value_s = (@value.as(Base)).to_s(indent + 1)\nelse\n value_s = @value.to_s\nend\n\"PropertyAssignment\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L63"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@object.token"}},{"html_id":"value:Base|ValueType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L54"},"def":{"name":"value","return_type":"Base | ValueType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/RangeLiteral","path":"Cosmo/AST/Expression/RangeLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::RangeLiteral","name":"RangeLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":423,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L423"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(from:Cosmo::AST::Expression::Base,to:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"from","external_name":"from","restriction":"::Cosmo::AST::Expression::Base"},{"name":"to","external_name":"to","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(from : Cosmo::AST::Expression::Base, to : Cosmo::AST::Expression::Base)","args_html":"(from : Cosmo::AST::Expression::Base, to : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":427,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L427"},"def":{"name":"new","args":[{"name":"from","external_name":"from","restriction":"::Cosmo::AST::Expression::Base"},{"name":"to","external_name":"to","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(from, to)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":430,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L430"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_range_literal_expr(self)"}},{"html_id":"from:Base-instance-method","name":"from","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":424,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L424"},"def":{"name":"from","return_type":"Base","visibility":"Public","body":"@from"}},{"html_id":"to:Base-instance-method","name":"to","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":425,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L425"},"def":{"name":"to","return_type":"Base","visibility":"Public","body":"@to"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":438,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L438"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"RangeLiteral<\\n\" + \" #{TAB * indent}from: #{@from.to_s(indent + 1)},\\n\") + \" #{TAB * indent}to: #{@to.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":434,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L434"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@from.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/StringLiteral","path":"Cosmo/AST/Expression/StringLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::StringLiteral","name":"StringLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Literal","kind":"class","full_name":"Cosmo::AST::Expression::Literal","name":"Literal"},{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":486,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L486"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(value:String,token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"token","external_name":"token","restriction":""}],"args_string":"(value : String, token)","args_html":"(value : String, token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":487,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L487"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"String"},{"name":"token","external_name":"token","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":488,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L488"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Literal<\\\"#{@value}\\\">\""}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TableLiteral","path":"Cosmo/AST/Expression/TableLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::TableLiteral","name":"TableLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":446,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L446"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(hashmap:Hash(Cosmo::AST::Expression::Base,Cosmo::AST::Expression::Base),token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"hashmap","external_name":"hashmap","restriction":"::Hash(::Cosmo::AST::Expression::Base, ::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(hashmap : Hash(Cosmo::AST::Expression::Base, Cosmo::AST::Expression::Base), token : Cosmo::Token)","args_html":"(hashmap : Hash(Cosmo::AST::Expression::Base, Cosmo::AST::Expression::Base), token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":450,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L450"},"def":{"name":"new","args":[{"name":"hashmap","external_name":"hashmap","restriction":"::Hash(::Cosmo::AST::Expression::Base, ::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(hashmap, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":452,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L452"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_table_literal_expr(self)"}},{"html_id":"hashmap:Hash(Base,Base)-instance-method","name":"hashmap","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":448,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L448"},"def":{"name":"hashmap","return_type":"Hash(Base, Base)","visibility":"Public","body":"@hashmap"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":456,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L456"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"s = \"Literal<{\\n\"\n@hashmap.keys.each do |k|\n s = s + (TAB * (indent + 1))\n s = s + (k.to_s(indent + 1))\n s = s + \" -> \"\n s = s + (@hashmap[k].to_s(indent + 1))\n s = s + \"\\n\"\nend\ns + \"#{TAB * indent}}>\"\n"}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":447,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L447"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TernaryOp","path":"Cosmo/AST/Expression/TernaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::TernaryOp","name":"TernaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L26"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(condition:Cosmo::AST::Expression::Base,operator:Cosmo::Token,then:Cosmo::AST::Expression::Base,else:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Expression::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(condition : Cosmo::AST::Expression::Base, operator : Cosmo::Token, then : Cosmo::AST::Expression::Base, else : Cosmo::AST::Expression::Base)","args_html":"(condition : Cosmo::AST::Expression::Base, operator : Cosmo::Token, then : Cosmo::AST::Expression::Base, else : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L32"},"def":{"name":"new","args":[{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Expression::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(condition, operator, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L35"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_ternary_op_expr(self)"}},{"html_id":"condition:Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L27"},"def":{"name":"condition","return_type":"Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L30"},"def":{"name":"else","return_type":"Base","visibility":"Public","body":"@else"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L28"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L29"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":43,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L43"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Ternary<\\n\" + \" #{TAB * indent}left: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)}\\n\") + \" #{TAB * indent}else: #{@else.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":39,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L39"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/This","path":"Cosmo/AST/Expression/This.html","kind":"class","full_name":"Cosmo::AST::Expression::This","name":"This","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":357,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L357"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(token:Cosmo::Token,class_name:String)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"},{"name":"class_name","external_name":"class_name","restriction":"::String"}],"args_string":"(token : Cosmo::Token, class_name : String)","args_html":"(token : Cosmo::Token, class_name : String)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L361"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"},{"name":"class_name","external_name":"class_name","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token, class_name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":364,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L364"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_this_expr(self)"}},{"html_id":"class_name:String-instance-method","name":"class_name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":359,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L359"},"def":{"name":"class_name","return_type":"String","visibility":"Public","body":"@class_name"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":368,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L368"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"This\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":358,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L358"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeAlias","path":"Cosmo/AST/Expression/TypeAlias.html","kind":"class","full_name":"Cosmo::AST::Expression::TypeAlias","name":"TypeAlias","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L165"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(type_token:Cosmo::Token,var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base,constant:Bool,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"type_token","external_name":"type_token","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(type_token : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","args_html":"(type_token : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":172,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L172"},"def":{"name":"new","args":[{"name":"type_token","external_name":"type_token","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(type_token, var, value, constant, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":175,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L175"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_type_alias_expr(self)"}},{"html_id":"constant?:Bool-instance-method","name":"constant?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":169,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L169"},"def":{"name":"constant?","return_type":"Bool","visibility":"Public","body":"@constant"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L183"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"TypeAlias<\\n\" + \" #{TAB * indent}#{@var.token.value.to_s}: #{@value.nil? ? \"none\" : @value.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":179,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L179"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"type_token:Token-instance-method","name":"type_token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":166,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L166"},"def":{"name":"type_token","return_type":"Token","visibility":"Public","body":"@type_token"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":168,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L168"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L167"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L170"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/TypeRef","path":"Cosmo/AST/Expression/TypeRef.html","kind":"class","full_name":"Cosmo::AST::Expression::TypeRef","name":"TypeRef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":146,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L146"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(name:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"}],"args_string":"(name : Cosmo::Token)","args_html":"(name : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":149,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L149"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":152,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L152"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_type_ref_expr(self)"}},{"html_id":"name:Token-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":147,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L147"},"def":{"name":"name","return_type":"Token","visibility":"Public","body":"@name"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":160,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L160"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"TypeRef<\\\"#{@name.value.to_s}\\\">\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":156,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L156"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@name"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/UnaryOp","path":"Cosmo/AST/Expression/UnaryOp.html","kind":"class","full_name":"Cosmo::AST::Expression::UnaryOp","name":"UnaryOp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":389,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L389"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(operator:Cosmo::Token,operand:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(operator : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","args_html":"(operator : Cosmo::Token, operand : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":393,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L393"},"def":{"name":"new","args":[{"name":"operator","external_name":"operator","restriction":"::Cosmo::Token"},{"name":"operand","external_name":"operand","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(operator, operand)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":396,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L396"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_unary_op_expr(self)"}},{"html_id":"operand:Base-instance-method","name":"operand","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":391,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L391"},"def":{"name":"operand","return_type":"Base","visibility":"Public","body":"@operand"}},{"html_id":"operator:Token-instance-method","name":"operator","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":390,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L390"},"def":{"name":"operator","return_type":"Token","visibility":"Public","body":"@operator"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":404,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L404"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Unary<\\n\" + \" #{TAB * indent}operator: #{@operator.to_s},\\n\") + \" #{TAB * indent}operand: #{@operand.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":400,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L400"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@operator"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Var","path":"Cosmo/AST/Expression/Var.html","kind":"class","full_name":"Cosmo::AST::Expression::Var","name":"Var","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":317,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L317"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(token : Cosmo::Token)","args_html":"(token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":320,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L320"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":323,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L323"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":327,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L327"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Var<\\\"#{@token.value.to_s}\\\">\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":318,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L318"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VarAssignment","path":"Cosmo/AST/Expression/VarAssignment.html","kind":"class","full_name":"Cosmo::AST::Expression::VarAssignment","name":"VarAssignment","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":294,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L294"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base)","args_html":"(var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":298,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L298"},"def":{"name":"new","args":[{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(var, value)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":301,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L301"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_assignment_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L309"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"VarAssignment<\\n\" + \" #{TAB * indent}var: #{@var.token.value.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":305,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L305"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L296"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":295,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L295"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VarDeclaration","path":"Cosmo/AST/Expression/VarDeclaration.html","kind":"class","full_name":"Cosmo::AST::Expression::VarDeclaration","name":"VarDeclaration","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":265,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L265"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(typedef:Cosmo::Token,var:Cosmo::AST::Expression::Var,value:Cosmo::AST::Expression::Base,constant:Bool,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(typedef : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","args_html":"(typedef : Cosmo::Token, var : Cosmo::AST::Expression::Var, value : Cosmo::AST::Expression::Base, constant : Bool, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":272,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L272"},"def":{"name":"new","args":[{"name":"typedef","external_name":"typedef","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::Var"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"constant","external_name":"constant","restriction":"::Bool"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(typedef, var, value, constant, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":275,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L275"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_var_declaration_expr(self)"}},{"html_id":"constant?:Bool-instance-method","name":"constant?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":269,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L269"},"def":{"name":"constant?","return_type":"Bool","visibility":"Public","body":"@constant"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L283"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((\"VarDeclaration<\\n\" + \" #{TAB * indent}typedef: #{@typedef.value},\\n\") + \" #{TAB * indent}var: #{@var.token.value.to_s},\\n\") + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \" #{TAB * indent}constant?: #{@constant}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":279,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L279"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@var.token"}},{"html_id":"typedef:Token-instance-method","name":"typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":266,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L266"},"def":{"name":"typedef","return_type":"Token","visibility":"Public","body":"@typedef"}},{"html_id":"value:Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":268,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L268"},"def":{"name":"value","return_type":"Base","visibility":"Public","body":"@value"}},{"html_id":"var:Var-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":267,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L267"},"def":{"name":"var","return_type":"Var","visibility":"Public","body":"@var"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L270"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/VectorLiteral","path":"Cosmo/AST/Expression/VectorLiteral.html","kind":"class","full_name":"Cosmo::AST::Expression::VectorLiteral","name":"VectorLiteral","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":469,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L469"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"constructors":[{"html_id":"new(values:Array(Cosmo::AST::Expression::Base),token:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"values","external_name":"values","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"args_string":"(values : Array(Cosmo::AST::Expression::Base), token : Cosmo::Token)","args_html":"(values : Array(Cosmo::AST::Expression::Base), token : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":473,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L473"},"def":{"name":"new","args":[{"name":"values","external_name":"values","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"token","external_name":"token","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(values, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":475,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L475"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_vector_literal_expr(self)"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":479,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L479"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Literal<[\\n\" + \" #{TAB * indent}#{@values.map(&.to_s(indent + 2)).join(\",\\n#{TAB * (indent + 1)}\")}\\n\") + \"#{TAB * indent}]>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":470,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L470"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@token"}},{"html_id":"values:Array(Base)-instance-method","name":"values","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":471,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L471"},"def":{"name":"values","return_type":"Array(Base)","visibility":"Public","body":"@values"}}]},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","path":"Cosmo/AST/Expression/Visitor.html","kind":"module","full_name":"Cosmo::AST::Expression::Visitor(R)","name":"Visitor","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/Interpreter","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter"},{"html_id":"Cosmo/Cosmo/Resolver","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Expression","kind":"module","full_name":"Cosmo::AST::Expression","name":"Expression"},"instance_methods":[{"html_id":"visit_binary_op_expr(expr:BinaryOp):R-instance-method","name":"visit_binary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"BinaryOp"}],"args_string":"(expr : BinaryOp) : R","args_html":"(expr : BinaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L14"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"BinaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_fn_call_expr(expr:FunctionCall):R-instance-method","name":"visit_fn_call_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"FunctionCall"}],"args_string":"(expr : FunctionCall) : R","args_html":"(expr : FunctionCall) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L9"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"FunctionCall"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_is_expr(expr:Is):R-instance-method","name":"visit_is_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Is"}],"args_string":"(expr : Is) : R","args_html":"(expr : Is) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L6"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Is"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_literal_expr(expr:Literal):R-instance-method","name":"visit_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Literal"}],"args_string":"(expr : Literal) : R","args_html":"(expr : Literal) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L16"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Literal"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_range_literal_expr(expr:RangeLiteral):R-instance-method","name":"visit_range_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"RangeLiteral"}],"args_string":"(expr : RangeLiteral) : R","args_html":"(expr : RangeLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L17"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"RangeLiteral"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_table_literal_expr(expr:TableLiteral):R-instance-method","name":"visit_table_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TableLiteral"}],"args_string":"(expr : TableLiteral) : R","args_html":"(expr : TableLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L18"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"TableLiteral"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_ternary_op_expr(expr:TernaryOp):R-instance-method","name":"visit_ternary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TernaryOp"}],"args_string":"(expr : TernaryOp) : R","args_html":"(expr : TernaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L13"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"TernaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_this_expr(expr:This):R-instance-method","name":"visit_this_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"This"}],"args_string":"(expr : This) : R","args_html":"(expr : This) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L5"},"def":{"name":"visit_this_expr","args":[{"name":"expr","external_name":"expr","restriction":"This"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_type_alias_expr(expr:TypeAlias):R-instance-method","name":"visit_type_alias_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TypeAlias"}],"args_string":"(expr : TypeAlias) : R","args_html":"(expr : TypeAlias) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L7"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"TypeAlias"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_type_ref_expr(expr:TypeRef):R-instance-method","name":"visit_type_ref_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"TypeRef"}],"args_string":"(expr : TypeRef) : R","args_html":"(expr : TypeRef) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L8"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"TypeRef"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_unary_op_expr(expr:UnaryOp):R-instance-method","name":"visit_unary_op_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"UnaryOp"}],"args_string":"(expr : UnaryOp) : R","args_html":"(expr : UnaryOp) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L15"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"UnaryOp"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_assignment_expr(expr:VarAssignment):R-instance-method","name":"visit_var_assignment_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VarAssignment"}],"args_string":"(expr : VarAssignment) : R","args_html":"(expr : VarAssignment) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L11"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"VarAssignment"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_declaration_expr(expr:VarDeclaration):R-instance-method","name":"visit_var_declaration_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VarDeclaration"}],"args_string":"(expr : VarDeclaration) : R","args_html":"(expr : VarDeclaration) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L10"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"VarDeclaration"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_var_expr(expr:Var):R-instance-method","name":"visit_var_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"Var"}],"args_string":"(expr : Var) : R","args_html":"(expr : Var) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L12"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Var"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_vector_literal_expr(expr:VectorLiteral):R-instance-method","name":"visit_vector_literal_expr","abstract":true,"args":[{"name":"expr","external_name":"expr","restriction":"VectorLiteral"}],"args_string":"(expr : VectorLiteral) : R","args_html":"(expr : VectorLiteral) : R","location":{"filename":"src/cosmo/syntax/parser/ast/expression_nodes.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/expression_nodes.cr#L19"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"VectorLiteral"}],"return_type":"R","visibility":"Public","body":""}}]}]},{"html_id":"Cosmo/Cosmo/AST/Node","path":"Cosmo/AST/Node.html","kind":"class","full_name":"Cosmo::AST::Node","name":"Node","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L11"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Expression/Base","kind":"class","full_name":"Cosmo::AST::Expression::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"instance_methods":[{"html_id":"end_location:Location|Nil-instance-method","name":"end_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L13"},"def":{"name":"end_location","return_type":"Location | ::Nil","visibility":"Public","body":"@end_location"}},{"html_id":"end_location=(end_location:Location|Nil)-instance-method","name":"end_location=","abstract":false,"args":[{"name":"end_location","external_name":"end_location","restriction":"Location | ::Nil"}],"args_string":"(end_location : Location | Nil)","args_html":"(end_location : Location | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L13"},"def":{"name":"end_location=","args":[{"name":"end_location","external_name":"end_location","restriction":"Location | ::Nil"}],"visibility":"Public","body":"@end_location = end_location"}},{"html_id":"single_expression:Node-instance-method","name":"single_expression","doc":"It yields itself for any node, but if it's a\n`Statement::ExpressionList`, then it returns the\nfirst node of the `ExpressionList` statement","summary":"

                            It yields itself for any node, but if it's a Statement::ExpressionList, then it returns the first node of the ExpressionList statement

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L21"},"def":{"name":"single_expression","return_type":"Node","visibility":"Public","body":"single_expression? || self"}},{"html_id":"single_expression?:Node|Nil-instance-method","name":"single_expression?","doc":"It yields `nil` always for any regular node.\n(It is overridden by `ExpressionList` to implement `#single_expression`.)","summary":"

                            It yields nil always for any regular node.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L27"},"def":{"name":"single_expression?","return_type":"Node | ::Nil","visibility":"Public","body":"nil"}},{"html_id":"start_location:Location|Nil-instance-method","name":"start_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L12"},"def":{"name":"start_location","return_type":"Location | ::Nil","visibility":"Public","body":"@start_location"}},{"html_id":"start_location=(start_location:Location|Nil)-instance-method","name":"start_location=","abstract":false,"args":[{"name":"start_location","external_name":"start_location","restriction":"Location | ::Nil"}],"args_string":"(start_location : Location | Nil)","args_html":"(start_location : Location | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L12"},"def":{"name":"start_location=","args":[{"name":"start_location","external_name":"start_location","restriction":"Location | ::Nil"}],"visibility":"Public","body":"@start_location = start_location"}},{"html_id":"token:Token-instance-method","name":"token","abstract":true,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L16"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":""}},{"html_id":"visibility:Cosmo::AST::Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L14"},"def":{"name":"visibility","visibility":"Public","body":"@visibility"}},{"html_id":"visibility=(visibility:Cosmo::AST::Visibility)-instance-method","name":"visibility=","abstract":false,"args":[{"name":"visibility","external_name":"visibility","restriction":"::Cosmo::AST::Visibility"}],"args_string":"(visibility : Cosmo::AST::Visibility)","args_html":"(visibility : Cosmo::AST::Visibility)","location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L14"},"def":{"name":"visibility=","args":[{"name":"visibility","external_name":"visibility","restriction":"::Cosmo::AST::Visibility"}],"visibility":"Public","body":"@visibility = visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement","path":"Cosmo/AST/Statement.html","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"types":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","path":"Cosmo/AST/Statement/Base.html","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L19"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/AST/Statement/Block","kind":"class","full_name":"Cosmo::AST::Statement::Block","name":"Block"},{"html_id":"Cosmo/Cosmo/AST/Statement/Break","kind":"class","full_name":"Cosmo::AST::Statement::Break","name":"Break"},{"html_id":"Cosmo/Cosmo/AST/Statement/Case","kind":"class","full_name":"Cosmo::AST::Statement::Case","name":"Case"},{"html_id":"Cosmo/Cosmo/AST/Statement/ClassDef","kind":"class","full_name":"Cosmo::AST::Statement::ClassDef","name":"ClassDef"},{"html_id":"Cosmo/Cosmo/AST/Statement/Every","kind":"class","full_name":"Cosmo::AST::Statement::Every","name":"Every"},{"html_id":"Cosmo/Cosmo/AST/Statement/FunctionDef","kind":"class","full_name":"Cosmo::AST::Statement::FunctionDef","name":"FunctionDef"},{"html_id":"Cosmo/Cosmo/AST/Statement/If","kind":"class","full_name":"Cosmo::AST::Statement::If","name":"If"},{"html_id":"Cosmo/Cosmo/AST/Statement/Next","kind":"class","full_name":"Cosmo::AST::Statement::Next","name":"Next"},{"html_id":"Cosmo/Cosmo/AST/Statement/Return","kind":"class","full_name":"Cosmo::AST::Statement::Return","name":"Return"},{"html_id":"Cosmo/Cosmo/AST/Statement/SingleExpression","kind":"class","full_name":"Cosmo::AST::Statement::SingleExpression","name":"SingleExpression"},{"html_id":"Cosmo/Cosmo/AST/Statement/Throw","kind":"class","full_name":"Cosmo::AST::Statement::Throw","name":"Throw"},{"html_id":"Cosmo/Cosmo/AST/Statement/Unless","kind":"class","full_name":"Cosmo::AST::Statement::Unless","name":"Unless"},{"html_id":"Cosmo/Cosmo/AST/Statement/Until","kind":"class","full_name":"Cosmo::AST::Statement::Until","name":"Until"},{"html_id":"Cosmo/Cosmo/AST/Statement/Use","kind":"class","full_name":"Cosmo::AST::Statement::Use","name":"Use"},{"html_id":"Cosmo/Cosmo/AST/Statement/While","kind":"class","full_name":"Cosmo::AST::Statement::While","name":"While"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"instance_methods":[{"html_id":"accept(visitor:Visitor(R))forallR-instance-method","name":"accept","abstract":true,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) forall R","args_html":"(visitor : Visitor(R)) forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L20"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Block","path":"Cosmo/AST/Statement/Block.html","kind":"class","full_name":"Cosmo::AST::Statement::Block","name":"Block","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":383,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L383"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(nodes:Array(Cosmo::AST::Statement::Base)=[]ofNode)-class-method","name":"new","abstract":false,"args":[{"name":"nodes","default_value":"[] of Node","external_name":"nodes","restriction":"::Array(::Cosmo::AST::Statement::Base)"}],"args_string":"(nodes : Array(Cosmo::AST::Statement::Base) = [] of Node)","args_html":"(nodes : Array(Cosmo::AST::Statement::Base) = [] of Node)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":386,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L386"},"def":{"name":"new","args":[{"name":"nodes","default_value":"[] of Node","external_name":"nodes","restriction":"::Array(::Cosmo::AST::Statement::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(nodes)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"[](i:UInt):Node-instance-method","name":"[]","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"UInt"}],"args_string":"(i : UInt) : Node","args_html":"(i : UInt) : Node","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":393,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L393"},"def":{"name":"[]","args":[{"name":"i","external_name":"i","restriction":"UInt"}],"return_type":"Node","visibility":"Public","body":"@nodes[i]"}},{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":427,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L427"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_block_stmt(self)"}},{"html_id":"empty?-instance-method","name":"empty?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":389,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L389"},"def":{"name":"empty?","visibility":"Public","body":"@nodes.empty?"}},{"html_id":"end_location:Location-instance-method","name":"end_location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":409,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L409"},"def":{"name":"end_location","return_type":"Location","visibility":"Public","body":"@end_location || @nodes.last?.try(&.end_location)"}},{"html_id":"first:Node-instance-method","name":"first","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":397,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L397"},"def":{"name":"first","return_type":"Node","visibility":"Public","body":"@nodes.first"}},{"html_id":"last:Node-instance-method","name":"last","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":401,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L401"},"def":{"name":"last","return_type":"Node","visibility":"Public","body":"@nodes.last"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":405,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L405"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location || @nodes.first?.try(&.location)"}},{"html_id":"nodes:Array(Base)-instance-method","name":"nodes","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":384,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L384"},"def":{"name":"nodes","return_type":"Array(Base)","visibility":"Public","body":"@nodes"}},{"html_id":"single_expression?:Expression::Base|Nil-instance-method","name":"single_expression?","doc":"It yields first node if this holds only one node, or yields `nil`.","summary":"

                            It yields first node if this holds only one node, or yields nil.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":414,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L414"},"def":{"name":"single_expression?","return_type":"Expression::Base | ::Nil","visibility":"Public","body":"if @nodes.size == 1\n expr = @nodes.first.single_expression\n if expr.is_a?(Statement::SingleExpression)\n expr.expression\n else\n expr.as(Expression::Base)\n end\nelse\n nil\nend"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":435,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L435"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Block\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":431,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L431"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@nodes.empty? ? Token.new(\"none\", Syntax::None, nil, Location.new(\"\", 0, 0)) : @nodes.first.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Break","path":"Cosmo/AST/Statement/Break.html","kind":"class","full_name":"Cosmo::AST::Statement::Break","name":"Break","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":164,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L164"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(keyword : Cosmo::Token)","args_html":"(keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L167"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L170"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_break_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L165"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L178"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Break\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":174,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L174"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Case","path":"Cosmo/AST/Statement/Case.html","kind":"class","full_name":"Cosmo::AST::Statement::Case","name":"Case","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":73,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L73"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,value:Cosmo::AST::Expression::Base,comparisons:Array(Cosmo::AST::Statement::When),else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"comparisons","external_name":"comparisons","restriction":"::Array(::Cosmo::AST::Statement::When)"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, value : Cosmo::AST::Expression::Base, comparisons : Array(Cosmo::AST::Statement::When), else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, value : Cosmo::AST::Expression::Base, comparisons : Array(Cosmo::AST::Statement::When), else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L79"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"comparisons","external_name":"comparisons","restriction":"::Array(::Cosmo::AST::Statement::When)"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, value, comparisons, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":82,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L82"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_case_stmt(self)"}},{"html_id":"comparisons:Array(When)-instance-method","name":"comparisons","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L76"},"def":{"name":"comparisons","return_type":"Array(When)","visibility":"Public","body":"@comparisons"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L77"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L74"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":90,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L90"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((\"Case<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)},\\n\") + \" #{TAB * indent}comparisons: [\\n\") + \" #{TAB * indent}#{@comparisons.map() do |__arg1|\n (__arg1.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":86,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L86"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":75,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L75"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/ClassDef","path":"Cosmo/AST/Statement/ClassDef.html","kind":"class","full_name":"Cosmo::AST::Statement::ClassDef","name":"ClassDef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L23"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(identifier:Cosmo::Token,body:Cosmo::AST::Statement::Block,visibility,superclass:Cosmo::AST::Expression::Base|Nil,mixins:Array(Cosmo::AST::Expression::Base))-class-method","name":"new","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"visibility","external_name":"visibility","restriction":""},{"name":"superclass","external_name":"superclass","restriction":"::Cosmo::AST::Expression::Base | ::Nil"},{"name":"mixins","external_name":"mixins","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"args_string":"(identifier : Cosmo::Token, body : Cosmo::AST::Statement::Block, visibility, superclass : Cosmo::AST::Expression::Base | Nil, mixins : Array(Cosmo::AST::Expression::Base))","args_html":"(identifier : Cosmo::Token, body : Cosmo::AST::Statement::Block, visibility, superclass : Cosmo::AST::Expression::Base | Nil, mixins : Array(Cosmo::AST::Expression::Base))","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L31"},"def":{"name":"new","args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"visibility","external_name":"visibility","restriction":""},{"name":"superclass","external_name":"superclass","restriction":"::Cosmo::AST::Expression::Base | ::Nil"},{"name":"mixins","external_name":"mixins","restriction":"::Array(::Cosmo::AST::Expression::Base)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(identifier, body, visibility, superclass, mixins)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L34"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_class_def_stmt(self)"}},{"html_id":"body:Block-instance-method","name":"body","doc":"getter parameters : Array(Expression::Parameter) # generics?","summary":"

                            getter parameters : Array(Expression::Parameter) # generics?

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L26"},"def":{"name":"body","return_type":"Block","visibility":"Public","body":"@body"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L24"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"mixins:Array(Expression::Base)-instance-method","name":"mixins","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L29"},"def":{"name":"mixins","return_type":"Array(Expression::Base)","visibility":"Public","body":"@mixins"}},{"html_id":"superclass:Expression::Base|Nil-instance-method","name":"superclass","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L28"},"def":{"name":"superclass","return_type":"Expression::Base | ::Nil","visibility":"Public","body":"@superclass"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":42,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L42"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"ClassDef<\\n\" + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}body: #{@body.to_s(indent + 1)}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":38,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L38"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L27"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Every","path":"Cosmo/AST/Statement/Every.html","kind":"class","full_name":"Cosmo::AST::Statement::Every","name":"Every","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L183"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,var:Cosmo::AST::Expression::VarDeclaration,enumerable:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::VarDeclaration"},{"name":"enumerable","external_name":"enumerable","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, var : Cosmo::AST::Expression::VarDeclaration, enumerable : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, var : Cosmo::AST::Expression::VarDeclaration, enumerable : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":189,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L189"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"var","external_name":"var","restriction":"::Cosmo::AST::Expression::VarDeclaration"},{"name":"enumerable","external_name":"enumerable","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, var, enumerable, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L192"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_every_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":187,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L187"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"enumerable:Expression::Base-instance-method","name":"enumerable","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":186,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L186"},"def":{"name":"enumerable","return_type":"Expression::Base","visibility":"Public","body":"@enumerable"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":184,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L184"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":200,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L200"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Every<\\n\" + \" #{TAB * indent}var: #{@var.to_s(indent + 1)},\\n\") + \" #{TAB * indent}in: #{@enumerable.to_s(indent + 1)}\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L196"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"var:Expression::VarDeclaration-instance-method","name":"var","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":185,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L185"},"def":{"name":"var","return_type":"Expression::VarDeclaration","visibility":"Public","body":"@var"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/FunctionDef","path":"Cosmo/AST/Statement/FunctionDef.html","kind":"class","full_name":"Cosmo::AST::Statement::FunctionDef","name":"FunctionDef","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":331,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L331"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(identifier:Cosmo::Token,parameters:Array(Cosmo::AST::Expression::Parameter),body:Cosmo::AST::Statement::Block,return_typedef:Cosmo::Token,visibility)-class-method","name":"new","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"parameters","external_name":"parameters","restriction":"::Array(::Cosmo::AST::Expression::Parameter)"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"return_typedef","external_name":"return_typedef","restriction":"::Cosmo::Token"},{"name":"visibility","external_name":"visibility","restriction":""}],"args_string":"(identifier : Cosmo::Token, parameters : Array(Cosmo::AST::Expression::Parameter), body : Cosmo::AST::Statement::Block, return_typedef : Cosmo::Token, visibility)","args_html":"(identifier : Cosmo::Token, parameters : Array(Cosmo::AST::Expression::Parameter), body : Cosmo::AST::Statement::Block, return_typedef : Cosmo::Token, visibility)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":338,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L338"},"def":{"name":"new","args":[{"name":"identifier","external_name":"identifier","restriction":"::Cosmo::Token"},{"name":"parameters","external_name":"parameters","restriction":"::Array(::Cosmo::AST::Expression::Parameter)"},{"name":"body","external_name":"body","restriction":"::Cosmo::AST::Statement::Block"},{"name":"return_typedef","external_name":"return_typedef","restriction":"::Cosmo::Token"},{"name":"visibility","external_name":"visibility","restriction":""}],"visibility":"Public","body":"_ = allocate\n_.initialize(identifier, parameters, body, return_typedef, visibility)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":341,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L341"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_fn_def_stmt(self)"}},{"html_id":"body:Block-instance-method","name":"body","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":334,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L334"},"def":{"name":"body","return_type":"Block","visibility":"Public","body":"@body"}},{"html_id":"identifier:Token-instance-method","name":"identifier","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":332,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L332"},"def":{"name":"identifier","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"parameters:Array(Expression::Parameter)-instance-method","name":"parameters","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":333,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L333"},"def":{"name":"parameters","return_type":"Array(Expression::Parameter)","visibility":"Public","body":"@parameters"}},{"html_id":"return_typedef:Token-instance-method","name":"return_typedef","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L335"},"def":{"name":"return_typedef","return_type":"Token","visibility":"Public","body":"@return_typedef"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":349,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L349"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((((((\"FunctionDef<\\n\" + \" #{TAB * indent}identifier: #{@identifier.value.to_s},\\n\") + \" #{TAB * indent}parameters: [\\n\") + \" #{TAB * indent}#{@parameters.map() do |__arg2|\n (__arg2.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}return_typedef: #{@return_typedef.value},\\n\") + \" #{TAB * indent}body: #{@body.to_s(indent + 1)}\\n\") + \" #{TAB * indent}visibility: #{@visibility.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":345,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L345"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@identifier"}},{"html_id":"visibility:Visibility-instance-method","name":"visibility","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L336"},"def":{"name":"visibility","return_type":"Visibility","visibility":"Public","body":"@visibility"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/If","path":"Cosmo/AST/Statement/If.html","kind":"class","full_name":"Cosmo::AST::Statement::If","name":"If","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":257,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L257"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,then:Cosmo::AST::Statement::Base,else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":263,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L263"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":266,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L266"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_if_stmt(self)"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L259"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":261,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L261"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":258,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L258"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":260,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L260"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L274"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"If<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)},\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L270"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Next","path":"Cosmo/AST/Statement/Next.html","kind":"class","full_name":"Cosmo::AST::Statement::Next","name":"Next","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L145"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(keyword : Cosmo::Token)","args_html":"(keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":148,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L148"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":151,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L151"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_next_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":146,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L146"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":159,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L159"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"\"Next\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":155,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L155"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Return","path":"Cosmo/AST/Statement/Return.html","kind":"class","full_name":"Cosmo::AST::Statement::Return","name":"Return","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L309"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(value:Cosmo::AST::Expression::Base,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(value : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","args_html":"(value : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":313,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L313"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":316,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L316"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_return_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":311,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L311"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":324,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L324"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Return<\\n\" + \" #{TAB * indent}value: #{@value.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":320,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L320"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"value:Expression::Base-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":310,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L310"},"def":{"name":"value","return_type":"Expression::Base","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/SingleExpression","path":"Cosmo/AST/Statement/SingleExpression.html","kind":"class","full_name":"Cosmo::AST::Statement::SingleExpression","name":"SingleExpression","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L362"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(expression:Cosmo::AST::Expression::Base)-class-method","name":"new","abstract":false,"args":[{"name":"expression","external_name":"expression","restriction":"::Cosmo::AST::Expression::Base"}],"args_string":"(expression : Cosmo::AST::Expression::Base)","args_html":"(expression : Cosmo::AST::Expression::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":365,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L365"},"def":{"name":"new","args":[{"name":"expression","external_name":"expression","restriction":"::Cosmo::AST::Expression::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(expression)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":368,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L368"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_single_expr_stmt(self)"}},{"html_id":"expression:Expression::Base-instance-method","name":"expression","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":363,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L363"},"def":{"name":"expression","return_type":"Expression::Base","visibility":"Public","body":"@expression"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":376,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L376"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"SingleExpression<\\n\" + \" #{TAB * indent}expression: #{@expression.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":372,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L372"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@expression.token"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Throw","path":"Cosmo/AST/Statement/Throw.html","kind":"class","full_name":"Cosmo::AST::Statement::Throw","name":"Throw","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L123"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(err:Cosmo::AST::Expression::Base,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"err","external_name":"err","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(err : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","args_html":"(err : Cosmo::AST::Expression::Base, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L127"},"def":{"name":"new","args":[{"name":"err","external_name":"err","restriction":"::Cosmo::AST::Expression::Base"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(err, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L130"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_throw_stmt(self)"}},{"html_id":"err:Expression::Base-instance-method","name":"err","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":124,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L124"},"def":{"name":"err","return_type":"Expression::Base","visibility":"Public","body":"@err"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":125,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L125"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L138"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Throw<\\n\" + \" #{TAB * indent}err: #{@err.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":134,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L134"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Unless","path":"Cosmo/AST/Statement/Unless.html","kind":"class","full_name":"Cosmo::AST::Statement::Unless","name":"Unless","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L283"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,then:Cosmo::AST::Statement::Base,else:Cosmo::AST::Statement::Base|Nil)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, then : Cosmo::AST::Statement::Base, else : Cosmo::AST::Statement::Base | Nil)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":289,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L289"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"then","external_name":"then","restriction":"::Cosmo::AST::Statement::Base"},{"name":"else","external_name":"else","restriction":"::Cosmo::AST::Statement::Base | ::Nil"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, then, else)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":292,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L292"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_unless_stmt(self)"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":285,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L285"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"else:Base|Nil-instance-method","name":"else","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":287,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L287"},"def":{"name":"else","return_type":"Base | ::Nil","visibility":"Public","body":"@else"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":284,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L284"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"then:Base-instance-method","name":"then","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":286,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L286"},"def":{"name":"then","return_type":"Base","visibility":"Public","body":"@then"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":300,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L300"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(((\"Unless<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}then: #{@then.to_s(indent + 1)},\\n\") + \" #{TAB * indent}else: #{@else.nil? ? \"none\" : @else.not_nil!.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L296"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Until","path":"Cosmo/AST/Statement/Until.html","kind":"class","full_name":"Cosmo::AST::Statement::Until","name":"Until","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":233,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L233"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":238,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L238"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":241,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L241"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_until_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":236,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L236"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L235"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":234,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L234"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":249,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L249"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"Until<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":245,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L245"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Use","path":"Cosmo/AST/Statement/Use.html","kind":"class","full_name":"Cosmo::AST::Statement::Use","name":"Use","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":101,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L101"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(module_path:Cosmo::Token,keyword:Cosmo::Token)-class-method","name":"new","abstract":false,"args":[{"name":"module_path","external_name":"module_path","restriction":"::Cosmo::Token"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"args_string":"(module_path : Cosmo::Token, keyword : Cosmo::Token)","args_html":"(module_path : Cosmo::Token, keyword : Cosmo::Token)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":105,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L105"},"def":{"name":"new","args":[{"name":"module_path","external_name":"module_path","restriction":"::Cosmo::Token"},{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(module_path, keyword)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":108,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L108"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_use_stmt(self)"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L103"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"module_path:Token-instance-method","name":"module_path","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":102,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L102"},"def":{"name":"module_path","return_type":"Token","visibility":"Public","body":"@module_path"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":116,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L116"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"(\"Use<\\n\" + \" #{TAB * indent}module_path: #{@module_path.to_s}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":112,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L112"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","path":"Cosmo/AST/Statement/Visitor.html","kind":"module","full_name":"Cosmo::AST::Statement::Visitor(R)","name":"Visitor","abstract":false,"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L2"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"including_types":[{"html_id":"Cosmo/Cosmo/Interpreter","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter"},{"html_id":"Cosmo/Cosmo/Resolver","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver"}],"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"instance_methods":[{"html_id":"visit_block_stmt(stmt:Block):R-instance-method","name":"visit_block_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Block"}],"args_string":"(stmt : Block) : R","args_html":"(stmt : Block) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L16"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Block"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_break_stmt(stmt:Break):R-instance-method","name":"visit_break_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Break"}],"args_string":"(stmt : Break) : R","args_html":"(stmt : Break) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L10"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Break"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_case_stmt(stmt:Case):R-instance-method","name":"visit_case_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Case"}],"args_string":"(stmt : Case) : R","args_html":"(stmt : Case) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L3"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Case"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_every_stmt(stmt:Every):R-instance-method","name":"visit_every_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Every"}],"args_string":"(stmt : Every) : R","args_html":"(stmt : Every) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L4"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Every"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_fn_def_stmt(stmt:FunctionDef):R-instance-method","name":"visit_fn_def_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"FunctionDef"}],"args_string":"(stmt : FunctionDef) : R","args_html":"(stmt : FunctionDef) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L14"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"FunctionDef"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_if_stmt(stmt:If):R-instance-method","name":"visit_if_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"If"}],"args_string":"(stmt : If) : R","args_html":"(stmt : If) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L7"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"If"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_next_stmt(stmt:Next):R-instance-method","name":"visit_next_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Next"}],"args_string":"(stmt : Next) : R","args_html":"(stmt : Next) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L11"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Next"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_return_stmt(stmt:Return):R-instance-method","name":"visit_return_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Return"}],"args_string":"(stmt : Return) : R","args_html":"(stmt : Return) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L9"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Return"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_single_expr_stmt(stmt:SingleExpression):R-instance-method","name":"visit_single_expr_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"SingleExpression"}],"args_string":"(stmt : SingleExpression) : R","args_html":"(stmt : SingleExpression) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L15"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"SingleExpression"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_throw_stmt(stmt:Throw):R-instance-method","name":"visit_throw_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Throw"}],"args_string":"(stmt : Throw) : R","args_html":"(stmt : Throw) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L12"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Throw"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_unless_stmt(stmt:Unless):R-instance-method","name":"visit_unless_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Unless"}],"args_string":"(stmt : Unless) : R","args_html":"(stmt : Unless) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L8"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Unless"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_until_stmt(stmt:Until):R-instance-method","name":"visit_until_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Until"}],"args_string":"(stmt : Until) : R","args_html":"(stmt : Until) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L6"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Until"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_use_stmt(stmt:Use):R-instance-method","name":"visit_use_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"Use"}],"args_string":"(stmt : Use) : R","args_html":"(stmt : Use) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L13"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Use"}],"return_type":"R","visibility":"Public","body":""}},{"html_id":"visit_while_stmt(stmt:While):R-instance-method","name":"visit_while_stmt","abstract":true,"args":[{"name":"stmt","external_name":"stmt","restriction":"While"}],"args_string":"(stmt : While) : R","args_html":"(stmt : While) : R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L5"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"While"}],"return_type":"R","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/When","path":"Cosmo/AST/Statement/When.html","kind":"struct","full_name":"Cosmo::AST::Statement::When","name":"When","abstract":false,"superclass":{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L51"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,conditions:Array(Cosmo::AST::Expression::Base),block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"conditions","external_name":"conditions","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, conditions : Array(Cosmo::AST::Expression::Base), block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, conditions : Array(Cosmo::AST::Expression::Base), block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L56"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"conditions","external_name":"conditions","restriction":"::Array(::Cosmo::AST::Expression::Base)"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, conditions, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L54"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"conditions:Array(Expression::Base)-instance-method","name":"conditions","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L53"},"def":{"name":"conditions","return_type":"Array(Expression::Base)","visibility":"Public","body":"@conditions"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L52"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L63"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((((\"When<\\n\" + \" #{TAB * indent}conditions: [\\n\") + \" #{TAB * indent}#{@conditions.map() do |__arg0|\n (__arg0.to_s(indent + 2)).as(String)\nend.join(\",\\n#{TAB * (indent + 2)}\")}\\n\") + \" #{TAB * indent}],\\n\") + \" #{TAB * indent}block: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L59"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]},{"html_id":"Cosmo/Cosmo/AST/Statement/While","path":"Cosmo/AST/Statement/While.html","kind":"class","full_name":"Cosmo::AST::Statement::While","name":"While","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Base","kind":"class","full_name":"Cosmo::AST::Statement::Base","name":"Base"},{"html_id":"Cosmo/Cosmo/AST/Node","kind":"class","full_name":"Cosmo::AST::Node","name":"Node"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":209,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L209"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/AST/Statement","kind":"module","full_name":"Cosmo::AST::Statement","name":"Statement"},"constructors":[{"html_id":"new(keyword:Cosmo::Token,condition:Cosmo::AST::Expression::Base,block:Cosmo::AST::Statement::Base)-class-method","name":"new","abstract":false,"args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"args_string":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","args_html":"(keyword : Cosmo::Token, condition : Cosmo::AST::Expression::Base, block : Cosmo::AST::Statement::Base)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":214,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L214"},"def":{"name":"new","args":[{"name":"keyword","external_name":"keyword","restriction":"::Cosmo::Token"},{"name":"condition","external_name":"condition","restriction":"::Cosmo::AST::Expression::Base"},{"name":"block","external_name":"block","restriction":"::Cosmo::AST::Statement::Base"}],"visibility":"Public","body":"_ = allocate\n_.initialize(keyword, condition, block)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"accept(visitor:Visitor(R)):RforallR-instance-method","name":"accept","abstract":false,"args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"args_string":"(visitor : Visitor(R)) : R forall R","args_html":"(visitor : Visitor(R)) : R forall R","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L217"},"def":{"name":"accept","args":[{"name":"visitor","external_name":"visitor","restriction":"Visitor(R)"}],"return_type":"R","visibility":"Public","body":"visitor.visit_while_stmt(self)"}},{"html_id":"block:Base-instance-method","name":"block","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":212,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L212"},"def":{"name":"block","return_type":"Base","visibility":"Public","body":"@block"}},{"html_id":"condition:Expression::Base-instance-method","name":"condition","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":211,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L211"},"def":{"name":"condition","return_type":"Expression::Base","visibility":"Public","body":"@condition"}},{"html_id":"keyword:Token-instance-method","name":"keyword","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":210,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L210"},"def":{"name":"keyword","return_type":"Token","visibility":"Public","body":"@keyword"}},{"html_id":"to_s(indent:Int=0)-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"args_string":"(indent : Int = 0)","args_html":"(indent : Int = 0)","location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":225,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L225"},"def":{"name":"to_s","args":[{"name":"indent","default_value":"0","external_name":"indent","restriction":"Int"}],"visibility":"Public","body":"((\"While<\\n\" + \" #{TAB * indent}condition: #{@condition.to_s(indent + 1)},\\n\") + \" #{TAB * indent}do: #{@block.to_s(indent + 1)}\\n\") + \"#{TAB * indent}>\""}},{"html_id":"token:Token-instance-method","name":"token","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast/statement_nodes.cr","line_number":221,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast/statement_nodes.cr#L221"},"def":{"name":"token","return_type":"Token","visibility":"Public","body":"@keyword"}}]}]},{"html_id":"Cosmo/Cosmo/AST/Visibility","path":"Cosmo/AST/Visibility.html","kind":"enum","full_name":"Cosmo::AST::Visibility","name":"Visibility","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Public","name":"Public","value":"0"},{"id":"Protected","name":"Protected","value":"1"},{"id":"Private","name":"Private","value":"2"},{"id":"Static","name":"Static","value":"3"}],"namespace":{"html_id":"Cosmo/Cosmo/AST","kind":"module","full_name":"Cosmo::AST","name":"AST"},"instance_methods":[{"html_id":"private?-instance-method","name":"private?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L7"},"def":{"name":"private?","visibility":"Public","body":"self == Private"}},{"html_id":"protected?-instance-method","name":"protected?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L6"},"def":{"name":"protected?","visibility":"Public","body":"self == Protected"}},{"html_id":"public?-instance-method","name":"public?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L5"},"def":{"name":"public?","visibility":"Public","body":"self == Public"}},{"html_id":"static?-instance-method","name":"static?","abstract":false,"location":{"filename":"src/cosmo/syntax/parser/ast.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser/ast.cr#L8"},"def":{"name":"static?","visibility":"Public","body":"self == Static"}}]}]},{"html_id":"Cosmo/Cosmo/Callable","path":"Cosmo/Callable.html","kind":"class","full_name":"Cosmo::Callable","name":"Callable","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/function.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/Function","kind":"class","full_name":"Cosmo::Function","name":"Function"},{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L3"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":""}},{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":true,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/function.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L2"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":""}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L4"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":""}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":true,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L5"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/Class","path":"Cosmo/Class.html","kind":"class","full_name":"Cosmo::Class","name":"Class","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/class.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Cosmo::Interpreter,closure:Cosmo::Scope,definition:Cosmo::AST::Statement::ClassDef)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::ClassDef"}],"args_string":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::ClassDef)","args_html":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::ClassDef)","location":{"filename":"src/cosmo/runtime/class.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L6"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::ClassDef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter, closure, definition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"construct(args:Array(ValueType)):ClassInstance-instance-method","name":"construct","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ClassInstance","args_html":"(args : Array(ValueType)) : ClassInstance","location":{"filename":"src/cosmo/runtime/class.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L13"},"def":{"name":"construct","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ClassInstance","visibility":"Public","body":"instance = ClassInstance.new(self, args)\n@interpreter.set_meta(\"this\", instance)\n@interpreter.execute_block(@definition.body, Scope.new(@closure))\n@interpreter.delete_meta(\"this\")\ninstance.setup\n"}},{"html_id":"definition:Statement::ClassDef-instance-method","name":"definition","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L4"},"def":{"name":"definition","return_type":"Statement::ClassDef","visibility":"Public","body":"@definition"}},{"html_id":"interpreter:Interpreter-instance-method","name":"interpreter","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L3"},"def":{"name":"interpreter","return_type":"Interpreter","visibility":"Public","body":"@interpreter"}},{"html_id":"name-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L9"},"def":{"name":"name","visibility":"Public","body":"@definition.identifier.lexeme"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L21"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}}]},{"html_id":"Cosmo/Cosmo/ClassInstance","path":"Cosmo/ClassInstance.html","kind":"class","full_name":"Cosmo::ClassInstance","name":"ClassInstance","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/class.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L26"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(parent:Cosmo::Class,args:Array(Cosmo::ValueType))-class-method","name":"new","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"::Cosmo::Class"},{"name":"args","external_name":"args","restriction":"::Array(::Cosmo::ValueType)"}],"args_string":"(parent : Cosmo::Class, args : Array(Cosmo::ValueType))","args_html":"(parent : Cosmo::Class, args : Array(Cosmo::ValueType))","location":{"filename":"src/cosmo/runtime/class.cr","line_number":49,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L49"},"def":{"name":"new","args":[{"name":"parent","external_name":"parent","restriction":"::Cosmo::Class"},{"name":"args","external_name":"args","restriction":"::Array(::Cosmo::ValueType)"}],"visibility":"Public","body":"_ = allocate\n_.initialize(parent, args)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"define_field(name:String,value:ValueType,token:Token|Nil,constant:Bool=false,visibility:Visibility=Visibility::Public,typedef:Token|Nil=nil):ClassInstance-instance-method","name":"define_field","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token | ::Nil"},{"name":"constant","default_value":"false","external_name":"constant","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Public","external_name":"visibility","restriction":"Visibility"},{"name":"typedef","default_value":"nil","external_name":"typedef","restriction":"Token | ::Nil"}],"args_string":"(name : String, value : ValueType, token : Token | Nil, constant : Bool = false, visibility : Visibility = Visibility::Public, typedef : Token | Nil = nil) : ClassInstance","args_html":"(name : String, value : ValueType, token : Token | Nil, constant : Bool = false, visibility : Visibility = Visibility::Public, typedef : Token | Nil = nil) : ClassInstance","location":{"filename":"src/cosmo/runtime/class.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L63"},"def":{"name":"define_field","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token | ::Nil"},{"name":"constant","default_value":"false","external_name":"constant","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Public","external_name":"visibility","restriction":"Visibility"},{"name":"typedef","default_value":"nil","external_name":"typedef","restriction":"Token | ::Nil"}],"return_type":"ClassInstance","visibility":"Public","body":"current_meta = @field_meta[name]?\nif current_meta.nil?\nelse\n if current_meta[:\"constant?\"] && (!@constructing)\n Logger.report_error(\"Attempt to assign to constant property\", name, token.not_nil!)\n end\nend\nif @field_meta[name]?.nil?\n meta_hash = {} of Symbol => Token | Bool\n meta_hash[:\"constant?\"] = constant\n if typedef.nil?\n if current_meta.nil?\n else\n typedef = current_meta[:type]\n TypeChecker.assert(typedef.lexeme + \"|void\", value, typedef)\n end\n else\n meta_hash[:type] = typedef\n end\n @field_meta[name] = FieldMeta.from(meta_hash)\nend\nregistry = visibility == Visibility::Public ? @public : visibility == Visibility::Protected ? @protected : @private\n(registry[\"fields\"].as(Hash(String, ValueType)))[name] = value\nself\n"}},{"html_id":"define_method(name:String,value:Function,token:Token|Nil=nil,visibility:Visibility=Visibility::Public):ClassInstance-instance-method","name":"define_method","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Function"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"visibility","default_value":"Visibility::Public","external_name":"visibility","restriction":"Visibility"}],"args_string":"(name : String, value : Function, token : Token | Nil = nil, visibility : Visibility = Visibility::Public) : ClassInstance","args_html":"(name : String, value : Function, token : Token | Nil = nil, visibility : Visibility = Visibility::Public) : ClassInstance","location":{"filename":"src/cosmo/runtime/class.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L99"},"def":{"name":"define_method","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"value","external_name":"value","restriction":"Function"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"visibility","default_value":"Visibility::Public","external_name":"visibility","restriction":"Visibility"}],"return_type":"ClassInstance","visibility":"Public","body":"registry = visibility == Visibility::Public ? @public : visibility == Visibility::Protected ? @protected : @private\nif (!token.nil?) && ((registry[\"methods\"].as(Hash(String, Function))).has_key?(name))\n Logger.report_error(\"Duplicate method definition in '#{name}'\", name, token)\nend\n(registry[\"methods\"].as(Hash(String, Function)))[name] = value\nself\n"}},{"html_id":"get_field(name:String,token:Token|Nil=nil,include_private:Bool=true,include_protected:Bool=false):ValueType|Nil-instance-method","name":"get_field","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"args_string":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil","args_html":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil","location":{"filename":"src/cosmo/runtime/class.cr","line_number":113,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L113"},"def":{"name":"get_field","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"return_type":"ValueType | ::Nil","visibility":"Public","body":"field = @public[\"fields\"][name]?\nif include_private\n field || (field = @private[\"fields\"][name]?)\nend\nif include_protected\n field || (field = @protected[\"fields\"][name]?)\nend\nif (token.nil? || include_private) || @private[\"fields\"][name]?.nil?\nelse\n Logger.report_error(\"Attempt to access private field\", name, token)\nend\nif (token.nil? || include_protected) || @protected[\"methods\"][name]?.nil?\nelse\n Logger.report_error(\"Attempt to access protected field outside of class definition\", name, token)\nend\nfield.as(ValueType | ::Nil)\n"}},{"html_id":"get_member(name:String,token:Token|Nil=nil,include_private:Bool=true,include_protected:Bool=false):ValueType|Nil-instance-method","name":"get_member","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"args_string":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil","args_html":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : ValueType | Nil","location":{"filename":"src/cosmo/runtime/class.cr","line_number":109,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L109"},"def":{"name":"get_member","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"return_type":"ValueType | ::Nil","visibility":"Public","body":"(get_method(name, token, include_private, include_protected)) || (get_field(name, token, include_private, include_protected))"}},{"html_id":"get_method(name:String,token:Token|Nil=nil,include_private:Bool=true,include_protected:Bool=false):Function|Nil-instance-method","name":"get_method","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"args_string":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : Function | Nil","args_html":"(name : String, token : Token | Nil = nil, include_private : Bool = true, include_protected : Bool = false) : Function | Nil","location":{"filename":"src/cosmo/runtime/class.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L130"},"def":{"name":"get_method","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","default_value":"nil","external_name":"token","restriction":"Token | ::Nil"},{"name":"include_private","default_value":"true","external_name":"include_private","restriction":"Bool"},{"name":"include_protected","default_value":"false","external_name":"include_protected","restriction":"Bool"}],"return_type":"Function | ::Nil","visibility":"Public","body":"method = @public[\"methods\"][name]?\nif include_private\n method || (method = @private[\"methods\"][name]?)\nend\nif include_protected\n method || (method = @protected[\"methods\"][name]?)\nend\nif (token.nil? || include_private) || @private[\"methods\"][name]?.nil?\nelse\n Logger.report_error(\"Attempt to access private method\", name, token)\nend\nif (token.nil? || include_protected) || @protected[\"methods\"][name]?.nil?\nelse\n Logger.report_error(\"Attempt to access protected method outside of class definition\", name, token)\nend\nmethod.as(Function | ::Nil)\n"}},{"html_id":"name-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":147,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L147"},"def":{"name":"name","visibility":"Public","body":"@parent.name"}},{"html_id":"setup:ClassInstance-instance-method","name":"setup","abstract":false,"location":{"filename":"src/cosmo/runtime/class.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/class.cr#L52"},"def":{"name":"setup","return_type":"ClassInstance","visibility":"Public","body":"ctor_method = get_method(\"construct\", include_private: false)\nif ctor_method.nil?\nelse\n @constructing = true\n ctor_method.call(@args, return_type_override: \"void\")\n @constructing = false\nend\nself\n"}}]},{"html_id":"Cosmo/Cosmo/Function","path":"Cosmo/Function.html","kind":"class","full_name":"Cosmo::Function","name":"Function","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},"ancestors":[{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/function.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Cosmo::Interpreter,closure:Cosmo::Scope,definition:Cosmo::AST::Statement::FunctionDef)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::FunctionDef"}],"args_string":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::FunctionDef)","args_html":"(interpreter : Cosmo::Interpreter, closure : Cosmo::Scope, definition : Cosmo::AST::Statement::FunctionDef)","location":{"filename":"src/cosmo/runtime/function.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L14"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"::Cosmo::Interpreter"},{"name":"closure","external_name":"closure","restriction":"::Cosmo::Scope"},{"name":"definition","external_name":"definition","restriction":"::Cosmo::AST::Statement::FunctionDef"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter, closure, definition)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L46"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"@non_nullable_params.size.to_u..@definition.parameters.size.to_u"}},{"html_id":"call(args:Array(ValueType),return_type_override:String=@definition.return_typedef.value.to_s):ValueType-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"},{"name":"return_type_override","default_value":"@definition.return_typedef.value.to_s","external_name":"return_type_override","restriction":"String"}],"args_string":"(args : Array(ValueType), return_type_override : String = @definition.return_typedef.value.to_s) : ValueType","args_html":"(args : Array(ValueType), return_type_override : String = @definition.return_typedef.value.to_s) : ValueType","location":{"filename":"src/cosmo/runtime/function.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L23"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"},{"name":"return_type_override","default_value":"@definition.return_typedef.value.to_s","external_name":"return_type_override","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", return_type_override)\nscope = Scope.new(@closure)\n@definition.parameters.each_with_index do |param, i|\n value = (args[i] || (param.default_value.nil? ? nil : @interpreter.evaluate(param.default_value.not_nil!))).as(ValueType)\n scope.declare(param.typedef, param.identifier, value, const: param.const?)\nend\nresult = nil\nbegin\n result = @interpreter.execute_block(@definition.body, scope, is_fn: true)\nrescue returner : HookedExceptions::Return\n result = returner.value\nrescue ex : Exception\n raise(ex)\nend\n@interpreter.delete_meta(\"block_return_type\")\nresult\n"}},{"html_id":"definition:Statement::FunctionDef-instance-method","name":"definition","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L12"},"def":{"name":"definition","return_type":"Statement::FunctionDef","visibility":"Public","body":"@definition"}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":50,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L50"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":"false"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/function.cr","line_number":54,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/function.cr#L54"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions","path":"Cosmo/HookedExceptions.html","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions","abstract":false,"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/HookedExceptions/Break","path":"Cosmo/HookedExceptions/Break.html","kind":"class","full_name":"Cosmo::HookedExceptions::Break","name":"Break","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L16"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token)","args_html":"(token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L17"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions/Next","path":"Cosmo/HookedExceptions/Next.html","kind":"class","full_name":"Cosmo::HookedExceptions::Next","name":"Next","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L22"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token)","args_html":"(token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L23"},"def":{"name":"new","args":[{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}]},{"html_id":"Cosmo/Cosmo/HookedExceptions/Return","path":"Cosmo/HookedExceptions/Return.html","kind":"class","full_name":"Cosmo::HookedExceptions::Return","name":"Return","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},"ancestors":[{"html_id":"Cosmo/Cosmo/HookedExceptions/HookedException","kind":"class","full_name":"Cosmo::HookedExceptions::HookedException","name":"HookedException"},{"html_id":"Cosmo/Exception","kind":"class","full_name":"Exception","name":"Exception"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L8"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/HookedExceptions","kind":"module","full_name":"Cosmo::HookedExceptions","name":"HookedExceptions"},"constructors":[{"html_id":"new(value:Cosmo::ValueType,token:Token)-class-method","name":"new","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"::Cosmo::ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(value : Cosmo::ValueType, token : Token)","args_html":"(value : Cosmo::ValueType, token : Token)","location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L11"},"def":{"name":"new","args":[{"name":"value","external_name":"value","restriction":"::Cosmo::ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"visibility":"Public","body":"_ = allocate\n_.initialize(value, token)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"value:ValueType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/runtime/hooked_exceptions.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/hooked_exceptions.cr#L9"},"def":{"name":"value","return_type":"ValueType","visibility":"Public","body":"@value"}}]}]},{"html_id":"Cosmo/Cosmo/Interpreter","path":"Cosmo/Interpreter.html","kind":"class","full_name":"Cosmo::Interpreter","name":"Interpreter","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/interpreter.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L13"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(output_ast:Bool,run_benchmarks:Bool,debug_mode:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"output_ast","external_name":"output_ast","restriction":"Bool"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"},{"name":"debug_mode","external_name":"debug_mode","restriction":"Bool"}],"args_string":"(output_ast : Bool, run_benchmarks : Bool, debug_mode : Bool)","args_html":"(output_ast : Bool, run_benchmarks : Bool, debug_mode : Bool)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L26"},"def":{"name":"new","args":[{"name":"output_ast","external_name":"output_ast","restriction":"Bool"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"},{"name":"debug_mode","external_name":"debug_mode","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(output_ast, run_benchmarks, debug_mode)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"add_object_value(token:Token,object:V,key:ValueType,value:ValueType):VforallV-instance-method","name":"add_object_value","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"},{"name":"object","external_name":"object","restriction":"V"},{"name":"key","external_name":"key","restriction":"ValueType"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(token : Token, object : V, key : ValueType, value : ValueType) : V forall V","args_html":"(token : Token, object : V, key : ValueType, value : ValueType) : V forall V","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":506,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L506"},"def":{"name":"add_object_value","args":[{"name":"token","external_name":"token","restriction":"Token"},{"name":"object","external_name":"object","restriction":"V"},{"name":"key","external_name":"key","restriction":"ValueType"},{"name":"value","external_name":"value","restriction":"ValueType"}],"return_type":"V","visibility":"Public","body":"if object.is_a?(Array)\n if key.is_a?(Int)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), token)\n end\n if object[key]?.nil?\n object.insert(key, value)\n else\n object[key] = value\n end\nelse\n if object.is_a?(Hash)\n object[key] = value\n else\n if object.is_a?(ClassInstance)\n if key.is_a?(String)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), token)\n end\n object.define_field(key, value, token)\n else\n Logger.report_error(\"Attempt to assign to index of\", TypeChecker.get_mapped(object.class), token)\n end\n end\nend\nobject\n"}},{"html_id":"declare_intrinsic(type:String,ident:String,value:ValueType)-instance-method","name":"declare_intrinsic","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"ident","external_name":"ident","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"}],"args_string":"(type : String, ident : String, value : ValueType)","args_html":"(type : String, ident : String, value : ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":55,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L55"},"def":{"name":"declare_intrinsic","args":[{"name":"type","external_name":"type","restriction":"String"},{"name":"ident","external_name":"ident","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"}],"visibility":"Public","body":"location = Location.new(\"intrinsic\", 0, 0)\nident_token = fake_ident(ident, location)\ntypedef_token = fake_typedef(type, location)\n@globals.declare(typedef_token, ident_token, value, const: true)\n"}},{"html_id":"delete_meta(key:String):Nil-instance-method","name":"delete_meta","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"}],"args_string":"(key : String) : Nil","args_html":"(key : String) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":62,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L62"},"def":{"name":"delete_meta","args":[{"name":"key","external_name":"key","restriction":"String"}],"return_type":"Nil","visibility":"Public","body":"@meta.delete(key)"}},{"html_id":"evaluate(expr:Expression::Base):ValueType-instance-method","name":"evaluate","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"}],"args_string":"(expr : Expression::Base) : ValueType","args_html":"(expr : Expression::Base) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":135,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L135"},"def":{"name":"evaluate","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"}],"return_type":"ValueType","visibility":"Public","body":"expr.accept(self)"}},{"html_id":"execute(stmt:Statement::Base):ValueType-instance-method","name":"execute","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Base"}],"args_string":"(stmt : Statement::Base) : ValueType","args_html":"(stmt : Statement::Base) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":139,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L139"},"def":{"name":"execute","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Base"}],"return_type":"ValueType","visibility":"Public","body":"stmt.accept(self)"}},{"html_id":"execute_block(block:Statement::Base,block_scope:Scope,is_fn:Bool=false):ValueType-instance-method","name":"execute_block","abstract":false,"args":[{"name":"block","external_name":"block","restriction":"Statement::Base"},{"name":"block_scope","external_name":"block_scope","restriction":"Scope"},{"name":"is_fn","default_value":"false","external_name":"is_fn","restriction":"Bool"}],"args_string":"(block : Statement::Base, block_scope : Scope, is_fn : Bool = false) : ValueType","args_html":"(block : Statement::Base, block_scope : Scope, is_fn : Bool = false) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":143,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L143"},"def":{"name":"execute_block","args":[{"name":"block","external_name":"block","restriction":"Statement::Base"},{"name":"block_scope","external_name":"block_scope","restriction":"Scope"},{"name":"is_fn","default_value":"false","external_name":"is_fn","restriction":"Bool"}],"return_type":"ValueType","visibility":"Public","body":"prev_scope = @scope\nbegin\n @scope = block_scope\n if @meta[\"this\"]?.nil? || (!@scope.lookup?(\"$\").nil?)\n else\n this = @meta[\"this\"].as(ClassInstance)\n @scope.declare(fake_typedef(this.name), fake_ident(\"$\"), this)\n end\n if block.is_a?(Statement::Block)\n if block.nodes.empty?\n else\n return_node = block.nodes.find do |node|\n node.is_a?(Statement::Return)\n end || block.nodes.last\n body_nodes = block.nodes[0..-2]\n body_nodes.each do |expr|\n execute(expr.as(Statement::Base))\n end\n if return_node.nil?\n else\n return_value = execute(return_node.as(Statement::Base))\n end\n end\n if is_fn\n return_type = @meta[\"block_return_type\"]? || \"void\"\n token = return_node.nil? ? Token.new(\"none\", Syntax::None, nil, Location.new(\"\", 0, 0)) : return_node.token\n if return_type.to_s == \"void\"\n else\n TypeChecker.assert(return_type.to_s, return_value, token)\n end\n end\n else\n return_value = execute(block)\n end\n if return_type.to_s == \"void\"\n else\n return return_value\n end\n nil\nrescue ex : Exception\n raise(ex)\nensure\n @scope = prev_scope\nend\n"}},{"html_id":"globals:Cosmo::Scope-instance-method","name":"globals","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L19"},"def":{"name":"globals","visibility":"Public","body":"@globals"}},{"html_id":"interpret(source:String,file_path:String):ValueType-instance-method","name":"interpret","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(source : String, file_path : String) : ValueType","args_html":"(source : String, file_path : String) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":71,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L71"},"def":{"name":"interpret","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"@file_path = file_path\nparser = Parser.new(source, @file_path, @run_benchmarks)\nstatements = parser.parse\nstatement_list_str = \"\"\nstatements.each do |stmt|\n statement_list_str = statement_list_str + (stmt.to_s + \"\\n\")\nend\nif @output_ast\n puts(statement_list_str)\nend\nresolver = Resolver.new(self)\nresolver.resolve(statements)\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Resolver @#{@file_path} took #{get_elapsed(resolver.start_time, end_time)}.\")\nend\nstart_time = Time.monotonic\nresult = nil\nstatements.each do |stmt|\n result = execute(stmt)\nend\nmain_fn = @globals.lookup?(\"main\")\nis_public = @globals.public?(\"main\")\nfound_main = ((!main_fn.nil?) && main_fn.is_a?(Function)) && is_public\nif found_main\n main_fn = main_fn.as(Function)\n return_typedef = main_fn.definition.return_typedef\n if TypeChecker.is?(return_typedef.lexeme, 1, return_typedef)\n else\n Logger.report_error(\"Invalid main() function\", \"A main() function may only return 'int'\", return_typedef)\n end\n set_meta(\"block_return_type\", \"int\")\n main_result = main_fn.call([ARGV.map() do |__arg0|\n __arg0.as(ValueType)\n end])\n TypeChecker.assert(\"int\", main_result, return_typedef)\nend\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Interpreter @#{file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\nif (found_main && (@file_path != \"test\")) && (@file_path != \"repl\")\n code = main_result.not_nil!.as(Int64)\n if code == 0\n Process.exit(code)\n else\n raise(\"Process exited with code #{code}\")\n end\nend\nresult\n"}},{"html_id":"meta:Hash(String,Cosmo::ClassInstance|String)-instance-method","name":"meta","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L21"},"def":{"name":"meta","visibility":"Public","body":"@meta"}},{"html_id":"resolve(expr:Expression::Base,depth:UInt32):Nil-instance-method","name":"resolve","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"},{"name":"depth","external_name":"depth","restriction":"UInt32"}],"args_string":"(expr : Expression::Base, depth : UInt32) : Nil","args_html":"(expr : Expression::Base, depth : UInt32) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":125,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L125"},"def":{"name":"resolve","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Base"},{"name":"depth","external_name":"depth","restriction":"UInt32"}],"return_type":"Nil","visibility":"Public","body":"@locals[expr] = depth"}},{"html_id":"scope:Scope-instance-method","name":"scope","abstract":false,"location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L20"},"def":{"name":"scope","return_type":"Scope","visibility":"Public","body":"@scope"}},{"html_id":"set_meta(key:String,value:MetaType|Nil):Nil-instance-method","name":"set_meta","abstract":false,"args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"MetaType | ::Nil"}],"args_string":"(key : String, value : MetaType | Nil) : Nil","args_html":"(key : String, value : MetaType | Nil) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":66,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L66"},"def":{"name":"set_meta","args":[{"name":"key","external_name":"key","restriction":"String"},{"name":"value","external_name":"value","restriction":"MetaType | ::Nil"}],"return_type":"Nil","visibility":"Public","body":"if value.nil?\n return\nend\n@meta[key] = value\n"}},{"html_id":"visit_access_expr(expr:Expression::Access):ValueType-instance-method","name":"visit_access_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"args_string":"(expr : Expression::Access) : ValueType","args_html":"(expr : Expression::Access) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":394,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L394"},"def":{"name":"visit_access_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"return_type":"ValueType","visibility":"Public","body":"object = evaluate(expr.object)\nkey = expr.key.lexeme\nif object.is_a?(Hash)\n object[key]?\nelse\n if object.is_a?(ClassInstance)\n object.get_member(key, expr.key, include_private: !@meta[\"this\"]?.nil?)\n else\n Logger.report_error(\"Attempt to index\", TypeChecker.get_mapped(object.class), expr.token)\n end\nend\n"}},{"html_id":"visit_binary_op_expr(expr:Expression::BinaryOp):ValueType-instance-method","name":"visit_binary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":632,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L632"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = evaluate(expr.left)\nright = evaluate(expr.right)\ncase expr.operator.type\nwhen Syntax::Plus\n op = Operator::Plus.new(self)\n op.apply(expr)\nwhen Syntax::Minus\n op = Operator::Minus.new(self)\n op.apply(expr)\nwhen Syntax::Star\n op = Operator::Mul.new(self)\n op.apply(expr)\nwhen Syntax::Slash\n op = Operator::Div.new(self)\n op.apply(expr)\nwhen Syntax::Carat\n op = Operator::Pow.new(self)\n op.apply(expr)\nwhen Syntax::Percent\n op = Operator::Mod.new(self)\n op.apply(expr)\nwhen Syntax::AmpersandColon\n left && right\nwhen Syntax::PipeColon\n left || right\nwhen Syntax::EqualEqual\n left == right\nwhen Syntax::BangEqual\n left != right\nwhen Syntax::Less\n op = Operator::LT.new(self)\n op.apply(expr)\nwhen Syntax::LessEqual\n op = Operator::LTE.new(self)\n op.apply(expr)\nwhen Syntax::Greater\n op = Operator::GT.new(self)\n op.apply(expr)\nwhen Syntax::GreaterEqual\n op = Operator::GTE.new(self)\n op.apply(expr)\nwhen Syntax::Tilde\n op = Operator::Bxor.new(self)\n op.apply(expr)\nwhen Syntax::Pipe\n op = Operator::Bor.new(self)\n op.apply(expr)\nwhen Syntax::Ampersand\n op = Operator::Band.new(self)\n op.apply(expr)\nwhen Syntax::RDoubleArrow\n op = Operator::Bshr.new(self)\n op.apply(expr)\nwhen Syntax::LDoubleArrow\n op = Operator::Bshl.new(self)\n op.apply(expr)\nend\n"}},{"html_id":"visit_block_stmt(stmt:Statement::Block):ValueType-instance-method","name":"visit_block_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"args_string":"(stmt : Statement::Block) : ValueType","args_html":"(stmt : Statement::Block) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":729,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L729"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"return_type":"ValueType","visibility":"Public","body":"execute_block(stmt, Scope.new(@scope))"}},{"html_id":"visit_break_stmt(stmt:Statement::Break):Nil-instance-method","name":"visit_break_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"args_string":"(stmt : Statement::Break) : Nil","args_html":"(stmt : Statement::Break) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":315,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L315"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"return_type":"Nil","visibility":"Public","body":"raise(HookedExceptions::Break.new(stmt.keyword))"}},{"html_id":"visit_case_stmt(stmt:Statement::Case):ValueType-instance-method","name":"visit_case_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"args_string":"(stmt : Statement::Case) : ValueType","args_html":"(stmt : Statement::Case) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":282,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L282"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(stmt.value)\ngo_to_else = false\nstmt.comparisons.each do |when_stmt|\n condition = true\n when_stmt.conditions.each do |condition_expr|\n if condition_expr.is_a?(Expression::TypeRef)\n condition = condition & (TypeChecker.is?(condition_expr.name.lexeme, value, when_stmt.token))\n else\n condition = condition & ((evaluate(condition_expr)) == value)\n end\n end\n if condition\n return execute(when_stmt.block)\n end\n go_to_else = true\nend\nif (!stmt.else.nil?) && go_to_else\n return execute(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_class_def_stmt(stmt:Statement::ClassDef):ValueType-instance-method","name":"visit_class_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"args_string":"(stmt : Statement::ClassDef) : ValueType","args_html":"(stmt : Statement::ClassDef) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":366,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L366"},"def":{"name":"visit_class_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"return_type":"ValueType","visibility":"Public","body":"_class = Class.new(self, @scope, stmt)\n@scope.declare(fake_typedef(\"class\"), stmt.identifier, _class, const: true, visibility: stmt.visibility)\n"}},{"html_id":"visit_compound_assignment_expr(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"visit_compound_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":560,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L560"},"def":{"name":"visit_compound_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"case expr.operator.type\nwhen Syntax::PlusEqual\n op = Operator::PlusAssign.new(self)\n op.apply(expr)\nwhen Syntax::MinusEqual\n op = Operator::MinusAssign.new(self)\n op.apply(expr)\nwhen Syntax::StarEqual\n op = Operator::MulAssign.new(self)\n op.apply(expr)\nwhen Syntax::SlashEqual\n op = Operator::DivAssign.new(self)\n op.apply(expr)\nwhen Syntax::PercentEqual\n op = Operator::ModAssign.new(self)\n op.apply(expr)\nwhen Syntax::CaratEqual\n op = Operator::PowAssign.new(self)\n op.apply(expr)\nwhen Syntax::AmpersandColonEqual\n op = Operator::AndAssign.new(self)\n op.apply(expr)\nwhen Syntax::PipeColonEqual\n op = Operator::OrAssign.new(self)\n op.apply(expr)\nend"}},{"html_id":"visit_every_stmt(stmt:Statement::Every):Nil-instance-method","name":"visit_every_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"args_string":"(stmt : Statement::Every) : Nil","args_html":"(stmt : Statement::Every) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":180,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L180"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"return_type":"Nil","visibility":"Public","body":"enclosing = @scope\n@scope = Scope.new(@scope)\nenumerable = evaluate(stmt.enumerable)\n@scope.declare(stmt.var.typedef, stmt.var.token, nil)\nif enumerable.is_a?(Array) || enumerable.is_a?(Range)\n enumerable.each do |value|\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\nelse\n if enumerable.is_a?(String)\n enumerable.chars.each do |value|\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\n else\n if enumerable.is_a?(Callable)\n if enumerable.is_a?(IntrinsicFunction)\n Logger.report_error(\"Invalid iterator\", \"An iterator cannot be an intrinsic function\", stmt.enumerable.token)\n end\n if enumerable.is_a?(Function)\n else\n Logger.report_error(\"Invalid iterator\", \"An iterator must return a generator function\", stmt.enumerable.token)\n end\n while !( value = enumerable.call([] of ValueType)).nil?\n @scope.assign(stmt.var.token, value)\n begin\n execute_block(stmt.block, scope)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\n end\n else\n Logger.report_error(\"Invalid iterator type\", TypeChecker.get_mapped(enumerable.class), stmt.token)\n end\n end\nend\n@scope = enclosing\n"}},{"html_id":"visit_fn_call_expr(expr:Expression::FunctionCall):ValueType-instance-method","name":"visit_fn_call_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"args_string":"(expr : Expression::FunctionCall) : ValueType","args_html":"(expr : Expression::FunctionCall) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":456,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L456"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"return_type":"ValueType","visibility":"Public","body":"fn = evaluate(expr.callee)\nif fn.is_a?(Function) || fn.is_a?(IntrinsicFunction)\nelse\n Logger.report_error(\"Attempt to call\", TypeChecker.get_mapped(fn.class), expr.token)\nend\nif fn.arity.includes?(expr.arguments.size)\nelse\n arg_size = fn.arity.begin == fn.arity.end ? fn.arity.begin : fn.arity.to_s\n Logger.report_error(\"Expected #{arg_size} arguments, got\", expr.arguments.size.to_s, expr.token)\nend\narg_values = expr.arguments.map do |arg|\n evaluate(arg)\nend\nenclosing_return_type = @meta[\"block_return_type\"]?\nresult = fn.call(arg_values)\nset_meta(\"block_return_type\", enclosing_return_type)\nresult\n"}},{"html_id":"visit_fn_def_stmt(stmt:Statement::FunctionDef):ValueType-instance-method","name":"visit_fn_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"args_string":"(stmt : Statement::FunctionDef) : ValueType","args_html":"(stmt : Statement::FunctionDef) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":377,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L377"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"return_type":"ValueType","visibility":"Public","body":"fn = Function.new(self, @scope, stmt)\nif @meta[\"this\"]?.nil?\n @scope.declare(fake_typedef(\"func\"), stmt.identifier, fn, const: true, visibility: stmt.visibility)\nelse\n instance = @meta[\"this\"].as(ClassInstance)\n instance.define_method(stmt.identifier.lexeme, fn, visibility: stmt.visibility)\nend\nfn\n"}},{"html_id":"visit_if_stmt(stmt:Statement::If):ValueType-instance-method","name":"visit_if_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"args_string":"(stmt : Statement::If) : ValueType","args_html":"(stmt : Statement::If) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":357,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L357"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(stmt.condition)\nif condition\n execute(stmt.then)\nelse\n if stmt.else.nil?\n else\n execute(stmt.else.not_nil!)\n end\nend\n"}},{"html_id":"visit_index_expr(expr:Expression::Index):ValueType-instance-method","name":"visit_index_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"args_string":"(expr : Expression::Index) : ValueType","args_html":"(expr : Expression::Index) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":406,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L406"},"def":{"name":"visit_index_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"return_type":"ValueType","visibility":"Public","body":"object = evaluate(expr.object)\nkey = evaluate(expr.key)\nif object.is_a?(String) || object.is_a?(Array)\n if key.is_a?(Int) || key.is_a?(Range)\n else\n Logger.report_error(\"Invalid index type\", TypeChecker.get_mapped(key.class), expr.token)\n end\n object[key]?\nelse\n if object.is_a?(Hash)\n object[key]?\n else\n if object.is_a?(ClassInstance)\n Logger.report_error(\"Attempt to index class instance\", expr.token.lexeme, expr.token)\n else\n Logger.report_error(\"Attempt to index\", TypeChecker.get_mapped(object.class), expr.token)\n end\n end\nend\n"}},{"html_id":"visit_is_expr(expr:Expression::Is):Bool-instance-method","name":"visit_is_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"args_string":"(expr : Expression::Is) : Bool","args_html":"(expr : Expression::Is) : Bool","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":442,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L442"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"return_type":"Bool","visibility":"Public","body":"value = evaluate(expr.value)\nTypeChecker.is?(expr.type.name.lexeme, value, expr.token)\n"}},{"html_id":"visit_literal_expr(expr:Expression::Literal):ValueType-instance-method","name":"visit_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"args_string":"(expr : Expression::Literal) : ValueType","args_html":"(expr : Expression::Literal) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":721,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L721"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"return_type":"ValueType","visibility":"Public","body":"expr.value"}},{"html_id":"visit_new_expr(expr:Expression::New):ClassInstance-instance-method","name":"visit_new_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::New"}],"args_string":"(expr : Expression::New) : ClassInstance","args_html":"(expr : Expression::New) : ClassInstance","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":424,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L424"},"def":{"name":"visit_new_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::New"}],"return_type":"ClassInstance","visibility":"Public","body":"args = [] of Expression::Base\nclass_obj = @scope.lookup(expr.operand.token)\nif class_obj.is_a?(Class)\nelse\n Logger.report_error(\"Invalid 'new' invocation. Expected a class name, got\", expr.operand.token.lexeme, expr.operand.token)\nend\nif expr.operand.is_a?(Expression::FunctionCall)\n args = (expr.operand.as(Expression::FunctionCall)).arguments\nend\nTypeChecker.assert(\"class\", class_obj, expr.operand.token)\nclass_obj.construct(args.map do |arg|\n evaluate(arg)\nend)\n"}},{"html_id":"visit_next_stmt(stmt:Statement::Next):Nil-instance-method","name":"visit_next_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"args_string":"(stmt : Statement::Next) : Nil","args_html":"(stmt : Statement::Next) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":311,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L311"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"return_type":"Nil","visibility":"Public","body":"raise(HookedExceptions::Next.new(stmt.keyword))"}},{"html_id":"visit_property_assignment_expr(expr:Expression::PropertyAssignment):ValueType-instance-method","name":"visit_property_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"args_string":"(expr : Expression::PropertyAssignment) : ValueType","args_html":"(expr : Expression::PropertyAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":529,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L529"},"def":{"name":"visit_property_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"return_type":"ValueType","visibility":"Public","body":"if expr.object.is_a?(Expression::Index)\n index = expr.object.as(Expression::Index)\n object_node = index.object\n key = evaluate(index.key)\n object = evaluate(object_node)\nelse\n access = expr.object.as(Expression::Access)\n object_node = access.object\n key = access.key.lexeme\n object = evaluate(object_node)\nend\nvalue = expr.value.is_a?(Expression::Base) ? evaluate(expr.value.as(Expression::Base)) : expr.value.as(ValueType)\nif object_node.is_a?(Expression::Index) || object_node.is_a?(Expression::Access)\n object = add_object_value(expr.token, object, key, value)\n prop_assignment = Expression::PropertyAssignment.new(object_node, object)\n return visit_property_assignment_expr(prop_assignment)\nend\nobject = add_object_value(expr.token, object, key, value)\nif (meta[\"this\"]?.nil? || (expr.token.lexeme != \"$\")) || (!object.is_a?(ClassInstance))\n @scope.assign(expr.token, object)\nelse\n value\nend\n"}},{"html_id":"visit_range_literal_expr(expr:Expression::RangeLiteral):Range(Int128|Int64|Int32|Int16|Int8,Int128|Int64|Int32|Int16|Int8)-instance-method","name":"visit_range_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"args_string":"(expr : Expression::RangeLiteral) : Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","args_html":"(expr : Expression::RangeLiteral) : Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":693,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L693"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"return_type":"Range(Int128 | Int64 | Int32 | Int16 | Int8, Int128 | Int64 | Int32 | Int16 | Int8)","visibility":"Public","body":"from = evaluate(expr.from)\nto = evaluate(expr.to)\nif from.is_a?(Int)\nelse\n Logger.report_error(\"Invalid left side of range literal\", \"Ranges can only be of integers, got '#{TypeChecker.get_mapped(from.class)}'\", expr.token)\nend\nif to.is_a?(Int)\nelse\n Logger.report_error(\"Invalid right side of range literal\", \"Ranges can only be of integers, got '#{TypeChecker.get_mapped(to.class)}'\", expr.token)\nend\nfrom..to\n"}},{"html_id":"visit_return_stmt(stmt:Statement::Return):Nil-instance-method","name":"visit_return_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"args_string":"(stmt : Statement::Return) : Nil","args_html":"(stmt : Statement::Return) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":319,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L319"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"return_type":"Nil","visibility":"Public","body":"value = evaluate(stmt.value)\nraise(HookedExceptions::Return.new(value, stmt.keyword))\n"}},{"html_id":"visit_single_expr_stmt(stmt:Statement::SingleExpression):ValueType-instance-method","name":"visit_single_expr_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"args_string":"(stmt : Statement::SingleExpression) : ValueType","args_html":"(stmt : Statement::SingleExpression) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":725,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L725"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"return_type":"ValueType","visibility":"Public","body":"evaluate(stmt.expression)"}},{"html_id":"visit_table_literal_expr(expr:Expression::TableLiteral):Hash(ValueType,ValueType)-instance-method","name":"visit_table_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"args_string":"(expr : Expression::TableLiteral) : Hash(ValueType, ValueType)","args_html":"(expr : Expression::TableLiteral) : Hash(ValueType, ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":707,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L707"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"return_type":"Hash(ValueType, ValueType)","visibility":"Public","body":"hash = {} of ValueType => ValueType\nexpr.hashmap.each do |k, v|\n key = evaluate(k)\n value = evaluate(v)\n hash[key] = value\nend\nhash\n"}},{"html_id":"visit_ternary_op_expr(expr:Expression::TernaryOp):ValueType-instance-method","name":"visit_ternary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"args_string":"(expr : Expression::TernaryOp) : ValueType","args_html":"(expr : Expression::TernaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":589,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L589"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(expr.condition)\nif condition\n return evaluate(expr.then)\nend\nevaluate(expr.else)\n"}},{"html_id":"visit_this_expr(expr:Expression::This):ValueType-instance-method","name":"visit_this_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::This"}],"args_string":"(expr : Expression::This) : ValueType","args_html":"(expr : Expression::This) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":438,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L438"},"def":{"name":"visit_this_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::This"}],"return_type":"ValueType","visibility":"Public","body":"res = @scope.lookup?(\"$\")"}},{"html_id":"visit_throw_stmt(stmt:Statement::Throw):Nil-instance-method","name":"visit_throw_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"args_string":"(stmt : Statement::Throw) : Nil","args_html":"(stmt : Statement::Throw) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":303,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L303"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"return_type":"Nil","visibility":"Public","body":"err = evaluate(stmt.err)\nif TypeChecker.is?(\"string\", err, stmt.token)\nelse\n Logger.report_error(\"Throw statement can only be invoked with a string currently, got\", TypeChecker.get_mapped(err.class), stmt.token)\nend\nraise(err.to_s)\n"}},{"html_id":"visit_type_alias_expr(expr:Expression::TypeAlias):Nil-instance-method","name":"visit_type_alias_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"args_string":"(expr : Expression::TypeAlias) : Nil","args_html":"(expr : Expression::TypeAlias) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":451,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L451"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"return_type":"Nil","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.declare(expr.type_token, expr.token, value, expr.constant?, expr.visibility)\n"}},{"html_id":"visit_type_ref_expr(expr:Expression::TypeRef):Type-instance-method","name":"visit_type_ref_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"args_string":"(expr : Expression::TypeRef) : Type","args_html":"(expr : Expression::TypeRef) : Type","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":447,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L447"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"return_type":"Type","visibility":"Public","body":"TypeChecker.get_registered_type(expr.name.value.to_s, expr.name)"}},{"html_id":"visit_unary_op_expr(expr:Expression::UnaryOp):ValueType-instance-method","name":"visit_unary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : ValueType","args_html":"(expr : Expression::UnaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":596,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L596"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"ValueType","visibility":"Public","body":"operand = evaluate(expr.operand)\ncase expr.operator.type\nwhen Syntax::Plus\n if operand.is_a?(Float) || operand.is_a?(Int)\n operand.abs\n else\n Logger.report_error(\"Invalid '+' operand type\", operand.class.to_s, expr.operator)\n end\nwhen Syntax::Minus\n if operand.is_a?(Float) || operand.is_a?(Int)\n -operand\n else\n Logger.report_error(\"Invalid '-' operand type\", operand.class.to_s, expr.operator)\n end\nwhen Syntax::PlusPlus\n op = Operator::PlusAssign.new(self)\n op.apply(expr, \"++\")\nwhen Syntax::MinusMinus\n op = Operator::MinusAssign.new(self)\n op.apply(expr, \"--\")\nwhen Syntax::Bang\n !operand\nwhen Syntax::Tilde\n op = Operator::Bnot.new(self)\n op.apply(expr)\nwhen Syntax::Star\n raise(\"'*' unary operator has not yet implemented.\")\nwhen Syntax::Hashtag\n if operand.is_a?(Array) || operand.is_a?(Hash)\n else\n Logger.report_error(\"Invalid '#' operand type\", TypeChecker.get_mapped(operand.class), expr.operator)\n end\n operand.size\nend\n"}},{"html_id":"visit_unless_stmt(stmt:Statement::Unless):ValueType-instance-method","name":"visit_unless_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"args_string":"(stmt : Statement::Unless) : ValueType","args_html":"(stmt : Statement::Unless) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":348,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L348"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"return_type":"ValueType","visibility":"Public","body":"condition = evaluate(stmt.condition)\nif condition\n if stmt.else.nil?\n else\n execute(stmt.else.not_nil!)\n end\nelse\n execute(stmt.then)\nend\n"}},{"html_id":"visit_until_stmt(stmt:Statement::Until):Nil-instance-method","name":"visit_until_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"args_string":"(stmt : Statement::Until) : Nil","args_html":"(stmt : Statement::Until) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":324,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L324"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"return_type":"Nil","visibility":"Public","body":"while !(evaluate(stmt.condition))\n begin\n execute(stmt.block)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\nend"}},{"html_id":"visit_use_stmt(stmt:Statement::Use):Nil-instance-method","name":"visit_use_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"args_string":"(stmt : Statement::Use) : Nil","args_html":"(stmt : Statement::Use) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":248,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L248"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"return_type":"Nil","visibility":"Public","body":"relative_module_path = stmt.module_path.lexeme\nif relative_module_path.includes?(\"/\")\n if @file_path == \"repl\"\n Logger.report_error(\"Cannot import\", \"Non-package modules are not supported in the REPL\", stmt.module_path)\n end\n full_module_path = File.join(File.dirname(@file_path), relative_module_path)\n ext_file_path = File.exists?(full_module_path + \".cos\") ? full_module_path + \".cos\" : full_module_path + \".⭐\"\n if full_module_path.includes?(\"././\")\n Logger.report_error(\"Recursive import detected\", ext_file_path.gsub(\"./\", \"\"), stmt.module_path)\n end\n module_path = ext_file_path.gsub(\"./\", \"\")\n if File.exists?(ext_file_path)\n else\n Logger.report_error(\"Invalid import\", \"No such file '#{module_path}.cos/⭐' exists\", stmt.module_path)\n end\n import_file(ext_file_path)\nelse\n if @importable_intrinsics.has_key?(relative_module_path)\n @importable_intrinsics[relative_module_path].inject\n else\n file_path = File.join(File.dirname(\"/home/runic/Dev/crystal/cosmo/src/cosmo/runtime/interpreter.cr\"), \"../../../libraries\", relative_module_path)\n full_path = File.exists?(file_path + \".cos\") ? file_path + \".cos\" : file_path + \".⭐\"\n if File.exists?(full_path)\n import_file(full_path)\n else\n Logger.report_error(\"Invalid import\", \"No package management system implemented yet. If you are trying to import a file path, prepend './' to the path.\", stmt.module_path)\n end\n end\nend\n"}},{"html_id":"visit_var_assignment_expr(expr:Expression::VarAssignment):ValueType-instance-method","name":"visit_var_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"args_string":"(expr : Expression::VarAssignment) : ValueType","args_html":"(expr : Expression::VarAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":501,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L501"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"return_type":"ValueType","visibility":"Public","body":"value = evaluate(expr.value)\n@scope.assign(expr.var.token, value)\n"}},{"html_id":"visit_var_declaration_expr(expr:Expression::VarDeclaration):ValueType-instance-method","name":"visit_var_declaration_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"args_string":"(expr : Expression::VarDeclaration) : ValueType","args_html":"(expr : Expression::VarDeclaration) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":477,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L477"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"return_type":"ValueType","visibility":"Public","body":"in_global = @meta[\"this\"]?.nil?\nvalue = evaluate(expr.value)\nif in_global\n @scope.declare(expr.typedef, expr.var.token, value, const: expr.constant?, visibility: expr.visibility)\nelse\n instance = @meta[\"this\"].as(ClassInstance)\n instance.define_field(expr.var.token.lexeme, value, expr.token, visibility: expr.visibility, constant: expr.constant?, typedef: expr.typedef)\nend\n"}},{"html_id":"visit_var_expr(expr:Expression::Var):ValueType-instance-method","name":"visit_var_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"args_string":"(expr : Expression::Var) : ValueType","args_html":"(expr : Expression::Var) : ValueType","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":473,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L473"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"return_type":"ValueType","visibility":"Public","body":"@scope.lookup(expr.token)"}},{"html_id":"visit_vector_literal_expr(expr:Expression::VectorLiteral):Array(ValueType)-instance-method","name":"visit_vector_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"args_string":"(expr : Expression::VectorLiteral) : Array(ValueType)","args_html":"(expr : Expression::VectorLiteral) : Array(ValueType)","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":717,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L717"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"return_type":"Array(ValueType)","visibility":"Public","body":"expr.values.map do |v|\n evaluate(v)\nend"}},{"html_id":"visit_while_stmt(stmt:Statement::While):Nil-instance-method","name":"visit_while_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"args_string":"(stmt : Statement::While) : Nil","args_html":"(stmt : Statement::While) : Nil","location":{"filename":"src/cosmo/runtime/interpreter.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/interpreter.cr#L336"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"return_type":"Nil","visibility":"Public","body":"while evaluate(stmt.condition)\n begin\n execute(stmt.block)\n rescue _break : HookedExceptions::Break\n break\n rescue _next : HookedExceptions::Next\n next\n end\nend"}}]},{"html_id":"Cosmo/Cosmo/IntrinsicFunction","path":"Cosmo/IntrinsicFunction.html","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction","abstract":true,"superclass":{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},"ancestors":[{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/MathLib/Acos","kind":"class","full_name":"Cosmo::MathLib::Acos","name":"Acos"},{"html_id":"Cosmo/Cosmo/MathLib/Acosh","kind":"class","full_name":"Cosmo::MathLib::Acosh","name":"Acosh"},{"html_id":"Cosmo/Cosmo/MathLib/Asin","kind":"class","full_name":"Cosmo::MathLib::Asin","name":"Asin"},{"html_id":"Cosmo/Cosmo/MathLib/Asinh","kind":"class","full_name":"Cosmo::MathLib::Asinh","name":"Asinh"},{"html_id":"Cosmo/Cosmo/MathLib/Atan","kind":"class","full_name":"Cosmo::MathLib::Atan","name":"Atan"},{"html_id":"Cosmo/Cosmo/MathLib/Atan2","kind":"class","full_name":"Cosmo::MathLib::Atan2","name":"Atan2"},{"html_id":"Cosmo/Cosmo/MathLib/Atanh","kind":"class","full_name":"Cosmo::MathLib::Atanh","name":"Atanh"},{"html_id":"Cosmo/Cosmo/MathLib/Cbrt","kind":"class","full_name":"Cosmo::MathLib::Cbrt","name":"Cbrt"},{"html_id":"Cosmo/Cosmo/MathLib/Ceil","kind":"class","full_name":"Cosmo::MathLib::Ceil","name":"Ceil"},{"html_id":"Cosmo/Cosmo/MathLib/Cos","kind":"class","full_name":"Cosmo::MathLib::Cos","name":"Cos"},{"html_id":"Cosmo/Cosmo/MathLib/Cosh","kind":"class","full_name":"Cosmo::MathLib::Cosh","name":"Cosh"},{"html_id":"Cosmo/Cosmo/MathLib/Exp","kind":"class","full_name":"Cosmo::MathLib::Exp","name":"Exp"},{"html_id":"Cosmo/Cosmo/MathLib/Floor","kind":"class","full_name":"Cosmo::MathLib::Floor","name":"Floor"},{"html_id":"Cosmo/Cosmo/MathLib/Isqrt","kind":"class","full_name":"Cosmo::MathLib::Isqrt","name":"Isqrt"},{"html_id":"Cosmo/Cosmo/MathLib/Log","kind":"class","full_name":"Cosmo::MathLib::Log","name":"Log"},{"html_id":"Cosmo/Cosmo/MathLib/Log10","kind":"class","full_name":"Cosmo::MathLib::Log10","name":"Log10"},{"html_id":"Cosmo/Cosmo/MathLib/Log2","kind":"class","full_name":"Cosmo::MathLib::Log2","name":"Log2"},{"html_id":"Cosmo/Cosmo/MathLib/Max","kind":"class","full_name":"Cosmo::MathLib::Max","name":"Max"},{"html_id":"Cosmo/Cosmo/MathLib/Min","kind":"class","full_name":"Cosmo::MathLib::Min","name":"Min"},{"html_id":"Cosmo/Cosmo/MathLib/Round","kind":"class","full_name":"Cosmo::MathLib::Round","name":"Round"},{"html_id":"Cosmo/Cosmo/MathLib/Sin","kind":"class","full_name":"Cosmo::MathLib::Sin","name":"Sin"},{"html_id":"Cosmo/Cosmo/MathLib/Sinh","kind":"class","full_name":"Cosmo::MathLib::Sinh","name":"Sinh"},{"html_id":"Cosmo/Cosmo/MathLib/Sqrt","kind":"class","full_name":"Cosmo::MathLib::Sqrt","name":"Sqrt"},{"html_id":"Cosmo/Cosmo/MathLib/Tan","kind":"class","full_name":"Cosmo::MathLib::Tan","name":"Tan"},{"html_id":"Cosmo/Cosmo/MathLib/Tanh","kind":"class","full_name":"Cosmo::MathLib::Tanh","name":"Tanh"},{"html_id":"Cosmo/Cosmo/PutsIntrinsic","kind":"class","full_name":"Cosmo::PutsIntrinsic","name":"PutsIntrinsic"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"args_string":"(interpreter : Interpreter)","args_html":"(interpreter : Interpreter)","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L5"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"call(args:Array(ValueType)):ValueType-instance-method","name":"call","abstract":true,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : ValueType","args_html":"(args : Array(ValueType)) : ValueType","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L8"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"ValueType","visibility":"Public","body":""}},{"html_id":"intrinsic?:Bool-instance-method","name":"intrinsic?","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L10"},"def":{"name":"intrinsic?","return_type":"Bool","visibility":"Public","body":"true"}},{"html_id":"to_s:String-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L19"},"def":{"name":"to_s","return_type":"String","visibility":"Public","body":"\"\""}},{"html_id":"token(name:String):Token-instance-method","name":"token","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : Token","args_html":"(name : String) : Token","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L14"},"def":{"name":"token","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"Token","visibility":"Public","body":"location = Location.new(\"intrinsic\", 0, 0)\nToken.new(name, Syntax::Identifier, name, location)\n"}}]},{"html_id":"Cosmo/Cosmo/IntrinsicLib","path":"Cosmo/IntrinsicLib.html","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib","abstract":true,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L24"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"subclasses":[{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(i:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"i","external_name":"i","restriction":"Interpreter"}],"args_string":"(i : Interpreter)","args_html":"(i : Interpreter)","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L25"},"def":{"name":"new","args":[{"name":"i","external_name":"i","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(i)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"inject:Nil-instance-method","name":"inject","abstract":true,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L28"},"def":{"name":"inject","return_type":"Nil","visibility":"Public","body":""}}]},{"html_id":"Cosmo/Cosmo/Keywords","path":"Cosmo/Keywords.html","kind":"module","full_name":"Cosmo::Keywords","name":"Keywords","abstract":false,"locations":[{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L3"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"CLASS_VISIBILITY_KEYWORDS","name":"CLASS_VISIBILITY_KEYWORDS","value":"[\"protected\", \"static\"]"},{"id":"KEYWORDS","name":"KEYWORDS","value":"{\"true\" => Syntax::Boolean, \"false\" => Syntax::Boolean, \"none\" => Syntax::None, \"fn\" => Syntax::Function, \"if\" => Syntax::If, \"unless\" => Syntax::Unless, \"in\" => Syntax::In, \"of\" => Syntax::Of, \"is\" => Syntax::Is, \"else\" => Syntax::Else, \"every\" => Syntax::Every, \"while\" => Syntax::While, \"until\" => Syntax::Until, \"break\" => Syntax::Break, \"next\" => Syntax::Next, \"use\" => Syntax::Use, \"case\" => Syntax::Case, \"when\" => Syntax::When, \"const\" => Syntax::Const, \"return\" => Syntax::Return, \"throw\" => Syntax::Throw, \"class\" => Syntax::Class, \"mixin\" => Syntax::Mixin, \"new\" => Syntax::New}"},{"id":"TYPE_KEYWORDS","name":"TYPE_KEYWORDS","value":"[\"type\", \"any\", \"bool\", \"string\", \"char\", \"int\", \"bigint\", \"float\", \"void\", \"func\"]","doc":"These cannot be any of the keywords above","summary":"

                            These cannot be any of the keywords above

                            "}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"class_methods":[{"html_id":"class_visibility?(s:String)-class-method","name":"class_visibility?","doc":"Returns whether or not `s` is a class vibility keyword","summary":"

                            Returns whether or not s is a class vibility keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L36"},"def":{"name":"class_visibility?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"CLASS_VISIBILITY_KEYWORDS.includes?(s)"}},{"html_id":"get_syntax(s:String):Syntax-class-method","name":"get_syntax","doc":"Returns the syntax type of `s` if it is a regular keyword","summary":"

                            Returns the syntax type of s if it is a regular keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String) : Syntax","args_html":"(s : String) : Syntax","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L51"},"def":{"name":"get_syntax","args":[{"name":"s","external_name":"s","restriction":"String"}],"return_type":"Syntax","visibility":"Public","body":"KEYWORDS.fetch(s) do\n raise(\"Invalid keyword #{s}\")\nend"}},{"html_id":"keyword?(s:String)-class-method","name":"keyword?","doc":"Returns whether or not `s` is a regular keyword","summary":"

                            Returns whether or not s is a regular keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L46"},"def":{"name":"keyword?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"KEYWORDS.has_key?(s)"}},{"html_id":"type?(s:String)-class-method","name":"type?","doc":"Returns whether or not `s` is a type keyword","summary":"

                            Returns whether or not s is a type keyword

                            ","abstract":false,"args":[{"name":"s","external_name":"s","restriction":"String"}],"args_string":"(s : String)","args_html":"(s : String)","location":{"filename":"src/cosmo/syntax/lexer/keywords.cr","line_number":41,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/keywords.cr#L41"},"def":{"name":"type?","args":[{"name":"s","external_name":"s","restriction":"String"}],"visibility":"Public","body":"TYPE_KEYWORDS.includes?(s)"}}]},{"html_id":"Cosmo/Cosmo/Lexer","path":"Cosmo/Lexer.html","kind":"class","full_name":"Cosmo::Lexer","name":"Lexer","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer.cr#L9"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(source:String,file_path:String,run_benchmarks:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"args_string":"(source : String, file_path : String, run_benchmarks : Bool)","args_html":"(source : String, file_path : String, run_benchmarks : Bool)","location":{"filename":"src/cosmo/syntax/lexer.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer.cr#L17"},"def":{"name":"new","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(source, file_path, run_benchmarks)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"tokenize:Array(Token)-instance-method","name":"tokenize","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer.cr#L20"},"def":{"name":"tokenize","return_type":"Array(Token)","visibility":"Public","body":"start_time = Time.monotonic\nwhile !finished?\n lex\nend\nadd_token(Syntax::EOF, nil)\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Lexer @#{@file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\n@tokens\n"}}]},{"html_id":"Cosmo/Cosmo/Location","path":"Cosmo/Location.html","kind":"class","full_name":"Cosmo::Location","name":"Location","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(file_name:String,line:UInt32,position:UInt32)-class-method","name":"new","abstract":false,"args":[{"name":"file_name","external_name":"file_name","restriction":"::String"},{"name":"line","external_name":"line","restriction":"::UInt32"},{"name":"position","external_name":"position","restriction":"::UInt32"}],"args_string":"(file_name : String, line : UInt32, position : UInt32)","args_html":"(file_name : String, line : UInt32, position : UInt32)","location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L6"},"def":{"name":"new","args":[{"name":"file_name","external_name":"file_name","restriction":"::String"},{"name":"line","external_name":"line","restriction":"::UInt32"},{"name":"position","external_name":"position","restriction":"::UInt32"}],"visibility":"Public","body":"_ = allocate\n_.initialize(file_name, line, position)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"between?(min:UInt32,max:UInt32)-instance-method","name":"between?","abstract":false,"args":[{"name":"min","external_name":"min","restriction":"UInt32"},{"name":"max","external_name":"max","restriction":"UInt32"}],"args_string":"(min : UInt32, max : UInt32)","args_html":"(min : UInt32, max : UInt32)","location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L9"},"def":{"name":"between?","args":[{"name":"min","external_name":"min","restriction":"UInt32"},{"name":"max","external_name":"max","restriction":"UInt32"}],"visibility":"Public","body":"if min && max\nelse\n return false\nend\nmin <= self && self <= max\n"}},{"html_id":"directory-instance-method","name":"directory","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L14"},"def":{"name":"directory","visibility":"Public","body":"@file_name.try do |file_name|\n File.dirname(file_name)\nend"}},{"html_id":"file_name:String-instance-method","name":"file_name","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L4"},"def":{"name":"file_name","return_type":"String","visibility":"Public","body":"@file_name"}},{"html_id":"line:UInt32-instance-method","name":"line","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L2"},"def":{"name":"line","return_type":"UInt32","visibility":"Public","body":"@line"}},{"html_id":"position:UInt32-instance-method","name":"position","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L3"},"def":{"name":"position","return_type":"UInt32","visibility":"Public","body":"@position"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/location.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/location.cr#L18"},"def":{"name":"to_s","visibility":"Public","body":"\"#{@file_name}:#{@line}:#{position}\""}}]},{"html_id":"Cosmo/Cosmo/Logger","path":"Cosmo/Logger.html","kind":"module","full_name":"Cosmo::Logger","name":"Logger","abstract":false,"locations":[{"filename":"src/cosmo/logger.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"Cosmo/Cosmo/Logger","kind":"module","full_name":"Cosmo::Logger","name":"Logger"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"debug=(on:Bool):Nil-instance-method","name":"debug=","abstract":false,"args":[{"name":"on","external_name":"on","restriction":"Bool"}],"args_string":"(on : Bool) : Nil","args_html":"(on : Bool) : Nil","location":{"filename":"src/cosmo/logger.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L6"},"def":{"name":"debug=","args":[{"name":"on","external_name":"on","restriction":"Bool"}],"return_type":"Nil","visibility":"Public","body":"@@debug = on"}},{"html_id":"report_error(error_type:String,message:String,line:UInt32,pos:UInt32,file_path:String):Exception-instance-method","name":"report_error","abstract":false,"args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"line","external_name":"line","restriction":"UInt32"},{"name":"pos","external_name":"pos","restriction":"UInt32"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"args_string":"(error_type : String, message : String, line : UInt32, pos : UInt32, file_path : String) : Exception","args_html":"(error_type : String, message : String, line : UInt32, pos : UInt32, file_path : String) : Exception","location":{"filename":"src/cosmo/logger.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L18"},"def":{"name":"report_error","args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"line","external_name":"line","restriction":"UInt32"},{"name":"pos","external_name":"pos","restriction":"UInt32"},{"name":"file_path","external_name":"file_path","restriction":"String"}],"return_type":"Exception","visibility":"Public","body":"full_message = \"@#{file_path.gsub(\"./\", \"\")} [#{line}:#{pos + 1}] #{error_type}: #{message}\"\nif @@debug\n raise(full_message)\nelse\n abort(full_message, 1)\nend\n"}},{"html_id":"report_error(error_type:String,message:String,token:Token):Exception-instance-method","name":"report_error","abstract":false,"args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(error_type : String, message : String, token : Token) : Exception","args_html":"(error_type : String, message : String, token : Token) : Exception","location":{"filename":"src/cosmo/logger.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L14"},"def":{"name":"report_error","args":[{"name":"error_type","external_name":"error_type","restriction":"String"},{"name":"message","external_name":"message","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Exception","visibility":"Public","body":"report_error(error_type, message, token.location.line, token.location.position, token.location.file_name)"}},{"html_id":"report_exception(ex:E)forallE-instance-method","name":"report_exception","abstract":false,"args":[{"name":"ex","external_name":"ex","restriction":"E"}],"args_string":"(ex : E) forall E","args_html":"(ex : E) forall E","location":{"filename":"src/cosmo/logger.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/logger.cr#L10"},"def":{"name":"report_exception","args":[{"name":"ex","external_name":"ex","restriction":"E"}],"visibility":"Public","body":"raise(ex)"}}]},{"html_id":"Cosmo/Cosmo/MathLib","path":"Cosmo/MathLib.html","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicLib","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicLib","kind":"class","full_name":"Cosmo::IntrinsicLib","name":"IntrinsicLib"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"inject:Nil-instance-method","name":"inject","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L2"},"def":{"name":"inject","return_type":"Nil","visibility":"Public","body":"math = {} of String => IntrinsicFunction | Float64\nmath[\"e\"] = Math::E\nmath[\"pi\"] = Math::PI\nmath[\"floor\"] = Floor.new(@i)\nmath[\"ceil\"] = Ceil.new(@i)\nmath[\"round\"] = Round.new(@i)\nmath[\"min\"] = Min.new(@i)\nmath[\"max\"] = Max.new(@i)\nmath[\"log\"] = Log.new(@i)\nmath[\"log2\"] = Log2.new(@i)\nmath[\"log10\"] = Log10.new(@i)\nmath[\"exp\"] = Exp.new(@i)\nmath[\"sqrt\"] = Sqrt.new(@i)\nmath[\"isqrt\"] = Isqrt.new(@i)\nmath[\"cbrt\"] = Cbrt.new(@i)\nmath[\"sin\"] = Sin.new(@i)\nmath[\"cos\"] = Cos.new(@i)\nmath[\"tan\"] = Tan.new(@i)\nmath[\"sinh\"] = Sinh.new(@i)\nmath[\"cosh\"] = Cosh.new(@i)\nmath[\"tanh\"] = Tanh.new(@i)\nmath[\"asinh\"] = Asinh.new(@i)\nmath[\"acosh\"] = Acosh.new(@i)\nmath[\"atanh\"] = Atanh.new(@i)\nmath[\"asin\"] = Asin.new(@i)\nmath[\"acos\"] = Acos.new(@i)\nmath[\"atan\"] = Atan.new(@i)\nmath[\"atan2\"] = Atan2.new(@i)\n@i.declare_intrinsic(\"string->(func|float)\", \"Math\", math)\n"}}],"types":[{"html_id":"Cosmo/Cosmo/MathLib/Acos","path":"Cosmo/MathLib/Acos.html","kind":"class","full_name":"Cosmo::MathLib::Acos","name":"Acos","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":256,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L256"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":257,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L257"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":261,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L261"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"acos\"))\nx = args.first.as(Float64)\n(Math.acos(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Acosh","path":"Cosmo/MathLib/Acosh.html","kind":"class","full_name":"Cosmo::MathLib::Acosh","name":"Acosh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":348,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L348"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":349,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L349"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":353,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L353"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"acosh\"))\nx = args.first.as(Number)\n(Math.acosh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Asin","path":"Cosmo/MathLib/Asin.html","kind":"class","full_name":"Cosmo::MathLib::Asin","name":"Asin","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L243"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":244,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L244"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":248,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L248"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"asin\"))\nx = args.first.as(Number)\n(Math.asin(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Asinh","path":"Cosmo/MathLib/Asinh.html","kind":"class","full_name":"Cosmo::MathLib::Asinh","name":"Asinh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":335,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L335"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":336,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L336"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":340,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L340"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"asinh\"))\nx = args.first.as(Number)\n(Math.asinh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atan","path":"Cosmo/MathLib/Atan.html","kind":"class","full_name":"Cosmo::MathLib::Atan","name":"Atan","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":269,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L269"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":270,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L270"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":274,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L274"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atan\"))\nx = args.first.as(Number)\n(Math.atan(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atan2","path":"Cosmo/MathLib/Atan2.html","kind":"class","full_name":"Cosmo::MathLib::Atan2","name":"Atan2","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":282,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L282"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":283,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L283"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..2.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":287,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L287"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atan2\"))\ny = args.first.as(Number)\nx = args.last.as(Number)\n(Math.atan2(y, x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Atanh","path":"Cosmo/MathLib/Atanh.html","kind":"class","full_name":"Cosmo::MathLib::Atanh","name":"Atanh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L361"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L362"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":366,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L366"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"atanh\"))\nx = args.first.as(Number)\n(Math.atanh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cbrt","path":"Cosmo/MathLib/Cbrt.html","kind":"class","full_name":"Cosmo::MathLib::Cbrt","name":"Cbrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":191,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L191"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":192,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L192"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":196,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L196"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cbrt\"))\nx = args.first.as(Number)\n(Math.cbrt(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Ceil","path":"Cosmo/MathLib/Ceil.html","kind":"class","full_name":"Cosmo::MathLib::Ceil","name":"Ceil","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":46,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L46"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":47,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L47"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":51,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L51"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\n((args.first.as(Number)).round(:to_positive)).to_i64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cos","path":"Cosmo/MathLib/Cos.html","kind":"class","full_name":"Cosmo::MathLib::Cos","name":"Cos","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L217"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":218,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L218"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":222,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L222"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cos\"))\nx = args.first.as(Number)\n(Math.cos(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Cosh","path":"Cosmo/MathLib/Cosh.html","kind":"class","full_name":"Cosmo::MathLib::Cosh","name":"Cosh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":309,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L309"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":310,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L310"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":314,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L314"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"cosh\"))\nx = args.first.as(Number)\n(Math.cosh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Exp","path":"Cosmo/MathLib/Exp.html","kind":"class","full_name":"Cosmo::MathLib::Exp","name":"Exp","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":153,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L153"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":154,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L154"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":158,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L158"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.exp(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Floor","path":"Cosmo/MathLib/Floor.html","kind":"class","full_name":"Cosmo::MathLib::Floor","name":"Floor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L34"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L35"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":39,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L39"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\n((args.first.as(Number)).round(:to_negative)).to_i64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Isqrt","path":"Cosmo/MathLib/Isqrt.html","kind":"class","full_name":"Cosmo::MathLib::Isqrt","name":"Isqrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":166,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L166"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":167,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L167"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Int64","args_html":"(args : Array(ValueType)) : Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":171,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L171"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"int\")\nTypeChecker.assert(\"int\", args.first, token(\"isqrt\"))\nMath.isqrt(args.first.as(Int64))\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log","path":"Cosmo/MathLib/Log.html","kind":"class","full_name":"Cosmo::MathLib::Log","name":"Log","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":140,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L140"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":141,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L141"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":145,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L145"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log10","path":"Cosmo/MathLib/Log10.html","kind":"class","full_name":"Cosmo::MathLib::Log10","name":"Log10","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":127,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L127"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":128,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L128"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":132,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L132"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log10(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Log2","path":"Cosmo/MathLib/Log2.html","kind":"class","full_name":"Cosmo::MathLib::Log2","name":"Log2","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":114,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L114"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L115"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":119,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L119"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"exp\"))\nx = args.first.as(Number)\n(Math.log2(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Max","path":"Cosmo/MathLib/Max.html","kind":"class","full_name":"Cosmo::MathLib::Max","name":"Max","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":94,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L94"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":95,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L95"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L99"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nargs.each do |arg|\n TypeChecker.assert(\"float|int\", arg, token(\"max\"))\nend\nmax = args.first.as(Number)\nargs.shift\nargs.each do |arg|\n max = Math.max(arg.as(Number), max)\nend\nmax.as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Min","path":"Cosmo/MathLib/Min.html","kind":"class","full_name":"Cosmo::MathLib::Min","name":"Min","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":74,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L74"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":75,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L75"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":79,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L79"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nargs.each do |arg|\n TypeChecker.assert(\"float|int\", arg, token(\"min\"))\nend\nmin = args.first.as(Number)\nargs.shift\nargs.each do |arg|\n min = Math.min(arg.as(Number), min)\nend\nmin.as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Round","path":"Cosmo/MathLib/Round.html","kind":"class","full_name":"Cosmo::MathLib::Round","name":"Round","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":58,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L58"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":59,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L59"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"2.to_u..2.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64|Int64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64 | Int64","args_html":"(args : Array(ValueType)) : Float64 | Int64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L63"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64 | Int64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float|int\")\nTypeChecker.assert(\"float|int\", args.first, token(\"round\"))\nTypeChecker.assert(\"int\", args.last, token(\"round\"))\nn = args.first.as(Number)\nd = args.last.as(Int64)\n(n.round(d)).as(Float64 | Int64)\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sin","path":"Cosmo/MathLib/Sin.html","kind":"class","full_name":"Cosmo::MathLib::Sin","name":"Sin","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":204,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L204"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":205,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L205"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":209,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L209"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sin\"))\nx = args.first.as(Number)\n(Math.sin(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sinh","path":"Cosmo/MathLib/Sinh.html","kind":"class","full_name":"Cosmo::MathLib::Sinh","name":"Sinh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":296,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L296"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":297,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L297"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":301,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L301"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sinh\"))\nx = args.first.as(Number)\n(Math.sinh(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Sqrt","path":"Cosmo/MathLib/Sqrt.html","kind":"class","full_name":"Cosmo::MathLib::Sqrt","name":"Sqrt","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":178,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L178"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":179,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L179"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":183,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L183"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"sqrt\"))\nx = args.first.as(Number)\n(Math.sqrt(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Tan","path":"Cosmo/MathLib/Tan.html","kind":"class","full_name":"Cosmo::MathLib::Tan","name":"Tan","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L230"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":231,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L231"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":235,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L235"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"tan\"))\nx = args.first.as(Number)\n(Math.tan(x)).to_f64\n"}}]},{"html_id":"Cosmo/Cosmo/MathLib/Tanh","path":"Cosmo/MathLib/Tanh.html","kind":"class","full_name":"Cosmo::MathLib::Tanh","name":"Tanh","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":322,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L322"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/MathLib","kind":"class","full_name":"Cosmo::MathLib","name":"MathLib"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":323,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L323"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..1.to_u"}},{"html_id":"call(args:Array(ValueType)):Float64-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Float64","args_html":"(args : Array(ValueType)) : Float64","location":{"filename":"src/cosmo/runtime/intrinsic/lib/math.cr","line_number":327,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/lib/math.cr#L327"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Float64","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"float\")\nTypeChecker.assert(\"float|int\", args.first, token(\"tanh\"))\nx = args.first.as(Number)\n(Math.tanh(x)).to_f64\n"}}]}]},{"html_id":"Cosmo/Cosmo/Operator","path":"Cosmo/Operator.html","kind":"module","full_name":"Cosmo::Operator","name":"Operator","abstract":false,"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"types":[{"html_id":"Cosmo/Cosmo/Operator/AndAssign","path":"Cosmo/Operator/AndAssign.html","kind":"class","full_name":"Cosmo::Operator::AndAssign","name":"AndAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":378,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L378"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"doc":"# this is beyond fucked up","summary":"

                            \n \n \nthis is beyond fucked up

                            ","instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":379,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L379"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::AmpersandColon\nfixed_token.lexeme = \"&:\"\nexpr.token\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nvar_value = @interpreter.evaluate(expr.name.is_a?(Expression::Var) ? expr.name : Expression::PropertyAssignment.new(expr.name, binary))\nvalue = @interpreter.evaluate(expr.value)\nif expr.name.is_a?(Expression::Var)\n @interpreter.scope.assign(expr.name.token, var_value && value)\nelse\n var_value\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Band","path":"Cosmo/Operator/Band.html","kind":"class","full_name":"Cosmo::Operator::Band","name":"Band","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":230,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L230"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":231,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L231"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"&\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left & right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bnot","path":"Cosmo/Operator/Bnot.html","kind":"class","full_name":"Cosmo::Operator::Bnot","name":"Bnot","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":193,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L193"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::UnaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : ValueType","args_html":"(expr : Expression::UnaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":194,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L194"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"ValueType","visibility":"Public","body":"operand = @interpreter.evaluate(expr.operand)\nop = \"~\"\nif operand.is_a?(Int)\n return ~operand\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", operand.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bor","path":"Cosmo/Operator/Bor.html","kind":"class","full_name":"Cosmo::Operator::Bor","name":"Bor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L216"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":217,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L217"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"|\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left | right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bshl","path":"Cosmo/Operator/Bshl.html","kind":"class","full_name":"Cosmo::Operator::Bshl","name":"Bshl","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":258,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L258"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L259"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"<<\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left << right\n end\nelse\n if left.is_a?(Array)\n left = @interpreter.add_object_value(expr.operator, left, left.size, right)\n return @interpreter.scope.assign(expr.token, left)\n else\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bshr","path":"Cosmo/Operator/Bshr.html","kind":"class","full_name":"Cosmo::Operator::Bshr","name":"Bshr","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":244,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L244"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":245,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L245"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \">>\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left >> right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Bxor","path":"Cosmo/Operator/Bxor.html","kind":"class","full_name":"Cosmo::Operator::Bxor","name":"Bxor","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":202,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L202"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":203,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L203"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"~\"\nif left.is_a?(Int)\n if right.is_a?(Int)\n return left ^ right\n end\nelse\n Logger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Div","path":"Cosmo/Operator/Div.html","kind":"class","full_name":"Cosmo::Operator::Div","name":"Div","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":69,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L69"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"/\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"/\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"/\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "/") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":70,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L70"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"/\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left / right\n end\n if right.is_a?(Int)\n return left / right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left / right\n end\n if right.is_a?(Float)\n return left.to_f / right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/DivAssign","path":"Cosmo/Operator/DivAssign.html","kind":"class","full_name":"Cosmo::Operator::DivAssign","name":"DivAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":329,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L329"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":330,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L330"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::Slash\nfixed_token.lexeme = \"/\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nif expr.name.is_a?(Expression::Var)\n op = Div.new(@interpreter)\n result = op.apply(binary, \"/=\")\n @interpreter.scope.assign(expr.name.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(expr.name, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/GT","path":"Cosmo/Operator/GT.html","kind":"class","full_name":"Cosmo::Operator::GT","name":"GT","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":157,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L157"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":158,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L158"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '>'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left > right\n end\n if right.is_a?(Int)\n return left > right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left > right\n end\n if right.is_a?(Float)\n return left.to_f > right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/GTE","path":"Cosmo/Operator/GTE.html","kind":"class","full_name":"Cosmo::Operator::GTE","name":"GTE","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":175,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L175"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":176,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L176"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \">=\"\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left >= right\n end\n if right.is_a?(Int)\n return left >= right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left >= right\n end\n if right.is_a?(Float)\n return left.to_f >= right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/LT","path":"Cosmo/Operator/LT.html","kind":"class","full_name":"Cosmo::Operator::LT","name":"LT","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":121,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L121"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":122,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L122"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '<'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left < right\n end\n if right.is_a?(Int)\n return left < right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left < right\n end\n if right.is_a?(Float)\n return left.to_f < right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/LTE","path":"Cosmo/Operator/LTE.html","kind":"class","full_name":"Cosmo::Operator::LTE","name":"LTE","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":139,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L139"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : ValueType","args_html":"(expr : Expression::BinaryOp) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":140,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L140"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = \"<=\"\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left <= right\n end\n if right.is_a?(Int)\n return left <= right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left <= right\n end\n if right.is_a?(Float)\n return left.to_f <= right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Minus","path":"Cosmo/Operator/Minus.html","kind":"class","full_name":"Cosmo::Operator::Minus","name":"Minus","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L35"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"-\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"-\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"-\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "-") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L36"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"-\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left - right\n end\n if right.is_a?(Int)\n return left - right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left - right\n end\n if right.is_a?(Float)\n return left.to_f - right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/MinusAssign","path":"Cosmo/Operator/MinusAssign.html","kind":"class","full_name":"Cosmo::Operator::MinusAssign","name":"MinusAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":294,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L294"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment|Expression::UnaryOp,op_lexeme:String=\"-=\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op_lexeme","default_value":"\"-=\"","external_name":"op_lexeme","restriction":"String"}],"args_string":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = \"-=\") : ValueType","args_html":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = "-=") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":295,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L295"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op_lexeme","default_value":"\"-=\"","external_name":"op_lexeme","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = expr.is_a?(Expression::UnaryOp) ? expr.operand : expr.name\nliteral = Expression::IntLiteral.new(1, expr.token)\nfixed_token = expr.token\nfixed_token.type = Syntax::Minus\nfixed_token.lexeme = \"-\"\nbinary = Expression::BinaryOp.new(left, fixed_token, expr.is_a?(Expression::UnaryOp) ? literal : expr.value)\nif left.is_a?(Expression::Var)\n op = Minus.new(@interpreter)\n result = op.apply(binary, op_lexeme)\n @interpreter.scope.assign(left.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(left, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Mod","path":"Cosmo/Operator/Mod.html","kind":"class","full_name":"Cosmo::Operator::Mod","name":"Mod","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L103"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"%\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"%\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"%\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "%") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":104,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L104"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"%\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nop = '%'\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left % right\n end\n if right.is_a?(Int)\n return left % right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left % right\n end\n if right.is_a?(Float)\n return left.to_f % right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/ModAssign","path":"Cosmo/Operator/ModAssign.html","kind":"class","full_name":"Cosmo::Operator::ModAssign","name":"ModAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":361,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L361"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":362,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L362"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::Percent\nfixed_token.lexeme = \"%\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nif expr.name.is_a?(Expression::Var)\n op = Mod.new(@interpreter)\n result = op.apply(binary, \"%=\")\n @interpreter.scope.assign(expr.name.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(expr.name, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Mul","path":"Cosmo/Operator/Mul.html","kind":"class","full_name":"Cosmo::Operator::Mul","name":"Mul","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":52,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L52"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"*\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"*\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"*\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "*") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":53,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L53"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"*\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left * right\n end\n if right.is_a?(Int)\n return left * right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left * right\n end\n if right.is_a?(Float)\n return left.to_f * right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/MulAssign","path":"Cosmo/Operator/MulAssign.html","kind":"class","full_name":"Cosmo::Operator::MulAssign","name":"MulAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":313,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L313"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":314,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L314"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::Star\nfixed_token.lexeme = \"*\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nif expr.name.is_a?(Expression::Var)\n op = Mul.new(@interpreter)\n result = op.apply(binary, \"*=\")\n @interpreter.scope.assign(expr.name.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(expr.name, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/OrAssign","path":"Cosmo/Operator/OrAssign.html","kind":"class","full_name":"Cosmo::Operator::OrAssign","name":"OrAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":396,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L396"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":397,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L397"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::PipeColon\nfixed_token.lexeme = \"|:\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nprop_assignment = Expression::PropertyAssignment.new(expr.name, binary)\nvar_value = @interpreter.evaluate(expr.name.is_a?(Expression::Var) ? expr.name : prop_assignment.object)\nvalue = @interpreter.evaluate(expr.value)\nif expr.name.is_a?(Expression::Var)\n @interpreter.scope.assign(expr.name.token, var_value || value)\nelse\n var_value\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Plus","path":"Cosmo/Operator/Plus.html","kind":"class","full_name":"Cosmo::Operator::Plus","name":"Plus","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L10"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"+\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"+\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"+\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "+") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L11"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"+\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left + right\n end\n if right.is_a?(Int)\n return left + right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left + right\n end\n if right.is_a?(Float)\n return left.to_f + right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n else\n if left.is_a?(String)\n if right.is_a?(String)\n return left + right\n end\n if right.is_a?(Char)\n return left + right.to_s\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n else\n if left.is_a?(Char)\n if right.is_a?(Char)\n return left.to_s + right.to_s\n end\n if right.is_a?(String)\n return left.to_s + right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\n end\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/PlusAssign","path":"Cosmo/Operator/PlusAssign.html","kind":"class","full_name":"Cosmo::Operator::PlusAssign","name":"PlusAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":275,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L275"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment|Expression::UnaryOp,op_lexeme:String=\"+=\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op_lexeme","default_value":"\"+=\"","external_name":"op_lexeme","restriction":"String"}],"args_string":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = \"+=\") : ValueType","args_html":"(expr : Expression::CompoundAssignment | Expression::UnaryOp, op_lexeme : String = "+=") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":276,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L276"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment | Expression::UnaryOp"},{"name":"op_lexeme","default_value":"\"+=\"","external_name":"op_lexeme","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = expr.is_a?(Expression::UnaryOp) ? expr.operand : expr.name\nliteral = Expression::IntLiteral.new(1, expr.token)\nfixed_token = expr.token\nfixed_token.type = Syntax::Plus\nfixed_token.lexeme = \"+\"\nbinary = Expression::BinaryOp.new(left, fixed_token, expr.is_a?(Expression::UnaryOp) ? literal : expr.value)\nif left.is_a?(Expression::Var)\n op = Plus.new(@interpreter)\n result = op.apply(binary, op_lexeme)\n @interpreter.scope.assign(left.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(left, binary))\nend\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/Pow","path":"Cosmo/Operator/Pow.html","kind":"class","full_name":"Cosmo::Operator::Pow","name":"Pow","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":86,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L86"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::BinaryOp,op:String=\"^\"):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"^\"","external_name":"op","restriction":"String"}],"args_string":"(expr : Expression::BinaryOp, op : String = \"^\") : ValueType","args_html":"(expr : Expression::BinaryOp, op : String = "^") : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":87,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L87"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"},{"name":"op","default_value":"\"^\"","external_name":"op","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"left = @interpreter.evaluate(expr.left)\nright = @interpreter.evaluate(expr.right)\nif left.is_a?(Float)\n if right.is_a?(Float)\n return left ** right\n end\n if right.is_a?(Int)\n return left ** right.to_f\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\nelse\n if left.is_a?(Int)\n if right.is_a?(Int)\n return left ** right\n end\n if right.is_a?(Float)\n return left.to_f ** right\n end\n Logger.report_error(\"Invalid '#{op}' operand type\", right.class.to_s, expr.operator)\n end\nend\nLogger.report_error(\"Invalid '#{op}' operand type\", left.class.to_s, expr.operator)\n"}}]},{"html_id":"Cosmo/Cosmo/Operator/PowAssign","path":"Cosmo/Operator/PowAssign.html","kind":"class","full_name":"Cosmo::Operator::PowAssign","name":"PowAssign","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},"ancestors":[{"html_id":"Cosmo/Cosmo/Operator/Base","kind":"class","full_name":"Cosmo::Operator::Base","name":"Base"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/operator.cr","line_number":345,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L345"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo/Operator","kind":"module","full_name":"Cosmo::Operator","name":"Operator"},"instance_methods":[{"html_id":"apply(expr:Expression::CompoundAssignment):ValueType-instance-method","name":"apply","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : ValueType","args_html":"(expr : Expression::CompoundAssignment) : ValueType","location":{"filename":"src/cosmo/runtime/operator.cr","line_number":346,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/operator.cr#L346"},"def":{"name":"apply","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"ValueType","visibility":"Public","body":"fixed_token = expr.token\nfixed_token.type = Syntax::Carat\nfixed_token.lexeme = \"^\"\nbinary = Expression::BinaryOp.new(expr.name, fixed_token, expr.value)\nif expr.name.is_a?(Expression::Var)\n op = Pow.new(@interpreter)\n result = op.apply(binary, \"^=\")\n @interpreter.scope.assign(expr.name.token, result)\nelse\n @interpreter.evaluate(Expression::PropertyAssignment.new(expr.name, binary))\nend\n"}}]}]},{"html_id":"Cosmo/Cosmo/Parser","path":"Cosmo/Parser.html","kind":"class","full_name":"Cosmo::Parser","name":"Parser","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/parser.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(source:String,file_path:String,run_benchmarks:Bool)-class-method","name":"new","abstract":false,"args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"args_string":"(source : String, file_path : String, run_benchmarks : Bool)","args_html":"(source : String, file_path : String, run_benchmarks : Bool)","location":{"filename":"src/cosmo/syntax/parser.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser.cr#L9"},"def":{"name":"new","args":[{"name":"source","external_name":"source","restriction":"String"},{"name":"file_path","external_name":"file_path","restriction":"String"},{"name":"run_benchmarks","external_name":"run_benchmarks","restriction":"Bool"}],"visibility":"Public","body":"_ = allocate\n_.initialize(source, file_path, run_benchmarks)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"parse:Array(Statement::Base)-instance-method","name":"parse","doc":"Entry point","summary":"

                            Entry point

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/parser.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/parser.cr#L17"},"def":{"name":"parse","return_type":"Array(Statement::Base)","visibility":"Public","body":"start_time = Time.monotonic\nstatements = [] of Statement::Base\nwhile !finished?\n stmt = parse_statement\n statements << stmt\nend\nend_time = Time.monotonic\nif @run_benchmarks\n puts(\"Parser @#{@file_path} took #{get_elapsed(start_time, end_time)}.\")\nend\nstatements\n"}}]},{"html_id":"Cosmo/Cosmo/PutsIntrinsic","path":"Cosmo/PutsIntrinsic.html","kind":"class","full_name":"Cosmo::PutsIntrinsic","name":"PutsIntrinsic","abstract":false,"superclass":{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},"ancestors":[{"html_id":"Cosmo/Cosmo/IntrinsicFunction","kind":"class","full_name":"Cosmo::IntrinsicFunction","name":"IntrinsicFunction"},{"html_id":"Cosmo/Cosmo/Callable","kind":"class","full_name":"Cosmo::Callable","name":"Callable"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L31"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"arity:Range(UInt32,UInt32)-instance-method","name":"arity","abstract":false,"location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L32"},"def":{"name":"arity","return_type":"Range(UInt32, UInt32)","visibility":"Public","body":"1.to_u..MAX_INTRINSIC_PARAMS.to_u"}},{"html_id":"call(args:Array(ValueType)):Nil-instance-method","name":"call","abstract":false,"args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"args_string":"(args : Array(ValueType)) : Nil","args_html":"(args : Array(ValueType)) : Nil","location":{"filename":"src/cosmo/runtime/intrinsic/global.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/intrinsic/global.cr#L36"},"def":{"name":"call","args":[{"name":"args","external_name":"args","restriction":"Array(ValueType)"}],"return_type":"Nil","visibility":"Public","body":"@interpreter.set_meta(\"block_return_type\", \"void\")\nmapped = args.map do |arg|\n if arg.nil?\n \"none\"\n else\n if arg.is_a?(Hash)\n Stringify.hashmap(arg.as(Hash(ValueType, ValueType)))\n else\n arg.to_s\n end\n end\nend\nputs(mapped.join('\\t'))\n"}}]},{"html_id":"Cosmo/Cosmo/Resolver","path":"Cosmo/Resolver.html","kind":"class","full_name":"Cosmo::Resolver","name":"Resolver","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/resolver.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L6"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"included_modules":[{"html_id":"Cosmo/Cosmo/AST/Expression/Visitor","kind":"module","full_name":"Cosmo::AST::Expression::Visitor","name":"Visitor"},{"html_id":"Cosmo/Cosmo/AST/Statement/Visitor","kind":"module","full_name":"Cosmo::AST::Statement::Visitor","name":"Visitor"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(interpreter:Interpreter)-class-method","name":"new","abstract":false,"args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"args_string":"(interpreter : Interpreter)","args_html":"(interpreter : Interpreter)","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L14"},"def":{"name":"new","args":[{"name":"interpreter","external_name":"interpreter","restriction":"Interpreter"}],"visibility":"Public","body":"_ = allocate\n_.initialize(interpreter)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"resolve(statements:Expression::Base|Statement::Base|Array(Statement::Base)):Nil-instance-method","name":"resolve","abstract":false,"args":[{"name":"statements","external_name":"statements","restriction":"Expression::Base | Statement::Base | Array(Statement::Base)"}],"args_string":"(statements : Expression::Base | Statement::Base | Array(Statement::Base)) : Nil","args_html":"(statements : Expression::Base | Statement::Base | Array(Statement::Base)) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L18"},"def":{"name":"resolve","args":[{"name":"statements","external_name":"statements","restriction":"Expression::Base | Statement::Base | Array(Statement::Base)"}],"return_type":"Nil","visibility":"Public","body":"if statements.is_a?(Array)\n statements.each do |stmt|\n resolve(stmt)\n end\nelse\n statements.accept(self)\nend"}},{"html_id":"start_time:Time::Span-instance-method","name":"start_time","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L12"},"def":{"name":"start_time","return_type":"Time::Span","visibility":"Public","body":"@start_time"}},{"html_id":"visit_access_expr(expr:Expression::Access):Nil-instance-method","name":"visit_access_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"args_string":"(expr : Expression::Access) : Nil","args_html":"(expr : Expression::Access) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":190,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L190"},"def":{"name":"visit_access_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Access"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.object)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_binary_op_expr(expr:Expression::BinaryOp):Nil-instance-method","name":"visit_binary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"args_string":"(expr : Expression::BinaryOp) : Nil","args_html":"(expr : Expression::BinaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":211,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L211"},"def":{"name":"visit_binary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::BinaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.left)\nresolve(expr.right)\n"}},{"html_id":"visit_block_stmt(stmt:Statement::Block):Nil-instance-method","name":"visit_block_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"args_string":"(stmt : Statement::Block) : Nil","args_html":"(stmt : Statement::Block) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L76"},"def":{"name":"visit_block_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Block"}],"return_type":"Nil","visibility":"Public","body":"begin_scope\nresolve(stmt.nodes)\nend_scope\n"}},{"html_id":"visit_break_stmt(stmt:Statement::Break):Nil-instance-method","name":"visit_break_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"args_string":"(stmt : Statement::Break) : Nil","args_html":"(stmt : Statement::Break) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":255,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L255"},"def":{"name":"visit_break_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Break"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_case_stmt(stmt:Statement::Case):Nil-instance-method","name":"visit_case_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"args_string":"(stmt : Statement::Case) : Nil","args_html":"(stmt : Statement::Case) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":92,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L92"},"def":{"name":"visit_case_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Case"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.value)\nstmt.comparisons.each do |comparison|\n comparison.conditions.each do |condition_expr|\n resolve(condition_expr)\n end\n resolve(comparison.block)\nend\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_class_def_stmt(stmt:Statement::ClassDef):Nil-instance-method","name":"visit_class_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"args_string":"(stmt : Statement::ClassDef) : Nil","args_html":"(stmt : Statement::ClassDef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":130,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L130"},"def":{"name":"visit_class_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::ClassDef"}],"return_type":"Nil","visibility":"Public","body":"declare(stmt.identifier)\ndefine(stmt.identifier)\nif stmt.superclass.nil?\nelse\n resolve(stmt.superclass.not_nil!)\nend\nstmt.mixins.each do |mixin|\n resolve(mixin)\nend\nresolve(stmt.body)\n"}},{"html_id":"visit_compound_assignment_expr(expr:Expression::CompoundAssignment):Nil-instance-method","name":"visit_compound_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"args_string":"(expr : Expression::CompoundAssignment) : Nil","args_html":"(expr : Expression::CompoundAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":200,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L200"},"def":{"name":"visit_compound_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::CompoundAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve_local(expr, expr.name.token)\n"}},{"html_id":"visit_every_stmt(stmt:Statement::Every):Nil-instance-method","name":"visit_every_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"args_string":"(stmt : Statement::Every) : Nil","args_html":"(stmt : Statement::Every) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":82,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L82"},"def":{"name":"visit_every_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Every"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.var)\nresolve(stmt.enumerable)\nresolve(stmt.block)\n"}},{"html_id":"visit_fn_call_expr(expr:Expression::FunctionCall):Nil-instance-method","name":"visit_fn_call_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"args_string":"(expr : Expression::FunctionCall) : Nil","args_html":"(expr : Expression::FunctionCall) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":185,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L185"},"def":{"name":"visit_fn_call_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::FunctionCall"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.callee)\nexpr.arguments.each do |arg|\n resolve(arg)\nend\n"}},{"html_id":"visit_fn_def_stmt(stmt:Statement::FunctionDef):Nil-instance-method","name":"visit_fn_def_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"args_string":"(stmt : Statement::FunctionDef) : Nil","args_html":"(stmt : Statement::FunctionDef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":138,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L138"},"def":{"name":"visit_fn_def_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::FunctionDef"}],"return_type":"Nil","visibility":"Public","body":"declare(stmt.identifier)\ndefine(stmt.identifier)\nresolve_fn(stmt, FnType::Fn)\n"}},{"html_id":"visit_if_stmt(stmt:Statement::If):Nil-instance-method","name":"visit_if_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"args_string":"(stmt : Statement::If) : Nil","args_html":"(stmt : Statement::If) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":103,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L103"},"def":{"name":"visit_if_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::If"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.then)\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_index_expr(expr:Expression::Index):Nil-instance-method","name":"visit_index_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"args_string":"(expr : Expression::Index) : Nil","args_html":"(expr : Expression::Index) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":195,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L195"},"def":{"name":"visit_index_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Index"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.key)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_is_expr(expr:Expression::Is):Nil-instance-method","name":"visit_is_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"args_string":"(expr : Expression::Is) : Nil","args_html":"(expr : Expression::Is) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":170,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L170"},"def":{"name":"visit_is_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Is"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve(expr.type)\n"}},{"html_id":"visit_literal_expr(expr:Expression::Literal):Nil-instance-method","name":"visit_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"args_string":"(expr : Expression::Literal) : Nil","args_html":"(expr : Expression::Literal) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":251,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L251"},"def":{"name":"visit_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Literal"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_new_expr(expr:Expression::New):Nil-instance-method","name":"visit_new_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::New"}],"args_string":"(expr : Expression::New) : Nil","args_html":"(expr : Expression::New) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":181,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L181"},"def":{"name":"visit_new_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::New"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.operand)"}},{"html_id":"visit_next_stmt(stmt:Statement::Next):Nil-instance-method","name":"visit_next_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"args_string":"(stmt : Statement::Next) : Nil","args_html":"(stmt : Statement::Next) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":259,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L259"},"def":{"name":"visit_next_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Next"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_property_assignment_expr(expr:Expression::PropertyAssignment):Nil-instance-method","name":"visit_property_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"args_string":"(expr : Expression::PropertyAssignment) : Nil","args_html":"(expr : Expression::PropertyAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":165,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L165"},"def":{"name":"visit_property_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::PropertyAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.object)\nif expr.value.is_a?(Expression::Base)\n resolve(expr.value.as(Expression::Base))\nend\n"}},{"html_id":"visit_range_literal_expr(expr:Expression::RangeLiteral):Nil-instance-method","name":"visit_range_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"args_string":"(expr : Expression::RangeLiteral) : Nil","args_html":"(expr : Expression::RangeLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":234,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L234"},"def":{"name":"visit_range_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::RangeLiteral"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.from)\nresolve(expr.to)\n"}},{"html_id":"visit_return_stmt(stmt:Statement::Return):Nil-instance-method","name":"visit_return_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"args_string":"(stmt : Statement::Return) : Nil","args_html":"(stmt : Statement::Return) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":123,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L123"},"def":{"name":"visit_return_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Return"}],"return_type":"Nil","visibility":"Public","body":"if @current_fn == FnType::None\n Logger.report_error(\"Invalid return\", \"A 'return' statement can only be used within a method body.\", stmt.keyword)\nend\nif stmt.value.nil?\nelse\n resolve(stmt.value)\nend\n"}},{"html_id":"visit_single_expr_stmt(stmt:Statement::SingleExpression):Nil-instance-method","name":"visit_single_expr_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"args_string":"(stmt : Statement::SingleExpression) : Nil","args_html":"(stmt : Statement::SingleExpression) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":88,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L88"},"def":{"name":"visit_single_expr_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::SingleExpression"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.expression)"}},{"html_id":"visit_table_literal_expr(expr:Expression::TableLiteral):Nil-instance-method","name":"visit_table_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"args_string":"(expr : Expression::TableLiteral) : Nil","args_html":"(expr : Expression::TableLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":243,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L243"},"def":{"name":"visit_table_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TableLiteral"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_ternary_op_expr(expr:Expression::TernaryOp):Nil-instance-method","name":"visit_ternary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"args_string":"(expr : Expression::TernaryOp) : Nil","args_html":"(expr : Expression::TernaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":205,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L205"},"def":{"name":"visit_ternary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TernaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.condition)\nresolve(expr.then)\nresolve(expr.else)\n"}},{"html_id":"visit_this_expr(expr:Expression::This):Nil-instance-method","name":"visit_this_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::This"}],"args_string":"(expr : Expression::This) : Nil","args_html":"(expr : Expression::This) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":239,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L239"},"def":{"name":"visit_this_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::This"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_throw_stmt(stmt:Statement::Throw):Nil-instance-method","name":"visit_throw_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"args_string":"(stmt : Statement::Throw) : Nil","args_html":"(stmt : Statement::Throw) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":119,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L119"},"def":{"name":"visit_throw_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Throw"}],"return_type":"Nil","visibility":"Public","body":"if stmt.err.nil?\nelse\n resolve(stmt.err)\nend"}},{"html_id":"visit_type_alias_expr(expr:Expression::TypeAlias):Nil-instance-method","name":"visit_type_alias_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"args_string":"(expr : Expression::TypeAlias) : Nil","args_html":"(expr : Expression::TypeAlias) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":175,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L175"},"def":{"name":"visit_type_alias_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeAlias"}],"return_type":"Nil","visibility":"Public","body":"declare(expr.token)\nif expr.value.nil?\nelse\n resolve(expr.value.not_nil!)\nend\ndefine(expr.token)\n"}},{"html_id":"visit_type_ref_expr(expr:Expression::TypeRef):Nil-instance-method","name":"visit_type_ref_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"args_string":"(expr : Expression::TypeRef) : Nil","args_html":"(expr : Expression::TypeRef) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":227,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L227"},"def":{"name":"visit_type_ref_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::TypeRef"}],"return_type":"Nil","visibility":"Public","body":"if ((!@scopes.empty?) && (!@scopes.last.nil?)) && (@scopes.last[expr.token.lexeme]? == false)\n Logger.report_error(\"Failed to assign '#{expr.token.lexeme}'\", \"Cannot read variable in it's own initializer\", expr.token)\nend\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_unary_op_expr(expr:Expression::UnaryOp):Nil-instance-method","name":"visit_unary_op_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"args_string":"(expr : Expression::UnaryOp) : Nil","args_html":"(expr : Expression::UnaryOp) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":216,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L216"},"def":{"name":"visit_unary_op_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::UnaryOp"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.operand)"}},{"html_id":"visit_unless_stmt(stmt:Statement::Unless):Nil-instance-method","name":"visit_unless_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"args_string":"(stmt : Statement::Unless) : Nil","args_html":"(stmt : Statement::Unless) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":109,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L109"},"def":{"name":"visit_unless_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Unless"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.then)\nif stmt.else.nil?\nelse\n resolve(stmt.else.not_nil!)\nend\n"}},{"html_id":"visit_until_stmt(stmt:Statement::Until):Nil-instance-method","name":"visit_until_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"args_string":"(stmt : Statement::Until) : Nil","args_html":"(stmt : Statement::Until) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":149,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L149"},"def":{"name":"visit_until_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Until"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.block)\n"}},{"html_id":"visit_use_stmt(stmt:Statement::Use):Nil-instance-method","name":"visit_use_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"args_string":"(stmt : Statement::Use) : Nil","args_html":"(stmt : Statement::Use) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":115,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L115"},"def":{"name":"visit_use_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::Use"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_var_assignment_expr(expr:Expression::VarAssignment):Nil-instance-method","name":"visit_var_assignment_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"args_string":"(expr : Expression::VarAssignment) : Nil","args_html":"(expr : Expression::VarAssignment) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":160,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L160"},"def":{"name":"visit_var_assignment_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarAssignment"}],"return_type":"Nil","visibility":"Public","body":"resolve(expr.value)\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_var_declaration_expr(expr:Expression::VarDeclaration):Nil-instance-method","name":"visit_var_declaration_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"args_string":"(expr : Expression::VarDeclaration) : Nil","args_html":"(expr : Expression::VarDeclaration) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":154,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L154"},"def":{"name":"visit_var_declaration_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VarDeclaration"}],"return_type":"Nil","visibility":"Public","body":"declare(expr.token)\nresolve(expr.value)\ndefine(expr.token)\n"}},{"html_id":"visit_var_expr(expr:Expression::Var):Nil-instance-method","name":"visit_var_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"args_string":"(expr : Expression::Var) : Nil","args_html":"(expr : Expression::Var) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":220,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L220"},"def":{"name":"visit_var_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::Var"}],"return_type":"Nil","visibility":"Public","body":"if ((!@scopes.empty?) && (!@scopes.last.nil?)) && (@scopes.last[expr.token.lexeme]? == false)\n Logger.report_error(\"Failed to assign '#{expr.token.lexeme}'\", \"Cannot read variable in it's own initializer\", expr.token)\nend\nresolve_local(expr, expr.token)\n"}},{"html_id":"visit_vector_literal_expr(expr:Expression::VectorLiteral):Nil-instance-method","name":"visit_vector_literal_expr","abstract":false,"args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"args_string":"(expr : Expression::VectorLiteral) : Nil","args_html":"(expr : Expression::VectorLiteral) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":247,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L247"},"def":{"name":"visit_vector_literal_expr","args":[{"name":"expr","external_name":"expr","restriction":"Expression::VectorLiteral"}],"return_type":"Nil","visibility":"Public","body":""}},{"html_id":"visit_while_stmt(stmt:Statement::While):Nil-instance-method","name":"visit_while_stmt","abstract":false,"args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"args_string":"(stmt : Statement::While) : Nil","args_html":"(stmt : Statement::While) : Nil","location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":144,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L144"},"def":{"name":"visit_while_stmt","args":[{"name":"stmt","external_name":"stmt","restriction":"Statement::While"}],"return_type":"Nil","visibility":"Public","body":"resolve(stmt.condition)\nresolve(stmt.block)\n"}}]},{"html_id":"Cosmo/Cosmo/Scope","path":"Cosmo/Scope.html","kind":"class","full_name":"Cosmo::Scope","name":"Scope","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/scope.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(parent:Nil|Cosmo::Scope=nil)-class-method","name":"new","abstract":false,"args":[{"name":"parent","default_value":"nil","external_name":"parent","restriction":"::Nil | ::Cosmo::Scope"}],"args_string":"(parent : Nil | Cosmo::Scope = nil)","args_html":"(parent : Nil | Cosmo::Scope = nil)","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L15"},"def":{"name":"new","args":[{"name":"parent","default_value":"nil","external_name":"parent","restriction":"::Nil | ::Cosmo::Scope"}],"visibility":"Public","body":"_ = allocate\n_.initialize(parent)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"assign(identifier:Token,value:ValueType,modifying_instance:Bool=false):ValueType-instance-method","name":"assign","abstract":false,"args":[{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"modifying_instance","default_value":"false","external_name":"modifying_instance","restriction":"Bool"}],"args_string":"(identifier : Token, value : ValueType, modifying_instance : Bool = false) : ValueType","args_html":"(identifier : Token, value : ValueType, modifying_instance : Bool = false) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L56"},"def":{"name":"assign","args":[{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"modifying_instance","default_value":"false","external_name":"modifying_instance","restriction":"Bool"}],"return_type":"ValueType","visibility":"Public","body":"if @variables.has_key?(identifier.lexeme)\n var : Variable = @variables[identifier.lexeme]\n if var[:constant] && (!modifying_instance)\n Logger.report_error(\"Attempt to assign to constant variable\", identifier.lexeme, identifier)\n end\n TypeChecker.assert(var[:type], value, identifier)\n return create_variable(var[:type], identifier, value, constant: false, visibility: var[:visibility])\nend\nif @parent.nil?\nelse\n return @parent.not_nil!.assign(identifier, value)\nend\nLogger.report_error(\"Attempt to assign to undefined variable\", identifier.lexeme, identifier)\n"}},{"html_id":"declare(typedef:Token,identifier:Token,value:ValueType,const:Bool=false,visibility:Visibility=Visibility::Private):ValueType-instance-method","name":"declare","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"Token"},{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"const","default_value":"false","external_name":"const","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Private","external_name":"visibility","restriction":"Visibility"}],"args_string":"(typedef : Token, identifier : Token, value : ValueType, const : Bool = false, visibility : Visibility = Visibility::Private) : ValueType","args_html":"(typedef : Token, identifier : Token, value : ValueType, const : Bool = false, visibility : Visibility = Visibility::Private) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":44,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L44"},"def":{"name":"declare","args":[{"name":"typedef","external_name":"typedef","restriction":"Token"},{"name":"identifier","external_name":"identifier","restriction":"Token"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"const","default_value":"false","external_name":"const","restriction":"Bool"},{"name":"visibility","default_value":"Visibility::Private","external_name":"visibility","restriction":"Visibility"}],"return_type":"ValueType","visibility":"Public","body":"if value.nil?\nelse\n TypeChecker.assert(typedef.lexeme, value, typedef)\nend\ncreate_variable(typedef, identifier, value, const, visibility)\n"}},{"html_id":"extend(other:Cosmo::Scope):Cosmo::Scope-instance-method","name":"extend","abstract":false,"args":[{"name":"other","external_name":"other","restriction":"Cosmo::Scope"}],"args_string":"(other : Cosmo::Scope) : Cosmo::Scope","args_html":"(other : Cosmo::Scope) : Cosmo::Scope","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L18"},"def":{"name":"extend","args":[{"name":"other","external_name":"other","restriction":"Cosmo::Scope"}],"return_type":"Cosmo::Scope","visibility":"Public","body":"other.variables.each do |name, data|\n if data[:visibility] == Visibility::Public\n @variables[name] = data\n end\nend\nself\n"}},{"html_id":"lookup(token:Token):ValueType-instance-method","name":"lookup","abstract":false,"args":[{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(token : Token) : ValueType","args_html":"(token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":89,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L89"},"def":{"name":"lookup","args":[{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"value = lookup?(token.lexeme)\nif value.nil?\n if value.nil? && @parent.nil?\n Logger.report_error(\"Undefined variable\", token.value.to_s, token)\n end\nend\nvalue\n"}},{"html_id":"lookup?(ident:String):ValueType-instance-method","name":"lookup?","abstract":false,"args":[{"name":"ident","external_name":"ident","restriction":"String"}],"args_string":"(ident : String) : ValueType","args_html":"(ident : String) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":76,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L76"},"def":{"name":"lookup?","args":[{"name":"ident","external_name":"ident","restriction":"String"}],"return_type":"ValueType","visibility":"Public","body":"if @variables.has_key?(ident)\n var = @variables[ident]\n typedef = var[:type]\n return var[:value]\nelse\n if @parent.nil?\n else\n return @parent.not_nil!.lookup?(ident)\n end\nend\nnil\n"}},{"html_id":"lookup_at(distance:UInt32,token:Token):ValueType-instance-method","name":"lookup_at","abstract":false,"args":[{"name":"distance","external_name":"distance","restriction":"UInt32"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(distance : UInt32, token : Token) : ValueType","args_html":"(distance : UInt32, token : Token) : ValueType","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":97,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L97"},"def":{"name":"lookup_at","args":[{"name":"distance","external_name":"distance","restriction":"UInt32"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"ValueType","visibility":"Public","body":"var = (ancestor(distance)).variables[token.value.to_s]?\nvar.value\n"}},{"html_id":"parent:Cosmo::Scope|Nil-instance-method","name":"parent","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L12"},"def":{"name":"parent","return_type":"Cosmo::Scope | ::Nil","visibility":"Public","body":"@parent"}},{"html_id":"parent=(parent:Cosmo::Scope|Nil)-instance-method","name":"parent=","abstract":false,"args":[{"name":"parent","external_name":"parent","restriction":"Cosmo::Scope | ::Nil"}],"args_string":"(parent : Cosmo::Scope | Nil)","args_html":"(parent : Cosmo::Scope | Nil)","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L12"},"def":{"name":"parent=","args":[{"name":"parent","external_name":"parent","restriction":"Cosmo::Scope | ::Nil"}],"visibility":"Public","body":"@parent = parent"}},{"html_id":"public?(ident:String):Bool-instance-method","name":"public?","doc":"Returns true if the variable exists and is public, otherwise false","summary":"

                            Returns true if the variable exists and is public, otherwise false

                            ","abstract":false,"args":[{"name":"ident","external_name":"ident","restriction":"String"}],"args_string":"(ident : String) : Bool","args_html":"(ident : String) : Bool","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":71,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L71"},"def":{"name":"public?","args":[{"name":"ident","external_name":"ident","restriction":"String"}],"return_type":"Bool","visibility":"Public","body":"if @variables.has_key?(ident)\nelse\n return false\nend\n@variables[ident][:visibility] == Visibility::Public\n"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":110,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L110"},"def":{"name":"to_s","visibility":"Public","body":"\"Scope<#{@parent ? (\"parent: \" + @parent.to_s) + \", \" : \"\"}#{@variables}>\""}},{"html_id":"variables:Hash(String,{type:String,value:Cosmo::ValueType,constant:Bool,visibility:Cosmo::AST::Visibility})-instance-method","name":"variables","abstract":false,"location":{"filename":"src/cosmo/runtime/scope.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L13"},"def":{"name":"variables","visibility":"Public","body":"@variables"}},{"html_id":"variables=(variables:Hash(String,NamedTuple(type:String,value:Cosmo::ValueType,constant:Bool,visibility:Cosmo::AST::Visibility)))-instance-method","name":"variables=","abstract":false,"args":[{"name":"variables","external_name":"variables","restriction":"::Hash(::String, ::NamedTuple(type: ::String, value: ::Cosmo::ValueType, constant: ::Bool, visibility: ::Cosmo::AST::Visibility))"}],"args_string":"(variables : Hash(String, NamedTuple(type: String, value: Cosmo::ValueType, constant: Bool, visibility: Cosmo::AST::Visibility)))","args_html":"(variables : Hash(String, NamedTuple(type: String, value: Cosmo::ValueType, constant: Bool, visibility: Cosmo::AST::Visibility)))","location":{"filename":"src/cosmo/runtime/scope.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/scope.cr#L13"},"def":{"name":"variables=","args":[{"name":"variables","external_name":"variables","restriction":"::Hash(::String, ::NamedTuple(type: ::String, value: ::Cosmo::ValueType, constant: ::Bool, visibility: ::Cosmo::AST::Visibility))"}],"visibility":"Public","body":"@variables = variables"}}]},{"html_id":"Cosmo/Cosmo/Syntax","path":"Cosmo/Syntax.html","kind":"enum","full_name":"Cosmo::Syntax","name":"Syntax","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"Identifier","name":"Identifier","value":"0"},{"id":"Integer","name":"Integer","value":"1"},{"id":"Float","name":"Float","value":"2"},{"id":"String","name":"String","value":"3"},{"id":"Char","name":"Char","value":"4"},{"id":"Boolean","name":"Boolean","value":"5"},{"id":"None","name":"None","value":"6"},{"id":"TypeDef","name":"TypeDef","value":"7"},{"id":"Public","name":"Public","value":"8"},{"id":"ClassVisibility","name":"ClassVisibility","value":"9"},{"id":"PlusPlus","name":"PlusPlus","value":"10"},{"id":"MinusMinus","name":"MinusMinus","value":"11"},{"id":"Plus","name":"Plus","value":"12"},{"id":"PlusEqual","name":"PlusEqual","value":"13"},{"id":"Minus","name":"Minus","value":"14"},{"id":"MinusEqual","name":"MinusEqual","value":"15"},{"id":"Star","name":"Star","value":"16"},{"id":"StarEqual","name":"StarEqual","value":"17"},{"id":"Slash","name":"Slash","value":"18"},{"id":"SlashEqual","name":"SlashEqual","value":"19"},{"id":"Carat","name":"Carat","value":"20"},{"id":"CaratEqual","name":"CaratEqual","value":"21"},{"id":"Percent","name":"Percent","value":"22"},{"id":"PercentEqual","name":"PercentEqual","value":"23"},{"id":"Less","name":"Less","value":"24"},{"id":"LessEqual","name":"LessEqual","value":"25"},{"id":"Greater","name":"Greater","value":"26"},{"id":"GreaterEqual","name":"GreaterEqual","value":"27"},{"id":"Equal","name":"Equal","value":"28"},{"id":"EqualEqual","name":"EqualEqual","value":"29"},{"id":"Bang","name":"Bang","value":"30"},{"id":"BangEqual","name":"BangEqual","value":"31"},{"id":"Ampersand","name":"Ampersand","value":"32"},{"id":"Pipe","name":"Pipe","value":"33"},{"id":"Tilde","name":"Tilde","value":"34"},{"id":"RDoubleArrow","name":"RDoubleArrow","value":"35"},{"id":"LDoubleArrow","name":"LDoubleArrow","value":"36"},{"id":"AmpersandColon","name":"AmpersandColon","value":"37"},{"id":"PipeColon","name":"PipeColon","value":"38"},{"id":"AmpersandColonEqual","name":"AmpersandColonEqual","value":"39"},{"id":"PipeColonEqual","name":"PipeColonEqual","value":"40"},{"id":"Question","name":"Question","value":"41"},{"id":"ColonColon","name":"ColonColon","value":"42"},{"id":"Colon","name":"Colon","value":"43"},{"id":"Dot","name":"Dot","value":"44"},{"id":"DotDot","name":"DotDot","value":"45"},{"id":"HyphenArrow","name":"HyphenArrow","value":"46"},{"id":"FatArrow","name":"FatArrow","value":"47"},{"id":"This","name":"This","value":"48"},{"id":"LBrace","name":"LBrace","value":"49"},{"id":"RBrace","name":"RBrace","value":"50"},{"id":"DoubleLBrace","name":"DoubleLBrace","value":"51"},{"id":"DoubleRBrace","name":"DoubleRBrace","value":"52"},{"id":"LBracket","name":"LBracket","value":"53"},{"id":"RBracket","name":"RBracket","value":"54"},{"id":"LParen","name":"LParen","value":"55"},{"id":"RParen","name":"RParen","value":"56"},{"id":"Comma","name":"Comma","value":"57"},{"id":"Hashtag","name":"Hashtag","value":"58"},{"id":"Class","name":"Class","value":"59"},{"id":"Mixin","name":"Mixin","value":"60"},{"id":"New","name":"New","value":"61"},{"id":"Function","name":"Function","value":"62"},{"id":"If","name":"If","value":"63"},{"id":"Unless","name":"Unless","value":"64"},{"id":"In","name":"In","value":"65"},{"id":"Of","name":"Of","value":"66"},{"id":"Is","name":"Is","value":"67"},{"id":"Else","name":"Else","value":"68"},{"id":"Every","name":"Every","value":"69"},{"id":"While","name":"While","value":"70"},{"id":"Until","name":"Until","value":"71"},{"id":"Const","name":"Const","value":"72"},{"id":"Throw","name":"Throw","value":"73"},{"id":"Break","name":"Break","value":"74"},{"id":"Next","name":"Next","value":"75"},{"id":"Case","name":"Case","value":"76"},{"id":"When","name":"When","value":"77"},{"id":"Return","name":"Return","value":"78"},{"id":"Use","name":"Use","value":"79"},{"id":"EOF","name":"EOF","value":"80"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"ampersand?-instance-method","name":"ampersand?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"ampersand?","visibility":"Public","body":"self == Ampersand"}},{"html_id":"ampersand_colon?-instance-method","name":"ampersand_colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"ampersand_colon?","visibility":"Public","body":"self == AmpersandColon"}},{"html_id":"ampersand_colon_equal?-instance-method","name":"ampersand_colon_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"ampersand_colon_equal?","visibility":"Public","body":"self == AmpersandColonEqual"}},{"html_id":"bang?-instance-method","name":"bang?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"bang?","visibility":"Public","body":"self == Bang"}},{"html_id":"bang_equal?-instance-method","name":"bang_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"bang_equal?","visibility":"Public","body":"self == BangEqual"}},{"html_id":"boolean?-instance-method","name":"boolean?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"boolean?","visibility":"Public","body":"self == Boolean"}},{"html_id":"break?-instance-method","name":"break?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":31,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L31"},"def":{"name":"break?","visibility":"Public","body":"self == Break"}},{"html_id":"carat?-instance-method","name":"carat?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"carat?","visibility":"Public","body":"self == Carat"}},{"html_id":"carat_equal?-instance-method","name":"carat_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"carat_equal?","visibility":"Public","body":"self == CaratEqual"}},{"html_id":"case?-instance-method","name":"case?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":33,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L33"},"def":{"name":"case?","visibility":"Public","body":"self == Case"}},{"html_id":"char?-instance-method","name":"char?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"char?","visibility":"Public","body":"self == Char"}},{"html_id":"class?-instance-method","name":"class?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"class?","visibility":"Public","body":"self == Class"}},{"html_id":"class_visibility?-instance-method","name":"class_visibility?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"class_visibility?","visibility":"Public","body":"self == ClassVisibility"}},{"html_id":"colon?-instance-method","name":"colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"colon?","visibility":"Public","body":"self == Colon"}},{"html_id":"colon_colon?-instance-method","name":"colon_colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"colon_colon?","visibility":"Public","body":"self == ColonColon"}},{"html_id":"comma?-instance-method","name":"comma?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":19,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L19"},"def":{"name":"comma?","visibility":"Public","body":"self == Comma"}},{"html_id":"const?-instance-method","name":"const?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":29,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L29"},"def":{"name":"const?","visibility":"Public","body":"self == Const"}},{"html_id":"dot?-instance-method","name":"dot?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"dot?","visibility":"Public","body":"self == Dot"}},{"html_id":"dot_dot?-instance-method","name":"dot_dot?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"dot_dot?","visibility":"Public","body":"self == DotDot"}},{"html_id":"double_l_brace?-instance-method","name":"double_l_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"double_l_brace?","visibility":"Public","body":"self == DoubleLBrace"}},{"html_id":"double_r_brace?-instance-method","name":"double_r_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"double_r_brace?","visibility":"Public","body":"self == DoubleRBrace"}},{"html_id":"else?-instance-method","name":"else?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":26,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L26"},"def":{"name":"else?","visibility":"Public","body":"self == Else"}},{"html_id":"eof?-instance-method","name":"eof?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":37,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L37"},"def":{"name":"eof?","visibility":"Public","body":"self == EOF"}},{"html_id":"equal?-instance-method","name":"equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"equal?","visibility":"Public","body":"self == Equal"}},{"html_id":"equal_equal?-instance-method","name":"equal_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L10"},"def":{"name":"equal_equal?","visibility":"Public","body":"self == EqualEqual"}},{"html_id":"every?-instance-method","name":"every?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":27,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L27"},"def":{"name":"every?","visibility":"Public","body":"self == Every"}},{"html_id":"fat_arrow?-instance-method","name":"fat_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"fat_arrow?","visibility":"Public","body":"self == FatArrow"}},{"html_id":"float?-instance-method","name":"float?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"float?","visibility":"Public","body":"self == Float"}},{"html_id":"function?-instance-method","name":"function?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":22,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L22"},"def":{"name":"function?","visibility":"Public","body":"self == Function"}},{"html_id":"greater?-instance-method","name":"greater?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"greater?","visibility":"Public","body":"self == Greater"}},{"html_id":"greater_equal?-instance-method","name":"greater_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"greater_equal?","visibility":"Public","body":"self == GreaterEqual"}},{"html_id":"hashtag?-instance-method","name":"hashtag?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":20,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L20"},"def":{"name":"hashtag?","visibility":"Public","body":"self == Hashtag"}},{"html_id":"hyphen_arrow?-instance-method","name":"hyphen_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":15,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L15"},"def":{"name":"hyphen_arrow?","visibility":"Public","body":"self == HyphenArrow"}},{"html_id":"identifier?-instance-method","name":"identifier?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L2"},"def":{"name":"identifier?","visibility":"Public","body":"self == Identifier"}},{"html_id":"if?-instance-method","name":"if?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L23"},"def":{"name":"if?","visibility":"Public","body":"self == If"}},{"html_id":"in?-instance-method","name":"in?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L24"},"def":{"name":"in?","visibility":"Public","body":"self == In"}},{"html_id":"integer?-instance-method","name":"integer?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"integer?","visibility":"Public","body":"self == Integer"}},{"html_id":"is?-instance-method","name":"is?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":25,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L25"},"def":{"name":"is?","visibility":"Public","body":"self == Is"}},{"html_id":"l_brace?-instance-method","name":"l_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"l_brace?","visibility":"Public","body":"self == LBrace"}},{"html_id":"l_bracket?-instance-method","name":"l_bracket?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"l_bracket?","visibility":"Public","body":"self == LBracket"}},{"html_id":"l_double_arrow?-instance-method","name":"l_double_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"l_double_arrow?","visibility":"Public","body":"self == LDoubleArrow"}},{"html_id":"l_paren?-instance-method","name":"l_paren?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"l_paren?","visibility":"Public","body":"self == LParen"}},{"html_id":"less?-instance-method","name":"less?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"less?","visibility":"Public","body":"self == Less"}},{"html_id":"less_equal?-instance-method","name":"less_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":9,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L9"},"def":{"name":"less_equal?","visibility":"Public","body":"self == LessEqual"}},{"html_id":"minus?-instance-method","name":"minus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"minus?","visibility":"Public","body":"self == Minus"}},{"html_id":"minus_equal?-instance-method","name":"minus_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"minus_equal?","visibility":"Public","body":"self == MinusEqual"}},{"html_id":"minus_minus?-instance-method","name":"minus_minus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L5"},"def":{"name":"minus_minus?","visibility":"Public","body":"self == MinusMinus"}},{"html_id":"mixin?-instance-method","name":"mixin?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"mixin?","visibility":"Public","body":"self == Mixin"}},{"html_id":"new?-instance-method","name":"new?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":21,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L21"},"def":{"name":"new?","visibility":"Public","body":"self == New"}},{"html_id":"next?-instance-method","name":"next?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":32,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L32"},"def":{"name":"next?","visibility":"Public","body":"self == Next"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"none?","visibility":"Public","body":"self == None"}},{"html_id":"of?-instance-method","name":"of?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":24,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L24"},"def":{"name":"of?","visibility":"Public","body":"self == Of"}},{"html_id":"percent?-instance-method","name":"percent?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"percent?","visibility":"Public","body":"self == Percent"}},{"html_id":"percent_equal?-instance-method","name":"percent_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L8"},"def":{"name":"percent_equal?","visibility":"Public","body":"self == PercentEqual"}},{"html_id":"pipe?-instance-method","name":"pipe?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"pipe?","visibility":"Public","body":"self == Pipe"}},{"html_id":"pipe_colon?-instance-method","name":"pipe_colon?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":12,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L12"},"def":{"name":"pipe_colon?","visibility":"Public","body":"self == PipeColon"}},{"html_id":"pipe_colon_equal?-instance-method","name":"pipe_colon_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":13,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L13"},"def":{"name":"pipe_colon_equal?","visibility":"Public","body":"self == PipeColonEqual"}},{"html_id":"plus?-instance-method","name":"plus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"plus?","visibility":"Public","body":"self == Plus"}},{"html_id":"plus_equal?-instance-method","name":"plus_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L6"},"def":{"name":"plus_equal?","visibility":"Public","body":"self == PlusEqual"}},{"html_id":"plus_plus?-instance-method","name":"plus_plus?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L5"},"def":{"name":"plus_plus?","visibility":"Public","body":"self == PlusPlus"}},{"html_id":"public?-instance-method","name":"public?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"public?","visibility":"Public","body":"self == Public"}},{"html_id":"question?-instance-method","name":"question?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L14"},"def":{"name":"question?","visibility":"Public","body":"self == Question"}},{"html_id":"r_brace?-instance-method","name":"r_brace?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L17"},"def":{"name":"r_brace?","visibility":"Public","body":"self == RBrace"}},{"html_id":"r_bracket?-instance-method","name":"r_bracket?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"r_bracket?","visibility":"Public","body":"self == RBracket"}},{"html_id":"r_double_arrow?-instance-method","name":"r_double_arrow?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"r_double_arrow?","visibility":"Public","body":"self == RDoubleArrow"}},{"html_id":"r_paren?-instance-method","name":"r_paren?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":18,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L18"},"def":{"name":"r_paren?","visibility":"Public","body":"self == RParen"}},{"html_id":"return?-instance-method","name":"return?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":35,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L35"},"def":{"name":"return?","visibility":"Public","body":"self == Return"}},{"html_id":"slash?-instance-method","name":"slash?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"slash?","visibility":"Public","body":"self == Slash"}},{"html_id":"slash_equal?-instance-method","name":"slash_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"slash_equal?","visibility":"Public","body":"self == SlashEqual"}},{"html_id":"star?-instance-method","name":"star?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"star?","visibility":"Public","body":"self == Star"}},{"html_id":"star_equal?-instance-method","name":"star_equal?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L7"},"def":{"name":"star_equal?","visibility":"Public","body":"self == StarEqual"}},{"html_id":"string?-instance-method","name":"string?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L3"},"def":{"name":"string?","visibility":"Public","body":"self == String"}},{"html_id":"this?-instance-method","name":"this?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":16,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L16"},"def":{"name":"this?","visibility":"Public","body":"self == This"}},{"html_id":"throw?-instance-method","name":"throw?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L30"},"def":{"name":"throw?","visibility":"Public","body":"self == Throw"}},{"html_id":"tilde?-instance-method","name":"tilde?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L11"},"def":{"name":"tilde?","visibility":"Public","body":"self == Tilde"}},{"html_id":"type_def?-instance-method","name":"type_def?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L4"},"def":{"name":"type_def?","visibility":"Public","body":"self == TypeDef"}},{"html_id":"unless?-instance-method","name":"unless?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":23,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L23"},"def":{"name":"unless?","visibility":"Public","body":"self == Unless"}},{"html_id":"until?-instance-method","name":"until?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L28"},"def":{"name":"until?","visibility":"Public","body":"self == Until"}},{"html_id":"use?-instance-method","name":"use?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":36,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L36"},"def":{"name":"use?","visibility":"Public","body":"self == Use"}},{"html_id":"when?-instance-method","name":"when?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":34,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L34"},"def":{"name":"when?","visibility":"Public","body":"self == When"}},{"html_id":"while?-instance-method","name":"while?","abstract":false,"location":{"filename":"src/cosmo/syntax/syntax_type.cr","line_number":28,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/syntax_type.cr#L28"},"def":{"name":"while?","visibility":"Public","body":"self == While"}}]},{"html_id":"Cosmo/Cosmo/Token","path":"Cosmo/Token.html","kind":"struct","full_name":"Cosmo::Token","name":"Token","abstract":false,"superclass":{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},"ancestors":[{"html_id":"Cosmo/Struct","kind":"struct","full_name":"Struct","name":"Struct"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(lexeme:String,type:Cosmo::Syntax,value:Bool|Char|Float32|Float64|Int128|Int16|Int32|Int64|Int8|String|Nil,location:Cosmo::Location)-class-method","name":"new","abstract":false,"args":[{"name":"lexeme","external_name":"lexeme","restriction":"::String"},{"name":"type","external_name":"type","restriction":"::Cosmo::Syntax"},{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"location","external_name":"location","restriction":"::Cosmo::Location"}],"args_string":"(lexeme : String, type : Cosmo::Syntax, value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, location : Cosmo::Location)","args_html":"(lexeme : String, type : Cosmo::Syntax, value : Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil, location : Cosmo::Location)","location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":10,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L10"},"def":{"name":"new","args":[{"name":"lexeme","external_name":"lexeme","restriction":"::String"},{"name":"type","external_name":"type","restriction":"::Cosmo::Syntax"},{"name":"value","external_name":"value","restriction":"::Bool | ::Char | ::Float32 | ::Float64 | ::Int128 | ::Int16 | ::Int32 | ::Int64 | ::Int8 | ::String | ::Nil"},{"name":"location","external_name":"location","restriction":"::Cosmo::Location"}],"visibility":"Public","body":"_ = allocate\n_.initialize(lexeme, type, value, location)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"lexeme:String-instance-method","name":"lexeme","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L8"},"def":{"name":"lexeme","return_type":"String","visibility":"Public","body":"@lexeme"}},{"html_id":"lexeme=(lexeme:String)-instance-method","name":"lexeme=","abstract":false,"args":[{"name":"lexeme","external_name":"lexeme","restriction":"String"}],"args_string":"(lexeme : String)","args_html":"(lexeme : String)","location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":8,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L8"},"def":{"name":"lexeme=","args":[{"name":"lexeme","external_name":"lexeme","restriction":"String"}],"visibility":"Public","body":"@lexeme = lexeme"}},{"html_id":"location:Location-instance-method","name":"location","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L7"},"def":{"name":"location","return_type":"Location","visibility":"Public","body":"@location"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L30"},"def":{"name":"to_s","visibility":"Public","body":"\"Token\""}},{"html_id":"type:Syntax-instance-method","name":"type","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L5"},"def":{"name":"type","return_type":"Syntax","visibility":"Public","body":"@type"}},{"html_id":"type=(type:Syntax)-instance-method","name":"type=","abstract":false,"args":[{"name":"type","external_name":"type","restriction":"Syntax"}],"args_string":"(type : Syntax)","args_html":"(type : Syntax)","location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":5,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L5"},"def":{"name":"type=","args":[{"name":"type","external_name":"type","restriction":"Syntax"}],"visibility":"Public","body":"@type = type"}},{"html_id":"value:LiteralType-instance-method","name":"value","abstract":false,"location":{"filename":"src/cosmo/syntax/lexer/token.cr","line_number":6,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer/token.cr#L6"},"def":{"name":"value","return_type":"LiteralType","visibility":"Public","body":"@value"}}]},{"html_id":"Cosmo/Cosmo/Type","path":"Cosmo/Type.html","kind":"class","full_name":"Cosmo::Type","name":"Type","abstract":false,"superclass":{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},"ancestors":[{"html_id":"Cosmo/Reference","kind":"class","full_name":"Reference","name":"Reference"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/type.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/type.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"constructors":[{"html_id":"new(name:String)-class-method","name":"new","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"::String"}],"args_string":"(name : String)","args_html":"(name : String)","location":{"filename":"src/cosmo/runtime/type.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/type.cr#L4"},"def":{"name":"new","args":[{"name":"name","external_name":"name","restriction":"::String"}],"visibility":"Public","body":"_ = allocate\n_.initialize(name)\nif _.responds_to?(:finalize)\n ::GC.add_finalizer(_)\nend\n_\n"}}],"instance_methods":[{"html_id":"name:String-instance-method","name":"name","abstract":false,"location":{"filename":"src/cosmo/runtime/type.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/type.cr#L2"},"def":{"name":"name","return_type":"String","visibility":"Public","body":"@name"}},{"html_id":"to_s-instance-method","name":"to_s","doc":"Returns a nicely readable and concise string representation of this object,\ntypically intended for users.\n\nThis method should usually **not** be overridden. It delegates to\n`#to_s(IO)` which can be overridden for custom implementations.\n\nAlso see `#inspect`.","summary":"

                            Returns a nicely readable and concise string representation of this object, typically intended for users.

                            ","abstract":false,"location":{"filename":"src/cosmo/runtime/type.cr","line_number":7,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/type.cr#L7"},"def":{"name":"to_s","visibility":"Public","body":"\"Type<#{name}>\""}}]},{"html_id":"Cosmo/Cosmo/TypeChecker","path":"Cosmo/TypeChecker.html","kind":"module","full_name":"Cosmo::TypeChecker","name":"TypeChecker","abstract":false,"locations":[{"filename":"src/cosmo/runtime/typechecker.cr","line_number":14,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L14"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"constants":[{"id":"ALIASES","name":"ALIASES","value":"{} of String => String"},{"id":"REGISTERED","name":"REGISTERED","value":"[] of Type"},{"id":"TYPE_MAP","name":"TYPE_MAP","value":"{Int128 => \"bigint\", Int64 => \"int\", Int32 => \"int\", Int16 => \"int\", Int8 => \"int\", Float64 => \"float\", Float32 => \"float\", String => \"string\", Char => \"char\", Bool => \"bool\", Nil => \"none\", Class => \"class\", Function => \"func\", PutsIntrinsic => \"func\", Array(Int64) => \"int[]\", Array(Int32) => \"int[]\", Array(Int16) => \"int[]\", Array(Int8) => \"int[]\", Array(Float64) => \"float[]\", Array(Float32) => \"float[]\", Array(String) => \"string[]\", Array(Char) => \"char[]\", Array(Bool) => \"bool[]\", Array(Function) => \"fn[]\", Array(ValueType) => \"any[]\", Array => \"any[]\", Hash(ValueType, ValueType) => \"Table\", Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) => \"Range\"}"}],"extended_modules":[{"html_id":"Cosmo/Cosmo/TypeChecker","kind":"module","full_name":"Cosmo::TypeChecker","name":"TypeChecker"}],"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"},"instance_methods":[{"html_id":"alias_type(alias_name:String,original:String):Type-instance-method","name":"alias_type","abstract":false,"args":[{"name":"alias_name","external_name":"alias_name","restriction":"String"},{"name":"original","external_name":"original","restriction":"String"}],"args_string":"(alias_name : String, original : String) : Type","args_html":"(alias_name : String, original : String) : Type","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":105,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L105"},"def":{"name":"alias_type","args":[{"name":"alias_name","external_name":"alias_name","restriction":"String"},{"name":"original","external_name":"original","restriction":"String"}],"return_type":"Type","visibility":"Public","body":"ALIASES[alias_name] = original\nregister_type(alias_name)\n"}},{"html_id":"assert(typedef:String,value:ValueType,token:Token):Nil-instance-method","name":"assert","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, value : ValueType, token : Token) : Nil","args_html":"(typedef : String, value : ValueType, token : Token) : Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":220,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L220"},"def":{"name":"assert","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":"ValueType"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Nil","visibility":"Public","body":"matches = is?(typedef, value, token)\nif typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n if value.is_a?(Array)\n else\n report_mismatch(typedef, value, token)\n end\n (value.as(Array)).each do |v|\n assert(value_type, v, token)\n end\nelse\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first.strip\n value_type = types.last.strip\n if value.is_a?(Hash)\n else\n report_mismatch(typedef, value, token)\n end\n internal = cast_hash(value)\n internal.each do |k, v|\n assert(key_type, k, token)\n assert(value_type, v, token)\n end\n else\n if typedef.starts_with?(\"(\")\n ungrouped_type = typedef[1..-2]\n assert(ungrouped_type, value, token)\n else\n if matches\n else\n report_mismatch(typedef, value, token)\n end\n end\n end\nend\n"}},{"html_id":"cast(value:T):ValueTypeforallT-instance-method","name":"cast","abstract":false,"args":[{"name":"value","external_name":"value","restriction":"T"}],"args_string":"(value : T) : ValueType forall T","args_html":"(value : T) : ValueType forall T","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":87,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L87"},"def":{"name":"cast","args":[{"name":"value","external_name":"value","restriction":"T"}],"return_type":"ValueType","visibility":"Public","body":"value.is_a?(Array) ? cast_array(value) : value.is_a?(Hash) ? cast_hash(value) : value.is_a?(Int128) && value <= Int64::MAX ? value.to_i64 : value.as(ValueType)"}},{"html_id":"cast_array(arr:Array(T)):Array(ValueType)forallT-instance-method","name":"cast_array","abstract":false,"args":[{"name":"arr","external_name":"arr","restriction":"Array(T)"}],"args_string":"(arr : Array(T)) : Array(ValueType) forall T","args_html":"(arr : Array(T)) : Array(ValueType) forall T","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":77,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L77"},"def":{"name":"cast_array","args":[{"name":"arr","external_name":"arr","restriction":"Array(T)"}],"return_type":"Array(ValueType)","visibility":"Public","body":"arr.map do |e|\n cast(e)\nend"}},{"html_id":"cast_hash(hash:Hash(K,V)):Hash(ValueType,ValueType)forallK,V-instance-method","name":"cast_hash","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":"Hash(K, V)"}],"args_string":"(hash : Hash(K, V)) : Hash(ValueType, ValueType) forall K, V","args_html":"(hash : Hash(K, V)) : Hash(ValueType, ValueType) forall K, V","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":81,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L81"},"def":{"name":"cast_hash","args":[{"name":"hash","external_name":"hash","restriction":"Hash(K, V)"}],"return_type":"Hash(ValueType, ValueType)","visibility":"Public","body":"res = {} of ValueType => ValueType\nhash.each do |k, v|\n res[cast(k)] = cast(v)\nend\nres\n"}},{"html_id":"get_mapped(t:CrystalClass):String-instance-method","name":"get_mapped","abstract":false,"args":[{"name":"t","external_name":"t","restriction":"CrystalClass"}],"args_string":"(t : CrystalClass) : String","args_html":"(t : CrystalClass) : String","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":56,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L56"},"def":{"name":"get_mapped","args":[{"name":"t","external_name":"t","restriction":"CrystalClass"}],"return_type":"String","visibility":"Public","body":"if TYPE_MAP.has_key?(t)\nelse\n raise(\"Unhandled type to map: #{t}\")\nend\nTYPE_MAP[t]\n"}},{"html_id":"get_registered_type(name:String,token:Token):Type|Nil-instance-method","name":"get_registered_type","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(name : String, token : Token) : Type | Nil","args_html":"(name : String, token : Token) : Type | Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":134,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L134"},"def":{"name":"get_registered_type","args":[{"name":"name","external_name":"name","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Type | ::Nil","visibility":"Public","body":"type = get_registered_type?(name, token)\nif type.nil?\n Logger.report_error(\"Could not resolve type\", \"'#{name}'\", token)\nend\ntype\n"}},{"html_id":"get_registered_type?(typedef:String,token:Token):Type|Nil-instance-method","name":"get_registered_type?","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, token : Token) : Type | Nil","args_html":"(typedef : String, token : Token) : Type | Nil","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":110,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L110"},"def":{"name":"get_registered_type?","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Type | ::Nil","visibility":"Public","body":"if typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n if get_registered_type?(value_type, token).nil?\n else\n Type.new(typedef)\n end\nelse\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first\n value_type = types.last\n if get_registered_type?(key_type, token).nil? && get_registered_type?(value_type, token).nil?\n else\n Type.new(typedef)\n end\n else\n if typedef.includes?(\"|\")\n types = typedef.split(\"|\")\n resolved = true\n types.each do |t|\n if get_registered_type?(t, token).nil?\n resolved = false\n break\n end\n end\n if resolved\n Type.new(typedef)\n end\n else\n REGISTERED.find do |t|\n t.name == typedef\n end\n end\n end\nend"}},{"html_id":"is?(typedef:String,value,token:Token):Bool-instance-method","name":"is?","abstract":false,"args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":""},{"name":"token","external_name":"token","restriction":"Token"}],"args_string":"(typedef : String, value, token : Token) : Bool","args_html":"(typedef : String, value, token : Token) : Bool","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":140,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L140"},"def":{"name":"is?","args":[{"name":"typedef","external_name":"typedef","restriction":"String"},{"name":"value","external_name":"value","restriction":""},{"name":"token","external_name":"token","restriction":"Token"}],"return_type":"Bool","visibility":"Public","body":"case typedef\nwhen \"Range\"\n value.is_a?(Range)\nwhen \"class\"\n value.is_a?(Class)\nwhen \"type\"\n value.is_a?(Type)\nwhen \"func\"\n value.is_a?(Function) || value.is_a?(IntrinsicFunction)\nwhen \"bigint\"\n value.is_a?(Int)\nwhen \"int\"\n value.is_a?(Int64 | Int32 | Int16 | Int8)\nwhen \"float\"\n value.is_a?(Float)\nwhen \"bool\"\n value.is_a?(Bool)\nwhen \"string\"\n value.is_a?(String)\nwhen \"char\"\n value.is_a?(Char)\nwhen \"none\", \"void\"\n value == nil\nwhen \"any\"\n true\nelse\n matches = false\n if typedef.starts_with?(\"(\")\n ungrouped_type = typedef[1..-2]\n matches = is?(ungrouped_type, value, token)\n else\n if typedef.ends_with?(\"[]\")\n value_type = typedef[0..-3]\n matches = value.is_a?(Array)\n if value.is_a?(Array)\n (value.as(Array)).each do |v|\n matches && (matches = is?(value_type, v, token))\n end\n end\n else\n if typedef.includes?(\"|\")\n types = typedef.split(\"|\")\n types.each do |type|\n if is?(type.strip, value, token)\n matches = true\n end\n end\n else\n if (typedef.includes?(\"->\")) && ((typedef.split(\"->\", 2)).size == 2)\n types = typedef.split(\"->\", 2)\n key_type = types.first.strip\n value_type = types.last.strip\n matches = value.is_a?(Hash)\n if value.is_a?(Hash)\n (value.as(Hash)).each do |k, v|\n matches && (matches = is?(key_type, k, token))\n matches && (matches = is?(value_type, v, token))\n end\n end\n else\n if typedef.ends_with?(\"?\")\n non_nullable_type = typedef[0..-2]\n matches = is?(non_nullable_type + \"|void\", value, token)\n else\n if matches\n else\n registered = get_registered_type?(typedef, token)\n if registered.nil?\n matches = false\n else\n if ALIASES.has_key?(registered.name)\n unaliased = ALIASES[registered.name]\n matches = is?(unaliased, value, token)\n else\n if value.is_a?(ClassInstance)\n matches = value.name == registered.name\n else\n matches = false\n end\n end\n end\n end\n end\n end\n end\n end\n end\n matches\nend"}},{"html_id":"register_intrinsics-instance-method","name":"register_intrinsics","abstract":false,"location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":63,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L63"},"def":{"name":"register_intrinsics","visibility":"Public","body":"register_type(\"Range\")\nregister_type(\"type\")\nregister_type(\"class\")\nregister_type(\"func\")\nregister_type(\"bigint\")\nregister_type(\"int\")\nregister_type(\"float\")\nregister_type(\"bool\")\nregister_type(\"string\")\nregister_type(\"char\")\nregister_type(\"void\")\n"}},{"html_id":"register_type(name:String):Type-instance-method","name":"register_type","abstract":false,"args":[{"name":"name","external_name":"name","restriction":"String"}],"args_string":"(name : String) : Type","args_html":"(name : String) : Type","location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":99,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L99"},"def":{"name":"register_type","args":[{"name":"name","external_name":"name","restriction":"String"}],"return_type":"Type","visibility":"Public","body":"type = Type.new(name)\nREGISTERED << type\ntype\n"}},{"html_id":"reset-instance-method","name":"reset","abstract":false,"location":{"filename":"src/cosmo/runtime/typechecker.cr","line_number":93,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L93"},"def":{"name":"reset","visibility":"Public","body":"ALIASES.clear\nREGISTERED.clear\nregister_intrinsics\n"}}]},{"html_id":"Cosmo/Cosmo/ValueType","path":"Cosmo/ValueType.html","kind":"alias","full_name":"Cosmo::ValueType","name":"ValueType","abstract":false,"locations":[{"filename":"src/cosmo/runtime/typechecker.cr","line_number":11,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/typechecker.cr#L11"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":true,"aliased":"(Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil)","aliased_html":"Array(Cosmo::ValueType) | Bool | Char | Cosmo::Callable | Cosmo::Class | Cosmo::ClassInstance | Cosmo::Type | Float32 | Float64 | Hash(Cosmo::ValueType, Cosmo::ValueType) | Int128 | Int16 | Int32 | Int64 | Int8 | Range(Int128 | Int16 | Int32 | Int64 | Int8, Int128 | Int16 | Int32 | Int64 | Int8) | String | Nil","const":false,"namespace":{"html_id":"Cosmo/Cosmo","kind":"module","full_name":"Cosmo","name":"Cosmo"}}]},{"html_id":"Cosmo/FnType","path":"FnType.html","kind":"enum","full_name":"FnType","name":"FnType","abstract":false,"ancestors":[{"html_id":"Cosmo/Enum","kind":"struct","full_name":"Enum","name":"Enum"},{"html_id":"Cosmo/Comparable","kind":"module","full_name":"Comparable","name":"Comparable"},{"html_id":"Cosmo/Value","kind":"struct","full_name":"Value","name":"Value"},{"html_id":"Cosmo/Object","kind":"class","full_name":"Object","name":"Object"}],"locations":[{"filename":"src/cosmo/runtime/resolver.cr","line_number":1,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L1"}],"repository_name":"Cosmo","program":false,"enum":true,"alias":false,"const":false,"constants":[{"id":"None","name":"None","value":"0"},{"id":"Fn","name":"Fn","value":"1"}],"instance_methods":[{"html_id":"fn?-instance-method","name":"fn?","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":3,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L3"},"def":{"name":"fn?","visibility":"Public","body":"self == Fn"}},{"html_id":"none?-instance-method","name":"none?","abstract":false,"location":{"filename":"src/cosmo/runtime/resolver.cr","line_number":2,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/runtime/resolver.cr#L2"},"def":{"name":"none?","visibility":"Public","body":"self == None"}}]},{"html_id":"Cosmo/LiteralType","path":"LiteralType.html","kind":"alias","full_name":"LiteralType","name":"LiteralType","abstract":false,"locations":[{"filename":"src/cosmo/syntax/lexer.cr","line_number":4,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/cosmo/syntax/lexer.cr#L4"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":true,"aliased":"(Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil)","aliased_html":"Bool | Char | Float32 | Float64 | Int128 | Int16 | Int32 | Int64 | Int8 | String | Nil","const":false},{"html_id":"Cosmo/Stringify","path":"Stringify.html","kind":"module","full_name":"Stringify","name":"Stringify","abstract":false,"locations":[{"filename":"src/util.cr","line_number":17,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/util.cr#L17"}],"repository_name":"Cosmo","program":false,"enum":false,"alias":false,"const":false,"extended_modules":[{"html_id":"Cosmo/Stringify","kind":"module","full_name":"Stringify","name":"Stringify"}],"instance_methods":[{"html_id":"hashmap(hash:Hash,base_indent:Int=0):String-instance-method","name":"hashmap","abstract":false,"args":[{"name":"hash","external_name":"hash","restriction":"Hash"},{"name":"base_indent","default_value":"0","external_name":"base_indent","restriction":"Int"}],"args_string":"(hash : Hash, base_indent : Int = 0) : String","args_html":"(hash : Hash, base_indent : Int = 0) : String","location":{"filename":"src/util.cr","line_number":30,"url":"https://github.com/R-unic/cosmo/blob/ccd8c61c731f2db8cc33ea1469b02e04ff7f36c5/src/util.cr#L30"},"def":{"name":"hashmap","args":[{"name":"hash","external_name":"hash","restriction":"Hash"},{"name":"base_indent","default_value":"0","external_name":"base_indent","restriction":"Int"}],"return_type":"String","visibility":"Public","body":"@@indent = base_indent\ns = String::Builder.new(\"{\")\npush_indent(s)\nhash.each_with_index do |entry, i|\n if i == 0\n s.write((\"\\n\" + (TAB * @@indent)).to_slice)\n end\n key, value = entry\n if key.is_a?(String)\n s.write('\"'.to_s.to_slice)\n end\n s.write(key.to_s.to_slice)\n if key.is_a?(String)\n s.write('\"'.to_s.to_slice)\n end\n s.write(\" -> \".to_slice)\n if value.is_a?(Hash)\n s.write((Stringify.hashmap(value, @@indent)).to_slice)\n else\n if value.is_a?(String)\n s.write('\"'.to_s.to_slice)\n end\n s.write((value.nil? ? \"none\" : value.to_s).to_slice)\n if value.is_a?(String)\n s.write('\"'.to_s.to_slice)\n end\n end\n if i == (hash.size - 1)\n else\n s.write(\",\".to_slice)\n end\n s.write(\"\\n\".to_slice)\n if i == (hash.size - 1)\n else\n s.write((TAB * @@indent).to_slice)\n end\nend\npop_indent\ns.write(\"#{TAB * @@indent}}\".to_slice)\ns.to_s\n"}}]}]}}) \ No newline at end of file diff --git a/docs/toplevel.html b/docs/toplevel.html index f0acad06..bafaeb52 100644 --- a/docs/toplevel.html +++ b/docs/toplevel.html @@ -136,6 +136,11 @@

                            +
                          • + New + +
                          • +
                          • NoneLiteral @@ -171,6 +176,11 @@

                          • +
                          • + This + +
                          • +
                          • TypeAlias @@ -341,6 +351,11 @@

                          • +
                          • + ClassInstance + +
                          • +
                          • Function @@ -546,6 +561,11 @@

                            @@ -886,7 +916,7 @@


                            @@ -907,7 +937,7 @@