AtomicML is a markup language whose documents are 20-50% smaller than XML and whose parsers typically fit in one page of code.
AtomicML uses indentation and line breaks (much like Python does) to denote structural changes. Much smaller than competing languages, the AtomicML grammar is expressed on one line:
atomic ::= ((INDENT LABEL NEWLINE atomic DEDENT) | BLANK)*
INDENT is zero or more line-leading spaces (and tabs) followed by a LABEL (tabs indent to the next multiple of eight spaces). LABEL is a non-whitespace character followed by zero or more non-newline characters. NEWLINE is the platform-defined newline character or character sequence. A DEDENT is generated when the indentation of the previous line is more than the current one. Finally, BLANK is a line that contains nothing but whitespace (or end-of-file marker) . A central benefit of this grammar is that all finite strings are in the language of AtomicML.
AtomicStyle is implemented by recursively visiting the node tree and at each node calling a method whose name matches the leading non-whitespace characters of each LABEL in the Atomic document.
|Platform||Download||Version||Link (right-click, Save Link As...)|
|Python||Atomic and AtomicStyle||1.4||Atomic.py|
|Java||Atomic and AtomicStyle||1.4||atomic-1.4-src.jar|
Copyright © 2000, 2003, 2008, Kipp Software Corporation. Licensed under the Apache License, Version 2.0 (the "License"); you may not use AtomicML except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 [local copy]
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.