Module: Qrb::Syntax

Defined in:
lib/qrb/syntax.rb,
lib/qrb/syntax/system.rb,
lib/qrb/syntax/ad_type.rb,
lib/qrb/syntax/heading.rb,
lib/qrb/syntax/support.rb,
lib/qrb/syntax/any_type.rb,
lib/qrb/syntax/contract.rb,
lib/qrb/syntax/seq_type.rb,
lib/qrb/syntax/set_type.rb,
lib/qrb/syntax/sub_type.rb,
lib/qrb/syntax/type_def.rb,
lib/qrb/syntax/type_ref.rb,
lib/qrb/syntax/attribute.rb,
lib/qrb/syntax/expression.rb,
lib/qrb/syntax/tuple_type.rb,
lib/qrb/syntax/union_type.rb,
lib/qrb/syntax/constraints.rb,
lib/qrb/syntax/definitions.rb,
lib/qrb/syntax/inline_pair.rb,
lib/qrb/syntax/lambda_expr.rb,
lib/qrb/syntax/builtin_type.rb,
lib/qrb/syntax/external_pair.rb,
lib/qrb/syntax/relation_type.rb,
lib/qrb/syntax/constraint_def.rb,
lib/qrb/syntax/named_constraint.rb,
lib/qrb/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



36
37
38
# File 'lib/qrb/syntax.rb', line 36

def self.ast(source)
  Parser.parse(source, root: "system").to_ast
end

.compile(source, system = Qrb::System.new) ⇒ Object



40
41
42
# File 'lib/qrb/syntax.rb', line 40

def self.compile(source, system = Qrb::System.new)
  Parser.parse(source, root: "system").compile(system)
end

.compile_type(str) ⇒ Object



44
45
46
# File 'lib/qrb/syntax.rb', line 44

def self.compile_type(str)
  Parser.parse(str.strip, root: "type").compile(TypeFactory.new)
end

.parse(*args, &bl) ⇒ Object



32
33
34
# File 'lib/qrb/syntax.rb', line 32

def self.parse(*args, &bl)
  Parser.parse(*args, &bl)
end