[erlang-questions] Syntax highlight erlang code with erlang

Joe Armstrong erlang@REDACTED
Fri May 25 14:53:06 CEST 2007


I have just written something that might be useful. It was rather
hacky so I'm not very proud
of it. To get the tagging correct is a bit of a pain. This is done in
several passes

1)
Modified the tokeniser (erl_scan.erl) to return the actual text in the tokens
- so, for example, when the original tokeniser returned {int, 6,  18}
(meaning the integer
18 on line 6) I now return {int,6,18,"16#12"} (suppose the integer was
written 16#12)
I also added all inter-token white space as {ws,Line,"..."} tokens and
retained the comments

In this stream of tokens the original source can be exactly
reconstructed by concatinating
all the strings in the tokens  - since I preserve everything.

2) Number each token 1,2,3,4

(This replaces the line number)

3) Keep a copy of this token list, and make a new token list that is
compatible with the parser

4) Modify the erlang parser. I took erl_parse.yrl and changed the RHS
to contain tagged
forms -

5) Merged the parse tree with the numbered-token list.

By this time I have a correct semantic tag for *everything* in the
source text (so keywords occurring
in strings won't causes accidental tagging errors (which would have
happened with a simple
-minded "regexp" approach).

The result is an abstract form which is easily turned in HTML or TeX
for printing.

I think the changes to the tokeniser should be folded into the main
OTP release - my version
involved "minimum changes" to the existing version, the result is a
mess which needs to be
rewritten.

This is part of a large project to produce *beautiful* documentation :-)

Cheers

/Joe






On 5/23/07, Petter Larsson XA (TN/EAB) <petter.xa.larsson@REDACTED> wrote:
> I would actually prefer doing it in erlang code, soo I can create links
> fo other filer etc. when possible.
>
> Doesn't anyone have an example code of highligting erlang code with
> erl_syntax etc.
>
> /Petter
>
> > -----Original Message-----
> > From: erlang-questions-bounces@REDACTED
> > [mailto:erlang-questions-bounces@REDACTED] On Behalf Of
> > Torbjorn Tornkvist
> > Sent: den 23 maj 2007 10:53
> > To: erlang-questions@REDACTED
> > Subject: Re: [erlang-questions] Syntax highlight erlang code
> > with erlang
> >
> > Petter Larsson XA (TN/EAB) wrote:
> > > I have a file browser in yaws that I look at erlang code with.
> > > I would like to syntax highlight this code.
> > >
> > > What is the best way to view a erlang source code with syntax
> > > highlighting?
> > > I can parse the code with functions in Syntax_Tools I
> > guess, but does
> > > anyone have any example code for this?
> > >
> > > BR
> > > Petter Larsson
> > >
> >
> > Perhaps you could do it with Chili ?
> > Chili is the jQuery code highlighter plugin.
> >
> >  http://noteslog.com/chili/
> >
> > Would be nice if you could post the setup of Chili when
> > you're done... :-)
> >
> > --Tobbe
> >
> > _______________________________________________
> > erlang-questions mailing list
> > erlang-questions@REDACTED
> > http://www.erlang.org/mailman/listinfo/erlang-questions
> >
>
> _______________________________________________
> erlang-questions mailing list
> erlang-questions@REDACTED
> http://www.erlang.org/mailman/listinfo/erlang-questions
>



More information about the erlang-questions mailing list