STD.System.Debug.GetParseTree ( )
Return: | GetParseTree returns a STRING value. |
The GetParseTree function returns a textual representation of the match that occurred, using square brackets (such as: a[b[c]d] ) to indicate nesting. This function is only used within the RECORD or TRANSFORM structure that defines the result of a PARSE operation. This function is useful for debugging PARSE operations.
Example:
IMPORT STD; r := {string150 line}; d := dataset([ {'Ge 34:2 And when Shechem the son of Hamor the Hivite, '+ 'prince of the country, saw her, he took her, and lay with her, '+ 'and defiled her.'}, {'Ge 36:10 These are the names of Esaus sons; Eliphaz the son of '+ 'Adah the wife of Esau, Reuel the son of Bashemath the wife of '+ 'Esau.'} ],r); PATTERN ws := [' ','\t',',']*; PATTERN patStart := FIRST | ws; PATTERN patEnd := LAST | ws; PATTERN article := ['A','The','Thou','a','the','thou']; TOKEN patWord := PATTERN('[a-zA-Z]+'); TOKEN Name := PATTERN('[A-Z][a-zA-Z]+'); RULE Namet := name OPT(ws 'the' ws name); PATTERN produced_by := OPT(article ws) ['son of','daughter of']; PATTERN produces_with := OPT(article ws) ['wife of']; RULE progeny := namet ws ( produced_by | produces_with ) ws namet; results := RECORD STRING LeftName := MATCHTEXT(Namet[1]); STRING RightName := MATCHTEXT(Namet[2]); STRING LinkPhrase := IF(MATCHTEXT(produced_by[1])<>'', MATCHTEXT(produced_by[1]), MATCHTEXT(produces_with[1])); STRING Tree := 'Tree: ' + STD.System.Debug.getParseTree(); END; outfile1 := PARSE(d,line,progeny,results,SCAN ALL); /* the Tree field output looks like this: Tree: [namet[name"Shechem"] ws" " produced_by"the son of" ws" " namet[name"Hamor"]] */