Go to file
Zahary Karadjov 0b197ade6c Multiple C lines corresponding to a single nimrod line are joined together
This patch greatly improves the "step over" operation available in debuggers.
In practice, there are often 4-8 lines of C code generated for each nimrod line
Each such line will be responsible to a single step in the debugger that is
a) not expected by the user
b) taking the user to an incorrect line in the nimrod code

To keep this working, all code generation should use the rope formatting
facilities when producing new lines (i.e. $n and $N).
New semantics for the format string are introduced:
$n means "soft new line" that could be joined/broken when lineDir is enabled.
$N means "hard new line" that will always appear as a new line.

As an alternative to this approach, I also tested producing code like this:
#line "code.nim" 154
foo = bar; \
foo(bar) \

This is better for readability of the final output, but unfortunately it didn't
produce the desired result across all compilers/debuggers.
2011-09-20 14:11:06 +03:00
2011-04-12 01:13:42 +02:00
2010-10-21 00:12:14 +02:00
2011-01-31 08:50:30 +01:00

===========================================================
          Nimrod Compiler
===========================================================

This is the **Nimrod Compiler**. Nimrod is a new statically typed, imperative 
programming language, that supports procedural, functional, object oriented and 
generic programming styles while remaining simple and efficient. A special 
feature that Nimrod inherited from Lisp is that Nimrod's abstract syntax tree
(AST) is part of the specification - this allows a powerful macro system which 
can be used to create domain specific languages.

*Nimrod* is a compiled, garbage-collected systems programming language 
which has an excellent productivity/performance ratio. Nimrod's design 
focuses on the 3E: efficiency, expressiveness, elegance (in the order of 
priority). 

See the file ``install.txt`` for installation instructions. See the file
``doc/intern.txt`` for the internal documentation for developers.

Copyright (c) 2004-2011 Andreas Rumpf.
All rights reserved.
Description
Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
Readme 645 MiB
Languages
Nim 96.6%
HTML 1.8%
Python 0.5%
C 0.4%
Shell 0.4%
Other 0.2%