view interps/cfunge/cfunge-src/src/fingerprints/fingerprints.h @ 12518:2d8fe55c6e65 draft default tip

<int-e> learn The password of the month is release incident pilot.
author HackEso <hackeso@esolangs.org>
date Sun, 03 Nov 2024 00:31:02 +0000
parents 859f9b4339e6
children
line wrap: on
line source

/* -*- mode: C; coding: utf-8; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*-
 *
 * cfunge - A standard-conforming Befunge93/98/109 interpreter in C.
 * Copyright (C) 2008-2009 Arvid Norlander <anmaster AT tele2 DOT se>
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at the proxy's option) any later version. Arvid Norlander is a
 * proxy who can decide which future versions of the GNU General Public
 * License can be used.
 *
 * 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 General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */
// WARNING THIS FILE IS AUTO GENERATED DON'T CHANGE
// It was generated by tools/gen_fprint_list.sh
// Rerun the tool to update this list
#ifndef MANAGER_INTERNAL
#  error "This is for use in manager.c only"
#endif

#ifndef FUNGE_HAD_SRC_FINGERPRINTS_FINGERPRINTS_H
#define FUNGE_HAD_SRC_FINGERPRINTS_FINGERPRINTS_H

#include "../global.h"

#include <stdbool.h>
#include <stdint.h>

#include "3DSP/3DSP.h"
#include "BASE/BASE.h"
#include "CPLI/CPLI.h"
#include "DATE/DATE.h"
#include "DIRF/DIRF.h"
#include "FILE/FILE.h"
#include "FING/FING.h"
#include "FIXP/FIXP.h"
#include "FPDP/FPDP.h"
#include "FPSP/FPSP.h"
#include "FRTH/FRTH.h"
#include "HRTI/HRTI.h"
#include "INDV/INDV.h"
#include "JSTR/JSTR.h"
#include "MODU/MODU.h"
#include "NCRS/NCRS.h"
#include "NULL/NULL.h"
#include "ORTH/ORTH.h"
#include "PERL/PERL.h"
#include "REFC/REFC.h"
#include "REXP/REXP.h"
#include "ROMA/ROMA.h"
#include "SCKE/SCKE.h"
#include "SOCK/SOCK.h"
#include "STRN/STRN.h"
#include "SUBR/SUBR.h"
#include "TERM/TERM.h"
#include "TIME/TIME.h"
#include "TOYS/TOYS.h"
#include "TURT/TURT.h"

typedef struct s_ImplementedFingerprintEntry {
	const funge_cell         fprint;   /**< Fingerprint. */
	const char            * uri;      /**< URI, used for Funge-109. */
	const fingerprintLoader loader;   /**< Loader function pointer. */
	const char            * opcodes;  /**< Sorted string with all implemented opcodes. */
	const char            * url;      /**< URL, used to show links for more info about fingerprints. */
	const bool              safe;     /**< If true, this fingerprint is safe in sandbox mode. */
} ImplementedFingerprintEntry;

// Implemented fingerprints
// NOTE: Keep sorted!
// Also note that this table is processed by scripts, so keep the .loader and
// .opcodes entries on the same line! As well as in current format.
static const ImplementedFingerprintEntry ImplementedFingerprints[] = {
#if !defined(CFUN_NO_FLOATS)
	// 3DSP - 3D space manipulation extension
	{ .fprint = 0x33445350, .uri = NULL, .loader = &finger_3DSP_load, .opcodes = "ABCDLMNPRSTUVXYZ",
	  .url = "http://rcfunge98.com/rcsfingers.html#3DSP", .safe = true },
#endif
#if !defined(CFUN_NO_FLOATS)
	// BASE - I/O for numbers in other bases
	{ .fprint = 0x42415345, .uri = NULL, .loader = &finger_BASE_load, .opcodes = "BHINO",
	  .url = "http://rcfunge98.com/rcsfingers.html#BASE", .safe = true },
#endif
#if !defined(CFUN_NO_FLOATS)
	// CPLI - Complex Integer extension
	{ .fprint = 0x43504c49, .uri = NULL, .loader = &finger_CPLI_load, .opcodes = "ADMOSV",
	  .url = "http://rcfunge98.com/rcsfingers.html#CPLI", .safe = true },
#endif
#if !defined(CFUN_NO_FLOATS)
	// DATE - Date Functions
	{ .fprint = 0x44415445, .uri = NULL, .loader = &finger_DATE_load, .opcodes = "ACDJTWY",
	  .url = "http://rcfunge98.com/rcsfingers.html#DATE", .safe = true },
#endif
	// DIRF - Directory functions extension
	{ .fprint = 0x44495246, .uri = NULL, .loader = &finger_DIRF_load, .opcodes = "CMR",
	  .url = "http://rcfunge98.com/rcsfingers.html", .safe = false },
	// FILE - File I/O functions
	{ .fprint = 0x46494c45, .uri = NULL, .loader = &finger_FILE_load, .opcodes = "CDGLOPRSW",
	  .url = "http://rcfunge98.com/rcsfingers.html", .safe = false },
	// FING - Operate on single fingerprint semantics
	{ .fprint = 0x46494e47, .uri = NULL, .loader = &finger_FING_load, .opcodes = "XYZ",
	  .url = "http://rcfunge98.com/rcsfingers.html#FING", .safe = true },
#if !defined(CFUN_NO_FLOATS)
	// FIXP - Some useful math functions
	{ .fprint = 0x46495850, .uri = NULL, .loader = &finger_FIXP_load, .opcodes = "ABCDIJNOPQRSTUVX",
	  .url = "http://rcfunge98.com/rcsfingers.html#FIXP", .safe = true },
#endif
#if !defined(CFUN_NO_FLOATS)
	// FPDP - Double precision floating point
	{ .fprint = 0x46504450, .uri = NULL, .loader = &finger_FPDP_load, .opcodes = "ABCDEFGHIKLMNPQRSTVXY",
	  .url = "http://rcfunge98.com/rcsfingers.html#FPDP", .safe = true },
#endif
#if !defined(CFUN_NO_FLOATS)
	// FPSP - Single precision floating point
	{ .fprint = 0x46505350, .uri = NULL, .loader = &finger_FPSP_load, .opcodes = "ABCDEFGHIKLMNPQRSTVXY",
	  .url = "http://rcfunge98.com/rcsfingers.html#FPSP", .safe = true },
#endif
	// FRTH - Some common forth commands
	{ .fprint = 0x46525448, .uri = NULL, .loader = &finger_FRTH_load, .opcodes = "DLOPR",
	  .url = "http://rcfunge98.com/rcsfingers.html", .safe = true },
	// HRTI - High-Resolution Timer Interface
	{ .fprint = 0x48525449, .uri = NULL, .loader = &finger_HRTI_load, .opcodes = "EGMST",
	  .url = "http://catseye.tc/projects/funge98/library/HRTI.html", .safe = true },
	// INDV - Pointer functions
	{ .fprint = 0x494e4456, .uri = NULL, .loader = &finger_INDV_load, .opcodes = "GPVW",
	  .url = "http://rcfunge98.com/rcsfingers.html", .safe = true },
	// JSTR - Read and write strings in Funge-Space
	{ .fprint = 0x4a535452, .uri = NULL, .loader = &finger_JSTR_load, .opcodes = "GP",
	  .url = "http://www.imaginaryrobots.net/projects/funge/myexts.txt", .safe = true },
	// MODU - Modulo Arithmetic
	{ .fprint = 0x4d4f4455, .uri = NULL, .loader = &finger_MODU_load, .opcodes = "MRU",
	  .url = "http://catseye.tc/projects/funge98/library/MODU.html", .safe = true },
#if defined(HAVE_NCURSES)
	// NCRS - ncurses extension
	{ .fprint = 0x4e435253, .uri = NULL, .loader = &finger_NCRS_load, .opcodes = "BCEGIKMNPRSU",
	  .url = "http://www.imaginaryrobots.net/projects/funge/myexts.txt", .safe = true },
#endif
	// NULL - Null Fingerprint
	{ .fprint = 0x4e554c4c, .uri = NULL, .loader = &finger_NULL_load, .opcodes = "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
	  .url = "http://catseye.tc/projects/funge98/library/NULL.html", .safe = true },
	// ORTH - Orthogonal Easement Library
	{ .fprint = 0x4f525448, .uri = NULL, .loader = &finger_ORTH_load, .opcodes = "AEGOPSVWXYZ",
	  .url = "http://catseye.tc/projects/funge98/library/ORTH.html", .safe = true },
	// PERL - Generic Interface to the Perl Language
	{ .fprint = 0x5045524c, .uri = NULL, .loader = &finger_PERL_load, .opcodes = "EIS",
	  .url = "http://catseye.tc/projects/funge98/library/PERL.html", .safe = false },
	// REFC - Referenced Cells Extension
	{ .fprint = 0x52454643, .uri = NULL, .loader = &finger_REFC_load, .opcodes = "DR",
	  .url = "http://catseye.tc/projects/funge98/library/REFC.html", .safe = true },
	// REXP - Regular Expression Matching
	{ .fprint = 0x52455850, .uri = NULL, .loader = &finger_REXP_load, .opcodes = "CEF",
	  .url = "http://rcfunge98.com/rcsfingers.html#REXP", .safe = true },
	// ROMA - Roman Numerals
	{ .fprint = 0x524f4d41, .uri = NULL, .loader = &finger_ROMA_load, .opcodes = "CDILMVX",
	  .url = "http://catseye.tc/projects/funge98/library/ROMA.html", .safe = true },
	// SCKE - TCP/IP async socket and dns resolving extension
	{ .fprint = 0x53434b45, .uri = NULL, .loader = &finger_SCKE_load, .opcodes = "HP",
	  .url = "http://glfunge98.sourceforge.net/", .safe = false },
	// SOCK - TCP/IP socket extension
	{ .fprint = 0x534f434b, .uri = NULL, .loader = &finger_SOCK_load, .opcodes = "ABCIKLORSW",
	  .url = "http://rcfunge98.com/rcsfingers.html#SOCK", .safe = false },
	// STRN - String functions
	{ .fprint = 0x5354524e, .uri = NULL, .loader = &finger_STRN_load, .opcodes = "ACDFGILMNPRSV",
	  .url = "http://rcfunge98.com/rcsfingers.html", .safe = true },
	// SUBR - Subroutine extension
	{ .fprint = 0x53554252, .uri = NULL, .loader = &finger_SUBR_load, .opcodes = "ACJOR",
	  .url = "http://rcfunge98.com/rcsfingers.html", .safe = true },
#if defined(HAVE_NCURSES)
	// TERM - Terminal control functions
	{ .fprint = 0x5445524d, .uri = NULL, .loader = &finger_TERM_load, .opcodes = "CDGHLSU",
	  .url = "http://rcfunge98.com/rcsfingers.html", .safe = true },
#endif
	// TIME - Time and Date functions
	{ .fprint = 0x54494d45, .uri = NULL, .loader = &finger_TIME_load, .opcodes = "DFGHLMOSWY",
	  .url = "http://rcfunge98.com/rcsfingers.html", .safe = true },
	// TOYS - Funge-98 Standard Toys
	{ .fprint = 0x544f5953, .uri = NULL, .loader = &finger_TOYS_load, .opcodes = "ABCDEFGHIJKLMNOPQRSTUVWXYZ",
	  .url = "http://catseye.tc/projects/funge98/library/TOYS.html", .safe = true },
#if !defined(CFUN_NO_FLOATS) && !defined(CFUN_NO_TURT)
	// TURT - Simple Turtle Graphics Library
	{ .fprint = 0x54555254, .uri = NULL, .loader = &finger_TURT_load, .opcodes = "ABCDEFHILNPQRTU",
	  .url = "http://catseye.tc/projects/funge98/library/TURT.html", .safe = true },
#endif
};

#endif