<div dir="ltr"><div><br></div><div><br></div><div class="gmail_extra"><div class="gmail_quote">On Wed, Jun 6, 2018 at 4:51 PM, Joseph D Williams <span dir="ltr"><<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-4173022742528255188WordSection1"><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986" target="_blank">Mail</a> for Windows 10</p><p class="MsoNormal"><u></u> <u></u></p><div style="border-color:rgb(225,225,225) currentcolor currentcolor;border-style:solid none none;border-width:1pt medium medium;padding:3pt 0in 0in"><p class="MsoNormal" style="border:medium none;padding:0in"><b>From: </b><a href="mailto:andreasplesch@gmail.com" target="_blank">Andreas Plesch</a><br><b>Sent: </b>Wednesday, June 6, 2018 10:39 AM<br><b>To: </b><a href="mailto:x3d-public@web3d.org" target="_blank">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] X3D Regex</p></div><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">> Date: Wed, 6 Jun 2018 09:23:09 -0700</p><p class="MsoNormal">> From: Don Brutzman <<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>></p><p class="MsoNormal">> To: X3D Graphics Working Group <<a href="mailto:x3d@web3d.org" target="_blank">x3d@web3d.org</a>></p><p class="MsoNormal">> Cc: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>>, "Humanoid</p><p class="MsoNormal">>         Animation (H-Anim) Working Group" <<a href="mailto:h-anim@web3d.org" target="_blank">h-anim@web3d.org</a>></p><p class="MsoNormal">> Subject: [x3d-public] X3D teleconference 5 JUN 2018 minutes: HAnim</p><p class="MsoNormal">>         DIS, X3D Regex, Web3D 2018 and X3Dv4</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">...</p><p class="MsoNormal">>         X3D Regular Expressions (regexes)</p><p class="MsoNormal">>         <a href="http://www.web3d.org/specifications/X3dRegularExpressions.html" target="_blank">http://www.web3d.org/<wbr>specifications/<wbr>X3dRegularExpressions.html</a></p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> Vince reports that MFInt32 problem stack-overflow error still remains when running X3D Schematron locally.  He will post the abridged example that is still failing, hopefully that will help our test efforts.</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">> MFInt32 regex pattern:</p><p class="MsoNormal">><u></u> <u></u></p><p class="MsoNormal">>         ((\+|\-)?(0|[1-9][0-9]*)?( )?(,)?( )?)*</p><p class="MsoNormal">>         <a href="http://www.web3d.org/specifications/X3dRegularExpressions.html#MFInt32" target="_blank">http://www.web3d.org/<wbr>specifications/<wbr>X3dRegularExpressions.html#<wbr>MFInt32</a></p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">>> I am looking at this regex and have a few questions.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">>> All groups are optional, so it seems to also match an empty string "".</p><p class="MsoNormal">>> Perhaps not a problem, or even intentional.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Totally intentional. We need the ability to legally load the node with no content then later, prior to actually running the scene. Add some attr content.</p><p class="MsoNormal"><u></u></p></div></div></blockquote><div><br></div><div>Yes, so the question is really if an empty string is a legal value. It may be intended as a signal to use the default value. <br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-4173022742528255188WordSection1"><p class="MsoNormal">>> It matches a mix of commas and spaces, for example ",,,  , ,, ,,  ".</p><p class="MsoNormal">>> This does not look like an acceptable MFInt32 value.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Well, either space or comma is legal sep. Mix reads poorly but legal if number of </p><p class="MsoNormal"><u></u></p></div></div></blockquote><div><br></div><div>Not sure if there are no digits and just commas and spaces. "1,,2,,3" also matches. but I doubt that skipping entries is legal. <br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-4173022742528255188WordSection1"><p class="MsoNormal">>> The second group (0|[1-9][0-9]*) : This is harder to understand. It</p><p class="MsoNormal">seems to want to address leading zeros. Why not just use ([0-9]*) ?</p><p class="MsoNormal">Using <a href="https://regexr.com/" target="_blank">https://regexr.com/</a> and <a href="https://regex101.com/" target="_blank">https://regex101.com/</a> I could not come</p><p class="MsoNormal">up with a pattern where these expressions were not equivalent. What</p><p class="MsoNormal">would be an example where ([0-9]*) would not work ?</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">leading zero for decimal value?</p></div></div></blockquote><div><br></div><div>[0-9]* matches 012 as well, so still looking for an example.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-4173022742528255188WordSection1"><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">>> <a href="http://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/EncodingOfFields.html#SFInt32" target="_blank">http://www.web3d.org/<wbr>documents/specifications/<wbr>19776-1/V3.3/Part01/<wbr>EncodingOfFields.html#SFInt32</a></p><p class="MsoNormal">allows hexadecimal values, using 0x prefix. I have never seen this but</p><p class="MsoNormal">the regex would not match, eg. produces a false negative.</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Looks like hex needs better regex. </p><p class="MsoNormal"><u></u> </p></div></div></blockquote><div><br></div><div>Tempted to give it a try, starting with SFInt32:</div><div>/[ \t]*[-|+]?((0x([0-9]|[a-f]|[A-F])+)|[0-9]*)[ \t]*/</div><div><br></div><div>Translation: optional whitespace followed by optional plus or minus signs followed by <br></div><div>either 0x followed by a at least one digit or a to f or A to F letter</div><div>or by zero or more digits</div><div>followed by white space.<br></div><div><br></div><div>Is tab legal white space ? Is whitespace after the plus/minus sign allowed ? Hm, I guess so.<br></div><div><br></div><div>Testing this regex shows it works pretty well. One issue that it matches "  +  " without any digits. One could require at least one digit but then the empty string does not match any more. So one could make the complete  regex optional:</div><div><br></div><div>/([ \t]*[-|+]?[ \t]*((0x([0-9]|[a-f]|[A-F])+)|[0-9]+)[ \t]*)?/<br></div><div><br></div><div>How does that look for SFInt32 ? There is \d for digits and \s for white space but I am not sure how widely supported these are.</div><div>/(\s*[-|+]?\s*((0x(\d|[a-f]|[A-F])+)|\d+)\s*)?/<br></div><div><br></div><div>Andreas<br></div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div lang="EN-US"><div class="gmail-m_-4173022742528255188WordSection1"><p class="MsoNormal"><u></u></p><p class="MsoNormal">>> -Andreas</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">Thanks and Best, </p><p class="MsoNormal">Joe</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">-- </p><p class="MsoNormal">Andreas Plesch</p><p class="MsoNormal">Waltham, MA 02453</p><p class="MsoNormal"><u></u> <u></u></p><p class="MsoNormal">______________________________<wbr>_________________</p><p class="MsoNormal">x3d-public mailing list</p><p class="MsoNormal"><a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a></p><p class="MsoNormal"><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/<wbr>listinfo/x3d-public_web3d.org</a></p><p class="MsoNormal"><u></u> <u></u></p></div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature"><div dir="ltr"><div>Andreas Plesch<br>Waltham, MA 02453</div></div></div>
</div></div>