Refactor environment option parsing
Agent-Logs-Url: https://github.com/wesleyel/swiftui-math/sessions/56436444-e15b-4dd0-8a70-c87df1e3dc4e Co-authored-by: wesleyel <48174882+wesleyel@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
e86cf33070
commit
82be1cd961
@@ -809,27 +809,17 @@ extension Math {
|
|||||||
if env == nil {
|
if env == nil {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
var alignment: Table.ColumnAlignment? = nil
|
guard let env else {
|
||||||
var columnAlignments: [Table.ColumnAlignment]? = nil
|
return nil
|
||||||
var columnFormat: String? = nil
|
}
|
||||||
if let env {
|
guard let environmentOptions = self.readEnvironmentOptions(for: env) else {
|
||||||
if env.hasSuffix("*") {
|
return nil
|
||||||
alignment = self.readOptionalAlignment()
|
|
||||||
if self.error != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
} else if env == "array" {
|
|
||||||
(columnAlignments, columnFormat) = self.readArrayColumnFormat()
|
|
||||||
if self.error != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
let table = self.buildTable(
|
let table = self.buildTable(
|
||||||
environment: env,
|
environment: env,
|
||||||
alignment: alignment,
|
alignment: environmentOptions.alignment,
|
||||||
columnAlignments: columnAlignments,
|
columnAlignments: environmentOptions.columnAlignments,
|
||||||
columnFormat: columnFormat,
|
columnFormat: environmentOptions.columnFormat,
|
||||||
firstList: nil,
|
firstList: nil,
|
||||||
isRow: false
|
isRow: false
|
||||||
)
|
)
|
||||||
@@ -1189,27 +1179,15 @@ extension Math {
|
|||||||
return under
|
return under
|
||||||
} else if command == "begin" {
|
} else if command == "begin" {
|
||||||
if let env = self.readEnvironment() {
|
if let env = self.readEnvironment() {
|
||||||
// Check if this is a starred matrix environment and read optional alignment
|
guard let environmentOptions = self.readEnvironmentOptions(for: env) else {
|
||||||
var alignment: Table.ColumnAlignment? = nil
|
return nil
|
||||||
var columnAlignments: [Table.ColumnAlignment]? = nil
|
|
||||||
var columnFormat: String? = nil
|
|
||||||
if env.hasSuffix("*") {
|
|
||||||
alignment = self.readOptionalAlignment()
|
|
||||||
if self.error != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
} else if env == "array" {
|
|
||||||
(columnAlignments, columnFormat) = self.readArrayColumnFormat()
|
|
||||||
if self.error != nil {
|
|
||||||
return nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let table = self.buildTable(
|
let table = self.buildTable(
|
||||||
environment: env,
|
environment: env,
|
||||||
alignment: alignment,
|
alignment: environmentOptions.alignment,
|
||||||
columnAlignments: columnAlignments,
|
columnAlignments: environmentOptions.columnAlignments,
|
||||||
columnFormat: columnFormat,
|
columnFormat: environmentOptions.columnFormat,
|
||||||
firstList: nil,
|
firstList: nil,
|
||||||
isRow: false
|
isRow: false
|
||||||
)
|
)
|
||||||
@@ -1298,6 +1276,24 @@ extension Math {
|
|||||||
return alignment
|
return alignment
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mutating func readEnvironmentOptions(for env: String) -> (
|
||||||
|
alignment: Table.ColumnAlignment?,
|
||||||
|
columnAlignments: [Table.ColumnAlignment]?,
|
||||||
|
columnFormat: String?
|
||||||
|
)? {
|
||||||
|
if env.hasSuffix("*") {
|
||||||
|
let alignment = self.readOptionalAlignment()
|
||||||
|
return self.error == nil ? (alignment, nil, nil) : nil
|
||||||
|
}
|
||||||
|
|
||||||
|
if env == "array" {
|
||||||
|
let (columnAlignments, columnFormat) = self.readArrayColumnFormat()
|
||||||
|
return self.error == nil ? (nil, columnAlignments, columnFormat) : nil
|
||||||
|
}
|
||||||
|
|
||||||
|
return (nil, nil, nil)
|
||||||
|
}
|
||||||
|
|
||||||
mutating func readArrayColumnFormat() -> ([Table.ColumnAlignment]?, String?) {
|
mutating func readArrayColumnFormat() -> ([Table.ColumnAlignment]?, String?) {
|
||||||
guard self.expectCharacter("{") else {
|
guard self.expectCharacter("{") else {
|
||||||
self.setError(.characterNotFound, message: "Missing { after \\begin{array}")
|
self.setError(.characterNotFound, message: "Missing { after \\begin{array}")
|
||||||
|
|||||||
Reference in New Issue
Block a user