File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed
docs/src/submodules/FileFormats Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -203,3 +203,21 @@ Additional solvers put additional restrictions:
203203 but they will normalize to the legal letters on write
204204
205205** We choose to allow any valid UTF-8 names.**
206+
207+ ### Brackets in identifiers
208+
209+ In the CPLEX specification, ` [] ` are not allowed in identifiers. However, they
210+ are fairly common in names because of naming conventions like ` x[1,2] ` .
211+ Supporting ` [ ` in an identifier when it is not the starting character is fairly
212+ trivial since it can't be ambiguous with any other syntax. However, deciding
213+ whether ` ] ` is part of an identifier or represents a closing bracket from a
214+ quadratic term is quite tricky.
215+
216+ Consider the case: ` [ x * x] + y] ` . Is that the valid ` "x"^2 + "y]" ` or the
217+ corrupt ` "x" * "x]" + "y" ` where we're missing a multiplying variable on ` "y" ` ?
218+
219+ Gurobi supports ` [] ` in identifiers because the require identifiers to be
220+ separated by whitespace. Since we allow juxtaposed tokens without whitespace, it
221+ follows that we cannot easily support ` ] ` in identifiers.
222+
223+ ** We choose not to allow ` [] ` in identifiers.**
You can’t perform that action at this time.
0 commit comments