Compare commits
No commits in common. "137da7bee148a8089cfd2bb0d8e693ea808072c4" and "f63a48809e9a2d42d19be26dd61ce229e727569f" have entirely different histories.
137da7bee1
...
f63a48809e
|
@ -1,29 +1,8 @@
|
||||||
# WARNING!
|
|
||||||
# THIS IS AN AUTOGENERATED FILE!
|
|
||||||
# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN!
|
|
||||||
|
|
||||||
name: LÖVE/Lua Library
|
name: LÖVE/Lua Library
|
||||||
|
on: [push]
|
||||||
on:
|
|
||||||
push:
|
|
||||||
paths-ignore: ['README.md', '.gitignore', 'LICENSE', 'CONVENTIONS.md']
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
Lua-Testing:
|
Test:
|
||||||
runs-on: ubuntu-latest
|
uses: jmaa/workflows/.gitea/workflows/lua-testing.yaml@v6.21
|
||||||
steps:
|
|
||||||
- name: Install Lua
|
|
||||||
run: |
|
|
||||||
apt-get update
|
|
||||||
apt-get install -y luajit
|
|
||||||
- name: Check out repository code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Run testing library
|
|
||||||
run: luajit test/init.lua
|
|
||||||
Static-Analysis:
|
Static-Analysis:
|
||||||
runs-on: ubuntu-latest
|
uses: jmaa/workflows/.gitea/workflows/lua-static-analysis.yaml@v6.21
|
||||||
steps:
|
|
||||||
- name: Check out repository code
|
|
||||||
uses: actions/checkout@v3
|
|
||||||
- name: Luacheck linter
|
|
||||||
uses: https://github.com/lunarmodules/luacheck@v1.1.1
|
|
||||||
|
|
21
.gitignore
vendored
21
.gitignore
vendored
|
@ -1,19 +1,2 @@
|
||||||
# WARNING!
|
# Ignore editor files
|
||||||
# THIS IS AN AUTOGENERATED FILE!
|
.*.swp
|
||||||
# MANUAL CHANGES CAN AND WILL BE OVERWRITTEN!
|
|
||||||
|
|
||||||
# Löve: Exclude build items
|
|
||||||
/bin/
|
|
||||||
/lib/
|
|
||||||
.love-cache/
|
|
||||||
|
|
||||||
# Compiled Lua sources
|
|
||||||
luac.out
|
|
||||||
|
|
||||||
# Misc (Image, MacOS, Backups) files
|
|
||||||
*.psd
|
|
||||||
*~
|
|
||||||
.DS_Store
|
|
||||||
|
|
||||||
# Tools
|
|
||||||
*.tiled-session
|
|
||||||
|
|
|
@ -1,7 +1,3 @@
|
||||||
-- WARNING!
|
|
||||||
-- THIS IS AN AUTOGENERATED FILE!
|
|
||||||
-- MANUAL CHANGES CAN AND WILL BE OVERWRITTEN!
|
|
||||||
|
|
||||||
std = "love+max"
|
std = "love+max"
|
||||||
cache = true
|
cache = true
|
||||||
include_files = {"**.lua", "*.luacheckrc"}
|
include_files = {"**.lua", "*.luacheckrc"}
|
||||||
|
|
21
LICENSE
21
LICENSE
|
@ -1,21 +0,0 @@
|
||||||
MIT License
|
|
||||||
|
|
||||||
Copyright (c) 2017-2025 Jon Michael Aanes
|
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
97
README.md
97
README.md
|
@ -1,85 +1,46 @@
|
||||||
<!-- WARNING! -->
|
|
||||||
<!-- THIS IS AN AUTOGENERATED FILE! -->
|
|
||||||
<!-- MANUAL CHANGES CAN AND WILL BE OVERWRITTEN! -->
|
|
||||||
|
|
||||||
# Assert Gooder
|
# Assert Gooder
|
||||||
|
|
||||||
Supercharged assert replacement.
|
_Lua_ library implementing an alternative version of Lua's `assert` function,
|
||||||
|
giving much better error messages, when asserts fails. It does this by analysing
|
||||||
|
the body of the assert, and figuring out what the failing assert call is
|
||||||
|
attempting to test against.
|
||||||
|
|
||||||
Lua Library that replaces the default [assert](https://www.lua.org/manual/5.4/manual.html#pdf-assert) function with one that can
|
## Example
|
||||||
emit improved error messages. The improved assert function parses the
|
|
||||||
assert condition, inspects the state of the program and emits an improved
|
|
||||||
error message.
|
|
||||||
|
|
||||||
## Example
|
```lua
|
||||||
|
function f (a)
|
||||||
|
assert(type(a) == 'string')
|
||||||
|
end
|
||||||
|
|
||||||
```lua
|
f(42)
|
||||||
function f (a)
|
|
||||||
|
|
||||||
```
|
|
||||||
assert(type(a) == 'string')
|
|
||||||
```
|
```
|
||||||
|
|
||||||
end
|
Without `assert-gooder`, the above code would fail with the error message
|
||||||
|
`assertion failed!`. With `assert-gooder`, it will fail with this error message:
|
||||||
|
`assertion failed! bad argument #1 'a' to 'f' (string expected, but got number: 42)`,
|
||||||
|
|
||||||
f(42)
|
## Motivation
|
||||||
```
|
|
||||||
|
|
||||||
Without [assert-gooder](index.html#), the above code would fail with the error message
|
Assertions are useful to ensure internal consistency, when you're writing code
|
||||||
`assertion failed!`. With [assert-gooder](index.html#), it will fail with this error message:
|
in a hurry, but in Lua (and most other languages), these assert constructs never
|
||||||
`assertion failed! bad argument #1 'a' to 'f' (string expected, but got number: 42)`,
|
produce useful error messages, but rather unhelpful `assert failed!` errors and
|
||||||
|
a stack trace.
|
||||||
|
|
||||||
## Motivation
|
By making it a runtime library, instead of a "compile-time" rewrite, we gain
|
||||||
|
flexibility. It's much easier to import a library, than restructuring then
|
||||||
|
compile pipeline. It also means that we have access to runtime values, allowing
|
||||||
|
even more helpful messages.
|
||||||
|
|
||||||
Assertions are useful to ensure internal consistency, when you're writing code
|
## Setup
|
||||||
in a hurry, but in Lua (and most other languages), these assert constructs never
|
|
||||||
produce useful error messages, but rather unhelpful `assert failed!` errors and
|
|
||||||
a stack trace.
|
|
||||||
|
|
||||||
By making it a runtime library, instead of a "compile-time" rewrite, we gain
|
Download, and use `assert = require "assert-gooder"` to overwrite Lua's default
|
||||||
flexibility. It's much easier to import a library, than restructuring then
|
assert with `assert-gooder`.
|
||||||
compile pipeline. It also means that we have access to runtime values, allowing
|
|
||||||
even more helpful messages.
|
|
||||||
|
|
||||||
## Setup
|
|
||||||
|
|
||||||
Download, and use `assert = require "assert-gooder"` to overwrite Lua's default
|
|
||||||
assert with [assert-gooder](index.html#).
|
|
||||||
|
|
||||||
- Author: Jon Michael Aanes (jonjmaa@gmail.com)
|
|
||||||
|
|
||||||
## Dependencies
|
|
||||||
|
|
||||||
This project requires [PUC Lua 5.1](https://www.tecgraf.puc-rio.br/lua/mirror/versions.html#5.1) or [LuaJIT](https://luajit.org/luajit.html). Newer versions of PUC Lua are not supported.
|
|
||||||
|
|
||||||
This project does not have any library requirements 😎
|
|
||||||
|
|
||||||
## Contributing
|
|
||||||
|
|
||||||
Feel free to submit pull requests. Please follow the [Code Conventions](CONVENTIONS.md) when doing so.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
```
|
```
|
||||||
MIT License
|
"THE BEER-WARE LICENSE" (Revision 42):
|
||||||
|
<jonjmaa@gmail.com> wrote this library. As long as you retain this notice you
|
||||||
Copyright (c) 2017-2025 Jon Michael Aanes
|
can do whatever you want with this stuff. If we meet some day, and you think
|
||||||
|
this stuff is worth it, you can buy me a beer in return.
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
|
||||||
in the Software without restriction, including without limitation the rights
|
|
||||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
copies of the Software, and to permit persons to whom the Software is
|
|
||||||
furnished to do so, subject to the following conditions:
|
|
||||||
|
|
||||||
The above copyright notice and this permission notice shall be included in all
|
|
||||||
copies or substantial portions of the Software.
|
|
||||||
|
|
||||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
||||||
SOFTWARE.
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -1,47 +1,3 @@
|
||||||
--- # Assert Gooder
|
|
||||||
--
|
|
||||||
-- Supercharged assert replacement.
|
|
||||||
--
|
|
||||||
-- Lua Library that replaces the default `assert` function with one that can
|
|
||||||
-- emit improved error messages. The improved assert function parses the
|
|
||||||
-- assert condition, inspects the state of the program and emits an improved
|
|
||||||
-- error message.
|
|
||||||
--
|
|
||||||
--
|
|
||||||
-- ## Example
|
|
||||||
--
|
|
||||||
-- ```lua
|
|
||||||
-- function f (a)
|
|
||||||
-- assert(type(a) == 'string')
|
|
||||||
-- end
|
|
||||||
--
|
|
||||||
-- f(42)
|
|
||||||
-- ```
|
|
||||||
--
|
|
||||||
-- Without `assert-gooder`, the above code would fail with the error message
|
|
||||||
-- `assertion failed!`. With `assert-gooder`, it will fail with this error message:
|
|
||||||
-- `assertion failed! bad argument #1 'a' to 'f' (string expected, but got number: 42)`,
|
|
||||||
--
|
|
||||||
-- ## Motivation
|
|
||||||
--
|
|
||||||
-- Assertions are useful to ensure internal consistency, when you're writing code
|
|
||||||
-- in a hurry, but in Lua (and most other languages), these assert constructs never
|
|
||||||
-- produce useful error messages, but rather unhelpful `assert failed!` errors and
|
|
||||||
-- a stack trace.
|
|
||||||
--
|
|
||||||
-- By making it a runtime library, instead of a "compile-time" rewrite, we gain
|
|
||||||
-- flexibility. It's much easier to import a library, than restructuring then
|
|
||||||
-- compile pipeline. It also means that we have access to runtime values, allowing
|
|
||||||
-- even more helpful messages.
|
|
||||||
--
|
|
||||||
-- ## Setup
|
|
||||||
--
|
|
||||||
-- Download, and use `assert = require "assert-gooder"` to overwrite Lua's default
|
|
||||||
-- assert with `assert-gooder`.
|
|
||||||
--
|
|
||||||
-- @author Jon Michael Aanes (jonjmaa@gmail.com)
|
|
||||||
|
|
||||||
local _VERSION = '0.5.3'
|
|
||||||
|
|
||||||
local lexer = assert(require((... and select('1', ...):match('.+%.') or '')..'lua_lang'), '[assert-gooder]: Could not load vital library: lua_lang')
|
local lexer = assert(require((... and select('1', ...):match('.+%.') or '')..'lua_lang'), '[assert-gooder]: Could not load vital library: lua_lang')
|
||||||
local shunting_yard = assert(require((... and select('1', ...):match('.+%.') or '')..'Parser'), '[assert-gooder]: Could not load vital library: Parser')
|
local shunting_yard = assert(require((... and select('1', ...):match('.+%.') or '')..'Parser'), '[assert-gooder]: Could not load vital library: Parser')
|
||||||
|
@ -808,3 +764,4 @@ return function (condition, format, ...)
|
||||||
-- Throw error message
|
-- Throw error message
|
||||||
error(table.concat(l, ''), 2)
|
error(table.concat(l, ''), 2)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
9
init.lua
9
init.lua
|
@ -1,6 +1,5 @@
|
||||||
-- WARNING!
|
local _VERSION = '0.5.2'
|
||||||
-- THIS IS AN AUTOGENERATED FILE!
|
|
||||||
-- MANUAL CHANGES CAN AND WILL BE OVERWRITTEN!
|
|
||||||
|
|
||||||
-- This file automatically redirects to "assert-gooder.lua"
|
local assert_gooder = assert(require((... and select('1', ...):match('.+')..'.' or '')..'assert-gooder'), '[assert-gooder]: Could not load vital library: assert-gooder')
|
||||||
return require (((...) ~= 'init' and (...) .. '.' or '') .. 'assert-gooder')
|
assert_gooder._VERSION = _VERSION
|
||||||
|
return assert_gooder
|
||||||
|
|
Loading…
Reference in New Issue
Block a user