Tuesday, March 15, 2016

Syntax highlighting for a tricore linker file

Hello!

I have posted this on Stackoverflow but it has not gathered much
attention as it is very specialized. Maybe you guys can help me out.
Here is the post
http://stackoverflow.com/questions/36009923/syntax-highlight-for-tricore-linker-group-statement
in case you wish to answer there.

I'm trying to define a syntax highlight file for the tricore linker
script languale (LSL)

A short exceprt of the given EBNF to demonstrate the problem:

I have marked all literals with a * since in this EBNF the muliplicity
is given by the 0|1 or >=0 annotations. < > indicate optional
arguments.

group_name must be a quoted string.

group_descr ::= group* <group_name>0|1 <(* group_specs )*>0|1 section_statement


group_specs ::= group_spec <, group_spec >>=0
group_spec ::= group_alignment
| attributes
| copy*
| nocopy*
| group_load_address
| fill* <=* fill_values>0|1
| group_page
| group_run_address
| group_type
| allow_cross_references*
| priority* =* number
| tag

section_statement ::= simple_section_statement ;
| aggregate_section_statement

simple_section_statement ::= assignment
| select_section_statement
| special_section_statement
| memcopy_statement

aggregate_section_statement ::= {* <section_statement>>=0 }*
| group_descr
| if_statement
| section_creation_statement

So it all boil down to there not being a proper start and end
expression I can use when creating a `syn region`. Further a group can
contain another group.

I don't know how to proceed here.

If I use `syn match lslGroupStart +group "\S\+"+` I don't know how to
tell vim to highlight `\S\+` differently than `group`. If I use
`nextgroup` I don't know how to make sure that the ordering is kept
(`group_specs` after `group_name`).

Thank you for your time and help.

--
--
You received this message from the "vim_use" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

---
You received this message because you are subscribed to the Google Groups "vim_use" group.
To unsubscribe from this group and stop receiving emails from it, send an email to vim_use+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

No comments: