Skip to content

Commit b6e35fd

Browse files
Move macros from neat.macros to std.macro.
1 parent 6c60f50 commit b6e35fd

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

100 files changed

+181
-284
lines changed

bootstrap.sh

+2
Original file line numberDiff line numberDiff line change
@@ -608,6 +608,8 @@ at_revision '226f68d29e6d798555b9ba142019486d32ba6218' 'rebuild neat' 'build/nea
608608
at_revision 'ec4a2b8954239f14ce2bc8d7c641acc646639d1a' 'rebuild neat' 'build/neat'
609609
# Propagate error, rewrite ASTImportStatement, ASTFormatString quoting.
610610
at_revision '9d89d88d718feddee58f33a51b2429c4250a4d1d' 'rebuild neat' 'build/neat'
611+
# neat.base/neat.util split
612+
at_revision '6c60f500e9fffd5a0b412faebf6413d9d872c3bd' 'rebuild neat' 'build/neat'
611613

612614
# unpack the last tagfile
613615
unpack_tagfile

demos/fflame.nt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module fflame;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.cimport;
5-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.assert;
4+
macro import std.macro.cimport;
5+
macro import std.macro.listcomprehension;
66

77
import c_header("SDL2/SDL.h");
88
import c_header("SDL2/SDL_image.h");

demos/fib.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module fib;
22

3-
macro import neat.macros.assert;
3+
macro import std.macro.assert;
44

55
import std.stdio;
66
import std.string : atoi;

demos/glfw.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module glfw;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.cimport;
3+
macro import std.macro.assert;
4+
macro import std.macro.cimport;
55

66
import c_header("GL/gl.h");
77
import c_header("GL/glext.h", "-include GL/gl.h -DGL_GLEXT_PROTOTYPES");

demos/gtk.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module gtk;
22

3-
macro import neat.macros.cimport;
3+
macro import std.macro.cimport;
44
import std.stdio;
55

66
import c_header("glib.h");

demos/longestline.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module longestline;
22

3-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.listcomprehension;
44

55
import std.file;
66
import std.stdio;

doc/sphinx/index.rst

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Have some example code! Here's a program that prints the longest line in a file:
1010

1111
module longestline;
1212

13-
macro import neat.macros.listcomprehension;
13+
macro import std.macro.listcomprehension;
1414

1515
import std.file;
1616
import std.stdio;

doc/sphinx/manual.rst

+3-2
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,8 @@ For example::
101101

102102
extern(C) void* memcpy(void* dest, void* src, size_t n);
103103

104-
Note: instead of declaring lots of extern(C) functions manually, try using the `neat.macros.cimport` built-in macro! (Grep for examples.)
104+
Note: instead of declaring lots of extern(C) functions manually, try using the
105+
`std.macro.cimport` built-in macro! (Grep for examples.)
105106

106107
Expressions
107108
-----------
@@ -628,7 +629,7 @@ Macro classes can extend the compiler with new functionality using a set of hook
628629
- statements: `macroThing;`
629630
- imports: `import github("http://github.com/neat-lang/example").module;`
630631

631-
Look at `neat.macros.*` for examples.
632+
Look at `std.macro.*` for examples.
632633

633634
The entire compiler is available for importing and reuse in macros. However, it is recommended
634635
to limit yourself to the functionality in `neat.base`. This will also keep compile times down.

rebuild.sh

+6-1
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,14 @@ fi
4040
cp src/runtime.c build/src/
4141
rm build/neat.ini || true
4242

43+
# turn off pass version flags on the next pass to avoid re-running into them
44+
# use this opportunity to remove them
45+
PASSFLAGS="-version='firstpass' -macro-version='firstpassmacro'"
46+
if grep -qR 'firstpass' build/src; then PASSFLAGS=""; fi
47+
4348
I=1
4449
NEXT=compiler$(($(build/neat -print-generation) + 1))
45-
build/neat $FLAGS -next-generation -version='firstpass' -macro-version='firstpassmacro' \
50+
build/neat $FLAGS -next-generation ${PASSFLAGS} \
4651
-P$NEXT:src -Pcompiler:build/src src/main.nt -o build/neat_test$I
4752

4853
if [ \! -z ${FAST+x} ]

src/backend/c.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module backend.c;
33
import backend.base;
44
import neat.hash;
55
import helpers;
6-
macro import neat.macros.listcomprehension;
6+
macro import std.macro.listcomprehension;
77

88
class CBackend : Backend {
99
this() { }

src/backend/llvm.nt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module backend.llvm;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.cimport;
5-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.assert;
4+
macro import std.macro.cimport;
5+
macro import std.macro.listcomprehension;
66

77
import backend.base;
88
import neat.hash;

src/main.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module main;
22

3-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.listcomprehension;
44

55
import backend.base;
66
import backend.c;
@@ -691,7 +691,7 @@ class Options
691691
bool noMain;
692692
bool cpr; // critical path report
693693
PlatformFlags platformFlags, macroPlatformFlags;
694-
string[] cFlags; // for neat.macros.cimport
694+
string[] cFlags; // for std.macro.cimport
695695
string[] versions, macroVersions;
696696
string docGenFolder;
697697
string runningCompilerVersion;

src/neat/array.nt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module neat.array;
22

3-
macro import neat.macros.hash;
4-
macro import neat.macros.once;
5-
macro import neat.macros.quasiquoting;
3+
macro import std.macro.hash;
4+
macro import std.macro.once;
5+
macro import std.macro.quasiquoting;
66

77
import backend.base;
88
import helpers;

src/neat/base.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -554,7 +554,7 @@ abstract class CompilerBase
554554
{
555555
WorkPoolBase workPool;
556556

557-
// for neat.macros.cimport
557+
// for std.macro.cimport
558558
string[] cFlags;
559559

560560
// parser

src/neat/class_.nt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module neat.class_;
22

3-
macro import neat.macros.listcomprehension;
4-
macro import neat.macros.once;
5-
macro import neat.macros.quasiquoting;
3+
macro import std.macro.listcomprehension;
4+
macro import std.macro.once;
5+
macro import std.macro.quasiquoting;
66

77
import backend.base;
88
import helpers;

src/neat/compiler.nt

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
module neat.compiler;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.listcomprehension;
5-
macro import neat.macros.once;
3+
macro import std.macro.assert;
4+
macro import std.macro.listcomprehension;
5+
macro import std.macro.once;
66

77
import backend.base;
88
import neat.array;

src/neat/docgen.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module neat.docgen;
22

3-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.listcomprehension;
44

55
import neat.base;
66
import neat.class_;

src/neat/either.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module neat.either;
22

3-
macro import neat.macros.quasiquoting;
3+
macro import std.macro.quasiquoting;
44

55
import backend.base;
66
import helpers;

src/neat/enums.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module neat.enums;
22

3-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.listcomprehension;
44

55
import backend.base;
66
import helpers;

src/neat/expr.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module neat.expr;
22

3-
macro import neat.macros.hash;
4-
macro import neat.macros.once;
3+
macro import std.macro.hash;
4+
macro import std.macro.once;
55

66
import backend.base;
77
import helpers;

src/neat/formatstring.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module neat.formatstring;
22

3-
macro import neat.macros.listcomprehension;
4-
macro import neat.macros.quasiquoting;
3+
macro import std.macro.listcomprehension;
4+
macro import std.macro.quasiquoting;
55

66
import neat.array;
77
import neat.base;

src/neat/function_.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module neat.function_;
22

3-
macro import neat.macros.listcomprehension;
4-
macro import neat.macros.once;
3+
macro import std.macro.listcomprehension;
4+
macro import std.macro.once;
55

66
import backend.base;
77
import helpers;

src/neat/hashmap.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module neat.hashmap;
22

3-
macro import neat.macros.once;
4-
macro import neat.macros.quasiquoting;
3+
macro import std.macro.once;
4+
macro import std.macro.quasiquoting;
55

66
import backend.base;
77
import neat.array;

src/neat/packages.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module neat.packages;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.assert;
4+
macro import std.macro.listcomprehension;
55

66
import helpers;
77
import neat.base;

src/neat/statements.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module neat.statements;
22

3-
macro import neat.macros.once;
3+
macro import std.macro.once;
44

55
import backend.base;
66
import helpers;

src/neat/struct_.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module neat.struct_;
22

3-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.listcomprehension;
44

55
import backend.base;
66
import helpers;

src/neat/stuff.nt

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,10 @@ module neat.stuff;
33

44
// IMPORTANT
55
// Never import this module in macros! It's too big!
6-
macro import neat.macros.hash;
7-
macro import neat.macros.listcomprehension;
8-
macro import neat.macros.once;
9-
macro import neat.macros.quasiquoting;
6+
macro import std.macro.hash;
7+
macro import std.macro.listcomprehension;
8+
macro import std.macro.once;
9+
macro import std.macro.quasiquoting;
1010

1111
import backend.base;
1212
import helpers;

src/neat/templ.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module neat.templ;
22

3-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.listcomprehension;
44

55
import neat.base;
66
import neat.class_;

src/neat/traits.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Very, very similar to neat.pragma. (Copypaste, why can't I quit you)
22
module neat.traits;
33

4-
macro import neat.macros.listcomprehension;
4+
macro import std.macro.listcomprehension;
55

66
import helpers;
77
import neat.base;

src/neat/tuples.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module neat.tuples;
22

3-
macro import neat.macros.listcomprehension;
4-
macro import neat.macros.quasiquoting;
3+
macro import std.macro.listcomprehension;
4+
macro import std.macro.quasiquoting;
55

66
import backend.base;
77
import helpers;

src/neat/vectors.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module neat.vectors;
22

3-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.listcomprehension;
44

55
import backend.base;
66
import helpers;

src/neat/workpool.nt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module neat.workpool;
22

3-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.listcomprehension;
44

55
import neat.base;
66
import neat.runtime : assert;

src/std/algorithm.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module std.algorithm;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.assert;
4+
macro import std.macro.listcomprehension;
55

66
/**
77
* Maps a range onto a lambda.

src/std/file.nt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
module std.file;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.assert;
4+
macro import std.macro.listcomprehension;
55

66
import std.string : cToString, cToStringFree, toStringz;
77

src/std/json.nt

+3-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
11
module std.json;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.assert;
4+
macro import std.macro.listcomprehension;
55

6-
version (firstpass) { alias ParserImpl = Parser; }
7-
else { import package(compiler).neat.base; }
6+
import package(compiler).neat.base;
87
import package(compiler).neat.parser;
9-
108
import std.string;
119

1210
/**

src/std/json/macro.nt

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
module std.json.macro;
22

3-
macro import neat.macros.assert;
4-
macro import neat.macros.listcomprehension;
3+
macro import std.macro.assert;
4+
macro import std.macro.listcomprehension;
55

66
import package(compiler).neat.base;
7-
import package(compiler).neat.parser_base;
87
import package(compiler).neat.parser;
98

109
import std.json;
@@ -23,12 +22,12 @@ class JsonSyntax : Macro
2322
{
2423
auto loc = parser.loc();
2524
parser.begin;
26-
if (!acceptIdentifier(parser, "JSONValue")? || !parser.accept("(")?)
25+
if (!parser.acceptIdentifier("JSONValue")? || !parser.accept("(")?)
2726
{
2827
parser.revert;
2928
return null;
3029
}
31-
auto json = jsonParseImpl(parser)?;
30+
auto json = jsonParseImpl(parser.instanceOf(ParserImpl).notNull)?;
3231
parser.expect(")")?;
3332
parser.commit;
3433
return quoteJson(lexicalContext.compiler, json);

0 commit comments

Comments
 (0)