diff options
Diffstat (limited to 'printtokens.lua')
-rw-r--r-- | printtokens.lua | 64 |
1 files changed, 0 insertions, 64 deletions
diff --git a/printtokens.lua b/printtokens.lua deleted file mode 100644 index 2cc6125..0000000 --- a/printtokens.lua +++ /dev/null @@ -1,64 +0,0 @@ ---[[ - This file is part of Cratera Compiler - Copyright (C) 2019 Soni L. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU Affero General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Affero General Public License for more details. - - You should have received a copy of the GNU Affero General Public License - along with this program. If not, see <https://www.gnu.org/licenses/>. ---]] - -local parser = require "cratera.parser" - --- CLI argument rules -local defs = parser.selfify({}) -defs['-'] = function(state, token) - if state.filename then - error("Must specify only one filename") - end - state.filename = true - state.file = io.stdin - return "self" -end -defs[parser.FALLBACK] = function(state, token) - if state.filename then - error("Must specify only one filename") - end - state.filename = token - state.file, state.err = io.open(state.filename, "r") - return "self" -end -defs[parser.EOZ] = function(state, token) - if not state.file then - error((state.filename and (state.err or "") or "No file specified") ) - end - return {} -end -defs[-1] = function(state, token, rule) - if token ~= parser.EOZ and token:sub(1,1) == "-" and not rule then - error("Unknown option: " .. token) - end -end -defs['--'] = parser.selfify({[parser.FALLBACK] = defs[parser.FALLBACK], [parser.EOZ] = defs[parser.EOZ]}) - -local state = parser.parse(defs, arg) -local luatokens = require "cratera.luatokens" -local file = state.file -local tokens = luatokens.defs -local state, err, etoken, estate = parser.parse(tokens, function() return file:read(8192) end) -if state then - for i,v in ipairs(state) do - v = luatokens.reverse_keywords[v] or luatokens.reverse_tokens[v] or v - print(i, v) -- TODO formatting - end -else - print("Parse error") -end |