<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000">
                                        
                                        
                                            
                                        
                                        
                                        Hi Levente.<div><br></div><div>> <span style="font-family: Arial, Helvetica, sans-serif;font-size: 13px">How about using #hasPragma: here?</span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px"><br></span></span></div><div><span style="font-family: Arial, Helvetica, sans-serif"><span style="font-size: 13px">Now we have a first use of it in Trunk. :-D<br></span></span><div><br></div><div><img id="f5b040d2-19d5-41bd-ac64-6ea6f721a66d" src="cid:92ced45d-d0ea-4bfb-972e-443262c5cbf2" width="auto"></img><br></div></div><div><br></div><div>Best,</div><div>Marcel</div><div class="mb_sig"></div>
                                        
                                        <blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top: 20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
                        <p style="color: #AAAAAA; margin-top: 10px;">Am 15.06.2020 18:22:27 schrieb Levente Uzonyi <leves@caesar.elte.hu>:</p><div style="font-family:Arial,Helvetica,sans-serif">Hi Marcel,<br><br>On Mon, 15 Jun 2020, commits@source.squeak.org wrote:<br><br>> Marcel Taeumel uploaded a new version of ShoutCore to project The Trunk:<br>> http://source.squeak.org/trunk/ShoutCore-mt.81.mcz<br>><br>> ==================== Summary ====================<br>><br>> Name: ShoutCore-mt.81<br>> Author: mt<br>> Time: 15 June 2020, 4:41:07.031209 pm<br>> UUID: b5dfda57-678c-bd4b-91ba-3eae94326352<br>> Ancestors: ShoutCore-mt.80<br>><br>> Avoid breaking new hook for <pragmaparser> when subclassing SHParserST80. That is, re-use all existing pragma parsers automatically in subclasses. Note that #methodDict was chosen over #lookupSelector: for performance reasons.<br><br>I think it would be worth adding a few test cases custom pragma parsers.<br><br>><br>> =============== Diff against ShoutCore-mt.80 ===============<br>><br>> Item was changed:<br>>  ----- Method: SHParserST80>>parsePragmaStatement (in category 'parse pragma') -----<br>>  parsePragmaStatement<br>><br>>   | parserSelector |<br>>        (currentToken last == $:<br>>                  and: [(parserSelector := Symbol lookup: currentToken allButLast) notNil])<br>>                         ifFalse: ["Quick exit to not break one-word pragmas such as <primitive> and <foobar>; also avoid interning new symbols for made-up pragmas such as for <my: 1="" new:="" 2="" pragma:="" 3=""> not interning #my."<br>>                                  ^ self parsePragmaStatementKeywords].<br><br>I think it would be easier to read the above lines in the following form:<br><br>  currentToken last == $: ifTrue: [<br>             (Symbol lookup: currentToken allButLast) ifNotNil: [ :parserSelector |<br>                        "Quick exit to not break one-word pragmas such as <primitive> and <foobar>; also avoid interning new symbols for made-up pragmas such as for <my: 1="" new:="" 2="" pragma:="" 3=""> not interning #my."<br>                        ^self parsePragmaStatementKeywords ] ].<br><br>> <br>> +        SHParserST80 methodDict<br>> -         self class methodDict<br>>             at: parserSelector<br>>                ifPresent: [:parserMethod |<br>>                       (parserMethod pragmas<br>>                             anySatisfy: [:pragma | pragma keyword == #pragmaParser])<br>>                                          ifTrue: [^ self executeMethod: parserMethod]].<br><br>How about using #hasPragma: here?<br><br>                         (parserMethod hasPragma: #pragmaParser) ifTrue: [<br>                             ^self executeMethod: parserMethod ]<br><br><br>Levente<br><br>><br>>          ^ self parsePragmaStatementKeywords!<br><br></my:></foobar></primitive></my:></foobar></primitive></pragmaparser></div></blockquote></div>