Difference between revisions of "R.php"

From Organic Design wiki
(newlines fucked up)
({{legacy}} and tags)
 
(12 intermediate revisions by 2 users not shown)
Line 1: Line 1:
<?php
+
{{legacy}}
/*************************************************************************************
+
<PHP>
* r.php
+
<?
* ----------
+
#
* Author: Jon Raphaelson (jonraphaelson@gmail.com)
+
# [[[[http://en.wikipedia.org/wiki/R_(programming_language)|R]]]] compiler for [[[[XmlWiki]]]] Environment
* Copyright: (c) 2005 Jon Raphaelson, Nigel McNie (http://qbnz.com/highlighter)
+
# Licensed under [[[[http://www.gnu.org/copyleft/lesser.html|LGPL]]]]
* Release Version: 1.0.7.4
+
if ($GLOBALS['xwIsAdmin']) {
* CVS Revision Version: $Revision: 1.3 $
+
xwSetProperty($properties,'language','TEXT');
* Date Started: 2004/08/30
+
$server = $_SERVER['HTTP_HOST'];
* Last Modified: $Date: 2005/10/22 07:52:59 $
+
$htdocs = $_SERVER['DOCUMENT_ROOT'];
*
+
if (!ereg( "\\/$", $htdocs)) $htdocs .= '/';
* Scheme language file for GeSHi.
 
*
 
* CHANGES
 
* -------
 
* 2005/09/22 (1.0.0)
 
*  -  First Release
 
*
 
* TODO (updated 2005/09/22)
 
* -------------------------
 
*
 
*************************************************************************************
 
*
 
*    This file is part of GeSHi.
 
*
 
*  GeSHi 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 2 of the License, or
 
*  (at your option) any later version.
 
*
 
*  GeSHi 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 GeSHi; if not, write to the Free Software
 
*  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 
*
 
************************************************************************************/
 
  
$language_data = array (
+
$src = $htdocs.'wiki/source.R';
'LANG_NAME' => 'R',
+
$R = '/usr/local/bin/R --slave';
'COMMENT_SINGLE' => array(1 => '#'),
+
$out = $htdocs.'wiki/a.out';
'COMMENT_MULTI' => array(';|' => '|;'),
 
'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
 
'QUOTEMARKS' => array('"'),
 
'ESCAPE_CHAR' => '\\',
 
'KEYWORDS' => array(
 
1 => array(
 
  'abs', 'acos', 'and', 'angle', 'append', 'appply', 'approximate',
 
  'asin', 'assoc', 'assq', 'assv', 'atan',
 
 
 
  'begin', 'boolean?', 'bound-identifier=?',
 
 
 
  'caar', 'caddr', 'cadr', 'call-with-current-continuation',
 
  'call-with-input-file', 'call-with-output-file', 'call/cc', 'car',
 
  'case', 'catch', 'cdddar', 'cddddr', 'cdr', 'ceiling', 'char->integer',
 
  'char-alphabetic?', 'char-ci<=?', 'char-ci<?', 'char-ci?', 'char-ci>=?',
 
  'char-ci>?', 'char-ci=?', 'char-downcase', 'char-lower-case?',
 
  'char-numeric', 'char-ready', 'char-ready?', 'char-upcase',
 
  'char-upper-case?', 'char-whitespace?', 'char<=?', 'char<?', 'char=?',
 
  'char>=?', 'char>?', 'char?', 'close-input-port', 'close-output-port',
 
  'complex?', 'cond', 'cons', 'construct-identifier', 'cos',
 
  'current-input-port', 'current-output-port',
 
 
 
  'd', 'define', 'define-syntax', 'delay', 'denominator', 'display', 'do',
 
 
 
  'e', 'eof-object?', 'eq?', 'equal?', 'eqv?', 'even?', 'exact->inexact',
 
  'exact?', 'exp', 'expt', 'else',
 
 
 
  'f', 'floor', 'for-each', 'force', 'free-identifer=?',
 
 
 
  'gcd', 'gen-counter', 'gen-loser', 'generate-identifier',
 
 
 
  'identifier->symbol', 'identifier', 'if', 'imag-part', 'inexact->exact',
 
  'inexact?', 'input-port?', 'integer->char', 'integer?', 'integrate-system',
 
 
 
  'l', 'lambda', 'last-pair', 'lcm', 'length', 'let', 'let*', 'letrec',
 
  'list', 'list->string', 'list->vector', 'list-ref', 'list-tail', 'list?',
 
  'load', 'log',
 
 
 
  'magnitude', 'make-polar', 'make-promise', 'make-rectangular',   
 
  'make-string', 'make-vector', 'map', 'map-streams', 'max', 'member',
 
  'memq', 'memv', 'min', 'modulo',
 
 
 
  'negative', 'newline', 'nil', 'not', 'null?', 'number->string', 'number?',
 
  'numerator',
 
 
 
  'odd?', 'open-input-file', 'open-output-file', 'or', 'output-port',
 
 
 
  'pair?', 'peek-char', 'positive?', 'procedure?',
 
 
 
  'quasiquote', 'quote', 'quotient',
 
 
 
  'rational', 'rationalize', 'read', 'read-char', 'real-part', 'real?',
 
  'remainder', 'return', 'reverse',
 
 
 
  's', 'sequence', 'set!', 'set-char!', 'set-cdr!', 'sin', 'sqrt', 'string',
 
  'string->list', 'string->number', 'string->symbol', 'string-append',
 
  'string-ci<=?', 'string-ci<?', 'string-ci=?', 'string-ci>=?',
 
  'string-ci>?', 'string-copy', 'string-fill!', 'string-length',
 
  'string-ref', 'string-set!', 'string<=?', 'string<?', 'string=?',
 
  'string>=?', 'string>?', 'string?', 'substring', 'symbol->string',
 
  'symbol?', 'syntax', 'syntax-rules',
 
 
 
  't', 'tan', 'template', 'transcript-off', 'transcript-on', 'truncate',
 
 
 
  'unquote', 'unquote-splicing', 'unwrap-syntax',
 
 
 
  'vector', 'vector->list', 'vector-fill!', 'vector-length', 'vector-ref',
 
  'vector-set!', 'vector?',
 
 
 
  'with-input-from-file', 'with-output-to-file', 'write', 'write-char',
 
 
 
  'zero?'
 
 
 
)
 
),
 
'SYMBOLS' => array(
 
'(', ')', '{', '}', '[', ']', '!', '%', '^', '&', '/','+','-','*','=','<','>',';','|'
 
),
 
'CASE_SENSITIVE' => array(
 
GESHI_COMMENTS => true,
 
1 => false
 
),
 
'STYLES' => array(
 
'KEYWORDS' => array(
 
1 => 'color: #b1b100;'
 
),
 
'COMMENTS' => array(
 
1 => 'color: #808080; font-style: italic;',
 
'MULTI' => 'color: #808080; font-style: italic;'
 
),
 
'ESCAPE_CHAR' => array(
 
0 => 'color: #000099; font-weight: bold;'
 
),
 
'BRACKETS' => array(
 
0 => 'color: #66cc66;'
 
),
 
'STRINGS' => array(
 
0 => 'color: #ff0000;'
 
),
 
'NUMBERS' => array(
 
0 => 'color: #cc66cc;'
 
),
 
'METHODS' => array(
 
0 => 'color: #202020;'
 
),
 
'SYMBOLS' => array(
 
0 => 'color: #66cc66;'
 
),
 
'REGEXPS' => array(
 
),
 
'SCRIPT' => array(
 
)
 
),
 
'URLS' => array(
 
),
 
'OOLANG' => false,
 
'OBJECT_SPLITTERS' => array(
 
),
 
'REGEXPS' => array(
 
),
 
'STRICT_MODE_APPLIES' => GESHI_NEVER,
 
'SCRIPT_DELIMITERS' => array(
 
),
 
'HIGHLIGHT_STRICT_BLOCK' => array(
 
)
 
);
 
  
 +
// Write the source to tmp file source
 +
if ($handle = fopen($src, 'w+')) {
 +
fwrite($handle, "$article\n");
 +
fclose($handle);
 +
}
 +
 +
// Excecute
 +
$article = "Executing using $R\n\n";
 +
shell_exec("$R < $src > $out");
 +
$article .= file_get_contents($out);
 +
}
 +
else xwMessage('Permission denied: Only admin can compile and execute R articles', 'red');
 
?>
 
?>
 +
</PHP>

Latest revision as of 02:43, 29 May 2007

Legacy.svg Legacy: This article describes a concept that has been superseded in the course of ongoing development on the Organic Design wiki. Please do not develop this any further or base work on this concept, this is only useful for a historic record of work done. You may find a link to the currently used concept or function in this article, if not you can contact the author to find out what has taken the place of this legacy item.

<PHP> <?

  1. [[[[1]]]] compiler for [[XmlWiki]] Environment
  2. Licensed under [[[[2]]]]

if ($GLOBALS['xwIsAdmin']) { xwSetProperty($properties,'language','TEXT'); $server = $_SERVER['HTTP_HOST']; $htdocs = $_SERVER['DOCUMENT_ROOT']; if (!ereg( "\\/$", $htdocs)) $htdocs .= '/';

$src = $htdocs.'wiki/source.R'; $R = '/usr/local/bin/R --slave'; $out = $htdocs.'wiki/a.out';

// Write the source to tmp file source if ($handle = fopen($src, 'w+')) { fwrite($handle, "$article\n"); fclose($handle); }

// Excecute $article = "Executing using $R\n\n"; shell_exec("$R < $src > $out"); $article .= file_get_contents($out); } else xwMessage('Permission denied: Only admin can compile and execute R articles', 'red'); ?> </PHP>