Skip to content

Commit e6698b5

Browse files
committed
switch empty macro to allow names instead of parameters
2 parents 30d6baf + 890fa43 commit e6698b5

File tree

2 files changed

+14
-7
lines changed

2 files changed

+14
-7
lines changed

src/reaction_network.jl

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,14 @@ end
9191
### Macros used for manipulating, and successively builing up, reaction systems. ###
9292

9393
#Returns a empty network (with, or without, parameters declared)
94-
macro reaction_network(parameters...)
95-
!isempty(intersect(forbidden_symbols,parameters)) && error("The following symbol(s) are used as reactants or parameters: "*((map(s -> "'"*string(s)*"', ",intersect(forbidden_symbols,reactants,parameters))...))*"this is not permited.")
96-
return Expr(:block,:(@parameters $((:t,parameters...)...)),
94+
macro reaction_network(name::Symbol=gensym(:ReactionSystem))
95+
return Expr(:block,:(@parameters t),
9796
:(ReactionSystem(Reaction[],
9897
t,
9998
[],
100-
[$(parameters...)],
99+
[],
101100
Equation[],
102-
gensym(:ReactionSystem),
101+
$(QuoteNode(name)),
103102
ReactionSystem[])))
104103
end
105104

test/model_modification.jl

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ empty_network_1 = @reaction_network
1313
@test length(empty_network_1.states) == 0
1414
@test length(ps) == 0
1515

16-
empty_network_2 = @reaction_network p1 p2 p3 p4 p5
16+
empty_network_2 = @reaction_network
17+
@variables p1 p2 p3 p4 p5
18+
addparam!(empty_network_2, p1)
19+
addparam!(empty_network_2, p2)
20+
addparam!(empty_network_2, p3)
21+
addparam!(empty_network_2, p4)
22+
addparam!(empty_network_2, p5)
1723
@unpack eqs,iv,ps,name,systems = empty_network_2
1824
@test length(eqs) == 0
1925
@test iv.name == :t
@@ -129,7 +135,9 @@ end k1
129135
end k4 m J4
130136
push!(identical_networks, reaction_networks_real[3] => step_by_step_network_7)
131137

132-
step_by_step_network_8 = @reaction_network k1
138+
step_by_step_network_8 = @reaction_network
139+
@parameters k1
140+
addparam!(step_by_step_network_8,k1)
133141
@add_reactions step_by_step_network_8 begin
134142
k1, X1 X2
135143
0, X2 X3

0 commit comments

Comments
 (0)