Fixes semicolons in JS source code
Fix all semicolon errors in JavaScript and TypeScript
Insert semicolons into JavaScript source.
minimal C language lexer & parser & virtual executer from scratch
Kowalski Code Agent: A Rust-based agent for interacting with Ollama models
A parser tool to generate recursive descent top down parser.
freedom from semicolons! (macros 'm')
Famous Lemon Parser Generator, designed as library that builds your parser transparently during cargo build. Use attributes to describe parser rules.
Compiled programming language with frogs!
Nestify offers a macro to simplify and beautify nested struct definitions in Rust, enabling cleaner, more readable code structures with less verbosity. It's especially valuable for handling API responses.
A parser for a configuration string format handling service names and parameters
A library for parsing HTTP Cookie header strings into structured cookie objects.
A versatile linting tool with CLI, MCP, and library interfaces
Stack Pogramming Language: A simple, concise scripting language.
Frg grammar for tree-sitter
CoffeeScript is a little language that compiles into JavaScript. Underneath all of those embarrassing braces and semicolons, JavaScript has always had a gorgeous object model at its heart. CoffeeScript is an attempt to expose the good parts of JavaScript in a simple way.
Read csv files in any character encodings and column separators: semicolon, comma, tab
Contracts.coffee is a dialect of CoffeeScript with built-in support for contracts. CoffeeScript is JavaScript without all the embarrassing braces and semicolons.
Although made popular by Windows, INI files can be used on any system thanks to their flexibility. They allow a program to store configuration data, which can then be easily parsed and changed. Two notable systems that use the INI format are Samba and Trac. More information about INI files can be found on the [Wikipedia Page](http://en.wikipedia.org/wiki/INI_file). ### Properties The basic element contained in an INI file is the property. Every property has a name and a value, delimited by an equals sign *=*. The name appears to the left of the equals sign and the value to the right. name=value ### Sections Section declarations start with *[* and end with *]* as in `[section1]` and `[section2]` shown in the example below. The section declaration marks the beginning of a section. All properties after the section declaration will be associated with that section. ### Comments All lines beginning with a semicolon *;* or a number sign *#* are considered to be comments. Comment lines are ignored when parsing INI files. ### Example File Format A typical INI file might look like this: [section1] ; some comment on section1 var1 = foo var2 = doodle var3 = multiline values \ are also possible [section2] # another comment var1 = baz var2 = shoodle
Although made popular by Windows, INI files can be used on any system thanks to their flexibility. They allow a program to store configuration data, which can then be easily parsed and changed. Two notable systems that use the INI format are Samba and Trac. More information about INI files can be found on the [Wikipedia Page](http://en.wikipedia.org/wiki/INI_file). ### Properties The basic element contained in an INI file is the property. Every property has a name and a value, delimited by an equals sign *=*. The name appears to the left of the equals sign and the value to the right. name=value ### Sections Section declarations start with *[* and end with *]* as in `[section1]` and `[section2]` shown in the example below. The section declaration marks the beginning of a section. All properties after the section declaration will be associated with that section. ### Comments All lines beginning with a semicolon *;* or a number sign *#* are considered to be comments. Comment lines are ignored when parsing INI files. ### Example File Format A typical INI file might look like this: [section1] ; some comment on section1 var1 = foo var2 = doodle var3 = multiline values \ are also possible [section2] # another comment var1 = baz var2 = shoodle
Lookout-Rack Lookout-Rack provides easy interaction with Rack¹ from Lookout². It provides you with a session connected to your Rack application through which you can make requests, check responses, follow redirects and set, inspect, and clear cookies. ¹ See http://rack.rubyforge.org/ ² See http://disu.se/software/lookout/ § Installation Install Lookout-Rack with % gem install lookout-rack § Usage Include the following code in your ‹Rakefile› (provided that you’re using Lookout-Rake¹): require 'lookout-rack-3.0' Lookout::Rake::Tasks::Test.new do |t| t.requires << 'lookout-rack-3.0' end ¹ See http://disu.se/software/lookout-rake/ Then set up a ‹fixtures/config.ru› file that Lookout-Rack will use for loading your Rack app. load 'path/to/app.rb' use Rack::Lint run Path::To::App This file, if it exists, will be loaded during the first call to #session. If it doesn’t exist, ‹config.ru› will be used instead. You can now test your app: Expectations do expect 200 do session.get('/').response.status end end The #session method returns an object that lets you #get, #post, #put, and #delete resources from the Rack app. You call these method with a URI¹ that you want to access/modify together with any parameters that you want to pass and any Rack environment that you want to use (which isn’t very common). For example, let’s get ‹/pizzas/› with olives on them: expect 200 do session.get('/pizzas/', 'olives' => '1').response.status end ¹ Abbreviation for Uniform Resource Identifier The #response method on #session returns a mock Rack response object that can be queried for results. Similarly, there’s a #request method that lets you inspect the request that was made. Lookout-Rack also deals with cookies. Assuming that ‹/cookies/set/› will set any cookies that we pass it and that ‹/cookies/show/› will simply do nothing relevant, the following expectation will pass: expect 'value' => '1' do session. get('/cookies/set/', 'value' => '1'). get('/cookies/show/').request.cookies end Sometimes you may want to set cookies yourself before making a request. You then use the #cookie method, which takes a String of ‹KEY=VALUE› pairs separated by newlines, commas, and/or semicolons and sets those cookies in the session: expect 'value' => '1', 'other' => '2' do session. cookie("value=1\n\nother=2"). get('/cookies/show/').request.cookies end You may also want to clear all cookies in your session using #clear: expect({}) do session. get('/cookies/set', 'value' => '1'). clear. get('/cookies/show').request.cookies end Finally, to test redirects, call the #redirect! method on the session object, assuming that ‹/redirected/› redirects to another location: expect result.redirect? do session.get('/redirected/').response end expect result.not.redirect? do session.get('/redirected/').redirect!.response end That’s basically all there’s to it. You can check the {API documentation}¹ for more information. ¹ See http://disu.se/software/lookout-rack/api/Lookout/Rack/ § Financing Currently, most of my time is spent at my day job and in my rather busy private life. Please motivate me to spend time on this piece of software by donating some of your money to this project. Yeah, I realize that requesting money to develop software is a bit, well, capitalistic of me. But please realize that I live in a capitalistic society and I need money to have other people give me the things that I need to continue living under the rules of said society. So, if you feel that this piece of software has helped you out enough to warrant a reward, please PayPal a donation to now@disu.se¹. Thanks! Your support won’t go unnoticed! ¹ Send a donation: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=now@disu.se&item_name=Lookout-Rack § Reporting Bugs Please report any bugs that you encounter to the {issue tracker}¹. ¹ See https://github.com/now/lookout-rack/issues § Authors Nikolai Weibull wrote the code, the tests, the documentation, and this README. § Licensing Lookout-Rack is free software: you may redistribute it and/or modify it under the terms of the {GNU Lesser General Public License, version 3}¹ or later², as published by the {Free Software Foundation}³. ¹ See http://disu.se/licenses/lgpl-3.0/ ² See http://gnu.org/licenses/ ³ See http://fsf.org/