Skip to content

Commit

Permalink
support for resolving arbitrary names independent of existing actual
Browse files Browse the repository at this point in the history
references
  • Loading branch information
Guido Wachsmuth committed Jun 11, 2014
1 parent ebc178f commit 1ff23d9
Show file tree
Hide file tree
Showing 4 changed files with 194 additions and 159 deletions.
19 changes: 10 additions & 9 deletions org.metaborg.meta.lang.nabl/syntax/formulas/Propositions.sdf
Expand Up @@ -3,15 +3,16 @@ imports terms/Terms terms/Vars core/Namespaces core/Scopes core/Properties

exports
context-free syntax
"true" -> Proposition {cons("True")}
"false" -> Proposition {cons("False")}
VarRef "==" Term -> Proposition {cons("Eq")}
VarRef "=>" Pattern -> Proposition {cons("Match")}
"definition" "of" VarRef "=>" Var -> Proposition {cons("DefOf")}
Scope "=>" Var -> Proposition {cons("ScopeOf")}
VarRef "refers" "to" NamespaceRef Var -> Proposition {cons("RefersTo")}
VarRef "has" PropertyRef Var -> Proposition {cons("HasProperty")}
Term Relation Term -> Proposition {cons("InRelation")}
"true" -> Proposition {cons("True")}
"false" -> Proposition {cons("False")}
VarRef "==" Term -> Proposition {cons("Eq")}
VarRef "=>" Pattern -> Proposition {cons("Match")}
"definition" "of" VarRef "=>" Var -> Proposition {cons("DefOf")}
"definition" "of" NamespaceRef VarRef "=>" Var -> Proposition {cons("DefOf")}
Scope "=>" Var -> Proposition {cons("ScopeOf")}
Term "resolves" "to" NamespaceRef Var -> Proposition {cons("ResolvesTo")}
VarRef "has" PropertyRef Var -> Proposition {cons("HasProperty")}
Term Relation Term -> Proposition {cons("InRelation")}

context-free syntax
CONTENTCOMPLETE -> Proposition {cons("COMPLETION-Proposition")}
13 changes: 7 additions & 6 deletions org.metaborg.meta.lang.nabl/syntax/formulas/Propositions.sdf3
Expand Up @@ -12,11 +12,12 @@ templates // propositions
Proposition.True = <true>
Proposition.False = <false>

Proposition.Eq = [[VarRef] == [Term]]
Proposition.Match = [[VarRef] => [Pattern]]
Proposition.DefOf = [definition of [VarRef] => [Var]]
Proposition.ScopeOf = [[Scope] => [Var]]
Proposition.RefersTo = <<VarRef> refers to <NamespaceRef> <Var>>

Proposition.Eq = [[VarRef] == [Term]]
Proposition.Match = [[VarRef] => [Pattern]]
Proposition.DefOf = [definition of [VarRef] => [Var]]
Proposition.DefOf = [definition of [NamespaceRef] [VarRef] => [Var]]
Proposition.ScopeOf = [[Scope] => [Var]]
Proposition.ResolvesTo = <<Term> resolves to <NamespaceRef> <Var>> // TODO: add resolution scope

Proposition.HasProperty = <<VarRef> has <PropertyRef> <Var>>
Proposition.InRelation = [[Term] [Relation] [Term]]

0 comments on commit 1ff23d9

Please sign in to comment.