I'm making a ROBLOX implementation of CSS (to be used with GUIs) with a ModuleScript, and I'm getting an error. (These scripts are long but you shouldn't need to read the whole thing)
ModuleScript:
local module = {} local function splitStylesheet(sheet) local split = {} local char = 1 local line = 1 for i = 1, string.len(sheet) do if string.sub(sheet, char, char) ~= "}" then table.insert(split, line, split[line]..string.sub(sheet, char, char)) char = char + 1 else line = line + 1 char = char + 1 end end return split end local function findSubstyles(dump) print("Splitting dump...") local open = 0 local close = 0 for brackets in string.gmatch(dump, "{") do open = open + 1 end for brackets in string.gmatch(dump, "}") do close = close + 1 end if open == close then local substyles = open return substyles elseif open > close then return "open" elseif close > open then return "close" else return "fatal" end end module.readStylesheet = function(name, dump) print("Reading stylesheet \""..name.."\"") if not name or not dump then error("Missing arg (function readStylesheet)") script:Destroy() end -- find number of substyles local substyles = findSubstyles(dump) if substyles == "open" then error("Assembler detected stray open bracket. Please check stylesheet") script:Destroy() elseif substyles == "close" then error("Assembler detected stray close bracket. Please check stylesheet") script:Destroy() elseif substyles == "fatal" then error("Assembler encountered fatal error. Please check stylesheet") script:Destroy() else print(substyles.." substyles found") end -- split substyles into a table local styletable = splitStylesheet(dump) print(styletable) end return module
Script I'm using the Module with (it's in a ScreenGui):
local css = require(game.Workspace.CSS) css.readStylesheet("stylesheet1", "constructor1{background:none;}constructor2{background:none;}")
Output:
20:53:53.339 - Workspace.CSS:10: attempt to concatenate field '?' (a nil value) 20:53:53.359 - Stack Begin 20:53:53.359 - Script 'Workspace.CSS', Line 10 - upvalue splitStylesheet 20:53:53.360 - Script 'Workspace.CSS', Line 73 - field readStylesheet 20:53:53.360 - Script 'Players.Player.PlayerGui.PlayerGui.Main', Line 3 20:53:53.361 - Stack End
Anyone know what the problem is? Thanks to anyone who helps :)