<div dir="ltr"><div>Hi everyone,</div><div><br></div><div>I've prepared some illustrations on how the symbol table of the Oberon compiler actually looks like when objects (variables etc.) are being declared. I used the source code of Project Oberon for reference (with minor differences in the names of some record fields).</div><div><br></div><div>There are four images, the first one shows declaration of  a variable, 2nd - a type, 3rd - a procedure, and 4th - an import of a module with an exported procedure. There are some very minor captions in Russian, but the whole illustration should be self-explanatory, and it's all in English / Oberon.</div><div><br></div><div>Here is the link to the images (please click on the four PNG files):</div><div><a href="https://github.com/kekcleader/oberon/tree/master/etc/docs/schemes">https://github.com/kekcleader/oberon/tree/master/etc/docs/schemes</a><br></div><div><br></div><div>Some information on the project:</div><div>We are developing yet another crossplatform Oberon compiler. However, this one is intended to be compiled directly to machine code and possibly allow using multiple dialects (i. e. the new "Revised Oberon-2"). The work is still far from finish though. We also want to make it easier for people to dive in to the project and learn how the compiler works to give them the ability to participate in its development. For that, a book is being written (and later there will be a set of YouTube videos about Oberon and the compiler). The project also includes creating an IDE and a set of libraries, and possibly LLVM and C backends.</div><div><br></div><a href="https://github.com/kekcleader/oberon">https://github.com/kekcleader/oberon</a><br><div>Scroll to the bottom of the README file for English text.</div><div><br></div><div>Arthur Yefimov</div></div>