<html>
<head>
<style>
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
</style>
</head>
<body class='hmmessage'>
We have some redundancies that are causing me some grief.<BR>
 <BR>
We have two units called M3ID.<BR>They have no overlap, and could be merged into one.<BR>
"No overlap" doesn't mean they are completely unrelated, but sort of.<BR>
 <BR>
 <BR>
More bothersome is that m3-sys\m3scanner<BR>and m3-tools\m3scan have near duplicate code, in particular<BR>the list of tokens and the Classify function.<BR>
 <BR>
In particular, where people were using libm3\M3Config,<BR>there are problems using instead m3quake\MxConfig, because<BR>this can bring together the two M3IDs.<BR>
 <BR>
I was going to replace all uses of M3Config with MxConfig.<BR>However to avoid the duplicate M3ID units, I think I'll<BR>keep M3Config and MxConfig more like duplicates of each<BR>other at least for now, to avoid bringing m3quake<BR>into places that have the other M3ID.<BR><BR>
M3Config is in libm3 and MxConfig is in m3quake.<BR>
m3quake imports m3middle, which has M3ID.<BR>
 <BR>
Therefore, if you use M3Config and have your own M3ID,<BR>
you can't switch to MxConfig without renaming one of the M3IDs.<BR>
This does occur in m3-tools.<BR>
 <BR>
C:\dev2\cm3.2\m3-sys\m3scanner\src\M3Keyword.m3(25):PROCEDURE Classify (READONLY x: ARRAY OF CHAR): TK =<BR>C:\dev2\cm3.2\m3-sys\m3scanner\src\M3Keyword.m3(360):  END Classify;<BR>C:\dev2\cm3.2\m3-tools\m3scan\src\M3ID.i3(12):PROCEDURE Classify (READONLY x: ARRAY OF CHAR): M3Token.T;<BR>C:\dev2\cm3.2\m3-tools\m3scan\src\M3ID.m3(17):PROCEDURE Classify (READONLY x: ARRAY OF CHAR): M3Token.T =<BR><BR>
<BR> - Jay<BR></body>
</html>