/usr/lib/falcon/parser/faldoc/generic.fal is in libfalcon-engine1 0.9.6.9-git20120606-2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | /*
FALCON - Generic Parser
FILE: generic.fal
Read faldoc blocks inside generic files.
-------------------------------------------------------------------
Author: Giancarlo Niccolai
Begin: Sat, 25 Sep 2010 14:53:06 +0200
-------------------------------------------------------------------
(C) Copyright 2010: the FALCON developers (see list in AUTHORS file)
See LICENSE file for licensing details.
*/
import InfoNode from parser.genparser.node as InfoNode
import TagRule from parser.genparser.rules as TagRule
import ReRule from parser.genparser.rules as ReRule
import DummyRule from parser.genparser.rules as DummyRule
import Parser from parser.genparser
import PState from parser.genparser as PState
class Parser from parser.genparser.Parser
states = [
"start" => PState( .[
ReRule( '/\*#[*#\s]?', "grab", {ctx=> ctx.pushNode( InfoNode( "faldoc_txt", ["line"=>ctx.row] )) })
ReRule( '//#\s*(?:@)', "grab_eol", {ctx=> ctx.pushNode( InfoNode( "faldoc_txt", ["line"=>ctx.row] )) })
TagRule( "/*", "comment" )
ReRule( "//.*$", "#stay" )
],
"*" // get all
),
"grab" =>PState(.[
TagRule( "\\*", "#stay", {ctx=> ctx.add("*")} )
ReRule( '\s*\*+/', "#pop", {ctx=> ctx.popNode()})
// Consumes useless * at begin of comment
ReRule( '^\s*\*+', "#stay" )
],
{ctx, data=>ctx.add( data )},
"grab_continue"
),
"grab_continue"=> PState(
.[ DummyRule( "#pop", { ctx => ctx.add("\n")} ) ]
),
"grab_eol" =>PState(
.[],
{ctx, data=>ctx.add( data )},
"grab_eol_checker"
),
"grab_eol_checker" =>PState(
.[
// if there is a //# on the next line, go on returning on the prev state
TagRule( "//#", "#pop", {ctx=>ctx.add("\n")} )
// Else, pop the node and return to top
DummyRule( "#pop;#pop", {ctx=>ctx.popNode()} )
]
),
"comment" =>PState(.[
ReRule( '.*?\*/', "#pop" )
ReRule( '.*', "#stay" )
]
),
// Just to be able to add always "," at the end
"*dummy" => nil
]
function reset()
self.initParser( "start" )
end
end
|