[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-source-highlight] understanding elements
From: |
Lorenzo Bettini |
Subject: |
Re: [Help-source-highlight] understanding elements |
Date: |
Thu, 22 Dec 2011 15:42:00 +0100 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:8.0) Gecko/20111105 Thunderbird/8.0 |
On 18/12/2011 16:55, Federico Bruni wrote:
Hi,
I've finished the draft of the lilypond.lang file and I have some
questions before asking for comments on my file in the lilypond-devel
mailing list.
1) ELEMENTS
First of all, there's any place in the doc where each element is
explained? I mean: some elements are straightforward (comment, string,
function), while others (preproc, cbracket) are a bit obscure...at least
for a non-developer.
Also, I guess that names of these elements generally work fine with all
the programming languages. But other kind of languages may have
different peculiarities.
exactly: some of them work fine with most languages (cbracket stands for
curcly brackets, i.e., { } )
'preproc' can be used for preprocessing things which can assume
different meanings in different languages, and they can be associated
with some language elements as one sees fit... for instance, preproc can
be # directives in C/C++ and import statements in Java
basically you can associate any meaning, these elements will be used
only for formatting styles
For examples, in the lilypond syntax - besides strings, comments,
operators and numbers - I have basically:
- music functions
- contexts
- layout objects
- context properties
- layout properties
Which elements should I use for each of them?
Function for music functions, that's easy.
What about all the rest?
you can create new elements, and put a formatting strategy in the style file
or you can create these new elements (but no space is allowed, so use,
e.g., layout_objects), and, if you don't want to change the style files
you may want to use
http://www.gnu.org/software/src-highlite/source-highlight.html#Default-Styles
which allows to map your element to an existing one,
e.g., if you map
layout_objects = function
if a formatting style for layout_objects is not found in a style file,
then the same style of function will be used (that's just an example)
So far I used different elements, even if not related to the meaning of
the group, just to see them styled differently.
But I guess that's not the right way.
Should I create new elements maybe?
see above
2) SIMILAR ELEMENTS
Let's say I want to style differently two groups of numbers.
Which elements should I use?
For example, in the lilypond syntax numbers are used in two contexts:
# Fingering and string number
specialchar = '-[1-5]\b', '\\[0-9]\b'
# Note duration
number = '(1|2|4|8|16|32|64|128)(\.+|\b)'
specialchar is ok?
that's your choice, as I said above, it's just up to you :)
3) VARIABLES
In latex.lang I found:
vardef command = '\\[[:alpha:]]+'
keyword = $command
Why not writing just one line?
keyword = '\\[[:alpha:]]+'
What's the benefit of creating a variable?
in case you want to reuse the same regular expressions in different parts
hope to hear from you soon
cheers
Lorenzo