mirror of
https://github.com/Open-Argon/argon-v2.git
synced 2026-10-28 09:44:03 +00:00
fix
This commit is contained in:
1 parent
97476abfed
commit
48f3247100
6 files changed
+190
-35
No files matched your search
@@ -0,0 +1,89 @@
|
||||
# .github/workflows/release.yaml
|
||||
|
||||
on: release
|
||||
name: Build Release
|
||||
jobs:
|
||||
release-linux-386:
|
||||
name: release linux/386
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: compile and release
|
||||
uses: ngs/go-release.action@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GOARCH: "386"
|
||||
GOOS: linux
|
||||
EXTRA_FILES: "LICENSE"
|
||||
release-linux-amd64:
|
||||
name: release linux/amd64
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: compile and release
|
||||
uses: ngs/go-release.action@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GOARCH: amd64
|
||||
GOOS: linux
|
||||
EXTRA_FILES: "LICENSE"
|
||||
release-linux-arm:
|
||||
name: release linux/386
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: compile and release
|
||||
uses: ngs/go-release.action@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GOARCH: "arm"
|
||||
GOOS: linux
|
||||
EXTRA_FILES: "LICENSE"
|
||||
release-linux-arm64:
|
||||
name: release linux/amd64
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: compile and release
|
||||
uses: ngs/go-release.action@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GOARCH: arm64
|
||||
GOOS: linux
|
||||
EXTRA_FILES: "LICENSE"
|
||||
release-darwin-amd64:
|
||||
name: release darwin/amd64
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: compile and release
|
||||
uses: ngs/go-release.action@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GOARCH: amd64
|
||||
GOOS: darwin
|
||||
EXTRA_FILES: "LICENSE"
|
||||
release-windows-386:
|
||||
name: release windows/386
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: compile and release
|
||||
uses: ngs/go-release.action@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GOARCH: "386"
|
||||
GOOS: windows
|
||||
EXTRA_FILES: "LICENSE"
|
||||
release-windows-amd64:
|
||||
name: release windows/amd64
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@master
|
||||
- name: compile and release
|
||||
uses: ngs/go-release.action@v1.0.1
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
GOARCH: amd64
|
||||
GOOS: windows
|
||||
EXTRA_FILES: "LICENSE"
|
||||
File renamed without changes.
+1
-1
@@ -1 +1 @@
|
||||
184+103
|
||||
1+1
|
||||
@@ -13,11 +13,15 @@ func init() {
|
||||
runop = runprocess
|
||||
}
|
||||
|
||||
func run(lines []interface{}) {
|
||||
fmt.Println(runprocess(lines[0]))
|
||||
func run(lines []any) {
|
||||
for i := 0; i < len(lines); i++ {
|
||||
if lines[i] != nil {
|
||||
fmt.Println(runprocess(lines[i]))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func runprocess(codeseg interface{}) interface{} {
|
||||
func runprocess(codeseg any) any {
|
||||
switch codeseg.(type) {
|
||||
case opperator:
|
||||
return runOperator(codeseg.(opperator))
|
||||
@@ -26,12 +30,30 @@ func runprocess(codeseg interface{}) interface{} {
|
||||
if myvar.EXISTS != nil {
|
||||
return myvar.VAL
|
||||
}
|
||||
log.Fatal("undecared variable on line " + fmt.Sprint(codeseg.(variable).line))
|
||||
log.Fatal("undecared variable on line " + fmt.Sprint(codeseg.(variable).line))
|
||||
case setVariable:
|
||||
|
||||
}
|
||||
return codeseg
|
||||
}
|
||||
|
||||
func dynamicAdd(x interface{}, y interface{}) interface{} {
|
||||
func setVariableVal(x setVariable) {
|
||||
variable := vars[x.variable]
|
||||
if variable.EXISTS != nil || variable.TYPE == "var" {
|
||||
vars[x.variable] = variableValue{
|
||||
TYPE: x.variable,
|
||||
EXISTS: true,
|
||||
VAL: x.value,
|
||||
FUNC: false,
|
||||
}
|
||||
} else if variable.EXISTS != nil {
|
||||
log.Fatal("undecared variable on line " + fmt.Sprint(x.line))
|
||||
} else {
|
||||
log.Fatal("cannot edit " + variable.TYPE + " variable on line " + fmt.Sprint(x.line))
|
||||
}
|
||||
}
|
||||
|
||||
func dynamicAdd(x any, y any) any {
|
||||
stringconvert := false
|
||||
switch x.(type) {
|
||||
case string:
|
||||
@@ -44,18 +66,12 @@ func dynamicAdd(x interface{}, y interface{}) interface{} {
|
||||
if stringconvert {
|
||||
return fmt.Sprint(x) + fmt.Sprint(y)
|
||||
}
|
||||
xnum, err := strconv.ParseFloat(fmt.Sprint(x), 64)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
ynum, err := strconv.ParseFloat(fmt.Sprint(y), 64)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
xnum := number(x)
|
||||
ynum := number(y)
|
||||
return xnum + ynum
|
||||
}
|
||||
|
||||
func xiny(x interface{}, y []interface{}) bool {
|
||||
func xiny(x any, y []any) bool {
|
||||
for i := 0; i < len(y); i++ {
|
||||
if x == y[i] {
|
||||
return true
|
||||
@@ -64,45 +80,97 @@ func xiny(x interface{}, y []interface{}) bool {
|
||||
return false
|
||||
}
|
||||
|
||||
func runOperator(opperation opperator) interface{} {
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
var output interface{}
|
||||
func number(x any) float64 {
|
||||
num, err := strconv.ParseFloat(fmt.Sprint(x), 64)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return num
|
||||
}
|
||||
|
||||
func runOperator(opperation opperator) any {
|
||||
var output any
|
||||
switch opperation.t {
|
||||
case 0:
|
||||
output = (x != false && x != nil) && (y != false && y != nil)
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
if (x != false && x != nil) && (y != false && y != nil) {
|
||||
output = y
|
||||
} else {
|
||||
output = false
|
||||
}
|
||||
case 1:
|
||||
output = x.(bool) || y.(bool)
|
||||
x := runop(opperation.x)
|
||||
if x != false && x != nil {
|
||||
output = x
|
||||
} else {
|
||||
y := runop(opperation.y)
|
||||
if y != false && y != nil {
|
||||
output = y
|
||||
} else {
|
||||
output = false
|
||||
}
|
||||
}
|
||||
case 2:
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = xiny(x, y.([]interface{}))
|
||||
case 3:
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = !xiny(x, y.([]interface{}))
|
||||
case 4:
|
||||
output = (x.(float64) <= y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = (number(x) <= number(y))
|
||||
case 5:
|
||||
output = (x.(float64) >= y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = (number(x) >= number(y))
|
||||
case 6:
|
||||
output = (x.(float64) < y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = (number(x) < number(y))
|
||||
case 7:
|
||||
output = (x.(float64) > y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = (number(x) > number(y))
|
||||
case 8:
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = (x != y)
|
||||
case 9:
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = (x == y)
|
||||
case 10:
|
||||
output = (x.(float64) - y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = (number(x) - number(y))
|
||||
case 11:
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = dynamicAdd(x, y)
|
||||
case 12:
|
||||
output = math.Pow(x.(float64), 1/y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = math.Pow(number(x), 1/number(y))
|
||||
case 13:
|
||||
output = math.Pow(x.(float64), y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = math.Pow(number(x), number(y))
|
||||
case 14:
|
||||
output = x.(float64) * y.(float64)
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = number(x) * number(y)
|
||||
case 15:
|
||||
output = math.Floor(x.(float64) / y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = math.Floor(number(x) / number(y))
|
||||
case 16:
|
||||
output = math.Floor(x.(float64) / y.(float64))
|
||||
x := runop(opperation.x)
|
||||
y := runop(opperation.y)
|
||||
output = math.Floor(number(x) / number(y))
|
||||
}
|
||||
return output
|
||||
}
|
||||
+1
-3
@@ -7,7 +7,7 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
var stringCompile = makeRegex("( *)((\"((\\\\([a-z\\\"']))|[^\\\"])*\"))|(('((\\\\([a-z\\'\"]))|[^\\'])*'))( *)")
|
||||
var stringCompile = makeRegex("(( *)\"((\\\\([a-z\\\"']))|[^\\\"])*\"( *)))|((( *)'((\\\\([a-z\\'\"]))|[^\\'])*'( *))")
|
||||
var numberCompile = makeRegex("( *)(\\-)?(([0-9]+(\\.[0-9]+)?)(e((\\-|\\+)?([0-9]+(\\.[0-9]+)?)))?)( *)")
|
||||
var whileCompile = makeRegex("( *)(while .+ \\[.*)( *)")
|
||||
var ifCompile = makeRegex("( *)(if .+ \\[.*)( *)")
|
||||
@@ -83,7 +83,6 @@ var opperators = [][]string{
|
||||
" to the power of ",
|
||||
"^",
|
||||
"**",
|
||||
"*",
|
||||
}, {
|
||||
"*",
|
||||
" x ",
|
||||
@@ -191,7 +190,6 @@ var translateprocess = func(codeseg code) (interface{}, bool) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if stringCompile.MatchString(codeseg.code) {
|
||||
return (stringencode(codeseg.code)), true
|
||||
} else if bracketsCompile.MatchString(codeseg.code) {
|
||||
|
||||
Reference in new issue
Block a user