module languages/generic-cpp/syntax/Includes[Result]

imports languages/generic-cpp/syntax/Files

exports

sorts SystemInclude LocalInclude IncludeFile

lexical syntax
  [\<] Filename [\>] -> SystemInclude
  [\"] Filename [\"] -> LocalInclude

context-free syntax
  SystemInclude -> IncludeFile
  LocalInclude  -> IncludeFile

  "#" "include" IncludeFile -> Result