OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 13:16

Часовой пояс: UTC + 3 часа




Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: Среда, 15 Май, 2013 22:03 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
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 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Код:
ch := VIEW; s.rider.char := VIEW
s.rider.char анализируется при след. вызове Scan|Skip. Его тоже нужно "корректировать".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 16 Май, 2013 10:15 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
тест:
Код:
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 ---


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2024, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB