Skip to content

Instantly share code, notes, and snippets.

View rgchris's full-sized avatar

Christopher Ross-Gill rgchris

View GitHub Profile
@rgchris
rgchris / dsl-example.r2
Created January 29, 2023 19:01
DSL Example
Rebol [
Title: "DSL Example"
Author: "Christopher Ross-Gill"
Date: 29-Jan-2023
Home: https://gist.github.com/rgchris/2a227b6fa3fc9d2ae7fe729ccb09f016
]
reduce-only: func [
"Evaluates a block of expressions excepting SET-WORD! values"
@rgchris
rgchris / capture-keys.reb
Created February 2, 2023 03:44
Intercepting Key events in Rebol 2
#!/usr/local/bin/rebview -iv
Rebol [
Title: "Intercepting Key events"
Author: "Christopher Ross-Gill"
Date: 23-Feb-2017
Notes: [
https://rebolforum.com/index.cgi?f=printtopic&topicnumber=579&archiveflag=archive
]
@rgchris
rgchris / state-machine.reb
Last active December 7, 2022 17:51
State Machine for Ren-C (R3C)
Rebol [
Title: "State Machine Dialect"
Date: 3-Feb-2021
Author: "Gabriele Santilli"
File: %state-machine.reb
Type: module
Name: rgchris.state-machine
Version: 1.8.1
Exports: [state-machine]
@rgchris
rgchris / textize-rebol-content.rebol
Last active December 7, 2022 17:51
An exercise in scraping Blogger HTML content with Rebol.
REBOL [
Title: "Scraper"
Date: 1-Dec-2013
]
textize: func [html [string!] /local rule last-list value new-table in-pre][
html: load-html/dom html
last-node: html
last-list: ""
in-pre: false
@rgchris
rgchris / my-num-type.js
Last active July 20, 2022 13:22
Custom Types
// The journey to creating a new object type begins with ... a function
// * It doesn't have to be a named function (that is `function name()`
// as opposed to `name = function ()`) but there are advantages to this
// that are beyond the scope of this comment.
// * As a value, `myNumType` here serves double-duty--as a function in
// the sense of a passable first-class value, as, say, in Rebol
// * --and as a constructor for objects that use `myNumType` as a
// prototype
// * The value of `this` depends on the context in which the function
// `myNumType` is called. If you call it by itself, `this` refers to the
@rgchris
rgchris / pdf.r
Last active July 10, 2022 13:58
PDF Modeller/Constructor for Rebol 2
Rebol [
Title: "PDF Experiment"
Author: "Christopher Ross-Gill"
Date: 18-Jan-2022
Home: https://gist.github.com/rgchris
File: %pdf.r
Version: 0.1.0
Rights: http://opensource.org/licenses/Apache-2.0
Purpose: {
Build a PDF object model for atomic construction of PDF documents
@rgchris
rgchris / unzip.r
Last active January 4, 2022 19:10
Unzip for Rebol 2
Rebol [
Title: "Unzip for Rebol 2"
Date: 3-Jan-2022
Author: "Christopher Ross-Gill"
]
do %tiny-inflate.r
; obtain from
; https://gist.github.com/rgchris/d3fb5f6a6ea6d27ea3817c0e697ac25d
@rgchris
rgchris / tiny-inflate.r
Last active January 4, 2022 01:25
Tiny Inflate for Rebol 2
Rebol [
Title: "Tiny Inflate"
Date: 10-Dec-2021
Author: "Christopher Ross-Gill"
Version: 1.0.3
Type: 'module
Name: 'rgchris.inflate
Exports: [inflate]
History: [
10-Dec-2021 1.0.3 https://github.com/foliojs/tiny-inflate
@rgchris
rgchris / minimal-odt.reb
Created December 31, 2021 03:55
Build a minimal ODT (ODF Text) in R3C
#!/usr/local/bin/ren-r3c
Rebol [
Title: "Package a Minimal OpenText Document"
Date: 30-Dec-2021
Author: "Christopher Ross-Gill"
Rights: http://opensource.org/licenses/Apache-2.0
Home: https://gist.github.com/rgchris/e325347625b1688a1a1fe686610c68ba
]
@rgchris
rgchris / minimal-epub.reb
Last active December 31, 2021 01:34
Build a minimal EPUB in R3C
#!/usr/local/bin/ren-r3c
Rebol [
Title: "Package a Minimal eBook"
Date: 5-Feb-2019
Author: "Christopher Ross-Gill"
Rights: http://opensource.org/licenses/Apache-2.0
Home: https://gist.github.com/rgchris/14e4ce92b1830f8295a1824cbe1628a7
Notes: [
https://ebooks.stackexchange.com/a/1184