summary refs log tree commit diff stats
path: root/compiler
ModeNameSize
-rw-r--r--aliases.nim5802log stats plain blame
-rw-r--r--ast.nim60840log stats plain blame
-rw-r--r--astalgo.nim31422log stats plain blame
-rw-r--r--bitsets.nim2273log stats plain blame
-rw-r--r--canonicalizer.nim12296log stats plain blame
-rw-r--r--ccgcalls.nim11555log stats plain blame
-rw-r--r--ccgexprs.nim81021log stats plain blame
-rw-r--r--ccgmerge.nim8544log stats plain blame
-rw-r--r--ccgstmts.nim35798log stats plain blame
-rw-r--r--ccgthreadvars.nim2507log stats plain blame
-rw-r--r--ccgtrav.nim4986log stats plain blame
-rw-r--r--ccgtypes.nim36309log stats plain blame
-rw-r--r--ccgutils.nim6527log stats plain blame
-rw-r--r--cgen.nim50646log stats plain blame
-rw-r--r--cgendata.nim7912log stats plain blame
-rw-r--r--cgmeth.nim8577log stats plain blame
-rw-r--r--commands.nim23252log stats plain blame
-rw-r--r--condsyms.nim4456log stats plain blame
-rw-r--r--crc.nim6387log stats plain blame
-rw-r--r--depends.nim1585log stats plain blame
-rw-r--r--docgen.nim24433log stats plain blame
-rw-r--r--docgen2.nim1180log stats plain blame
-rw-r--r--evalffi.nim16622log stats plain blame
-rw-r--r--evaltempl.nim3395log stats plain blame
-rw-r--r--extccomp.nim24857log stats plain blame
-rw-r--r--filter_tmpl.nim6527log stats plain blame
-rw-r--r--filters.nim2940log stats plain blame
-rw-r--r--guards.nim29722log stats plain blame
-rw-r--r--hlo.nim3623log stats plain blame
-rw-r--r--idents.nim2969log stats plain blame
-rw-r--r--idgen.nim1694log stats plain blame
-rw-r--r--importer.nim7362log stats plain blame
-rw-r--r--jsgen.nim63304log stats plain blame
-rw-r--r--jstypes.nim6005log stats plain blame
-rw-r--r--lambdalifting.nim36301log stats plain blame
-rw-r--r--lexer.nim28721log stats plain blame
-rw-r--r--lists.nim3272log stats plain blame
-rw-r--r--llstream.nim6166log stats plain blame
-rw-r--r--lookups.nim13439log stats plain blame
-rw-r--r--lowerings.nim21383log stats plain blame
-rw-r--r--magicsys.nim5894log stats plain blame
-rw-r--r--main.nim11004log stats plain blame
-rw-r--r--modules.nim6789log stats plain blame
-rw-r--r--msgs.nim40720log stats plain blame
-rw-r--r--nim.ini3940log stats plain blame
-rw-r--r--nim.nim2833log stats plain blame
-rw-r--r--nim.nimrod.cfg314log stats plain blame
-rw-r--r--nimblecmd.nim2588log stats plain blame
-rw-r--r--nimconf.nim8199log stats plain blame
-rw-r--r--nimeval.nim806log stats plain blame
d---------nimfix160log stats plain
-rw-r--r--nimlexbase.nim5443log stats plain blame
-rw-r--r--nimsets.nim5192log stats plain blame
-rw-r--r--nversion.nim469log stats plain blame
-rw-r--r--options.nim14983log stats plain blame
-rw-r--r--parampatterns.nim8560log stats plain blame
-rw-r--r--parser.nim66260log stats plain blame
-rw-r--r--passaux.nim1587log stats plain blame
-rw-r--r--passes.nim7046log stats plain blame
-rw-r--r--patterns.nim10335log stats plain blame
-rw-r--r--pbraces.nim369log stats plain blame
-rw-r--r--platform.nim9957log stats plain blame
-rw-r--r--pragmas.nim33864log stats plain blame
-rw-r--r--procfind.nim4987log stats plain blame
-rw-r--r--readme.txt202log stats plain blame
-rw-r--r--renderer.nim40926log stats plain blame
-rw-r--r--rodread.nim36561log stats plain blame
-rw-r--r--rodutils.nim3660log stats plain blame
-rw-r--r--rodwrite.nim17245log stats plain blame
-rw-r--r--ropes.nim10427log stats plain blame
-rw-r--r--saturate.nim2113log stats plain blame
-rw-r--r--sem.nim16708log stats plain blame
-rw-r--r--semasgn.nim6767log stats plain blame
-rw-r--r--semcall.nim13477log stats plain blame
-rw-r--r--semdata.nim11629log stats plain blame
-rw-r--r--semdestruct.nim8215log stats plain blame
-rw-r--r--semexprs.nim79829log stats plain blame
-rw-r--r--semfields.nim5615log stats plain blame
-rw-r--r--semfold.nim28292log stats plain blame
-rw-r--r--semgnrc.nim14437log stats plain blame
-rw-r--r--seminst.nim9174log stats plain blame
-rw-r--r--semmacrosanity.nim2844log stats plain blame
-rw-r--r--semmagic.nim4912log stats plain blame
-rw-r--r--semparallel.nim15737log stats plain blame
-rw-r--r--sempass2.nim31309log stats plain blame
-rw-r--r--semstmts.nim47876log stats plain blame
-rw-r--r--semtempl.nim22050log stats plain blame
-rw-r--r--semtypes.nim50903log stats plain blame
-rw-r--r--semtypinst.nim16297log stats plain blame
-rw-r--r--service.nim2359log stats plain blame
-rw-r--r--sigmatch.nim57773log stats plain blame
-rw-r--r--suggest.nim12148log stats plain blame
-rw-r--r--syntaxes.nim5333log stats plain blame
-rw-r--r--tccgen.nim2380log stats plain blame
-rw-r--r--testability.nim129log stats plain blame
-rw-r--r--transf.nim28547log stats plain blame
-rw-r--r--trees.nim5465log stats plain blame
-rw-r--r--treetab.nim3597log stats plain blame
-rw-r--r--types.nim49206log stats plain blame
-rw-r--r--typesrenderer.nim3955log stats plain blame
-rw-r--r--vm.nim50457log stats plain blame
-rw-r--r--vmdef.nim7579log stats plain blame
-rw-r--r--vmdeps.nim1072log stats plain blame
-rw-r--r--vmgen.nim59554log stats plain blame
-rw-r--r--vmhooks.nim1334log stats plain blame
-rw-r--r--vmops.nim2050log stats plain blame
-rw-r--r--wordrecg.nim7233log stats plain blame
">npos) in.get(); else if (in.peek() == '#') skip_comment(in); else break; } } void skip_comment(istream& in) { if (has_data(in) && in.peek() == '#') { in.get(); while (has_data(in) && in.peek() != '\n') in.get(); } } :(scenario recipe_instead_of_def) recipe main [ 1:number <- copy 23 ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: product: {1: "number"} :(scenario parse_comment_outside_recipe) # this comment will be dropped by the tangler, so we need a dummy recipe to stop that def f1 [ ] # this comment will go through to 'load' def main [ 1:number <- copy 23 ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: product: {1: "number"} :(scenario parse_comment_amongst_instruction) def main [ # comment 1:number <- copy 23 ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: product: {1: "number"} :(scenario parse_comment_amongst_instruction_2) def main [ # comment 1:number <- copy 23 # comment ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: product: {1: "number"} :(scenario parse_comment_amongst_instruction_3) def main [ 1:number <- copy 23 # comment 2:number <- copy 23 ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: product: {1: "number"} +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: product: {2: "number"} :(scenario parse_comment_after_instruction) def main [ 1:number <- copy 23 # comment ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: product: {1: "number"} :(scenario parse_label) def main [ +foo ] +parse: label: +foo :(scenario parse_dollar_as_recipe_name) def main [ $foo ] +parse: instruction: $foo :(scenario parse_multiple_properties) def main [ 1:number <- copy 23/foo:bar:baz ] +parse: instruction: copy +parse: ingredient: {23: "literal", "foo": ("bar" "baz")} +parse: product: {1: "number"} :(scenario parse_multiple_products) def main [ 1:number, 2:number <- copy 23 ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: product: {1: "number"} +parse: product: {2: "number"} :(scenario parse_multiple_ingredients) def main [ 1:number, 2:number <- copy 23, 4:number ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: ingredient: {4: "number"} +parse: product: {1: "number"} +parse: product: {2: "number"} :(scenario parse_multiple_types) def main [ 1:number, 2:address:number <- copy 23, 4:number ] +parse: instruction: copy +parse: ingredient: {23: "literal"} +parse: ingredient: {4: "number"} +parse: product: {1: "number"} +parse: product: {2: ("address" "number")} :(scenario parse_properties) def main [ 1:address:number/lookup <- copy 23 ] +parse: product: {1: ("address" "number"), "lookup": ()} //: this test we can't represent with a scenario :(code) void test_parse_comment_terminated_by_eof() { load("recipe main [\n" " a:number <- copy 34\n" "]\n" "# abc"); // no newline after comment cerr << "."; // termination = success } :(scenario warn_on_missing_space_before_bracket) % Hide_errors = true; def main[ 1:number <- copy 23 ] +error: insert a space before '[' in 'main[' //: Warn if a recipe gets redefined, because large codebases can accidentally //: step on their own toes. But there'll be many occasions later where //: we'll want to disable the errors. :(before "End Globals") bool Disable_redefine_checks = false; :(before "End Reset") Disable_redefine_checks = false; :(code) bool should_check_for_redefine(const string& recipe_name) { if (Disable_redefine_checks) return false; return true; } :(scenario forbid_redefining_recipes) % Hide_errors = true; def main [ 1:number <- copy 23 ] def main [ 1:number <- copy 24 ] +error: redefining recipe main :(scenario permit_forcibly_redefining_recipes) def main [ 1:number <- copy 23 ] def! main [ 1:number <- copy 24 ] -error: redefining recipe main $error: 0 :(code) // for debugging void show_rest_of_stream(istream& in) { cerr << '^'; char c; while (in >> c) cerr << c; cerr << "$\n"; exit(0); }