# Unexpected "="

This segment of Julia code filters keypoints in an image by an interpolation of the fields in the extremum from a difference of gaussian scale space.

``````mutable struct discrete_extremum
o
s
m
n
intensity
end
mutable struct candidateKeypoint
oE
s
m
n
σ
x
y
ω
end

LB = Array{candidateKeypoint}(0)
for extremum in LA′
for i = 1:5
H̄ = Hessian(extremum.o, extremum.s, extremum.m, extremum.n)
ḡ = ThreeDgradient(extremum.o, extremum.s, extremum.m, extremum.n)
α⋆ = alphaStar(H̄, ḡ)
ω = omega(H̄, ḡ, extremum.o, extremum.s, extremum.m, extremum.n)
δOE = δMin * 2^(extremum.o - 1)
α1⋆ = α⋆
α2⋆ = α⋆
α3⋆ = α⋆
σ = (δOE/δMin) * σMin * 2^((α1⋆ + extremum.s)/nSpo)
x = δOE * (α2⋆ + extremum.m)
y = δOE * (α2⋆ + extremum.n)
extremum.s, extremum.m, extremum.n = round(Int64, extremum.s + α1⋆), round(Int64, extremum.m + α2⋆), round(Int64, extremum.n + α3⋆)
if max(abs(α1⋆), abs(α2⋆), abs(α3⋆)) < 0.6
break
end
end
if max(abs(α1⋆), abs(α2⋆), abs(α3⋆)) < 0.6
push!(LB, candidateKeypoint(extremum, σ, x, y, ω))
end
end
``````

I am getting this error:

syntax: unexpected “=”

in the part starting with LB =
There is no line number mentioned. Can you guys suggest what I am doing wrong?

OK, sorry, I wasn’t concentrating enough, due to the special characters, I guess. Perhaps Julia behave in the same way? I have not used special characters in a code, so I can’t answer about it.

1 Like

Hi @LeoK987! Thanks for the help.
It’s just after the two structure definitions. Should I remove the special characters from variable names?

You can just say:

``````LB = candidateKeypoint[]
``````

Which initializes an empty `candidateKeypoint` Vector.

It is not `LB =` that is giving you grief. Instead it is the ‘⋆’ character in the variables `α1⋆`, `α2⋆`, and `α3⋆`. I don’t know why.

If you inspect line 28 in file https://github.com/JuliaLang/julia/blob/master/src/julia-parser.scm you’ll find that the ‘⋆’ character is defined as an operator with the same precedence as the ‘*’ operator. That is why the Julia parser reports that the ‘=’ character is unexpected. It expects another operand.

Please don’t double post, especially without cross referencing: https://stackoverflow.com/questions/52068346/syntax-unexpected-in-julia/52069285#52069285

1 Like

Oh sorry I forgot to put the reference! My bad!

@quinnj already posted an alternative, but I expect this to fail, since `Array{candidateKeypoint}` is an abstract type.

Use `Array{.., 1}()` or `Vector{..}()` (in my view better), or, as suggested, `T[]`.

This is the reason I always prefer `Vector` and `Matrix` over `Array{ ..,1}` and `Array{..,2}`. More readable, and less likely to mistype.

1 Like