Sha256: 8657ccd9f848567b9b63fd84f0c3db6848012194651858df7a089040b8a81551

Contents?: true

Size: 883 Bytes

Versions: 12

Compression:

Stored size: 883 Bytes

Contents

grammar TraceInMarkdown

    rule top
        (document '' )
        {def getLabel ; "top" ; end}
    end

    rule document
       ( (noMarkupText / trace / markupAbort)*  '')
        {def getLabel ; "document" ; end}
    end

    rule noMarkupText
       [^\[]+  { def as_xml; wrap('noMarkupText',super); end } 
    end
    
    rule markupAbort
       "["     
    end

	rule trace
		traceId s? traceHead s? traceBody uptraces:traceUpLink  
		 {def getLabel ; "trace" ; end} 
	end
	
	rule traceId 
	   "[" payload:label "]" 
	end
	
	
	rule label
		[a-zA-Z]+ "_" [a-zA-Z]+ "_" [0-9]+ 
	end
	
	rule traceHead
		 '**' payload:(!'*' . / '\*')+ '**' 
	end
	
	rule traceBody
	   "{" payload:(nestedBody / [^{}])+ "}" 
	end
	
	rule nestedBody
	   "{" (nestedBody / [^{}])+ "}" 
	end
	
	rule traceUpLink
	    "(" payload:(","? s? label)* ")" 
	end

    rule s
       [\s]+  
    end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
wortsammler-2.0.0.dev1 lib/wortsammler/mdTraceParser.treetop
wortsammler-1.0.3 lib/wortsammler/mdTraceParser.treetop
wortsammler-1.0.2 lib/wortsammler/mdTraceParser.treetop
wortsammler-1.0.1 lib/wortsammler/mdTraceParser.treetop
wortsammler-1.0.0 lib/wortsammler/mdTraceParser.treetop
wortsammler-0.0.9 lib/wortsammler/mdTraceParser.treetop
wortsammler-0.0.8 lib/wortsammler/mdTraceParser.treetop
wortsammler-0.0.7 lib/wortsammler/mdTraceParser.treetop
wortsammler-0.0.6 lib/wortsammler/mdTraceParser.treetop
wortsammler-0.0.5 lib/wortsammler/mdTraceParser.treetop
wortsammler-0.0.3 lib/wortsammler/mdTraceParser.treetop
wortsammler-0.0.2 lib/wortsammler/mdTraceParser.treetop