ThirdParty/Pygments/pygments/lexers/c_like.py

changeset 4697
c2e9bf425554
parent 4172
4f20dba37ab6
child 5713
6762afd9f963
diff -r bf4d19a7cade -r c2e9bf425554 ThirdParty/Pygments/pygments/lexers/c_like.py
--- a/ThirdParty/Pygments/pygments/lexers/c_like.py	Sun Jan 24 16:15:58 2016 +0100
+++ b/ThirdParty/Pygments/pygments/lexers/c_like.py	Sun Jan 24 19:28:37 2016 +0100
@@ -5,7 +5,7 @@
 
     Lexers for other C-like languages.
 
-    :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
+    :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS.
     :license: BSD, see LICENSE for details.
 """
 
@@ -20,7 +20,7 @@
 from pygments.lexers import _mql_builtins
 
 __all__ = ['PikeLexer', 'NesCLexer', 'ClayLexer', 'ECLexer', 'ValaLexer',
-           'CudaLexer', 'SwigLexer', 'MqlLexer']
+           'CudaLexer', 'SwigLexer', 'MqlLexer', 'ArduinoLexer']
 
 
 class PikeLexer(CppLexer):
@@ -411,3 +411,131 @@
             inherit,
         ],
     }
+
+class ArduinoLexer(CppLexer):
+    """
+    For `Arduino(tm) <https://arduino.cc/>`_ source.
+
+    This is an extension of the CppLexer, as the Arduino® Language is a superset
+    of C++
+
+    .. versionadded:: 2.1
+    """
+
+    name = 'Arduino'
+    aliases = ['arduino']
+    filenames = ['*.ino']
+    mimetypes = ['text/x-arduino']
+
+    # Language constants
+    constants = set(('DIGITAL_MESSAGE', 'FIRMATA_STRING', 'ANALOG_MESSAGE',
+                    'REPORT_DIGITAL', 'REPORT_ANALOG', 'INPUT_PULLUP',
+                    'SET_PIN_MODE', 'INTERNAL2V56', 'SYSTEM_RESET', 'LED_BUILTIN',
+                    'INTERNAL1V1', 'SYSEX_START', 'INTERNAL', 'EXTERNAL',
+                    'DEFAULT', 'OUTPUT', 'INPUT', 'HIGH', 'LOW'))
+
+    # Language sketch main structure functions
+    structure = set(('setup', 'loop'))
+
+    # Language variable types
+    storage = set(('boolean', 'const', 'byte', 'word', 'string', 'String', 'array'))
+
+    # Language shipped functions and class ( )
+    functions = set(('KeyboardController', 'MouseController', 'SoftwareSerial',
+            'EthernetServer', 'EthernetClient', 'LiquidCrystal',
+            'RobotControl', 'GSMVoiceCall', 'EthernetUDP', 'EsploraTFT',
+            'HttpClient', 'RobotMotor', 'WiFiClient', 'GSMScanner',
+            'FileSystem', 'Scheduler', 'GSMServer', 'YunClient', 'YunServer',
+            'IPAddress', 'GSMClient', 'GSMModem', 'Keyboard', 'Ethernet',
+            'Console', 'GSMBand', 'Esplora', 'Stepper', 'Process',
+            'WiFiUDP', 'GSM_SMS', 'Mailbox', 'USBHost', 'Firmata', 'PImage',
+            'Client', 'Server', 'GSMPIN', 'FileIO', 'Bridge', 'Serial',
+            'EEPROM', 'Stream', 'Mouse', 'Audio', 'Servo', 'File', 'Task',
+            'GPRS', 'WiFi', 'Wire', 'TFT', 'GSM', 'SPI', 'SD',
+            'runShellCommandAsynchronously', 'analogWriteResolution',
+            'retrieveCallingNumber', 'printFirmwareVersion',
+            'analogReadResolution', 'sendDigitalPortPair',
+            'noListenOnLocalhost', 'readJoystickButton', 'setFirmwareVersion',
+            'readJoystickSwitch', 'scrollDisplayRight', 'getVoiceCallStatus',
+            'scrollDisplayLeft', 'writeMicroseconds', 'delayMicroseconds',
+            'beginTransmission', 'getSignalStrength', 'runAsynchronously',
+            'getAsynchronously', 'listenOnLocalhost', 'getCurrentCarrier',
+            'readAccelerometer', 'messageAvailable', 'sendDigitalPorts',
+            'lineFollowConfig', 'countryNameWrite', 'runShellCommand',
+            'readStringUntil', 'rewindDirectory', 'readTemperature',
+            'setClockDivider', 'readLightSensor', 'endTransmission',
+            'analogReference', 'detachInterrupt', 'countryNameRead',
+            'attachInterrupt', 'encryptionType', 'readBytesUntil',
+            'robotNameWrite', 'readMicrophone', 'robotNameRead', 'cityNameWrite',
+            'userNameWrite', 'readJoystickY', 'readJoystickX', 'mouseReleased',
+            'openNextFile', 'scanNetworks', 'noInterrupts', 'digitalWrite',
+            'beginSpeaker', 'mousePressed', 'isActionDone', 'mouseDragged',
+            'displayLogos', 'noAutoscroll', 'addParameter', 'remoteNumber',
+            'getModifiers', 'keyboardRead', 'userNameRead', 'waitContinue',
+            'processInput', 'parseCommand', 'printVersion', 'readNetworks',
+            'writeMessage', 'blinkVersion', 'cityNameRead', 'readMessage',
+            'setDataMode', 'parsePacket', 'isListening', 'setBitOrder',
+            'beginPacket', 'isDirectory', 'motorsWrite', 'drawCompass',
+            'digitalRead', 'clearScreen', 'serialEvent', 'rightToLeft',
+            'setTextSize', 'leftToRight', 'requestFrom', 'keyReleased',
+            'compassRead', 'analogWrite', 'interrupts', 'WiFiServer',
+            'disconnect', 'playMelody', 'parseFloat', 'autoscroll',
+            'getPINUsed', 'setPINUsed', 'setTimeout', 'sendAnalog',
+            'readSlider', 'analogRead', 'beginWrite', 'createChar',
+            'motorsStop', 'keyPressed', 'tempoWrite', 'readButton',
+            'subnetMask', 'debugPrint', 'macAddress', 'writeGreen',
+            'randomSeed', 'attachGPRS', 'readString', 'sendString',
+            'remotePort', 'releaseAll', 'mouseMoved', 'background',
+            'getXChange', 'getYChange', 'answerCall', 'getResult',
+            'voiceCall', 'endPacket', 'constrain', 'getSocket', 'writeJSON',
+            'getButton', 'available', 'connected', 'findUntil', 'readBytes',
+            'exitValue', 'readGreen', 'writeBlue', 'startLoop', 'IPAddress',
+            'isPressed', 'sendSysex', 'pauseMode', 'gatewayIP', 'setCursor',
+            'getOemKey', 'tuneWrite', 'noDisplay', 'loadImage', 'switchPIN',
+            'onRequest', 'onReceive', 'changePIN', 'playFile', 'noBuffer',
+            'parseInt', 'overflow', 'checkPIN', 'knobRead', 'beginTFT',
+            'bitClear', 'updateIR', 'bitWrite', 'position', 'writeRGB',
+            'highByte', 'writeRed', 'setSpeed', 'readBlue', 'noStroke',
+            'remoteIP', 'transfer', 'shutdown', 'hangCall', 'beginSMS',
+            'endWrite', 'attached', 'maintain', 'noCursor', 'checkReg',
+            'checkPUK', 'shiftOut', 'isValid', 'shiftIn', 'pulseIn',
+            'connect', 'println', 'localIP', 'pinMode', 'getIMEI',
+            'display', 'noBlink', 'process', 'getBand', 'running', 'beginSD',
+            'drawBMP', 'lowByte', 'setBand', 'release', 'bitRead', 'prepare',
+            'pointTo', 'readRed', 'setMode', 'noFill', 'remove', 'listen',
+            'stroke', 'detach', 'attach', 'noTone', 'exists', 'buffer',
+            'height', 'bitSet', 'circle', 'config', 'cursor', 'random',
+            'IRread', 'sizeof', 'setDNS', 'endSMS', 'getKey', 'micros',
+            'millis', 'begin', 'print', 'write', 'ready', 'flush', 'width',
+            'isPIN', 'blink', 'clear', 'press', 'mkdir', 'rmdir', 'close',
+            'point', 'yield', 'image', 'float', 'BSSID', 'click', 'delay',
+            'read', 'text', 'move', 'peek', 'beep', 'rect', 'line', 'open',
+            'seek', 'fill', 'size', 'turn', 'stop', 'home', 'find', 'char',
+            'byte', 'step', 'word', 'long', 'tone', 'sqrt', 'RSSI', 'SSID',
+            'end', 'bit', 'tan', 'cos', 'sin', 'pow', 'map', 'abs', 'max',
+            'min', 'int', 'get', 'run', 'put'))
+   
+
+    def get_tokens_unprocessed(self, text):
+        for index, token, value in CppLexer.get_tokens_unprocessed(self, text):
+            if token is Name:
+                if value in self.constants:
+                    yield index, Keyword.Constant, value
+                elif value in self.functions:
+                    yield index, Name.Function, value
+                elif value in self.storage:
+                    yield index, Keyword.Type, value
+                else:
+                    yield index, token, value
+            elif token is Name.Function:
+                if value in self.structure:
+                    yield index, Name.Other, value
+                else:
+                    yield index, token, value
+            elif token is Keyword:
+                if value in self.storage:
+                    yield index, Keyword.Type, value
+                else:
+                    yield index, token, value
+            else:
+                yield index, token, value

eric ide

mercurial