<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Aug 22, 2017, at 01:24, Daryle Walker &lt;<a href="mailto:darylew@mac.com" class="">darylew@mac.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div class=""><div class=""><blockquote type="cite" class="">On Aug 21, 2017, at 3:55 PM, David Zarzycki &lt;<a href="mailto:zarzycki@icloud.com" class="">zarzycki@icloud.com</a>&gt; wrote:<br class=""><br class="">The easiest way to start adding new features to an existing project is by cribbing from existing features that are sufficiently similar (at least enough to get started and see what fails to compile after some changes). For example, if you wanted to implement a new and awesome loop construct, then start by copying, pasting, and renaming the implementation details for an existing loop that you like (be it “for” or “while”, etc). You’ll learn far faster this way than any other way. :-)<br class=""></blockquote><br class="">I’m trying to figure out where are these features and what directories I need to look at.<br class=""><br class="">The steps I would go are:<br class="">1. Create a new test file for the AST phase with “alter MyAlterTest1 {}”. Figure out where the corresponding makefile/whatever is and add the test file there too.</div></div></blockquote><div><br class=""></div><div>Just create a test file somewhere in test directory hierarchy. The test suite will automatically notice it when the test suite is run.</div><div><br class=""></div><div>As for creating new source files, that tends not to be done in the project. Take parsing for example:</div><div><br class=""></div></div><blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div><div>lib/Parse/CMakeLists.txt</div></div><div><div>lib/Parse/Confusables.cpp</div></div><div><div>lib/Parse/Lexer.cpp</div></div><div><div>lib/Parse/ParseDecl.cpp</div></div><div><div>lib/Parse/ParseExpr.cpp</div></div><div><div>lib/Parse/ParseGeneric.cpp</div></div><div><div>lib/Parse/ParseIfConfig.cpp</div></div><div><div>lib/Parse/ParsePattern.cpp</div></div><div><div>lib/Parse/ParseStmt.cpp</div></div><div><div>lib/Parse/ParseType.cpp</div></div><div><div>lib/Parse/Parser.cpp</div></div><div><div>lib/Parse/PersistentParserState.cpp</div></div><div><div>lib/Parse/Scope.cpp</div></div></blockquote><div><div><br class=""></div><div>Notice now *all* of the declaration parsing is done in one file. If you want to add a new decl kind, then you’ll need to update that file and dependent files.</div><div><br class=""></div><div>Good luck,</div><div>Dave</div></div></body></html>