Module: Finitio::Syntax
- Defined in:
- lib/finitio/syntax.rb,
lib/finitio/syntax/system.rb,
lib/finitio/syntax/ad_type.rb,
lib/finitio/syntax/heading.rb,
lib/finitio/syntax/support.rb,
lib/finitio/syntax/any_type.rb,
lib/finitio/syntax/contract.rb,
lib/finitio/syntax/seq_type.rb,
lib/finitio/syntax/set_type.rb,
lib/finitio/syntax/sub_type.rb,
lib/finitio/syntax/type_def.rb,
lib/finitio/syntax/type_ref.rb,
lib/finitio/syntax/attribute.rb,
lib/finitio/syntax/expression.rb,
lib/finitio/syntax/tuple_type.rb,
lib/finitio/syntax/union_type.rb,
lib/finitio/syntax/constraints.rb,
lib/finitio/syntax/definitions.rb,
lib/finitio/syntax/inline_pair.rb,
lib/finitio/syntax/lambda_expr.rb,
lib/finitio/syntax/builtin_type.rb,
lib/finitio/syntax/external_pair.rb,
lib/finitio/syntax/relation_type.rb,
lib/finitio/syntax/constraint_def.rb,
lib/finitio/syntax/named_constraint.rb,
lib/finitio/syntax/unnamed_constraint.rb
Defined Under Namespace
Modules: AdType, AnyType, Attribute, BuiltinType, ConstraintDef, Constraints, Contract, Definitions, Expression, ExternalPair, Heading, InlinePair, LambdaExpr, NamedConstraint, RelationType, SeqType, SetType, SubType, Support, System, TupleType, TypeDef, TypeRef, UnionType, UnnamedConstraint
Class Method Summary
collapse
Class Method Details
.ast(source) ⇒ Object
37
38
39
|
# File 'lib/finitio/syntax.rb', line 37
def self.ast(source)
parse(source, root: "system").to_ast
end
|
.compile(source, system = Finitio::System.new) ⇒ Object
41
42
43
|
# File 'lib/finitio/syntax.rb', line 41
def self.compile(source, system = Finitio::System.new)
parse(source, root: "system").compile(system)
end
|
.compile_type(source) ⇒ Object
45
46
47
|
# File 'lib/finitio/syntax.rb', line 45
def self.compile_type(source)
parse(source, root: "type").compile(TypeFactory.new)
end
|
.parse(source, *args, &bl) ⇒ Object
32
33
34
35
|
# File 'lib/finitio/syntax.rb', line 32
def self.parse(source, *args, &bl)
source = File.read(source) if source.respond_to?(:to_path)
Parser.parse(source, *args, &bl)
end
|