Module: Expressir

Extended by:
Config
Defined in:
lib/expressir/express/visitor.rb,
lib/expressir.rb,
lib/expressir/cli.rb,
lib/expressir/config.rb,
lib/expressir/changes.rb,
lib/expressir/version.rb,
lib/expressir/coverage.rb,
lib/expressir/benchmark.rb,
lib/expressir/model/cache.rb,
lib/expressir/commands/base.rb,
lib/expressir/express/cache.rb,
lib/expressir/express/error.rb,
lib/expressir/commands/clean.rb,
lib/expressir/express/parser.rb,
lib/expressir/commands/format.rb,
lib/expressir/schema_manifest.rb,
lib/expressir/commands/changes.rb,
lib/expressir/commands/version.rb,
lib/expressir/model/identifier.rb,
lib/expressir/model/repository.rb,
lib/expressir/commands/coverage.rb,
lib/expressir/commands/validate.rb,
lib/expressir/express/formatter.rb,
lib/expressir/commands/benchmark.rb,
lib/expressir/changes/item_change.rb,
lib/expressir/model/literals/real.rb,
lib/expressir/model/model_element.rb,
lib/expressir/model/statements/if.rb,
lib/expressir/model/data_types/bag.rb,
lib/expressir/model/data_types/set.rb,
lib/expressir/changes/schema_change.rb,
lib/expressir/express/model_visitor.rb,
lib/expressir/model/data_types/list.rb,
lib/expressir/model/data_types/real.rb,
lib/expressir/model/literals/binary.rb,
lib/expressir/model/literals/string.rb,
lib/expressir/model/statements/case.rb,
lib/expressir/model/statements/null.rb,
lib/expressir/model/statements/skip.rb,
lib/expressir/schema_manifest_entry.rb,
lib/expressir/changes/mapping_change.rb,
lib/expressir/changes/version_change.rb,
lib/expressir/eengine/compare_report.rb,
lib/expressir/model/data_types/array.rb,
lib/expressir/model/literals/integer.rb,
lib/expressir/model/literals/logical.rb,
lib/expressir/model/statements/alias.rb,
lib/expressir/eengine/changes_section.rb,
lib/expressir/eengine/modified_object.rb,
lib/expressir/model/data_types/binary.rb,
lib/expressir/model/data_types/number.rb,
lib/expressir/model/data_types/select.rb,
lib/expressir/model/data_types/string.rb,
lib/expressir/model/declarations/rule.rb,
lib/expressir/model/declarations/type.rb,
lib/expressir/model/statements/escape.rb,
lib/expressir/model/statements/repeat.rb,
lib/expressir/model/statements/return.rb,
lib/expressir/commands/benchmark_cache.rb,
lib/expressir/model/data_types/boolean.rb,
lib/expressir/model/data_types/generic.rb,
lib/expressir/model/data_types/integer.rb,
lib/expressir/model/data_types/logical.rb,
lib/expressir/commands/changes_validate.rb,
lib/expressir/model/declarations/entity.rb,
lib/expressir/model/declarations/schema.rb,
lib/expressir/model/statements/compound.rb,
lib/expressir/eengine/arm_compare_report.rb,
lib/expressir/eengine/mim_compare_report.rb,
lib/expressir/model/data_types/aggregate.rb,
lib/expressir/model/expressions/interval.rb,
lib/expressir/express/hyperlink_formatter.rb,
lib/expressir/model/declarations/constant.rb,
lib/expressir/model/declarations/function.rb,
lib/expressir/model/declarations/variable.rb,
lib/expressir/model/statements/assignment.rb,
lib/expressir/model/data_types/enumeration.rb,
lib/expressir/model/declarations/attribute.rb,
lib/expressir/model/declarations/interface.rb,
lib/expressir/model/declarations/parameter.rb,
lib/expressir/model/declarations/procedure.rb,
lib/expressir/model/statements/case_action.rb,
lib/expressir/express/schema_head_formatter.rb,
lib/expressir/model/declarations/where_rule.rb,
lib/expressir/model/declarations/remark_item.rb,
lib/expressir/model/declarations/unique_rule.rb,
lib/expressir/commands/changes_import_eengine.rb,
lib/expressir/model/data_types/generic_entity.rb,
lib/expressir/model/expressions/function_call.rb,
lib/expressir/model/statements/procedure_call.rb,
lib/expressir/model/references/group_reference.rb,
lib/expressir/model/references/index_reference.rb,
lib/expressir/model/data_types/enumeration_item.rb,
lib/expressir/model/declarations/interface_item.rb,
lib/expressir/model/declarations/schema_version.rb,
lib/expressir/model/references/simple_reference.rb,
lib/expressir/model/declarations/interfaced_item.rb,
lib/expressir/model/expressions/query_expression.rb,
lib/expressir/model/expressions/unary_expression.rb,
lib/expressir/model/expressions/binary_expression.rb,
lib/expressir/model/declarations/derived_attribute.rb,
lib/expressir/model/declarations/inverse_attribute.rb,
lib/expressir/model/expressions/entity_constructor.rb,
lib/expressir/model/references/attribute_reference.rb,
lib/expressir/model/declarations/subtype_constraint.rb,
lib/expressir/model/declarations/schema_version_item.rb,
lib/expressir/model/expressions/aggregate_initializer.rb,
lib/expressir/express/resolve_references_model_visitor.rb,
lib/expressir/model/declarations/informal_proposition_rule.rb,
lib/expressir/model/expressions/aggregate_initializer_item.rb,
lib/expressir/model/supertype_expressions/oneof_supertype_expression.rb,
lib/expressir/model/supertype_expressions/binary_supertype_expression.rb

Overview

reference type is not recognized see note in A.1.5 Interpreted identifiers > It is expected that identifiers matching these syntax rules are known to an implementation. > How the implementation obtains this information is of no concern to the definition of the language. One > method of gaining this information is multi-pass parsing: the first pass collects the identifiers from their > declarations, so that subsequent passes are then able to distinguish a veriable_ref from a function_ref, > for example.

  • such multi-pass parsing is not implemented yet

  • xxxRef - merged to SimpleReference

  • entityConstructor, functionCall - merged to FunctionCall

difference between generalized and instantiable types is not recognized see note in 8.6.2 Parameter data types > A syntactic construct such as ARRAY OF REAL satisfies two syntactic productions —> aggregation_type and general_aggregation_type. It is considered to be instantiable no matter which > production it is required to satisfy in the syntax.

static shorthands are unwrapped

  • entity attributes, function/procedure parameters, local variables

all access to ctx members must happen before calling other visitor code

  • prevents segfault in ANTLR4 C++ runtime, not sure why they are caused

  • e.g. see visit_schema_decl

Defined Under Namespace

Modules: Benchmark, Changes, Commands, Config, Coverage, Eengine, Express, Model Classes: Cli, Configuration, Error, InvalidSchemaManifestError, SchemaManifest, SchemaManifestEntry

Constant Summary collapse

VERSION =
"2.1.30".freeze

Class Method Summary collapse

Methods included from Config

configuration, configure

Class Method Details

.rootObject



34
35
36
# File 'lib/expressir.rb', line 34

def self.root
  File.dirname(__dir__)
end

.root_pathObject



38
39
40
# File 'lib/expressir.rb', line 38

def self.root_path
  @root_path ||= Pathname.new(Expressir.root)
end