<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Arni,<br>
Thanks for your work on this task. Syntax highlighting makes it a lot
easier for me to read and write code, so it's definitely a worthy
endeavor. <br>
<br>
I appreciate you crediting me with a grand vision regarding keywords,
but I'm not sure I had more vision in mind than getting jEdit to work
(which uses XML). The word list I came up with (available at <a
 href="http://admb-project.org/community/editing-tools/jedit/admb.xml/view">http://admb-project.org/community/editing-tools/jedit/admb.xml/view</a>)
was based on an earlier list that Carolina Minte Vera created for
Crimson Editor. I've since switched to Emacs, so I haven't maintained
or expanded that list. But for what it's worth, here are the words on
that list which are absent from yours:<br>
<blockquote>x, and, and_eq, asm, auto, bitand, bitor, catch, class,
compl,
const_cast, continue, cube, delete, do, dynamic_cast, enum, explicit,
export, float, friend, function, inline, mutable, namespace, new, not,
not_eq, operator, or, or_eq, private, protected, public, register,
reinterpret_cast, report, short, static, static_cast, struct, template,
this, throw, try, typedef, typeid, typename, union, virtual, volatile,
wchar_t, xor, xor_eq, FALSE, TRUE<br>
</blockquote>
I assume these are mostly C++ keywords, not anything specific to ADMB.
But at minimum, it's probably worth adding "catch" to your list to help
folks avoid the famous mistake of using this term to described fishery
removals.<br>
-Ian<br>
<br>
Arni Magnusson wrote:
<blockquote
 cite="mid:alpine.LFD.2.00.1004201244570.22492@hafstormur.hafro.is"
 type="cite">The La Jolla report
(<a class="moz-txt-link-freetext" href="http://admb-project.org/community/admb-meeting-march-29-31/ADMBMeetingReportv3.pdf/at_download/file">http://admb-project.org/community/admb-meeting-march-29-31/ADMBMeetingReportv3.pdf/at_download/file</a>,
page 1) mentions a list of commonly used functions and other keywords
used in ADMB models.
  <br>
  <br>
I have just uploaded this list to the ADMB Project website
(<a class="moz-txt-link-freetext" href="http://admb-project.org/documentation/api/keywords.txt/view">http://admb-project.org/documentation/api/keywords.txt/view</a>), as well
as the R function used to generate the list
(<a class="moz-txt-link-freetext" href="http://admb-project.org/documentation/api/getKeywords.R/at_download/file">http://admb-project.org/documentation/api/getKeywords.R/at_download/file</a>).
  <br>
  <br>
The original purpose of this list is to highlight code in Emacs
admb-mode, and later in ADMB-IDE. Whenever I see a new ADMB model, I
open it in Emacs and check that functions, variable types, etc. are
properly highlighted. The same list can serve other purposes:
  <br>
  <br>
1. Doxygen documentation
(<a class="moz-txt-link-freetext" href="http://admb-project.org/documentation/draft-api-documentation">http://admb-project.org/documentation/draft-api-documentation</a>) should
probably focus on these keywords to start with, since they are the most
likely to be looked up by users.
  <br>
  <br>
2. Other documentation (manuals, reference sheets, etc.) should list
those functions, variable types, etc. They already do in most cases,
but not all.
  <br>
  <br>
3. Other editors can use the same list for highlighting ADMB syntax.
  <br>
  <br>
Any feedback on the keyword list and syntax highlighting is
appreciated. Ian Taylor once mentioned that an XML keyword list would
be useful, on which all editors could base their syntax highlighting.
The combination of admb.el and getKeywords.R can probably serve that
purpose.
  <br>
  <br>
---
  <br>
  <br>
That is the top-down approach, based on available ADMB models. The
bottom-up approach is also worth considering, sifting keywords from
admb/include/fvar.hpp, admb/include/admodel.h, and the like.
  <br>
  <br>
Some users are already following the bottom-up approach. A colleague of
mine needed a 3d array of integers in his ADMB model the other day, and
asked me if the i3_array class is intended for users. He also wanted to
know if it can be declared in the DATA_SECTION, or if it must be
declared in the GLOBALS_SECTION to make it available to functions. I
told him I didn't know. The i3_array is mentioned in the MULTIFAN
manual, but not in the ADMB or AUTODIF manuals.
  <br>
  <br>
At any rate, the admb.el keyword list will continue to grow, and may
benefit from some restructuring, or improving the somewhat arbitrary
labels and grouping. The goal was to apply colors to improve code
legibility, rather than analyzing the language. The result is a
hodgepodge of C, C++, AUTODIF, ADMB, and ADMB-RE, but I avoided getting
into compiler specifics.
  <br>
  <br>
Arni
  <br>
_______________________________________________
  <br>
Users mailing list
  <br>
<a class="moz-txt-link-abbreviated" href="mailto:Users@admb-project.org">Users@admb-project.org</a>
  <br>
<a class="moz-txt-link-freetext" href="http://lists.admb-project.org/mailman/listinfo/users">http://lists.admb-project.org/mailman/listinfo/users</a>
  <br>
</blockquote>
</body>
</html>