Re: Regular Expression Explanation for 'function.lang'
Lorenzo Bettini <[email protected]> Mon, 23 May 2011 16:10:44 +0200
| Newsgroups | gmane.comp.gnu.source-highlight.general |
|---|---|
| Message-ID | <[email protected]> |
On 05/20/2011 04:57 PM, Peter Willis wrote: > > Hello, > Hi Peter > I have made an IDL syntax highlight file: > rsiidl.lang > > One of the included files is 'function.lang'. > This works fine for functions that return a value > since the call syntax for functions is: > > VARIABLE = SOMEFUNC(variable , variable, ...) > > I now want to define 'procedure.lang' where > the call syntax is: > > SOMEPROC, variable, variable, ... > > As you can see the call to a procedure in IDL does > not include parenthesis. > please keep in mind that source-highlight does not perform real parsing (only scanning with some state functionalities), thus it can only highlight parts of a program that can be recognized through regular expressions... > > 'function.lang' reads as follows: > > > vardef FUNCTION = '(?:[[:alpha:]]|_)[[:word:]]*[[:blank:]]*(?=\()' > function = $FUNCTION > > What format (of regex ??) is being used here? > How might I change this to test just the 'procedure' case? that regular expression uses "Forward Lookahead Asserts" (see also http://www.gnu.org/software/src-highlite/source-highlight.html#Notes-on-regular-expressions), i.e., which are included in (?= ) (?=\() checks whether after the name there's a ( but does not consume it can the syntax of your procedure definition be identified with a regular expression? Can you make some examples of procedures? cheers Lorenzo -- Lorenzo Bettini, PhD in Computer Science, DI, Univ. Torino ICQ# lbetto, 16080134 (GNU/Linux User # 158233) HOME: http://www.lorenzobettini.it MUSIC: http://www.purplesucker.com http://www.myspace.com/supertrouperabba BLOGS: http://tronprog.blogspot.com http://longlivemusic.blogspot.com http://www.gnu.org/software/src-highlite http://www.gnu.org/software/gengetopt http://www.gnu.org/software/gengen http://doublecpp.sourceforge.net