Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python.announce > #2227
| Path | csiph.com!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail |
|---|---|
| From | Juancarlo Añez <apalala@gmail.com> |
| Newsgroups | comp.lang.python.announce |
| Subject | ANN: Grako 3.12.1 |
| Date | Sun, 7 Aug 2016 09:40:53 -0430 |
| Lines | 30 |
| Sender | juancarlo.anez@gmail.com |
| Approved | python-announce-list@python.org |
| Message-ID | <mailman.244.1470646138.6033.python-announce-list@python.org> (permalink) |
| References | <CAN1YFWsPpY=TnuzO8nS8doU1hQzLOMmDDxEHNtWeMtgJTyt_LQ@mail.gmail.com> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8 |
| Content-Transfer-Encoding | quoted-printable |
| X-Trace | news.uni-berlin.de y6CJlEh1NbA8/fbMobjmjwQeomwZzklnD/4PoUXyF3GQ== |
| Return-Path | <juancarlo.anez@gmail.com> |
| X-Original-To | python-announce-list@python.org |
| Delivered-To | python-announce-list@mail.python.org |
| X-Spam-Status | OK 0.001 |
| X-Spam-Evidence | '*H*': 1.00; '*S*': 0.00; 'patterns': 0.04; 'cache': 0.05; 'method.': 0.05; 'alias': 0.07; 'repeated': 0.07; 'subject:ANN': 0.07; 'expected.': 0.09; 'input,': 0.09; 'lines:': 0.09; 'parsers': 0.09; 'python.': 0.11; 'syntax': 0.13; 'buffering': 0.16; 'concatenated': 0.16; 'descendant': 0.16; 'outputs': 0.16; 'parts,': 0.16; 'received:io': 0.16; 'received :mail-oi0-x22a.google.com': 0.16; 'received:psf.io': 0.16; 'memory': 0.17; 'sender:addr:gmail.com': 0.18; 'changes': 0.20; 'split': 0.23; 'tables': 0.23; 'module': 0.25; 'parameters': 0.27; 'message-id:@mail.gmail.com': 0.27; 'usable': 0.29; 'classes': 0.30; 'fixed': 0.31; 'possibly': 0.32; 'symbol': 0.33; '(for': 0.34; 'file': 0.34; 'received:google.com': 0.35; 'skip:3 10': 0.35; 'text': 0.35; 'replaced': 0.35; 'too': 0.36; 'tool': 0.36; 'basic': 0.36; 'subject:: ': 0.37; 'being': 0.37; 'several': 0.38; 'skip:p 20': 0.38; 'takes': 0.39; 'skip:e 20': 0.39; 'to:addr:python.org': 0.40; 'improved': 0.63; 'more': 0.63; 'latest': 0.64; 'between': 0.65; 'distinguish': 0.84; 'sublime': 0.84; 'synthetic': 0.84; 'variation': 0.84; 'traded': 0.91 |
| DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:from:date:message-id:subject:to; bh=Oabd5ax5ZCQsoCNybQpUUeh4PfhMcIVWW2PUnpEGnwk=; b=A3VNjdQrrZ6s2eWty9yTFW637B8jej19cRAgFdCf0xAcxYqbmdXPMdQlv/a+3IOs4D PB2P+zLOQH1WhtiYUiHnESYnfpo3KYcT1lPQ91ZlbQCcm78ooSSb6oVQImYvejZO3M0v KPccqHCmssgdK8cXoD4XDkWfmeMxvc3/7nayzUfyjhKXEpZe5xi93MrcmQ+w7MTXxDME wVW2q2h1q3EdK4Xp5vCqkQdGoZVMTCY5JND9QpDKiemejMC8d760+XZuS4Ck7LBSa5NS nGQdzwWMRM2jQ8EwX33IMLtANbEs4tu3UWSJv22tfL+y243cyi9ypwqGYppEeX8UirPg Z0Dw== |
| X-Google-DKIM-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:from:date:message-id:subject :to; bh=Oabd5ax5ZCQsoCNybQpUUeh4PfhMcIVWW2PUnpEGnwk=; b=PRjBTfpg+Zorf5IvG47Gu8KAahd12wer+3PnF11MQEMvfAjUiLCTZQA1NchUK4EMYR 48V7fNCUbeYG4nigkB/4EkB8+CEmhCiB5vgPu8eTmmEWzj+6gin2iuZsI9MBvp77Ni5W oGPrVcS6MaUUA6MQKUUEYuFwCw+d2IxIF4eOYYZnBO5IMh+Pth6ugvyFvcBMf9cwm1gN +/EQgwF55OUKPjA72hzlNin+/BsjdacsiHRNuErfQPTHkcEC8lDcMPFwGJhGYJ/SvRuE RUU5vufr/sSqPPu96vV0GpJ3Vzp/NgHOWaHEqFMzRiptHFZWUNMeL7Z7hOIVhvlRJcwA hSoQ== |
| X-Gm-Message-State | AEkoouu6XaYjVbhTIjCVyFfbkrmweNIgBKO1OwHAZ/NFGaxbgPqshqKmJDmbV2pL06DREj7evk+QEoHtsMMisg== |
| X-Received | by 10.202.236.71 with SMTP id k68mr47609797oih.162.1470579073638; Sun, 07 Aug 2016 07:11:13 -0700 (PDT) |
| X-Google-Sender-Auth | Mfwes9H_shm2gZrjJn4D-mJMEiI |
| X-Mailman-Approved-At | Mon, 08 Aug 2016 04:48:58 -0400 |
| X-Content-Filtered-By | Mailman/MimeDel 2.1.22 |
| X-BeenThere | python-announce-list@python.org |
| X-Mailman-Version | 2.1.22 |
| Precedence | list |
| List-Id | Announcement-only list for the Python programming language <python-announce-list.python.org> |
| List-Unsubscribe | <https://mail.python.org/mailman/options/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=unsubscribe> |
| List-Archive | <http://mail.python.org/pipermail/python-announce-list/> |
| List-Post | <mailto:python-announce-list@python.org> |
| List-Help | <mailto:python-announce-list-request@python.org?subject=help> |
| List-Subscribe | <https://mail.python.org/mailman/listinfo/python-announce-list>, <mailto:python-announce-list-request@python.org?subject=subscribe> |
| X-Mailman-Original-Message-ID | <CAN1YFWsPpY=TnuzO8nS8doU1hQzLOMmDDxEHNtWeMtgJTyt_LQ@mail.gmail.com> |
| Xref | csiph.com comp.lang.python.announce:2227 |
Show key headers only | View raw
Grako (for grammar compiler) is a tool that takes grammars in a variation
of EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python.
Changes in 3.12.1:
- Distinguish between positive and normal joins: s.{e}+ and s.{e}.
Having s.{e} use a positive closure was too unexpected.
- Also generate a buffering.Buffer descendant specific to the grammar
for parsers that need to customize the parsing.Parser.parse() method.
- Added the grako.synth module which makes synthetic grako.model.Node
classes pickable.
- Traded memory for simplicity and replaced the line-based line cache in
buffering.Buffer for a position-based cache. Buffering needs to continue
being str-based for complex re patterns to work as expected.
- Now patterns may be concatenated to split a complex pattern into
parts, possibly accross several lines: /regexp/ + /regexp/.
- Added basic support for symbol tables in grako.symtables.
- Now model.ParseModel is an alias for model.Node.
- Improved examples/antlr2grako so it generates more usable Grako
grammars.
- Syntax file for Sublime Text (vmuriart).
- The latest changes to grako.util.trim() were incomplete.
- Fixed several inconsistencies in the implementation and use of
buffering.Buffer line indexing.
- Repeated parameters to object model constructors.
--
Juancarlo *Añez*
Back to comp.lang.python.announce | Previous | Next | Find similar | Unroll thread
ANN: Grako 3.12.1 Juancarlo Añez <apalala@gmail.com> - 2016-08-07 09:40 -0430
csiph-web