Date: Thu, 28 Mar 2024 14:42:28 +0000 (UTC)
Message-ID: <775876650.39.1711636948316@bdeb7b650a5f>
Subject: Exported From Confluence
MIME-Version: 1.0
Content-Type: multipart/related;
boundary="----=_Part_38_186933943.1711636948316"
------=_Part_38_186933943.1711636948316
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Content-Location: file:///C:/exported.html
Objective-C ta=
rget
Author
Alan Condit
acondit(at)alansmachineworks(dot)com
Derived from work by:
Kay R=C3=B6pke
kroepke(at)classdump(dot)org
Status
The current ANTLR release includes a working Xcode plugin, so you can au=
tomatically generate your grammars from within Xcode.
It automatically tracks all the dependencies between the different grammar=
s in your project to build them in the right order.
Common error messages and warnings are picked up for display in Xcode usin=
g the new -message-format gnu option in ANTLR.<=
br>
There remain some errors and warnings which cannot be picked up yet, due t=
o missing information in ANTLR itself, but this may change in the future.
Debugging support for use with ANTLRWorks is done, except for exceptions <=
img class=3D"emoticon emoticon-wink" data-emoji-id=3D"1f609" data-emoji-sho=
rtname=3D":wink:" data-emoji-fallback=3D"=F0=9F=98=89" src=3D"9edacdb663440=
b5647fd32b1414c8db69098e4ad9ad18dac427a1c87d3d59388" width=3D"16" height=3D=
"16" data-emoticon-name=3D"wink" alt=3D"(wink)"> I just haven't got around =
to do it yet. The socket handling code isn't error proof yet, I will add mo=
re thorough error handling for the final version. Other than that it works =
beautifully!
ANTLR.framework
Features (partially) missing are:
- Template support (postponed because there is no ST grammar for ANTLR v3=
yet)
- Debugging support for exceptions (Objective-C exceptions must match the=
exact names of the Java exception classes)
Features completed:
- Single rule return values
- FOLLOW sets (bitsets)
- cyclic DFAs
- Scopes=20
- dynamic scopes
- rule parameters
- Labels
- Syntactic Predicates
- Semantic predicates
- Tree support (output=3DAST)
- Tree parsers
- Debugging support for parsers.
- Debugging support for AST building.
ANTLR Xcode plugin (Kay's work. I have done not=
hing with this other than use it.)
Features missing:
- Syntax highlighting & function popup support (I'd still encourage y=
ou to use ANTLRWorks for development!) For this I need more understanding o=
f the dreaded classes Xcode uses internally, to be able to replace them wit=
h ANTLR3
- Debugging (long term goal)
Features completed:
- Build settings you can pass to org.anltr.Tool
- Dependency calculation
- Code generation
- All warnings & error messages are picked up by Xcode.
- Basic syntax highlighting works, using the standard Xcode mechanisms
Roadmap
Building ASTs and tree parsers is working now. ANTLR.framework is built =
to be Universal, but only tested on Intel machine.
I am using v3 to write a small application. I will fix bugs as I become aw=
are of them.
Regarding the template output support of v3, this will require an Objectiv=
e-C implementation of ST and I am not working on that, but help is always w=
elcome.
I have ANTLRWorks generating code for Objective-C based grammars, but you =
will have to rebuild the ANTLRWorks jar to use it. You can also use the Xco=
de 2.4
plugin, available for download via link here . I have put u=
p binary runtime framework on my page (s=
ee above).
I will only concern myself with the Mac. There will be no GNUStep suppor=
t. As for Mac OS versions, I aim to be compatible with 10.6 as a target pla=
tform and the Xcode project was built with 3.2.3, since it really doesn't m=
ake a lot of sense to use it in an earlier version.
The Xcode plugin requires at least Xcode 2.3. Currently ANTLR requires 1=
0.4. However, unless there are very good reasons to support versions =
prior to 10.6, it will not get priority. I don't have a machine on which to=
test earlier versions. Right now I am working on Snow Leopard (10.6). I ex=
pect the current version to "just work".
Runtime
The runtime is built in terms of the NS* level of classes, and is largel=
y a fairly direct translation of the original java code.
The layout of the runtime is essentially the same as the Java version, tho=
ugh subtle differences will be visible where it makes it more natural to th=
e Objective-C programmer. Naming of classes and methods may be slightly dif=
ferent and sometimes inner workings are too.
Initial tests don't show serious performance problems, though I'm sure the=
re will be opportunities for optimization.
The biggest problem at the moment are the numerous unused variables create=
d at the moment. Often ANTLR will build up lists of tokens but subsequently=
not use them in any significant way, which leads to wasting time and space=
. This can only be fixed in the ANTLR code generator and not for individual=
targets. Part of the support for this is already there but it needs to be =
extended.
Examples
The goal is to provide the complete set of Java-based examples in Object=
ive-C for comparison. There may be additional examples contained in the Xco=
de project. These exist mainly for development purposes as testcases, or to=
try out features.
------=_Part_38_186933943.1711636948316
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: file:///C:/7d723db49442c0e9361356655b67e13c25ab8f49285bdbb339fad3ce597c5d9c
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAKfwAACn8AG1cEgF
AAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpu
czptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRm
OkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8v
bnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3Rp
ZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+Cjwv
eDp4bXBtZXRhPgpMwidZAAACNElEQVQ4EY1TTY9MURA9dV/3vCZh0JJJzCxELNg1C2Jhg4iQFktr
EsO/mH/BLFhb+oogTCIWE9+9QyKGZJpMaGYiae/N63fLqXpamghucm9uquqc+hbwqM4EkZno/86J
PYh6itKDVGyFQhBkge8cJFyU1pVHoxgZgtUMn7fPoxam0UiAbyVQOCdQD8AayjLKBpjFrqvnREhv
jis2gjvH72B87JD2ckOVNCACRPqJdEA0EmmmASurd9G6dthIKgPz7OAsl5qIpEmdxkOwMQSTmU57
WW62Hi0VopZz0Ieaxyh1kd6nTF68+YJ9rQkkVYAoo2K+s4Sd2zaiubmhWqhKGgKi7A3UnvacGTb5
5PaDd9h/5jFeLSyD9fBrf5OZzmz4lI5hsQOzP+AFq3Km7j+O2VqR2SmJT9oDUiYsEpgjer0Mf02h
2YAO2DKLQzAQfdou2Oua+XWSxOh4hy00hR1rZalQXgebjARMQd66EiyJsbJgJLS6m0l17G8y6n6A
o2OIDVTM2ZB4n1m0Dx/7uD+/iH6/oL06n/1NZjorrNvaYEHu/dpGxhNLlcs3X+PGrZeYmhr3CLqL
Kzh2ZAdOHt2OkHB4I3620ePUZ+0L2JBO6+c8l4AxhCDd91/RXaJHnsmJtZjcso4pMKaIVdmUpljO
Z2X39bMVge3ByCgzz5I5Jky4mkaDFYxN/zDK1TKxEpxtZ7UJW1+vUxI0H8Cu/U3m00fPwz0YWSZu
1b/WmQVjZy79vs7fAdlwN9BZNtNNAAAAAElFTkSuQmCC
------=_Part_38_186933943.1711636948316
Content-Type: application/octet-stream
Content-Transfer-Encoding: base64
Content-Location: file:///C:/38e6b9280930650f0b0577daaecd4d84f684719ab43e6d33f9c059a1d98975f8
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
------=_Part_38_186933943.1711636948316
Content-Type: image/png
Content-Transfer-Encoding: base64
Content-Location: file:///C:/9edacdb663440b5647fd32b1414c8db69098e4ad9ad18dac427a1c87d3d59388
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAKfwAACn8AG1cEgF
AAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpu
czptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9
Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRm
OkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8v
bnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3Rp
ZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+Cjwv
eDp4bXBtZXRhPgpMwidZAAAC1klEQVQ4EV1TS08TURT+zp1HHyAPaYgNLmpCYnSFGjExrqRhZUF/
AC7YVP0BRne4IS5Y6EKRGI2JK+PGR4wJARYGQ8BQ0OjCUGMMQgkRaK2lnencez130IjM887M+b7z
nW/OIfCm9ZAgGlLhevF8N5QcBKiHP6SgQRD0la9TIPGAup7N7cbQX7DmQJnLjFqulUXcBip1wA85
AUcAMQuoSSDAGI49v0zE9CbxDhtIL/SNU3s0rdeq6sdWVbY2RS3bJqGZg4MNk1RKWyIRFSj5E+h6
0WtImBpQnNmAP02veiP3c/T09RdnuxYIg+QDXIKARY6I24Si76HJSWOhf9RgyX93rttpdGffvllW
UzPf6MpAF7UlYkDdpGbVnsSTV3mUKx5SB1uQPt2hozFHQ/Cu6ZRwLGsQDqEh7sir2ZPU2uRia6Nm
srK7gG0JZHpSuHjhCPY3RzB8d45KJTajgX1is0nn+pZYXidrVQiUuPP4Az4vFXDz2lnEYxzEBKVi
DbPv13G0s5WdYz8jtkok40J7Ki+g9KFQri9FrRZgKV9AbsJD8acHuBY2N6u4/WgBuY9rGBmbQaVa
R+JAXKjtgCvUKdLzmTpLtQ0zsUcT09+xXChjoP8wbFvgV8U3lWAfy5fsR6nsh6UYA5kh+FdCXZlf
FToPJgrtD/iVxWvjhzFVMZV5lvxzHSH4nuciaZKbpBN1LbkzBHG/rKyU2fU6ku3x0MjV9W00Nbro
SDZAMymRkIxheXLSZvaH3GFZjrRMY/BO0YiN68NTWF8JhaK9A7h1ozd8CGM4NuxKxrIehuYy99AS
yWLT85jBJduijY0qpucLIejMiSTa2mKcXWpuLTYhEkHRG6PjLy/tEJiBWewbR7ObZhLFhkqyhRU2
i6FQXH2gJGe3GPx/K+8MEwvn3jascIWgZscxYO1LmNOsw3f8LYz5Mwe7hmlozzhrHmf9/zgbs03N
e8b5N97yXqEQUVj4AAAAAElFTkSuQmCC
------=_Part_38_186933943.1711636948316--