
header position 0..59
module myModule
  metamodel http://www.eclipse.org/emf/2002/Ecore (18..56)
  [comment @main  (70..76) /] (61..78)
  
  public template myTemplate(myParam : EPackage (107..132))
  @main
    [file url .add(.aqlFeatureAccess(myParam, 'name'), '.txt') (144..165) mode overwrite
      first line (newLineNeeded) (183..194)
      BEFORE_TEXT  (198..210)
      [let 
      name : null = .aqlFeatureAccess(myParam, 'name') (222..234) (215..234)
        [name (236..240)/] (235..242)
        
                 (242..259) (235..259)
      [/let] (210..265)
       (newLineNeeded) (265..266)
      last line (newLineNeeded) (270..280) (178..282)
    [/file] (137..289)
     (newLineNeeded) (289..290) (134..290)
  [/template] (79..301) (0..301)