OberonCore https://forum.oberoncore.ru/ |
|
B23: s(TextMappers.Scanner) игнорирует маскирующиеся вьюш... https://forum.oberoncore.ru/viewtopic.php?f=116&t=4353 |
Страница 1 из 1 |
Автор: | Евгений Темиргалеев [ Среда, 15 Май, 2013 22:03 ] |
Заголовок сообщения: | B23: s(TextMappers.Scanner) игнорирует маскирующиеся вьюш... |
s(TextMappers.Scanner) игнорирует маскирующиеся вьюшки при (TextMappers.returnViews IN s.opts) (исходный заголовок: "TextMappers:? корректность реализации returnViews, maskViews") Конкретная задача из которой вылез вопрос: нужно сосканировать линейку. Включил настройку returnViews --- сканер линейку игнорирует Цитата: CONST returnViews Как трактую документацию:Option element Possible element of Scanner.opts. If present, the scanner will return embedded views; otherwise these are treated as white space and read over. ... CONST maskViews Option element Possible element of scanner.opts. If present, the scanner will try to interpret a view as a character code, if the view has a preferred character code. Otherwise, the view is returned. 1) если не нужны вьюшки, то ~(returnViews IN s.opts) -> вьюшки либо игнорируются (как ch = TextMappers.viewcode <= " "), либо трактуются как литеры, которыми они маскируются 2) если нужны все вьюшки, то (returnViews IN s.opts) & ~(maskViews IN s.opts) -> никакие вьюшки не игнорируются ... 3) если нужны только не маскирующиеся вьюшки, то (returnViews IN s.opts) & (maskViews IN s.opts) -> немаскируемые выдаются, маскируемые обрабатываются как в случае (1) Вопросы: касательно трактовки документации (есть ли другие варианты) и касательно (А-Б --- прошу перепроверить) А) Анализ кода TextMappers (Skip, Scan, View) показал, что маскируемые вьюшки (маска отлична от TextViews.viewcode) вне зависимости от опций трактуются как литеры, которыми они маскируются. Б) Поправка для достижения поведения 1-3: Код: PROCEDURE Get (VAR s: Scanner; OUT ch: CHAR); BEGIN s.rider.ReadChar(ch) --+> ; IF ({returnViews, maskViews} * s.opts = {returnViews}) & (s.rider.view # NIL) THEN (* если вьюшка маскируется, то ch = литера-маска и дальнейший анализ в сканере не распознаёт вьюшки — "затираем" маску *) ch := VIEW END END Get; P.S. Для случая (2) было бы логично помещать в s.char маску вьюшки (s.char := s.rider.char) ? |
Автор: | Евгений Темиргалеев [ Четверг, 16 Май, 2013 09:44 ] |
Заголовок сообщения: | Re: TextMappers:? корректность реализации returnViews, maskV |
Код: ch := VIEW; s.rider.char := VIEW s.rider.char анализируется при след. вызове Scan|Skip. Его тоже нужно "корректировать".
|
Автор: | Евгений Темиргалеев [ Четверг, 16 Май, 2013 10:15 ] |
Заголовок сообщения: | Re: TextMappers:? корректность реализации returnViews, maskV |
тест: Код: StdCoder.Decode ..,, ..XJ,...3Qw7uP5PRPPNR9Rbf9b8R79FTvMf1GomCrlAy2xhX,Cb2x
hXhC6FU1xhiZiVBhihgmRiioedhgrZcZRiXFfaqmSrtuGfa4700zdGrr8rmCLLCJuyKtYcZRiX 7.2.s,6ud.,k,5TWyql.bnayKmKKqGomC5XzET1.PuP.MHT9N9ntumaU2,CJuyKtQC98P9PP7O NbXmb.2.oaIk2ELG,,6.cUGpmWLuOpoKqvCbHZiYpedhA704TeKKw.bHfEWUmL.6..D.ly26., sUGpmWbBxhYhAbndMHT9NY6Mw.sQq2Y6cwB.0.re2w,QeGE.2.4Eqe.86.QC18RdfQHfMf9R9v Q7ONb17.,.D,,6.I12U.U,2.0EJ2XkD.6.VQ.kik.8Mtr.0E.6C6.c4E.k.0.e0.,6j3.G.0EA 9.2.WMP9UERe0cUXDF9fR5uPPPP1fP7PNZvQRtIdHf.2UlbcZpC.c9h0E.8z,U.EEE.E1U.M3M 26.,.F2Umr,6.222.o.6.K,4,0E.E2,.6.222.o.6.K,8,2.2F..0.,,,.B.0UJ.E.E2,.6.22 2.o.6.K,4,0E.E2,.6.Y02.o.6.K,C,8E,9z4E.0.R7.6.I16.M.EJYjyC.6.V22.c8fP3d8mB E,5TeEdKLqKKtCLLC3ZORNX2hgnRg.AyI,ktuGdKLqKa2V.IS6.,UlW5UXW.2.52.CLLC3b8Rn 9P99F9vQ0ks,Uikwm46.Zz,E..W.e32.86.c918R..,E0E...7,,M.6.,.,tcp00kMDy.wnjl. k22.,6.IUIU1Ikmj,6.Q46.I16.M.EJ0.A.2m,U.Y.QU.U.IZptIXg.8ssDJuGKYKqkGqm8rtu Gf.2.5.0.b8.6.o56.36.,c7iXacN6W6.OWYd7i105W6e0mLT5.6YE.4.Q.6.JVI3NIyEU.UvV 5UV,,k,9T7E.0.E2kXE.0.3gwd.,..Y32U,.,.VNgp00kXat.wnj,A.I.,gA3EUfL6k,WK.E.0 .vvq1EnXE,IklHmmoouqpCLLmoouqpGomC5.,UD,,U4,,k.u1CJuGqVqKmCLLyIsKKrGpryKqG oo4KqyqnWmHCpwCLuKqqyGdCLtCqL4IlyquGrHmGESmU8qr6638P1vMLfET9SDN8GE,9z4E.0. b,0.p.,6.wT6.J7.k,E6,X.5.,MT.IyK.,UW.,U6U..s.VU.QU.Ux,.E.6M6.cFE.A.sI..... .kH.66..X.Ux,.6.,UW.,U6U..s.R.56.MT..0E.ML6.,U1,,k.i1C3.cEZvPjvQ9fQFt77uP5 PRTdE3O9NOO5PNRvQ9v7N76DdENPM510GaaqlK4A37s1s.6.v1.U.EFU.E2E..QUCU12.AKoQM wcFT9P7vQRdFT9P79F9vQ51E.cW61MRE..Cc9.,.s1sJ6.,.OH.6.3o4U...p.0.4E.EJ.1.V2 0k9kzrk2qGEapgapgqoaGIWmGEuKrmGEuGLum4ak,E.49.Zz3E.s861M2E.A.6U2.k,q.CE.6. X3.U.Ey0.N.D10.k,,0.k5kYE.0.o4cU.,..e,2.A.c8.6YE.aU.szELuGL.0kM,.6.Q3Y,A02 U.M.E.7.U1I.QU.E.0EJK5F40,0.O5S.a32.5I7E.0.E2kTE.0.3I8E...7,,M.E.EM496.D0. A.2U.k,K.8kPk,G,8k,k08Mtr.0E.cTE.c4E.k.Ue2.6.2UwW.s1c.H.962c.D.9s0,U0A,c1c .D.9M1c.H.9M0c.JE.czzzzzj.7.5s1c.H50E.2UcCZ,s4Rd.8ssLKtGLMGqmOrd0rmCKfaqmS rt.70.,6.Q06.gU.E.8.8kUE18Mtr.0E.s7E.c46.,EMF.c8m5E.0t.UMV5Ikmj,6..EBU.6g6 .I3k.E6V.QU.2.D6yzzzzz,1.D6xzzzz5cuzzzzz,3.D6zzzzzL1Uo11.Ozzzzz,uzzzzz,myz zzz,GD.uD.8zzzzz,mD.mC.GD.uDI.6wzzzz5cxk,E1e08E5UyXzjdDZcJZd33YEJidpiIhAdv CPM1HMGP8ITeId86NuPD99,tI9fQhPO5PNb99,7F9fR50.N76dONl9RPOMV9Q9fQb1krUvgVBA VEJeDRc3ZcJJe33Y2xhe2YcwhkZinJbUAdCZe3xc3JedQbBAV7oe,Je7Qiu2YIhgslk.RtI5PM RfP9fQr76dPSVfC,NEZeI1OK,dAfdB,tHB8658G1eIrN1HcE9uFHeHPM0HMEbuI9eId887ONh1 .2iVJiUQYUod7Zdg2Ym2adQbBA,bf95uPRfP9vMd9JT987ONh1.UiYiZ3DHtC,tQRtI99RVuPb 987ON..ElKqnamRqk2kdKaD3ioRicIc7ZeH3Zj3ioN8HtCPM0klsCPM0HsJFOGNOF,dTFtQR7R n9Q996v76dGwg705ggjZid2Y2xdBAV7AVAxhbpZ7pho3ZnpZoVdQbBU1BcHhcUQiiYC2YDpcBA V7AVw3YIhA.sMFPMZfCH6HTvNCIo4KtWmtumlW4HN1HM0H..UnZimBhixguAVAxBCJu8ro68bf 9b9RkIqk2a...aKrGLRaEay4H0AhiN8PM0H...NPORPNpN0NuPQ8EI8GImqouqmaGFamR0Gayq nuGauq4ak2..EsMMpN0N0b0UkBgmBgdIYdgV7...hPO9HRakdKaq,RtF99RdOSVHb4qqKKICLL Oro69,7Rn9QHtC,7H..376L76dPS0mJ0GFaGFam4kWmodKo4ak2cH7uCPM0Hkt.kWM1HMFRGEG orin4qkWuIW2emBBELqk48EF0JtaKv.7uPF7AHd6Pc.37I.UmAZWAV0IYE,.4HMaGFaE,..wao AZWg,..WnI8m2..sBZFFqk48kayIWKJa6J91.rN1Fd8JN13c.H6QZvPJPN59RHMD,d638P1vME Fqk2yKtSqkuqoerkGroyKrakS0GFSrvSLLyKlKKtyKrumlWKFqk2CqruKu8ro8aoxhmRi7gbUI YDJgZJC0mqaql8rrCrwCLusQ3N1HcR9fQbPOTfPH.3sInvQdXjUX,IUWgV7QAVPSZPOD9OdP0v 76...UgBhXhAAVx2YW6FTvMy0sME,8m4aklWqkuqnKqtakS003c6PM0HvQbPR9vQHMD.3M1Jd8 HN1PM0HOHUH,CLK0Gfa4b99Goo44mWI,TXg,HsETeHb8JPM0H68Jd8,tI5PMRfPoZj3io76Jd8 HN1HEtKKuKLtuqVGLtmqVWqkQie2Yx2YlQbBA,Z1AepBggBdYhgiZinJZUg5ZtC,dQ99RfXKBh ZFJ0mSQavgV7AVdphohgm3imhA3uPT9Pbf8,VoQbUAhiZiZ,CpmGrteGEMBrN1Hkq4qtiKfaqm .OnRqk4ak2OGErk4qk2WGJ.EEeGJaWB6I.cL,78hOEZ86bfC,tI51AZUQeZZiEFJ0GI0rrCLR0 mY.YZUod3xevgV72eG,....w7IZU2ZjVukWGpImGEu2....51UfBhkJZU2ZDheI3YX3hu2Y137 aGK......QgVd8N76ROFM1PM0.kXKKu8EEWGf.UilRwdJZ8.sCI6.bHtaKmKKtuGdKaYRccBAF tMFP8PM0iHEaIX0GIiLtKKuK5UgMP1vQL1gjUIZUQiiwhkZC,ND,tSZPN.kI0GH0GICLL8roUq BhZ76576RWd2YI3d3pdBA,H680mOGsUGsRGMQGME8H0nI0vI0XI0fH01H01GSGMMGsUGMRGMQG MUGsVGsOGMVGsUGsbGMK0GVGMTGMECaUgbUQb24538Vf7V,8VV7VP7D7AA7QE6A2b24YoYkkYk vYkAZkxYkpYktYk6ZksYktYkU2a2ib24a2S5llPGME8H01mUGMRkSg4,mOGMEqH0LXU2c2441m TGMTGsPGsSGMMAe2Kc24YmYkA,6C0G80OE8mPGMMGMVGMQGMU24f7Vt7V376t7VVlUI558V,d8 HN1Hk2CKo0GRqHEOpYKofiHECLL85sMFPM0GRqHEUBAV7g6q.2Y5hgoRbBAVBAVa2o0CSsETfP dnrmKqKKtCLLCJuGqVGLtmKWKqt2UlHw..umVyao,Y62.5011o3cQ...sQR,.G20EtH.0.G,0. aU.6.,..1cU0,,6.MMs,,UNV.2.522U..2,,kT2.,6.Ikm1,..Y22U,2.2.2YX00kM7.z2k.E. 0.3o4U...p.0.4.I3l.6.VQ.E..YVsH4EKithQVs9E3Qw7uPgBRXiQcj,.kB0.0..2,2.M00.l wGbHESmF3kwL,,AzJEAyIo2oe2H.jj.... --- end of encoding --- |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |