module basic/Path

imports basic/StrCon

exports

context-free start-symbols Path

sorts TermCon

sorts Path
context-free syntax
  %% A path consists of a number of segments
  "absolute" "(" "[" {Segment ","}* "]" ")" -> Path {cons("absolute")}

  "relative" "(" "[" {Segment ","}* "]" ")" -> Path {cons("relative")}

sorts Segment
context-free syntax
  "segment" "(" name:StrCon ")" -> Segment {cons("segment")}