mirror of
https://github.com/pierre42100/comunic
synced 2025-07-12 13:02:59 +00:00
First commit
This commit is contained in:
83
3rdparty/luminous/languages/lolcode.php
vendored
Executable file
83
3rdparty/luminous/languages/lolcode.php
vendored
Executable file
@ -0,0 +1,83 @@
|
||||
<?PHP
|
||||
|
||||
/*
|
||||
* HAI
|
||||
* I HAS PERSONAL INTEREST IN LOLCODE THATS WHY ITS HERE KTHX.
|
||||
* BTW PHP IS MOSTLY CASE INSENSITIVE
|
||||
*/
|
||||
CLASS LUMINOUSLOLCODESCANNER EXTENDS LUMINOUSSIMPLESCANNER {
|
||||
|
||||
FUNCTION FUNCDEF_OVERRIDE($MATCHES) {
|
||||
$this->RECORD($MATCHES[0], 'KEYWORD');
|
||||
$this->POS_SHIFT(STRLEN($MATCHES[0]));
|
||||
$this->skip_whitespace();
|
||||
IF ($this->SCAN('/[a-z_]\w*/i')) {
|
||||
$this->RECORD($this->MATCH(), 'USER_FUNCTION');
|
||||
$this->user_defs[$this->MATCH()] = 'FUNCTION';
|
||||
}
|
||||
}
|
||||
FUNCTION STR_FILTER($TOKEN) {
|
||||
$TOKEN = LUMINOUSUTILS::ESCAPE_TOKEN($TOKEN);
|
||||
$STR = &$TOKEN[1];
|
||||
$STR = PREG_REPLACE('/:
|
||||
(?:
|
||||
(?:[\)o":]|>)
|
||||
|\([a-fA-F0-9]*\)
|
||||
|\[[A-Z ]*\]
|
||||
|\{\w*\}
|
||||
)/x', '<VARIABLE>$0</VARIABLE>', $STR);
|
||||
|
||||
RETURN $TOKEN;
|
||||
}
|
||||
|
||||
FUNCTION INIT() {
|
||||
$this->ADD_FILTER('STRING', array($this, 'STR_FILTER'));
|
||||
$this->REMOVE_FILTER('constant');
|
||||
|
||||
$this->ADD_PATTERN('COMMENT', '/(?s:OBTW.*?TLDR)|BTW.*/');
|
||||
$this->ADD_PATTERN('STRING', '/" (?> [^":]+ | :.)* "/x');
|
||||
$this->ADD_PATTERN('STRING', "/' (?> [^':]+ | :.)* '/x");
|
||||
$this->ADD_PATTERN('OPERATOR',
|
||||
'/
|
||||
\\b
|
||||
(?:
|
||||
(?:ALL|ANY|BIGGR|BOTH|DIFF|EITHER|PRODUKT|QUOSHUNT
|
||||
|MOD|SMALLR|SUM|WON)\s+OF\\b
|
||||
|
|
||||
BOTH\s+SAEM\\b
|
||||
|
|
||||
(?:BIGGR|SMALLR)\s+THAN\\b
|
||||
|
|
||||
(?:AN|NOT)\\b
|
||||
)
|
||||
/x');
|
||||
$this->ADD_PATTERN('FUNC_DEF', '/how\s+duz\s+i\\b/i');
|
||||
$this->overrides['FUNC_DEF'] = array($this, 'FUNCDEF_OVERRIDE');
|
||||
$this->ADD_PATTERN('NUMERIC', LUMINOUSTOKENPRESETS::$NUM_REAL);
|
||||
$this->ADD_PATTERN('IDENT', '/[a-zA-Z_]\w*\\??/');
|
||||
|
||||
$this->ADD_IDENTIFIER_MAPPING('VALUE', array('FAIL', 'WIN'));
|
||||
$this->ADD_IDENTIFIER_MAPPING('TYPE', array('NOOB', 'NUMBAR', 'NUMBR',
|
||||
'TROOF', 'YARN'));
|
||||
$this->ADD_IDENTIFIER_MAPPING('KEYWORD', array('A', 'CAN',
|
||||
'DUZ', 'HAI',
|
||||
'KTHX', 'KTHXBYE', 'HAS', 'HOW', 'I', 'IM', 'IN', 'IS', 'IZ',
|
||||
'ITS', 'ITZ',
|
||||
'IF', 'FOUND', 'GTFO', 'MAEK', 'MEBBE', 'NO', 'NOW', 'O', 'OIC',
|
||||
'OMG', 'OMGWTF', 'RLY', 'RLY?', 'R', 'SAY', 'SO', 'TIL', 'YA', 'YR', 'U',
|
||||
'WAI', 'WILE', 'WTF?'));
|
||||
$this->ADD_IDENTIFIER_MAPPING('FUNCTION', array('GIMMEH', 'VISIBLE',
|
||||
'UPPIN', 'NERFIN'));
|
||||
}
|
||||
|
||||
public static function guess_language($src, $info) {
|
||||
$p = 0.0;
|
||||
foreach(array('OMGWTF', 'I CAN HAS', 'GTFO', 'HOW DUZ I', 'IM IN YR',
|
||||
'IM IN UR', 'I HAS A', 'I HAZ A', ' UPPIN', 'NERFIN', 'TROOF', 'NUMBAR',
|
||||
'NUMBR') as $str)
|
||||
{
|
||||
if (strpos($src, " $str ") !== false) $p += 0.1;
|
||||
}
|
||||
return $p;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user