Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Random832 Newsgroups: comp.lang.python Subject: Re: Well, I finally ran into a Python Unicode problem, sort of Date: Sun, 03 Jul 2016 22:20:50 -0400 Lines: 15 Message-ID: References: <0589521b-648a-47c1-8afa-6f746e0fb901@googlegroups.com> <55f1891c-55bc-474a-9d74-ab3efceb5ca1@googlegroups.com> <61a5c745-91a1-41ab-9681-c122e700dd85@googlegroups.com> <1467598850.3816797.655945753.22F6A744@webmail.messagingengine.com> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de LE+qFD0D60mCPZLRl+2P1AkBB3+JEUlcwLQk9gN8ZKLA== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.000 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python,': 0.02; 'operator': 0.03; 'subject:Python': 0.05; 'attribute.': 0.09; 'considered.': 0.09; 'precedence': 0.09; 'received:internal': 0.09; 'subject:into': 0.09; '2016': 0.16; 'message- id:@webmail.messagingengine.com': 0.16; 'precedence.': 0.16; 'received:10.202': 0.16; 'received:10.202.2': 0.16; 'received:10.202.2.212': 0.16; 'received:66.111': 0.16; 'received:66.111.4': 0.16; 'received:66.111.4.27': 0.16; 'received:io': 0.16; 'received:messagingengine.com': 0.16; 'received:out3-smtp.messagingengine.com': 0.16; 'received:psf.io': 0.16; 'subject:Unicode': 0.16; 'wrote:': 0.16; 'implementing': 0.18; 'arguments': 0.22; 'lawrence': 0.22; 'parser': 0.22; 'subject:problem': 0.22; 'header:In-Reply-To:1': 0.24; "doesn't": 0.26; 'callable': 0.29; 'objects': 0.29; 'code': 0.30; 'structure': 0.34; 'functions.': 0.35; 'but': 0.36; 'instead': 0.36; 'monday,': 0.36; 'to:addr:python-list': 0.36; 'subject:: ': 0.37; 'received:10': 0.37; 'being': 0.37; 'received:66': 0.38; 'to:addr:python.org': 0.40; 'still': 0.40; 'header:Message-Id:1': 0.61; 'to,': 0.63; 'more.': 0.63; 'course.': 0.67; 'jul': 0.72 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=fastmail.com; h= content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=ViJ0APvKcAmdhQmazwmiQU49ZXc=; b=wNuRcA u0banYGia68zrQziWkkuUD+7x87pQ7umcKanEqun46pB/k6PaU93DXTehLSnQ0Hp iCSxbGEwYYtYqsIryZw6YlcDidvqK++R1qsyZrPW4m6wha41uJ583K1YNU0Xuz3u ih9OlyNhb5SuxFLk9x7f7fojjG0sVqtwaPjHY= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-sasl-enc:x-sasl-enc; s=smtpout; bh=ViJ0APvKcAmdhQm azwmiQU49ZXc=; b=azy+OLWCWEwy8uAZu3Cwam/fRdZgqlJ8ztDap2WJqR2ihUV ZAEP+AQty2bP4HmojOT/EPg+vBJfK6xS6M0RlvAR4KDj4tH3QVuonGcGbUUey5bC aQY982StO3aB26cvFH1wB8ralOM6kVjmlMncZUEip3jZVqZIekvXhkoMVwWc= X-Sasl-Enc: Ojvi7+HwGeYjId0sG3/D06GGNKrMD86rtFVGXDp+iRCS 1467598850 X-Mailer: MessagingEngine.com Webmail Interface - ajax-15e5213e In-Reply-To: <61a5c745-91a1-41ab-9681-c122e700dd85@googlegroups.com> X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.22 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <1467598850.3816797.655945753.22F6A744@webmail.messagingengine.com> X-Mailman-Original-References: <0589521b-648a-47c1-8afa-6f746e0fb901@googlegroups.com> <55f1891c-55bc-474a-9d74-ab3efceb5ca1@googlegroups.com> <61a5c745-91a1-41ab-9681-c122e700dd85@googlegroups.com> Xref: csiph.com comp.lang.python:111037 On Sun, Jul 3, 2016, at 21:15, Lawrence D=E2=80=99Oliveiro wrote: > On Monday, July 4, 2016 at 12:40:14 PM UTC+12, BartC wrote: > > The structure of such a parser doesn't need to exactly match the gramma= r=20 > > with a dedicated block of code for each operator precedence. It can be= =20 > > table-driven so that an operator precedence value is just an attribute. >=20 > Of course. But that=E2=80=99s not a recursive-descent parser any more. It's still recursive descent if it, for example, calls the _same_ block of code recursively with arguments to tell it which operator is being considered. This would be analogous to, in Python, implementing a recursive-descent parser with arbitrary callable objects instead of simple functions.