Advanced Contact form 7 DB - Version 1.5.0

Version Description

  • Developer Support: Provide screen for the developer to manage Display Enquiry, Ban IP and Actions & Filters.
  • Add-ons: Provision to select other add-ons of Advanced CF7 DB.
Download this release

Release Info

Developer vsourz1td
Plugin Icon 128x128 Advanced Contact form 7 DB
Version 1.5.0
Comparing to
See all releases

Code changes from version 1.4.4 to 1.5.0

Files changed (38) hide show
  1. README.txt +12 -1
  2. admin/class-advanced-cf7-db-admin.php +45 -2
  3. admin/class/PHPExcel/Autoloader.php +2 -2
  4. admin/class/PHPExcel/CachedObjectStorage/SQLite.php +3 -0
  5. admin/class/PHPExcel/CachedObjectStorageFactory.php +2 -4
  6. admin/class/PHPExcel/Calculation/Database.php +28 -28
  7. admin/class/PHPExcel/Shared/PCLZip/pclzip.lib.php +3 -3
  8. admin/class/PHPExcel/Worksheet/AutoFilter/Column.php +5 -2
  9. admin/css/advanced-cf7-db-admin.css +116 -10
  10. admin/js/advanced-cf7-db-admin.js +47 -9
  11. admin/partials/add-ons.php +276 -0
  12. admin/partials/contact_form_listing.php +36 -7
  13. admin/partials/developer_support.php +701 -0
  14. advanced-cf7-db.php +2 -2
  15. includes/class-advanced-cf7-db.php +7 -1
  16. includes/geshi.php +4758 -0
  17. includes/geshi/4cs.php +137 -0
  18. includes/geshi/6502acme.php +228 -0
  19. includes/geshi/6502kickass.php +239 -0
  20. includes/geshi/6502tasm.php +187 -0
  21. includes/geshi/68000devpac.php +166 -0
  22. includes/geshi/abap.php +1407 -0
  23. includes/geshi/actionscript.php +195 -0
  24. includes/geshi/actionscript3.php +471 -0
  25. includes/geshi/ada.php +130 -0
  26. includes/geshi/aimms.php +316 -0
  27. includes/geshi/algol68.php +328 -0
  28. includes/geshi/apache.php +481 -0
  29. includes/geshi/applescript.php +155 -0
  30. includes/geshi/apt_sources.php +153 -0
  31. includes/geshi/arm.php +3316 -0
  32. includes/geshi/asm.php +601 -0
  33. includes/geshi/asp.php +162 -0
  34. includes/geshi/asymptote.php +1850 -0
  35. includes/geshi/autoconf.php +510 -0
  36. includes/geshi/autohotkey.php +371 -0
  37. includes/geshi/autoit.php +1888 -0
  38. includes/geshi/avisynth.php +147 -0
README.txt CHANGED
@@ -3,7 +3,7 @@ Contributors: vsourz1td
3
  Tags: contact form 7 db, advanced cf7 db, contact form 7 database, contact form db, contact form 7, save form data, save contact form, save cf7, database, cf7db, save-contact-form, Save-Forms-Data, import-cf7, export-contact-data, view-cf7-entry
4
  Requires at least: 4.0
5
  Tested up to: 4.9.8
6
- Stable tag: 1.4.4
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
@@ -38,6 +38,9 @@ Attached files are stored in the /wp-content/uploads/advanced-cf7-upload directo
38
  * Facility to import form related entries from CSV file.
39
  * Provided filters for excluding particular contact form entry to CF7 DB.
40
  * Provided filter to add,modify,remove CF7 fields and data before submitting to CF7 DB.
 
 
 
41
 
42
  == Commercial Features ==
43
  **1. Advanced CF7 DB - GDPR compliant**
@@ -127,6 +130,9 @@ If you think, that you found a bug in our plugin or have any question contact us
127
  = Can I restrict the plugin from storing IP address of the user to contact form DB? =
128
  Yes, you can strict the plugin for storing IP address of the user.
129
 
 
 
 
130
  = How to restrict the plugin from storing IP address of the user to contact form DB? =
131
  Restriction is simple, just code **do_shortcode( '[cf7-db-display-ip]' );** to be placed in theme folder functions.php. By placing the code the IP address of the user will not been stored. Step by step process is explained below :
132
  - Goto -> wp-content/themes/{active theme folder}/functions.php
@@ -158,10 +164,15 @@ function vsz_restrict_form_data_submission($contact_form_ids){
158
  3. Edit information popup screen.
159
  4. Setup import file fields.
160
  5. Import CSV file.
 
161
 
162
 
163
  == Changelog ==
164
 
 
 
 
 
165
  = 1.4.4 =
166
  * Fixed issue related to export records in PDF.
167
  * Provided filter for excluding particular contact form entry to the database
3
  Tags: contact form 7 db, advanced cf7 db, contact form 7 database, contact form db, contact form 7, save form data, save contact form, save cf7, database, cf7db, save-contact-form, Save-Forms-Data, import-cf7, export-contact-data, view-cf7-entry
4
  Requires at least: 4.0
5
  Tested up to: 4.9.8
6
+ Stable tag: 1.5.0
7
  License: GPLv2 or later
8
  License URI: http://www.gnu.org/licenses/gpl-2.0.html
9
 
38
  * Facility to import form related entries from CSV file.
39
  * Provided filters for excluding particular contact form entry to CF7 DB.
40
  * Provided filter to add,modify,remove CF7 fields and data before submitting to CF7 DB.
41
+ * You can display the contact form DB data to user by using shortcodes.
42
+ * Generate shortcode using different parameters to display specific data only.
43
+ * For more details checkout the plugin "Shortcode" screen.
44
 
45
  == Commercial Features ==
46
  **1. Advanced CF7 DB - GDPR compliant**
130
  = Can I restrict the plugin from storing IP address of the user to contact form DB? =
131
  Yes, you can strict the plugin for storing IP address of the user.
132
 
133
+ = Can I display contact form DB data to user ? =
134
+ Yes, you can display contact form DB data to user. You can use short code for this purpose. For detail please visit "Shortcode" screen of plugin.
135
+
136
  = How to restrict the plugin from storing IP address of the user to contact form DB? =
137
  Restriction is simple, just code **do_shortcode( '[cf7-db-display-ip]' );** to be placed in theme folder functions.php. By placing the code the IP address of the user will not been stored. Step by step process is explained below :
138
  - Goto -> wp-content/themes/{active theme folder}/functions.php
164
  3. Edit information popup screen.
165
  4. Setup import file fields.
166
  5. Import CSV file.
167
+ 6. Developer Support
168
 
169
 
170
  == Changelog ==
171
 
172
+ = 1.5.0 =
173
+ * **Developer Support:** Provide screen for the developer to manage Display Enquiry, Ban IP and Actions & Filters.
174
+ * **Add-ons:** Provision to select other add-ons of Advanced CF7 DB.
175
+
176
  = 1.4.4 =
177
  * Fixed issue related to export records in PDF.
178
  * Provided filter for excluding particular contact form entry to the database
admin/class-advanced-cf7-db-admin.php CHANGED
@@ -155,13 +155,15 @@ class Advanced_Cf7_Db_Admin {
155
  add_menu_page( "Advanced CF7 DB", "Advanced CF7 DB", $cap, "contact-form-listing", array($this,"vsz_contact_form_callback"), 'dashicons-visibility' , 45);
156
  ///// Menu pages for Import CSV
157
  add_submenu_page( 'contact-form-listing', __('Import CSV', 'advanced-cf7-db'), __('Import CSV', ' advanced-cf7-db'), $cap, 'import_cf7_csv',array($this,'vsz_import_cf7_csv') );
 
 
158
  }
159
 
160
  // Callback function for listing screen
161
  function vsz_contact_form_callback(){
162
  //Check current user permission
163
 
164
- /* if (!current_user_can('manage_options')) {
165
  wp_die( __('You do not have sufficient permissions to access this page.') );
166
  } */
167
  wp_enqueue_style('vsz-cf7-db-admin-css');
@@ -169,6 +171,18 @@ class Advanced_Cf7_Db_Admin {
169
  require_once plugin_dir_path( __FILE__ ) . 'partials/contact_form_listing.php';
170
  }
171
 
 
 
 
 
 
 
 
 
 
 
 
 
172
  // Callback function for Import CSV screen
173
  function vsz_import_cf7_csv(){
174
  //Check current user permission
@@ -836,6 +850,13 @@ class Advanced_Cf7_Db_Admin {
836
  ////Define not editable fields name here
837
  public function vsz_cf7_not_editable_fields_callback(){
838
  $cf7_not_editable_fields = array('submit_time','submit_ip','submit_user_id');
 
 
 
 
 
 
 
839
  return $cf7_not_editable_fields;
840
  }
841
 
@@ -969,6 +990,15 @@ class Advanced_Cf7_Db_Admin {
969
  // Function to upload file from edit file popup
970
  function vsz_acf7_db_edit_scr_file_upload(){
971
 
 
 
 
 
 
 
 
 
 
972
  if(!isset($_POST["fid"]) || empty($_POST["fid"])){
973
  print 'error';
974
  exit;
@@ -981,6 +1011,11 @@ class Advanced_Cf7_Db_Admin {
981
  print 'error';
982
  exit;
983
  }
 
 
 
 
 
984
 
985
  global $wpdb;
986
  $fid = $_POST["fid"];
@@ -994,13 +1029,21 @@ class Advanced_Cf7_Db_Admin {
994
 
995
  if(is_array($_FILES) && !empty($_FILES)){
996
  $maxsize = 8000000;
997
- if(($_FILES['image']['size'] >= $maxsize)) {
998
  echo 'invalid_size';
999
  exit;
1000
  }
1001
  $filename = sanitize_text_field($_FILES["image"]["name"]);
1002
  $file_basename = substr($filename, 0, strripos($filename, '.')); // get file name
1003
  $file_ext = substr($filename, strripos($filename, '.')); // get file extention
 
 
 
 
 
 
 
 
1004
  //unique file name
1005
  $newfilename = wp_unique_filename($temp_dir_upload, $file_basename.$file_ext);
1006
 
155
  add_menu_page( "Advanced CF7 DB", "Advanced CF7 DB", $cap, "contact-form-listing", array($this,"vsz_contact_form_callback"), 'dashicons-visibility' , 45);
156
  ///// Menu pages for Import CSV
157
  add_submenu_page( 'contact-form-listing', __('Import CSV', 'advanced-cf7-db'), __('Import CSV', ' advanced-cf7-db'), $cap, 'import_cf7_csv',array($this,'vsz_import_cf7_csv') );
158
+ add_submenu_page( 'contact-form-listing', __('Developer Support', 'advanced-cf7-db'), __('Developer Support', ' advanced-cf7-db'), $cap, 'shortcode',array($this,'vsz_shortcode') );
159
+ add_submenu_page( 'contact-form-listing', __('Add-ons', 'advanced-cf7-db'), __('Add-ons', ' advanced-cf7-db'), $cap, 'extentions',array($this,'vsz_extension') );
160
  }
161
 
162
  // Callback function for listing screen
163
  function vsz_contact_form_callback(){
164
  //Check current user permission
165
 
166
+ /* if (!current_user_can('manage_options')) {
167
  wp_die( __('You do not have sufficient permissions to access this page.') );
168
  } */
169
  wp_enqueue_style('vsz-cf7-db-admin-css');
171
  require_once plugin_dir_path( __FILE__ ) . 'partials/contact_form_listing.php';
172
  }
173
 
174
+ // Callback function for Import CSV screen
175
+ function vsz_shortcode(){
176
+ //Define import CSV screen design in this file
177
+ require_once plugin_dir_path( __FILE__ ) . 'partials/developer_support.php';
178
+ }
179
+
180
+ // Callback function for Import CSV screen
181
+ function vsz_extension(){
182
+ //Define import CSV screen design in this file
183
+ require_once plugin_dir_path( __FILE__ ) . 'partials/add-ons.php';
184
+ }
185
+
186
  // Callback function for Import CSV screen
187
  function vsz_import_cf7_csv(){
188
  //Check current user permission
850
  ////Define not editable fields name here
851
  public function vsz_cf7_not_editable_fields_callback(){
852
  $cf7_not_editable_fields = array('submit_time','submit_ip','submit_user_id');
853
+
854
+ if(!empty($non_editable)){
855
+ foreach($non_editable as $val){
856
+ $cf7_not_editable_fields[] = $val;
857
+ }
858
+ }
859
+
860
  return $cf7_not_editable_fields;
861
  }
862
 
990
  // Function to upload file from edit file popup
991
  function vsz_acf7_db_edit_scr_file_upload(){
992
 
993
+ // Verify the current user can upload files
994
+ if (!current_user_can('upload_files')){
995
+ print 'Not_accessed_to_upload_file';
996
+ wp_die(__('You do not have permission to upload files.'));
997
+ }
998
+ if(isset($_FILES) && is_array($_FILES) && !empty($_FILES)){
999
+ print 'Not_accessed_to_upload_file';
1000
+ exit;
1001
+ }
1002
  if(!isset($_POST["fid"]) || empty($_POST["fid"])){
1003
  print 'error';
1004
  exit;
1011
  print 'error';
1012
  exit;
1013
  }
1014
+ $fileInfo = wp_check_filetype(basename($_FILES['image']['name']));
1015
+ if (empty($fileInfo['ext'])) {
1016
+ print 'Invalid_file_type._File_type_not_defined.';
1017
+ exit;
1018
+ }
1019
 
1020
  global $wpdb;
1021
  $fid = $_POST["fid"];
1029
 
1030
  if(is_array($_FILES) && !empty($_FILES)){
1031
  $maxsize = 8000000;
1032
+ if(($_FILES['image']['size'] >= $maxsize) || empty($_FILES['image']['size'])) {
1033
  echo 'invalid_size';
1034
  exit;
1035
  }
1036
  $filename = sanitize_text_field($_FILES["image"]["name"]);
1037
  $file_basename = substr($filename, 0, strripos($filename, '.')); // get file name
1038
  $file_ext = substr($filename, strripos($filename, '.')); // get file extention
1039
+
1040
+ $validExtArray = array( 'jpg','jpeg','png','gif','pdf','doc','docx','ppt','pptx','odt','avi','ogg','m4a','mov','mp3','mp4','mpg','wav','wmv');
1041
+ $ext = end((explode(".", $filename)));
1042
+ if(!in_array($ext,$validExtArray)){
1043
+ echo 'invalid_type';
1044
+ exit;
1045
+ }
1046
+
1047
  //unique file name
1048
  $newfilename = wp_unique_filename($temp_dir_upload, $file_basename.$file_ext);
1049
 
admin/class/PHPExcel/Autoloader.php CHANGED
@@ -30,9 +30,9 @@ PHPExcel_Autoloader::Register();
30
  // simple checks and initialisations
31
  //PHPExcel_Shared_ZipStreamWrapper::register();
32
  // check mbstring.func_overload
33
- if (ini_get('mbstring.func_overload') & 2) {
34
  throw new PHPExcel_Exception('Multibyte function overloading in PHP must be disabled for string functions (2).');
35
- }
36
  PHPExcel_Shared_String::buildCharacterSets();
37
 
38
 
30
  // simple checks and initialisations
31
  //PHPExcel_Shared_ZipStreamWrapper::register();
32
  // check mbstring.func_overload
33
+ /* if (ini_get('mbstring.func_overload') & 2) {
34
  throw new PHPExcel_Exception('Multibyte function overloading in PHP must be disabled for string functions (2).');
35
+ } */
36
  PHPExcel_Shared_String::buildCharacterSets();
37
 
38
 
admin/class/PHPExcel/CachedObjectStorage/SQLite.php CHANGED
@@ -33,6 +33,8 @@
33
  * @package PHPExcel_CachedObjectStorage
34
  * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
  */
 
 
36
  class PHPExcel_CachedObjectStorage_SQLite extends PHPExcel_CachedObjectStorage_CacheBase implements PHPExcel_CachedObjectStorage_ICache {
37
 
38
  /**
@@ -304,3 +306,4 @@ class PHPExcel_CachedObjectStorage_SQLite extends PHPExcel_CachedObjectStorage_C
304
  }
305
 
306
  }
 
33
  * @package PHPExcel_CachedObjectStorage
34
  * @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
35
  */
36
+ ?>
37
+ <!--
38
  class PHPExcel_CachedObjectStorage_SQLite extends PHPExcel_CachedObjectStorage_CacheBase implements PHPExcel_CachedObjectStorage_ICache {
39
 
40
  /**
306
  }
307
 
308
  }
309
+ --><?php
admin/class/PHPExcel/CachedObjectStorageFactory.php CHANGED
@@ -45,7 +45,7 @@ class PHPExcel_CachedObjectStorageFactory
45
  const cache_to_memcache = 'Memcache';
46
  const cache_to_phpTemp = 'PHPTemp';
47
  const cache_to_wincache = 'Wincache';
48
- const cache_to_sqlite = 'SQLite';
49
  const cache_to_sqlite3 = 'SQLite3';
50
 
51
 
@@ -79,7 +79,7 @@ class PHPExcel_CachedObjectStorageFactory
79
  self::cache_to_apc,
80
  self::cache_to_memcache,
81
  self::cache_to_wincache,
82
- self::cache_to_sqlite,
83
  self::cache_to_sqlite3,
84
  );
85
 
@@ -110,8 +110,6 @@ class PHPExcel_CachedObjectStorageFactory
110
  ),
111
  self::cache_to_wincache => array( 'cacheTime' => 600
112
  ),
113
- self::cache_to_sqlite => array(
114
- ),
115
  self::cache_to_sqlite3 => array(
116
  ),
117
  );
45
  const cache_to_memcache = 'Memcache';
46
  const cache_to_phpTemp = 'PHPTemp';
47
  const cache_to_wincache = 'Wincache';
48
+ // const cache_to_sqlite = 'SQLite';
49
  const cache_to_sqlite3 = 'SQLite3';
50
 
51
 
79
  self::cache_to_apc,
80
  self::cache_to_memcache,
81
  self::cache_to_wincache,
82
+ // self::cache_to_sqlite,
83
  self::cache_to_sqlite3,
84
  );
85
 
110
  ),
111
  self::cache_to_wincache => array( 'cacheTime' => 600
112
  ),
 
 
113
  self::cache_to_sqlite3 => array(
114
  ),
115
  );
admin/class/PHPExcel/Calculation/Database.php CHANGED
@@ -47,7 +47,7 @@ class PHPExcel_Calculation_Database {
47
 
48
 
49
  /**
50
- * __fieldExtract
51
  *
52
  * Extracts the column ID to use for the data field.
53
  *
@@ -64,7 +64,7 @@ class PHPExcel_Calculation_Database {
64
  * @return string|NULL
65
  *
66
  */
67
- private static function __fieldExtract($database,$field) {
68
  $field = strtoupper(PHPExcel_Calculation_Functions::flattenSingleValue($field));
69
  $fieldNames = array_map('strtoupper',array_shift($database));
70
 
@@ -77,7 +77,7 @@ class PHPExcel_Calculation_Database {
77
  }
78
 
79
  /**
80
- * __filter
81
  *
82
  * Parses the selection criteria, extracts the database rows that match those criteria, and
83
  * returns that subset of rows.
@@ -95,7 +95,7 @@ class PHPExcel_Calculation_Database {
95
  * @return array of mixed
96
  *
97
  */
98
- private static function __filter($database,$criteria) {
99
  $fieldNames = array_shift($database);
100
  $criteriaNames = array_shift($criteria);
101
 
@@ -178,12 +178,12 @@ class PHPExcel_Calculation_Database {
178
  *
179
  */
180
  public static function DAVERAGE($database,$field,$criteria) {
181
- $field = self::__fieldExtract($database,$field);
182
  if (is_null($field)) {
183
  return NULL;
184
  }
185
  // reduce the database to a set of rows that match all the criteria
186
- $database = self::__filter($database,$criteria);
187
  // extract an array of values for the requested column
188
  $colData = array();
189
  foreach($database as $row) {
@@ -230,13 +230,13 @@ class PHPExcel_Calculation_Database {
230
  *
231
  */
232
  public static function DCOUNT($database,$field,$criteria) {
233
- $field = self::__fieldExtract($database,$field);
234
  if (is_null($field)) {
235
  return NULL;
236
  }
237
 
238
  // reduce the database to a set of rows that match all the criteria
239
- $database = self::__filter($database,$criteria);
240
  // extract an array of values for the requested column
241
  $colData = array();
242
  foreach($database as $row) {
@@ -279,13 +279,13 @@ class PHPExcel_Calculation_Database {
279
  *
280
  */
281
  public static function DCOUNTA($database,$field,$criteria) {
282
- $field = self::__fieldExtract($database,$field);
283
  if (is_null($field)) {
284
  return NULL;
285
  }
286
 
287
  // reduce the database to a set of rows that match all the criteria
288
- $database = self::__filter($database,$criteria);
289
  // extract an array of values for the requested column
290
  $colData = array();
291
  foreach($database as $row) {
@@ -326,13 +326,13 @@ class PHPExcel_Calculation_Database {
326
  *
327
  */
328
  public static function DGET($database,$field,$criteria) {
329
- $field = self::__fieldExtract($database,$field);
330
  if (is_null($field)) {
331
  return NULL;
332
  }
333
 
334
  // reduce the database to a set of rows that match all the criteria
335
- $database = self::__filter($database,$criteria);
336
  // extract an array of values for the requested column
337
  $colData = array();
338
  foreach($database as $row) {
@@ -377,13 +377,13 @@ class PHPExcel_Calculation_Database {
377
  *
378
  */
379
  public static function DMAX($database,$field,$criteria) {
380
- $field = self::__fieldExtract($database,$field);
381
  if (is_null($field)) {
382
  return NULL;
383
  }
384
 
385
  // reduce the database to a set of rows that match all the criteria
386
- $database = self::__filter($database,$criteria);
387
  // extract an array of values for the requested column
388
  $colData = array();
389
  foreach($database as $row) {
@@ -424,13 +424,13 @@ class PHPExcel_Calculation_Database {
424
  *
425
  */
426
  public static function DMIN($database,$field,$criteria) {
427
- $field = self::__fieldExtract($database,$field);
428
  if (is_null($field)) {
429
  return NULL;
430
  }
431
 
432
  // reduce the database to a set of rows that match all the criteria
433
- $database = self::__filter($database,$criteria);
434
  // extract an array of values for the requested column
435
  $colData = array();
436
  foreach($database as $row) {
@@ -470,13 +470,13 @@ class PHPExcel_Calculation_Database {
470
  *
471
  */
472
  public static function DPRODUCT($database,$field,$criteria) {
473
- $field = self::__fieldExtract($database,$field);
474
  if (is_null($field)) {
475
  return NULL;
476
  }
477
 
478
  // reduce the database to a set of rows that match all the criteria
479
- $database = self::__filter($database,$criteria);
480
  // extract an array of values for the requested column
481
  $colData = array();
482
  foreach($database as $row) {
@@ -517,13 +517,13 @@ class PHPExcel_Calculation_Database {
517
  *
518
  */
519
  public static function DSTDEV($database,$field,$criteria) {
520
- $field = self::__fieldExtract($database,$field);
521
  if (is_null($field)) {
522
  return NULL;
523
  }
524
 
525
  // reduce the database to a set of rows that match all the criteria
526
- $database = self::__filter($database,$criteria);
527
  // extract an array of values for the requested column
528
  $colData = array();
529
  foreach($database as $row) {
@@ -564,13 +564,13 @@ class PHPExcel_Calculation_Database {
564
  *
565
  */
566
  public static function DSTDEVP($database,$field,$criteria) {
567
- $field = self::__fieldExtract($database,$field);
568
  if (is_null($field)) {
569
  return NULL;
570
  }
571
 
572
  // reduce the database to a set of rows that match all the criteria
573
- $database = self::__filter($database,$criteria);
574
  // extract an array of values for the requested column
575
  $colData = array();
576
  foreach($database as $row) {
@@ -610,13 +610,13 @@ class PHPExcel_Calculation_Database {
610
  *
611
  */
612
  public static function DSUM($database,$field,$criteria) {
613
- $field = self::__fieldExtract($database,$field);
614
  if (is_null($field)) {
615
  return NULL;
616
  }
617
 
618
  // reduce the database to a set of rows that match all the criteria
619
- $database = self::__filter($database,$criteria);
620
  // extract an array of values for the requested column
621
  $colData = array();
622
  foreach($database as $row) {
@@ -657,13 +657,13 @@ class PHPExcel_Calculation_Database {
657
  *
658
  */
659
  public static function DVAR($database,$field,$criteria) {
660
- $field = self::__fieldExtract($database,$field);
661
  if (is_null($field)) {
662
  return NULL;
663
  }
664
 
665
  // reduce the database to a set of rows that match all the criteria
666
- $database = self::__filter($database,$criteria);
667
  // extract an array of values for the requested column
668
  $colData = array();
669
  foreach($database as $row) {
@@ -704,13 +704,13 @@ class PHPExcel_Calculation_Database {
704
  *
705
  */
706
  public static function DVARP($database,$field,$criteria) {
707
- $field = self::__fieldExtract($database,$field);
708
  if (is_null($field)) {
709
  return NULL;
710
  }
711
 
712
  // reduce the database to a set of rows that match all the criteria
713
- $database = self::__filter($database,$criteria);
714
  // extract an array of values for the requested column
715
  $colData = array();
716
  foreach($database as $row) {
47
 
48
 
49
  /**
50
+ * _fieldExtract
51
  *
52
  * Extracts the column ID to use for the data field.
53
  *
64
  * @return string|NULL
65
  *
66
  */
67
+ private static function _fieldExtract($database,$field) {
68
  $field = strtoupper(PHPExcel_Calculation_Functions::flattenSingleValue($field));
69
  $fieldNames = array_map('strtoupper',array_shift($database));
70
 
77
  }
78
 
79
  /**
80
+ * _filter
81
  *
82
  * Parses the selection criteria, extracts the database rows that match those criteria, and
83
  * returns that subset of rows.
95
  * @return array of mixed
96
  *
97
  */
98
+ private static function _filter($database,$criteria) {
99
  $fieldNames = array_shift($database);
100
  $criteriaNames = array_shift($criteria);
101
 
178
  *
179
  */
180
  public static function DAVERAGE($database,$field,$criteria) {
181
+ $field = self::_fieldExtract($database,$field);
182
  if (is_null($field)) {
183
  return NULL;
184
  }
185
  // reduce the database to a set of rows that match all the criteria
186
+ $database = self::_filter($database,$criteria);
187
  // extract an array of values for the requested column
188
  $colData = array();
189
  foreach($database as $row) {
230
  *
231
  */
232
  public static function DCOUNT($database,$field,$criteria) {
233
+ $field = self::_fieldExtract($database,$field);
234
  if (is_null($field)) {
235
  return NULL;
236
  }
237
 
238
  // reduce the database to a set of rows that match all the criteria
239
+ $database = self::_filter($database,$criteria);
240
  // extract an array of values for the requested column
241
  $colData = array();
242
  foreach($database as $row) {
279
  *
280
  */
281
  public static function DCOUNTA($database,$field,$criteria) {
282
+ $field = self::_fieldExtract($database,$field);
283
  if (is_null($field)) {
284
  return NULL;
285
  }
286
 
287
  // reduce the database to a set of rows that match all the criteria
288
+ $database = self::_filter($database,$criteria);
289
  // extract an array of values for the requested column
290
  $colData = array();
291
  foreach($database as $row) {
326
  *
327
  */
328
  public static function DGET($database,$field,$criteria) {
329
+ $field = self::_fieldExtract($database,$field);
330
  if (is_null($field)) {
331
  return NULL;
332
  }
333
 
334
  // reduce the database to a set of rows that match all the criteria
335
+ $database = self::_filter($database,$criteria);
336
  // extract an array of values for the requested column
337
  $colData = array();
338
  foreach($database as $row) {
377
  *
378
  */
379
  public static function DMAX($database,$field,$criteria) {
380
+ $field = self::_fieldExtract($database,$field);
381
  if (is_null($field)) {
382
  return NULL;
383
  }
384
 
385
  // reduce the database to a set of rows that match all the criteria
386
+ $database = self::_filter($database,$criteria);
387
  // extract an array of values for the requested column
388
  $colData = array();
389
  foreach($database as $row) {
424
  *
425
  */
426
  public static function DMIN($database,$field,$criteria) {
427
+ $field = self::_fieldExtract($database,$field);
428
  if (is_null($field)) {
429
  return NULL;
430
  }
431
 
432
  // reduce the database to a set of rows that match all the criteria
433
+ $database = self::_filter($database,$criteria);
434
  // extract an array of values for the requested column
435
  $colData = array();
436
  foreach($database as $row) {
470
  *
471
  */
472
  public static function DPRODUCT($database,$field,$criteria) {
473
+ $field = self::_fieldExtract($database,$field);
474
  if (is_null($field)) {
475
  return NULL;
476
  }
477
 
478
  // reduce the database to a set of rows that match all the criteria
479
+ $database = self::_filter($database,$criteria);
480
  // extract an array of values for the requested column
481
  $colData = array();
482
  foreach($database as $row) {
517
  *
518
  */
519
  public static function DSTDEV($database,$field,$criteria) {
520
+ $field = self::_fieldExtract($database,$field);
521
  if (is_null($field)) {
522
  return NULL;
523
  }
524
 
525
  // reduce the database to a set of rows that match all the criteria
526
+ $database = self::_filter($database,$criteria);
527
  // extract an array of values for the requested column
528
  $colData = array();
529
  foreach($database as $row) {
564
  *
565
  */
566
  public static function DSTDEVP($database,$field,$criteria) {
567
+ $field = self::_fieldExtract($database,$field);
568
  if (is_null($field)) {
569
  return NULL;
570
  }
571
 
572
  // reduce the database to a set of rows that match all the criteria
573
+ $database = self::_filter($database,$criteria);
574
  // extract an array of values for the requested column
575
  $colData = array();
576
  foreach($database as $row) {
610
  *
611
  */
612
  public static function DSUM($database,$field,$criteria) {
613
+ $field = self::_fieldExtract($database,$field);
614
  if (is_null($field)) {
615
  return NULL;
616
  }
617
 
618
  // reduce the database to a set of rows that match all the criteria
619
+ $database = self::_filter($database,$criteria);
620
  // extract an array of values for the requested column
621
  $colData = array();
622
  foreach($database as $row) {
657
  *
658
  */
659
  public static function DVAR($database,$field,$criteria) {
660
+ $field = self::_fieldExtract($database,$field);
661
  if (is_null($field)) {
662
  return NULL;
663
  }
664
 
665
  // reduce the database to a set of rows that match all the criteria
666
+ $database = self::_filter($database,$criteria);
667
  // extract an array of values for the requested column
668
  $colData = array();
669
  foreach($database as $row) {
704
  *
705
  */
706
  public static function DVARP($database,$field,$criteria) {
707
+ $field = self::_fieldExtract($database,$field);
708
  if (is_null($field)) {
709
  return NULL;
710
  }
711
 
712
  // reduce the database to a set of rows that match all the criteria
713
+ $database = self::_filter($database,$criteria);
714
  // extract an array of values for the requested column
715
  $colData = array();
716
  foreach($database as $row) {
admin/class/PHPExcel/Shared/PCLZip/pclzip.lib.php CHANGED
@@ -212,7 +212,7 @@
212
  // Note that no real action is taken, if the archive does not exist it is not
213
  // created. Use create() for that.
214
  // --------------------------------------------------------------------------------
215
- function PclZip($p_zipname)
216
  {
217
 
218
  // ----- Tests the zlib
@@ -5344,7 +5344,7 @@
5344
 
5345
  // ----- Disable magic_quotes
5346
  if ($this->magic_quotes_status == 1) {
5347
- @set_magic_quotes_runtime(0);
5348
  }
5349
 
5350
  // ----- Return
@@ -5375,7 +5375,7 @@
5375
 
5376
  // ----- Swap back magic_quotes
5377
  if ($this->magic_quotes_status == 1) {
5378
- @set_magic_quotes_runtime($this->magic_quotes_status);
5379
  }
5380
 
5381
  // ----- Return
212
  // Note that no real action is taken, if the archive does not exist it is not
213
  // created. Use create() for that.
214
  // --------------------------------------------------------------------------------
215
+ function __construct($p_zipname)
216
  {
217
 
218
  // ----- Tests the zlib
5344
 
5345
  // ----- Disable magic_quotes
5346
  if ($this->magic_quotes_status == 1) {
5347
+ // @set_magic_quotes_runtime(0);
5348
  }
5349
 
5350
  // ----- Return
5375
 
5376
  // ----- Swap back magic_quotes
5377
  if ($this->magic_quotes_status == 1) {
5378
+ // @set_magic_quotes_runtime($this->magic_quotes_status);
5379
  }
5380
 
5381
  // ----- Return
admin/class/PHPExcel/Worksheet/AutoFilter/Column.php CHANGED
@@ -381,9 +381,12 @@ class PHPExcel_Worksheet_AutoFilter_Column
381
  // The columns array of PHPExcel_Worksheet_AutoFilter objects
382
  $this->$key = array();
383
  foreach ($value as $k => $v) {
384
- $this->$key[$k] = clone $v;
 
 
 
385
  // attach the new cloned Rule to this new cloned Autofilter Cloned object
386
- $this->$key[$k]->setParent($this);
387
  }
388
  } else {
389
  $this->$key = $value;
381
  // The columns array of PHPExcel_Worksheet_AutoFilter objects
382
  $this->$key = array();
383
  foreach ($value as $k => $v) {
384
+ $temp_key = $this->$key;
385
+ $temp_key[$k] = clone $v;
386
+ $temp_key[$k]->setParent($this);
387
+ $this->$key = $temp_key;
388
  // attach the new cloned Rule to this new cloned Autofilter Cloned object
389
+ // $this->$key[$k]->setParent($this);
390
  }
391
  } else {
392
  $this->$key = $value;
admin/css/advanced-cf7-db-admin.css CHANGED
@@ -140,7 +140,7 @@
140
  width:100%;
141
  display:inline-block;
142
  }
143
-
144
  /*----- Tab Links -----*/
145
  /* Clearfix */
146
  .tabs ul.tab-links {
@@ -180,7 +180,7 @@
180
  outline:none;
181
  box-shadow:none;
182
  }
183
- .tab-links li:hover a {color:#ffffff;}
184
  .tab-links li.active a {
185
  background: none;
186
  cursor: default;
@@ -228,7 +228,7 @@
228
  }
229
  .our-class .date-filter.from-to .button,.our-class .type-something .button{
230
  display: inline-block;
231
- border: 1px solid #0073aa;
232
  font-size: 14px;
233
  font-weight: normal;
234
  line-height: 1.42857;
@@ -243,7 +243,7 @@
243
  }
244
  .bulk-actions .button{
245
  display: inline-block;
246
- border: 1px solid #ccc;
247
  font-size: 14px;
248
  font-weight: normal;
249
  line-height: 1.42857;
@@ -260,7 +260,7 @@
260
  border: 1px solid #000;
261
  }
262
  .our-class .date-filter.from-to .button:hover,.our-class .type-something .button:hover{
263
- border: 1px solid #000;
264
  background-color: #000;
265
  color:#fff;
266
  }
@@ -438,7 +438,7 @@ h2.advanced span{
438
  }
439
  .display-setup a.button.action.thickbox.right:hover{
440
  background-color: #000;
441
- border: 1px solid #000;
442
  }
443
  .select-specific .form-table.inner-row{
444
  margin-top:0px;
@@ -456,7 +456,7 @@ h2.advanced span{
456
  margin-top:15px;
457
  display:block;
458
  color:#f00f39;
459
-
460
  }
461
  .form-table.field-setting,.form-table.field-setting td{
462
  padding:10px;
@@ -541,7 +541,7 @@ h3.advanced {
541
  }
542
  .wrap .display-setup .page-title-action{
543
  display: inline-block;
544
- border: 1px solid #0073aa;
545
  font-size: 14px;
546
  font-weight: normal;
547
  line-height: 21px;
@@ -557,12 +557,15 @@ h3.advanced {
557
  width:783px !important;
558
  }
559
  .import-csv .upload-csv label{padding-left:30px;}
 
 
 
560
  @media(max-width:1082px){
561
  .from-to-date-search {
562
  display:block;
563
  margin:0 0 15px 0;
564
  }
565
-
566
  }
567
  @media(max-width:782px){
568
  .cf7d-admin-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column) {
@@ -579,9 +582,112 @@ h3.advanced {
579
  margin:0 0px 5px !important;}
580
  }
581
  @media(max-width:400px){
582
- .type-something { margin-right:0px;}
583
  .date-filter .reset-class {
584
  margin-top: 10px;
585
  float: none;
586
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
587
  }
140
  width:100%;
141
  display:inline-block;
142
  }
143
+
144
  /*----- Tab Links -----*/
145
  /* Clearfix */
146
  .tabs ul.tab-links {
180
  outline:none;
181
  box-shadow:none;
182
  }
183
+ .tab-links li:hover a {color:#ffffff;}
184
  .tab-links li.active a {
185
  background: none;
186
  cursor: default;
228
  }
229
  .our-class .date-filter.from-to .button,.our-class .type-something .button{
230
  display: inline-block;
231
+ border: 1px solid #0073aa;
232
  font-size: 14px;
233
  font-weight: normal;
234
  line-height: 1.42857;
243
  }
244
  .bulk-actions .button{
245
  display: inline-block;
246
+ border: 1px solid #ccc;
247
  font-size: 14px;
248
  font-weight: normal;
249
  line-height: 1.42857;
260
  border: 1px solid #000;
261
  }
262
  .our-class .date-filter.from-to .button:hover,.our-class .type-something .button:hover{
263
+ border: 1px solid #000;
264
  background-color: #000;
265
  color:#fff;
266
  }
438
  }
439
  .display-setup a.button.action.thickbox.right:hover{
440
  background-color: #000;
441
+ border: 1px solid #000;
442
  }
443
  .select-specific .form-table.inner-row{
444
  margin-top:0px;
456
  margin-top:15px;
457
  display:block;
458
  color:#f00f39;
459
+
460
  }
461
  .form-table.field-setting,.form-table.field-setting td{
462
  padding:10px;
541
  }
542
  .wrap .display-setup .page-title-action{
543
  display: inline-block;
544
+ border: 1px solid #0073aa;
545
  font-size: 14px;
546
  font-weight: normal;
547
  line-height: 21px;
557
  width:783px !important;
558
  }
559
  .import-csv .upload-csv label{padding-left:30px;}
560
+ .wrap.select-specific.shortcodes span.code{
561
+ color: #ff4545;
562
+ }
563
  @media(max-width:1082px){
564
  .from-to-date-search {
565
  display:block;
566
  margin:0 0 15px 0;
567
  }
568
+
569
  }
570
  @media(max-width:782px){
571
  .cf7d-admin-table tr:not(.inline-edit-row):not(.no-items) td:not(.check-column) {
582
  margin:0 0px 5px !important;}
583
  }
584
  @media(max-width:400px){
585
+ .type-something { margin-right:0px;}
586
  .date-filter .reset-class {
587
  margin-top: 10px;
588
  float: none;
589
  }
590
+ }
591
+
592
+ /* New Tab Structure */
593
+ /* Style the tab */
594
+ #acf7db-support-page .tab {
595
+ display: block;
596
+ overflow: hidden;
597
+ border: 1px solid #ccc;
598
+ background-color: #fafafa;
599
+ }
600
+ /* Style the buttons that are used to open the tab content */
601
+ #acf7db-support-page .tab span {
602
+ background-color: inherit;
603
+ float: left;
604
+ border: none;
605
+ outline: none;
606
+ cursor: pointer;
607
+ padding: 14px 16px;
608
+ transition: 0.3s;
609
+ }
610
+ /* Change background color of buttons on hover */
611
+ #acf7db-support-page .tab span:hover {
612
+ color: #0073aa;
613
+ }
614
+ /* Create an active/current tablink class */
615
+ #acf7db-support-page .tab span.active {
616
+ background-color: #0073aa;
617
+ color: #FFF;
618
+ }
619
+ /* Style the tab content */
620
+ #acf7db-support-page .tabcontent {
621
+ display: none;
622
+ padding: 6px 12px;
623
+ border: 1px solid #ccc;
624
+ border-top: none;
625
+ background: #FFF;
626
+ }
627
+ #acf7db-support-page.select-specific table th{
628
+ padding: 10px !important;
629
+ vertical-align: middle;
630
+ }
631
+ #acf7db-support-page.select-specific table.action-tbl th{
632
+ width: 280px;
633
+ }
634
+ .display_enquiry_table_class thead tr th:first-child{
635
+ width: 100px;
636
+ }
637
+ .form-table td p:first-child{
638
+ margin-top: 0px;
639
+ }
640
+ #acf7db-support-page.select-specific table td{
641
+ padding: 10px !important;
642
+ }
643
+ .form-table.widefat .description{
644
+ color: #ff0000;
645
+ }
646
+ /* PHP Code */
647
+ .code-php { border: 1px solid #c5c5c5; background-color: #f1f1f1; padding: 0 10px; }
648
+ #acf7db-support-page.select-specific .code-php .php{
649
+ white-space: pre-wrap;
650
+ }
651
+ .php {font-family:monospace;}
652
+ .php .imp {font-weight: bold; color: red;}
653
+ .php .kw1 {color: #b1b100;}
654
+ .php .kw2 {color: #000000; font-weight: bold;}
655
+ .php .kw3 {color: #990000;}
656
+ .php .kw4 {color: #009900; font-weight: bold;}
657
+ .php .co1 {color: #666666; font-style: italic;}
658
+ .php .co2 {color: #666666; font-style: italic;}
659
+ .php .co3 {color: #0000cc; font-style: italic;}
660
+ .php .co4 {color: #009933; font-style: italic;}
661
+ .php .coMULTI {color: #666666; font-style: italic;}
662
+ .php .es0 {color: #000099; font-weight: bold;}
663
+ .php .es1 {color: #000099; font-weight: bold;}
664
+ .php .es2 {color: #660099; font-weight: bold;}
665
+ .php .es3 {color: #660099; font-weight: bold;}
666
+ .php .es4 {color: #006699; font-weight: bold;}
667
+ .php .es5 {color: #006699; font-weight: bold; font-style: italic;}
668
+ .php .es6 {color: #009933; font-weight: bold;}
669
+ .php .es_h {color: #000099; font-weight: bold;}
670
+ .php .br0 {color: #009900;}
671
+ .php .sy0 {color: #339933;}
672
+ .php .sy1 {color: #000000; font-weight: bold;}
673
+ .php .st0 {color: #0000ff;}
674
+ .php .st_h {color: #0000ff;}
675
+ .php .nu0 {color: #cc66cc;}
676
+ .php .nu8 {color: #208080;}
677
+ .php .nu12 {color: #208080;}
678
+ .php .nu19 {color:#800080;}
679
+ .php .me1 {color: #004000;}
680
+ .php .me2 {color: #004000;}
681
+ .php .re0 {color: #000088;}
682
+ .php span.xtra { display:block; }
683
+ .display_enquiry_table_class.form-table.bordered.widefat.fixed{
684
+ border: 1px solid #dfdfdf;
685
+ border-collapse: separate;
686
+ }
687
+ .display_enquiry_table_class.form-table.bordered.widefat.fixed th, .display_enquiry_table_class.form-table.bordered.widefat.fixed td{
688
+ border: 1px solid #dfdfdf;
689
+ }
690
+ .display_enquiry_table_class.form-table.bordered.widefat.fixed thead .table-head-type{
691
+ background-color:#0073AA;
692
+ color: #fff;
693
  }
admin/js/advanced-cf7-db-admin.js CHANGED
@@ -421,7 +421,16 @@ function add_remove_file(index,filename){
421
  },
422
 
423
  success: function(data) {
424
- if(data != "invalid_size"){
 
 
 
 
 
 
 
 
 
425
  dataArr = data.split("~~@@~~&&~~");
426
 
427
  var filename = dataArr[0];
@@ -438,9 +447,6 @@ function add_remove_file(index,filename){
438
  // Calling function which will handle the removal and new upload of the files
439
  add_remove_file(index,filename);
440
  }
441
- else{
442
- alert("Maximum file size allowed is 7.60 MB.");
443
- }
444
 
445
  document.getElementById('overlayLoader').style.display = "none";
446
  },
@@ -503,7 +509,16 @@ function add_remove_file(index,filename){
503
  },
504
 
505
  success: function(data) {
506
- if(data != "invalid_size"){
 
 
 
 
 
 
 
 
 
507
  dataArr = data.split("~~@@~~&&~~");
508
 
509
  var filename = dataArr[0];
@@ -520,9 +535,6 @@ function add_remove_file(index,filename){
520
  // Calling function which will handle the removal and new upload of the files
521
  add_remove_file(index,filename);
522
  }
523
- else{
524
- alert("Maximum file size allowed is 7.60 MB.");
525
- }
526
 
527
  document.getElementById('overlayLoader').style.display = "none";
528
  },
@@ -582,4 +594,30 @@ jQuery(document).ready(function() {
582
  return false;
583
  }
584
  });
585
- });
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
421
  },
422
 
423
  success: function(data) {
424
+ if(data == "Not_accessed_to_upload_file"){
425
+ alert("You do not have permission to upload files.");
426
+ }
427
+ else if(data == "invalid_type"){
428
+ alert("Invalid file type.");
429
+ }
430
+ else if(data == "invalid_size"){
431
+ alert("Maximum file size allowed is 7.60 MB.");
432
+ }
433
+ else{
434
  dataArr = data.split("~~@@~~&&~~");
435
 
436
  var filename = dataArr[0];
447
  // Calling function which will handle the removal and new upload of the files
448
  add_remove_file(index,filename);
449
  }
 
 
 
450
 
451
  document.getElementById('overlayLoader').style.display = "none";
452
  },
509
  },
510
 
511
  success: function(data) {
512
+ if(data == "Not_accessed_to_upload_file"){
513
+ alert("You do not have permission to upload files.");
514
+ }
515
+ else if(data == "invalid_type"){
516
+ alert("Invalid file type.");
517
+ }
518
+ else if(data == "invalid_size"){
519
+ alert("Maximum file size allowed is 7.60 MB.");
520
+ }
521
+ else{
522
  dataArr = data.split("~~@@~~&&~~");
523
 
524
  var filename = dataArr[0];
535
  // Calling function which will handle the removal and new upload of the files
536
  add_remove_file(index,filename);
537
  }
 
 
 
538
 
539
  document.getElementById('overlayLoader').style.display = "none";
540
  },
594
  return false;
595
  }
596
  });
597
+ });
598
+
599
+ /******************************************** Shortcode Related Functionality **************************************************/
600
+
601
+ function get_list_fields(form_id){
602
+ jQuery.ajax({
603
+ url: ajaxurl,
604
+ type: 'POST',
605
+ data : fd,
606
+ processData: false,
607
+ contentType: false,
608
+ beforeSend: function() {
609
+ document.getElementById('overlayLoader').style.display = "block";
610
+ },
611
+ success: function(data) {
612
+
613
+ alert(data);
614
+
615
+ document.getElementById('overlayLoader').style.display = "none";
616
+ },
617
+ error: function(data){
618
+ console.log(data);
619
+ document.getElementById('overlayLoader').style.display = "none";
620
+ return false;
621
+ }
622
+ });
623
+ }
admin/partials/add-ons.php ADDED
@@ -0,0 +1,276 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <style>
2
+
3
+ .grid3 .col {
4
+ width: 48.2%;
5
+ }
6
+ .grid4 .col:nth-of-type(4n+1), .grid3 .col:nth-of-type(2n+1), .grid2 .col:nth-of-type(2n+1) {
7
+ margin-left: 0;
8
+ clear: left;
9
+ position:relative;
10
+ }
11
+ img {
12
+ max-width:100%;
13
+ }
14
+
15
+ .col {
16
+ float:left;
17
+ margin-left: 3.2%;
18
+ }
19
+ .cf7db-extension-item {
20
+ width: calc(100% - 25px);
21
+ background: #FFFFFF;
22
+ margin: 25px auto;
23
+ text-align: left;
24
+ /* height:750px; */
25
+ -webkit-box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.75);
26
+ -moz-box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.75);
27
+ box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.75);
28
+ }
29
+ .cf7db_width {
30
+ width: 175px;
31
+ vertical-align: top;
32
+ }
33
+
34
+ .cf7db-extension-item-desc {
35
+ position: relative;
36
+ padding: 21px;
37
+ padding-bottom:10px;
38
+ }
39
+ .cf7db-extension-item-heading {
40
+ margin: 0 0 10px 0;
41
+ font-weight: 500;
42
+ font-size: 16px;
43
+ }
44
+ .cf7db-extension-buy-now {
45
+ padding-bottom: 20px;
46
+ text-align: center !important;
47
+ font-weight: normal;
48
+
49
+ }
50
+ .buybtn{
51
+ display: inline-block;
52
+ padding: 13px 20px;
53
+ background: #6dc659;
54
+ color: #fff;
55
+ font-size: 16px;
56
+ font-family: Arial;
57
+ border-radius: 30px;
58
+ -webkit-border-radius: 30px;
59
+ font-weight: 700;
60
+ width: 155px;
61
+ box-sizing : border-box;
62
+ text-decoration: none;
63
+ }
64
+ .grid4 .col:nth-of-type(4n+1),
65
+ .grid3 .col:nth-of-type(2n+1),
66
+ .grid2 .col:nth-of-type(2n+1) {
67
+ margin-left: 0;
68
+ clear: left;
69
+ }
70
+ .cf7db-extension-item-feature ul{
71
+ list-style: circle;
72
+ padding-left:20px;
73
+ }
74
+ .cf7db-extension-item-feature ul li{
75
+ margin-bottom:10px;
76
+ }
77
+ </style>
78
+ <div class="wrap">
79
+ <div id="7" style="display: block; border: 1px solid rgb(204, 204, 204);">
80
+ <div style="background-color:#E4E4E4;padding:8px;font-size:15px;color:#464646;font-weight: 700;border-bottom: 1px solid #CCCCCC;">
81
+ &nbsp; Add-ons
82
+ </div>
83
+ <div style="background-color:#fff;padding:8px;">
84
+ <div class="wrap about-wrap cf7db-about-wrapp">
85
+ <h3>You may be interested in our popular Add-ons of Advanced CF7 DB</h3>
86
+ Make your site <i><b> do more </b></i> today.
87
+
88
+ <div class="cf7db-extension-wrapper grid3">
89
+ <article class="col">
90
+ <div class="cf7db-extension-item">
91
+ <div class="cf7db-extension-item-img">
92
+ <a href="https://codecanyon.net/item/schedule-report-for-advanced-cf7-db/21560647" target="_blank"><img src="https://s3.envato.com/files/242784582/590x300.jpg"></a>
93
+ </div>
94
+ <div class="cf7db-extension-item-desc">
95
+ <p class="cf7db-extension-item-heading">Schedule Report For Advanced CF7 DB </p>
96
+ <div class="cf7db-extension-item-excerpt">
97
+ <p>This plugin will do the same and send the email as per schedule set(Daily, Monthly, Weekly or Yearly) with report attachment. </p>
98
+ </div>
99
+ <div class="cf7db-extension-item-feature">
100
+ <ul>
101
+ <li>Automatically generating the CSV report Send an email with report attachment based on the scheduled time.</li>
102
+ <li>Option to create more than one scheduling event to get different enquiry form data report.</li>
103
+ <li>Option to select report datasheet columns from enquiry form field.</li>
104
+ <li>Provision to filter the data while creating the scheduled event for the particular report.</li>
105
+ <li>You can manage the email content by defining TO, FROM and email body content for each scheduling event.</li>
106
+ <li>The added schedule event will be added to WordPress cron schedule and accordingly will be fire at the scheduled time.</li>
107
+ </ul>
108
+ </div>
109
+ </div>
110
+ <div class="cf7db-extension-buy-now">
111
+ <a href="https://codecanyon.net/item/schedule-report-for-advanced-cf7-db/21560647" class="buybtn" target="_blank"><span class="buybtn-text">Get Now</span></a>
112
+ </div>
113
+ </div>
114
+ </article>
115
+ <article class="col">
116
+ <div class="cf7db-extension-item">
117
+ <div class="cf7db-extension-item-img">
118
+ <a href="https://codecanyon.net/item/advanced-cf7-db-gdpr-compliant/22386060" target="_blank"><img src="https://s3.envato.com/files/251742361/590x300.jpg"></a>
119
+ </div>
120
+ <div class="cf7db-extension-item-desc">
121
+ <p class="cf7db-extension-item-heading">Advanced CF7 DB - GDPR compliant</p>
122
+ <div class="cf7db-extension-item-excerpt">
123
+ <p>This plugin assists website and web-shop owners to comply with European privacy regulations known as GDPR.</p>
124
+ </div>
125
+ <div class="cf7db-extension-item-feature">
126
+ <ul>
127
+ <li>Compatible with the latest WordPress version 4.9.6 and later for GDPR compliances. Meets with the new regulations for the data to be handled.</li>
128
+ <li>Individual CF7 form wise settings to show the personal data on user’s request.</li>
129
+ <li>Erase only the CF7 form personal data, that are required.</li>
130
+ <li>Site owners can export a ZIP file containing a user’s personal data, including data collected by Advanced CF7 DB plugin.</li>
131
+ <li>Site owners can erase a user’s personal data, including data collected by Advanced CF7 DB plugin.</li>
132
+ </ul>
133
+ </div>
134
+ </div>
135
+ <div class="cf7db-extension-buy-now">
136
+ <a href="https://codecanyon.net/item/advanced-cf7-db-gdpr-compliant/22386060" class="buybtn" target="_blank"><span class="buybtn-text">Get Now</span></a>
137
+ </div>
138
+ </div>
139
+ </article>
140
+ <article class="col">
141
+ <div class="cf7db-extension-item">
142
+ <div class="cf7db-extension-item-img">
143
+ <a href="https://codecanyon.net/item/advanced-cf7-db-user-access-manager/22058788" target="_blank"><img src="https://s3.envato.com/files/248160195/590x300.jpg"></a>
144
+ </div>
145
+ <div class="cf7db-extension-item-desc">
146
+ <p class="cf7db-extension-item-heading"> Advanced CF7 DB - User Access Manager </p>
147
+ <div class="cf7db-extension-item-excerpt">
148
+ <p>This is an add-on of Advanced Cf7 DB, It allows administrators to securely manage access to contact form DB for all the users.Administrator can provide access to individual users OR based on user Role and accordingly user can view or edit the contact form DB. </p>
149
+ </div>
150
+ <div class="cf7db-extension-item-feature">
151
+ <ul>
152
+ <li> Provide access of contact form 7 DB to View & Update data to individual users OR based on user Role.</li>
153
+ <li>Provide access of Single/Multiple forms to single user.</li>
154
+ </ul>
155
+ </div>
156
+ </div>
157
+ <div class="cf7db-extension-buy-now">
158
+ <a href="https://codecanyon.net/item/advanced-cf7-db-user-access-manager/22058788" class="buybtn" target="_blank"><span class="buybtn-text">Get Now</span></a>
159
+ </div>
160
+ </div>
161
+ </article>
162
+ <article class="col">
163
+ <div class="cf7db-extension-item">
164
+ <div class="cf7db-extension-item-img">
165
+ <a href="https://codecanyon.net/item/advanced-cf7-db-reply-back/22478892" target="_blank"><img src="https://s3.envato.com/files/252741698/590x300.jpg"></a>
166
+ </div>
167
+ <div class="cf7db-extension-item-desc">
168
+ <p class="cf7db-extension-item-heading"> Advanced CF7 DB - Reply Back </p>
169
+ <div class="cf7db-extension-item-excerpt">
170
+ <p>This plugin fulfills the feature to reply back to the users. It is simple to use and no extra hardwork required to rely back to the users. Just a click, enter your data and submit, your user will be replied by you. Its that easy and simple to use. </p>
171
+ </div>
172
+ <div class="cf7db-extension-item-feature">
173
+ <ul>
174
+ <li>Reply back to your users.</li>
175
+ <li>Compatible with every versions of Advanced CF7 DB.</li>
176
+ <li>Easy to install and use.</li>
177
+ </ul>
178
+ </div>
179
+ </div>
180
+ <div class="cf7db-extension-buy-now">
181
+ <a href="https://codecanyon.net/item/advanced-cf7-db-reply-back/22478892" class="buybtn" target="_blank"><span class="buybtn-text">Get Now</span></a>
182
+ </div>
183
+ </div>
184
+ </article>
185
+
186
+
187
+ <table style="width: 100%;"></table>
188
+ </div>
189
+ </div>
190
+ </div>
191
+ </div>
192
+ </div>
193
+
194
+ <script>
195
+
196
+ equalheight = function(container){
197
+
198
+ var currentTallest = 0,
199
+ currentRowStart = 0,
200
+ rowDivs = new Array(),
201
+ $el,
202
+ topPosition = 0;
203
+ jQuery(container).each(function() {
204
+
205
+ jQueryel = jQuery(this);
206
+ jQuery($el).height('auto')
207
+ topPostion = jQueryel.position().top;
208
+
209
+ if (currentRowStart != topPostion) {
210
+ for (currentDiv = 0 ; currentDiv < rowDivs.length ; currentDiv++) {
211
+ rowDivs[currentDiv].height(currentTallest);
212
+ }
213
+ rowDivs.length = 0; // empty the array
214
+ currentRowStart = topPostion;
215
+ currentTallest = jQueryel.height();
216
+ rowDivs.push(jQueryel);
217
+ } else {
218
+ rowDivs.push(jQueryel);
219
+ currentTallest = (currentTallest < jQueryel.height()) ? (jQueryel.height()) : (currentTallest);
220
+ }
221
+ for (currentDiv = 0 ; currentDiv < rowDivs.length ; currentDiv++) {
222
+ rowDivs[currentDiv].height(currentTallest);
223
+ }
224
+ });
225
+ }
226
+
227
+ ;( function( $, window, document, undefined )
228
+ {
229
+ 'use strict';
230
+
231
+ var $list = $( '.grid3' ),
232
+ $items = $list.find( '.col .cf7db-extension-item-desc'),
233
+ setHeights = function()
234
+ {
235
+ // DATE Height
236
+ $items.css( 'height', 'auto' );
237
+
238
+ var perRow = Math.floor( $list.width() / $items.width() );
239
+ if( perRow == null || perRow < 2 ) return true;
240
+
241
+ for( var i = 0, j = $items.length; i < j; i += perRow )
242
+ {
243
+ var maxHeight = 0,
244
+ $row = $items.slice( i, i + perRow );
245
+
246
+ $row.each( function()
247
+ {
248
+ var itemHeight = parseInt( $( this ).outerHeight() );
249
+ if ( itemHeight > maxHeight ) maxHeight = itemHeight;
250
+ });
251
+ $row.css( 'height', maxHeight );
252
+ }
253
+ };
254
+
255
+ $(function() { setHeights(); });
256
+ $( window ).on( 'resize', setHeights );
257
+ $( window ).on( 'load', setHeights );
258
+ window.onorientationchange = setHeights;
259
+ //$list.find( 'img' ).on( 'load', setHeights );
260
+
261
+ })( jQuery, window, document );
262
+ jQuery(document).ready(function(){
263
+ // equalheight('.grid3 .col .cf7db-extension-item-desc');
264
+
265
+ jQuery(window).load(function() {
266
+
267
+ // equalheight('.grid3 .col .cf7db-extension-item-desc');
268
+ });
269
+
270
+
271
+ jQuery(window).resize(function(){
272
+ // equalheight('.grid3 .col .cf7db-extension-item-desc');
273
+ });
274
+ });
275
+
276
+ </script>
admin/partials/contact_form_listing.php CHANGED
@@ -240,13 +240,42 @@ else{
240
  //Call when any filter not active on Listing screen
241
  else{
242
 
243
- $query = "SELECT * FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE `cf7_id` = ".$fid." AND data_id IN(
244
- SELECT * FROM (
245
- SELECT data_id FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE 1 = 1 AND `cf7_id` = ".$fid."
246
- GROUP BY `data_id` ORDER BY ".$cf7d_entry_order_by." LIMIT ".$offset.",".$items_per_page."
247
- )
248
- temp_table)
249
- ORDER BY " . $cf7d_entry_order_by;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
250
  //Get total entries information
251
  $arr_total = $wpdb->get_results("SELECT data_id FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE `cf7_id` = " .$fid . " ".((!empty($search)) ? "AND `value` LIKE '%%".$search."%%'" : "")." GROUP BY `data_id`");
252
  }
240
  //Call when any filter not active on Listing screen
241
  else{
242
 
243
+ if(isset($_GET["orderby"]) && isset($_GET["order"]) && !empty($_GET["orderby"]) && !empty($_GET["order"])){
244
+ $qry = "SELECT `data_id` FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE `cf7_id` = ".$fid." AND `name` = '".$_GET['orderby']."' AND data_id IN(
245
+ SELECT * FROM (
246
+ SELECT data_id FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE 1 = 1 AND `cf7_id` = ".$fid."
247
+ GROUP BY `data_id` ORDER BY ".$cf7d_entry_order_by." LIMIT ".$offset.",".$items_per_page."
248
+ )
249
+ temp_table)
250
+ ORDER BY `value` ".$_GET["order"]."," . $cf7d_entry_order_by;
251
+ $idVals = $wpdb->get_results ( $qry );
252
+ $id_val = array();
253
+ if(!empty($idVals)){
254
+ foreach($idVals as $o_id){
255
+ $id_val[] = $o_id->data_id;
256
+ }
257
+ }
258
+
259
+ $query = "SELECT * FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE `cf7_id` = ".$fid." AND data_id IN(
260
+ SELECT * FROM (
261
+ SELECT data_id FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE 1 = 1 AND `cf7_id` = ".$fid."
262
+ GROUP BY `data_id` ORDER BY ".$cf7d_entry_order_by." LIMIT ".$offset.",".$items_per_page."
263
+ )
264
+ temp_table)
265
+ ORDER BY FIELD(`data_id`, ". implode(',',$id_val) ." )";
266
+
267
+ }
268
+ else{
269
+ $query = "SELECT * FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE `cf7_id` = ".$fid." AND data_id IN(
270
+ SELECT * FROM (
271
+ SELECT data_id FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE 1 = 1 AND `cf7_id` = ".$fid."
272
+ GROUP BY `data_id` ORDER BY ".$cf7d_entry_order_by." LIMIT ".$offset.",".$items_per_page."
273
+ )
274
+ temp_table)
275
+ ORDER BY " . $cf7d_entry_order_by;
276
+
277
+ }
278
+
279
  //Get total entries information
280
  $arr_total = $wpdb->get_results("SELECT data_id FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` WHERE `cf7_id` = " .$fid . " ".((!empty($search)) ? "AND `value` LIKE '%%".$search."%%'" : "")." GROUP BY `data_id`");
281
  }
admin/partials/developer_support.php ADDED
@@ -0,0 +1,701 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+
3
+ // If this file is called directly, abort.
4
+ if ( ! defined( 'ABSPATH' ) ) {
5
+ die;
6
+ }
7
+
8
+ /**
9
+ * Detect plugin. For use in Admin area only.
10
+ */
11
+ include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
12
+
13
+ //Check contact form class exist or not
14
+ if(!is_plugin_active('contact-form-7/wp-contact-form-7.php')){
15
+ ?><div class="notice error is-dismissible">
16
+ <p>Please activate Contact Form plugin first.</p>
17
+ </div><?php
18
+ }
19
+ else if(defined('WPCF7_VERSION') && WPCF7_VERSION < '4.6'){
20
+ ?><div class="notice error is-dismissible">
21
+ <p>Please update latest version for Contact Form plugin first.</p>
22
+ </div><?php
23
+ }
24
+ else{
25
+ // Add css & JS
26
+ wp_enqueue_style('vsz-cf7-db-admin-css');
27
+ wp_enqueue_style('jquery-datetimepicker-css');
28
+ wp_enqueue_script('jquery-ui-sortable');
29
+
30
+ wp_enqueue_script('wp_enqueue_style');
31
+
32
+ //Get all existing contact form list
33
+ $form_list = vsz_cf7_get_the_form_list();
34
+
35
+ //Get all form names which entry store in DB
36
+ global $wpdb;
37
+ $sql = "SELECT `cf7_id` FROM `".VSZ_CF7_DATA_ENTRY_TABLE_NAME."` GROUP BY `cf7_id`";
38
+ $data = $wpdb->get_results($sql,ARRAY_N);
39
+ $arr_form_id = array();
40
+ if(!empty($data)){
41
+ foreach($data as $arrVal){
42
+ $arr_form_id[] = (int)$arrVal[0];
43
+ }
44
+ }
45
+
46
+
47
+ ?>
48
+ <div class="wrap">
49
+ <h2>Developer Support</h2>
50
+ </div>
51
+ <div id="acf7db-support-page" class="wrap select-specific shortcodes">
52
+ <div class="tab">
53
+ <span class="tablinks active" onclick="openTab(event, 'acf7db_display_shortcode')">Display Enquiry</span>
54
+ <span class="tablinks" onclick="openTab(event, 'acf7db_other_shortcode')">Ban IP</span>
55
+ <span class="tablinks" onclick="openTab(event, 'acf7db_hooks')">Actions & Filters</span>
56
+ </div>
57
+ <div id="acf7db_display_shortcode" class="tabcontent active acf7db-shortcode-info" style="display:block;">
58
+ <h2>Display Enquiry</h2>
59
+ <p>You can display all contact form submission data on front end side of website to place the short codes.</p>
60
+ <p>You can place these short codes in any page OR use to "do_shortcode" function to execute from php files.</p>
61
+ <p>Ex. <code>do_shortcode( ‘[acf7db form_id='2']’ );</code></p>
62
+ <p>You can use below options in short codes:</p>
63
+ <table class="form-table bordered widefat fixed display_enquiry_table_class" cellspacing="15px" >
64
+ <thead>
65
+ <th class="table-head-type" >Parameter</th>
66
+ <th class="table-head-type">Description</th>
67
+ <th class="table-head-type">Example</th>
68
+ </thead>
69
+ <tbody>
70
+ <tr class="form-field">
71
+ <th rowspan="3" >FORM ID</th>
72
+ <td>
73
+ <p>You can add form id to display the form data.</p>
74
+ </td>
75
+ <td>
76
+ <p><code>[acf7db form_id='2']</code></p>
77
+ </td>
78
+ </tr>
79
+ <tr>
80
+ <td>
81
+ <p>You need to add multiple form ids to display multiple form data.</p>
82
+ </td>
83
+ <td>
84
+ <p><code>[acf7db form_id='2,3']</code></p>
85
+ </td>
86
+ </tr>
87
+ <tr>
88
+ <td colspan="2" >
89
+ <p>
90
+ <span class="description">
91
+ <b><u>Note:-</u></b>
92
+ <span>If you don't pass id in it or keep empty than output will have all forms data.</span>
93
+ </span>
94
+ </p>
95
+ </td>
96
+ </tr>
97
+ <tr class="form-field">
98
+ <th rowspan="2" >SHOW</th>
99
+ <td>
100
+ <p>You need to add the columns names with form ids to display on front end side.</p>
101
+ <p>This will display only 1 column for form 2 data, and all columns for form 3 data.</p>
102
+ </td>
103
+ <td>
104
+ <p><code>[acf7db form_id='2,3' show='2.your-name']</code></p>
105
+ </td>
106
+ </tr>
107
+ <tr>
108
+ <td>
109
+ <p>You can also add multiple columns to display multiple form data.</p>
110
+ <p>This will display only 1 column for form 2 and form 3 data.</p>
111
+ </td>
112
+ <td>
113
+ <p><code>[acf7db form_id='2,3' show='2.your-name, 3.your-email']</code></p>
114
+ </td>
115
+ </tr>
116
+ <tr class="form-field">
117
+ <th rowspan="2" >HIDE</th>
118
+ <td>
119
+ <p>You can specify particular columns which you won't like to display.</p>
120
+ <p>It means that to display all columns except 1 column ("your-name") for form 2 data, and all columns for form 3 data.</p>
121
+ </td>
122
+ <td>
123
+ <p><code>[acf7db form_id='2,3' hide='2.your-name']</code></p>
124
+ </td>
125
+ </tr>
126
+ <tr>
127
+ <td>
128
+ <p>You can also add multiple columns to don't display multiple form data.</p>
129
+ <p>This will display all columns except 1 column ("your-name") for form 2 data, and all columns except 1 column ("your-email") for form 3 data.</p>
130
+ </td>
131
+ <td>
132
+ <p><code>[acf7db form_id='2,3' hide='2.your-name, 3.your-email']</code></p>
133
+ </td>
134
+ </tr>
135
+ <tr class="form-field">
136
+ <th>SEARCH</th>
137
+ <td>
138
+ <p>You can search by keyword.</p>
139
+ <p>It will display all submitted data with value like "test@gmail.com".</p>
140
+ </td>
141
+ <td>
142
+ <p><code>[acf7db form_id='2,3' search='test@gmail.com']</code></p>
143
+ </td>
144
+ </tr>
145
+ <tr class="form-field">
146
+ <th rowspan="3">DATE</th>
147
+ <td colspan="2">
148
+ <p>You can search by date using date parameters.</p>
149
+ <p>It is required to pass "start-end date". If any one date will be mentioned then it doesn't work.</p>
150
+ </td>
151
+ </tr>
152
+ <tr>
153
+ <td>
154
+ <p>It's means that to display all submitted data with submit time in between "01/09/2017" and "01/10/2018" .</p>
155
+ </td>
156
+ <td>
157
+ <p><code>[acf7db form_id='2,3' start-date="01/09/2017" end-date="01/10/2018"]</code></p>
158
+ </td>
159
+ </tr>
160
+ <tr>
161
+ <td colspan="2">
162
+ <p>
163
+ <span class="description">
164
+ <b><u>Note:-</u></b>
165
+ <span>This parameter will have effect if start date and end date both given with proper format.</span>
166
+ <span>Both date should be in "dd/mm/yyyy" format.</span>
167
+ </span>
168
+ </p>
169
+ </td>
170
+ </tr>
171
+ <tr class="form-field">
172
+ <th rowspan="2" >ID</th>
173
+ <td >
174
+ <p>You can add id to the table tag of output data.</p>
175
+ <p>This will add id to the table.</p>
176
+ </td>
177
+ <td>
178
+ <p><code>[acf7db form_id='2,3' id='my-table-id']</code></p>
179
+ </td>
180
+ </tr>
181
+ <tr>
182
+ <td colspan="2">
183
+ <p>
184
+ <span class="description">
185
+ <b><u>Note:-</u></b>
186
+ <span>This parameter will have effect only when format "Table" is given.</span>
187
+ </span>
188
+ </p>
189
+ </td>
190
+ </tr>
191
+ <tr class="form-field">
192
+ <th rowspan="2">CLASS</th>
193
+ <td>
194
+ <p>You can add classes to the table tag of output data.</p>
195
+ <p>This will add classes to the table.</p>
196
+ </td>
197
+ <td>
198
+ <p><code>[acf7db form_id='2,3' class='form-table-class1 form-table-class2']</code></p>
199
+ </td>
200
+ </tr>
201
+ <tr>
202
+ <td colspan="2">
203
+ <p>
204
+ <span class="description">
205
+ <b><u>Note:-</u></b>
206
+ <span>This parameter will have effect only when format "Table" is given.</span>
207
+ </span>
208
+ </p>
209
+ </td>
210
+ </tr>
211
+ <tr class="form-field">
212
+ <th rowspan="2">STYLE</th>
213
+ <td>
214
+ <p>You can add style to the table tag of output data.</p>
215
+ <p>This will add style to the table.</p>
216
+ </td>
217
+ <td>
218
+ <p><code>[acf7db form_id='2,3' style='max-width=400px;']</code></p>
219
+ </td>
220
+ </tr>
221
+ <tr>
222
+ <td colspan="2">
223
+ <p>
224
+ <span class="description">
225
+ <b><u>Note:-</u></b>
226
+ <span>This parameter will have effect only when format "Table" is given.</span>
227
+ <span>Style will be added as inline style.</span>
228
+ </span>
229
+ </p>
230
+ </td>
231
+ </tr>
232
+ <tr class="form-field">
233
+ <th rowspan="3">HEADER</th>
234
+ <td>
235
+ <p>You can add custom header which will be displayed as title for every table. Headers must be used with form id to to affect the output data.</p>
236
+ <p>This will display "Form Header Text 1" as title for form 2 data. Form 3 data title will be form name.</p>
237
+ </td>
238
+ <td>
239
+ <p><code>[acf7db form_id='2,3' header='2.Form Header Text 1']</code></p>
240
+ </td>
241
+ </tr>
242
+ <tr>
243
+ <td>
244
+ <p>You can add multiple columns which will be displayed for multiple form data.</p>
245
+ <p>This will display "Form Header Text 1" as title for form 2 data and "Form Header Text 2" as title for Form 3 data.</p>
246
+ </td>
247
+ <td>
248
+ <p><code>[acf7db form_id='2,3' header='2.Form Header Text 1, 3.Form Header Text 2']</code></p>
249
+ </td>
250
+ </tr>
251
+ <tr>
252
+ <td colspan="2">
253
+ <p>
254
+ <span class="description">
255
+ <b><u>Note:-</u></b>
256
+ <span>This parameter will have effect only when format "Table" is given.</span>
257
+ <span>If header is not passed than it will use form title.</span>
258
+ </span>
259
+ </p>
260
+ </td>
261
+ </tr>
262
+ <tr class="form-field">
263
+ <th rowspan="3">DISPLAY</th>
264
+ <td colspan="2">
265
+ <p>You can select the output type from following types :</p>
266
+ </td>
267
+ </tr>
268
+ <tr>
269
+ <td>
270
+ <p>This will output the short code as a <b>table</b> structure.</p>
271
+ </td>
272
+ <td>
273
+ <p><code>[acf7db form_id='2,3' display='table']</code></p>
274
+ </td>
275
+ </tr>
276
+ <tr>
277
+ <td>
278
+ <p>This will output the short code as a data <b>count</b> only.</p>
279
+ </td>
280
+ <td>
281
+ <p><code>[acf7db form_id='2,3' display='count']</code></p>
282
+ </td>
283
+ </tr>
284
+ </tbody>
285
+ </table>
286
+ </div>
287
+ <div id="acf7db_other_shortcode" class="tabcontent">
288
+ <h2>Ban IP</h2>
289
+ <p>You can use below short code to skip saving of IP address :</p>
290
+ <table class="form-table striped bordered widefat fixed" cellspacing="15px" >
291
+ <tr class="form-field">
292
+ <th>Skip Saving Of IP Address</th>
293
+ <td>
294
+ <p><code>[cf7-db-display-ip]</code></p>
295
+ <p>OR <br> <code>do_shortcode( ‘[cf7-db-display-ip]’ );</code></p>
296
+ <p><span class="description"><b><u>Note</u></b><br>You need to add this code in function file to skip saving IP address.</span></p>
297
+ </td>
298
+ </tr>
299
+ </table>
300
+ </div>
301
+ <div id="acf7db_hooks" class="tabcontent">
302
+ <h2>Actions & Filters</h2>
303
+ <p>Here a list of actions and filters added is given.</p>
304
+ <p>You can use below hooks as per your requirement at your own risk.</p>
305
+ <h3>Actions</h3>
306
+ <table class="form-table striped bordered widefat fixed action-tbl" cellspacing="15px" >
307
+ <tr class="form-field">
308
+ <th>vsz_cf7_display_settings_btn</th>
309
+ <td>
310
+ <p><strong>Parameters : </strong>$fid</p>
311
+ <p>You can change "Display Settings" using this action.</p>
312
+ <p><?php
313
+ $code = 'add_action("vsz_cf7_display_settings_btn","vsz_cf7_display_settings_btn_callback",10,1);
314
+ function vsz_cf7_display_settings_btn_callback($fid){
315
+ // Your custom coding here
316
+
317
+ }';
318
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
319
+ ?></p>
320
+ </td>
321
+ </tr>
322
+ <tr class="form-field">
323
+ <th>vsz_cf7_after_datesection_btn</th>
324
+ <td>
325
+ <p><strong>Parameters : </strong>$fid</p>
326
+ <p>Using this action,you can add custom coding after date section in listing screen.</p>
327
+ <p><?php
328
+ $code = '
329
+ add_action("vsz_cf7_after_datesection_btn","vsz_cf7_after_datesection_btn_callback",10,1);
330
+ function vsz_cf7_after_datesection_btn_callback($fid){
331
+ // Your custom coding here
332
+
333
+ }';
334
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
335
+ ?></p>
336
+ </td>
337
+ </tr>
338
+ <tr class="form-field">
339
+ <th>vsz_cf7_after_bulkaction_btn</th>
340
+ <td>
341
+ <p><strong>Parameters : </strong>$fid</p>
342
+ <p>Using this action,you can add custom coding after bulk action section in listing screen.</p>
343
+ <p><?php
344
+ $code = 'add_action("vsz_cf7_after_bulkaction_btn","vsz_cf7_after_bulkaction_btn_callback",10,1);
345
+ function vsz_cf7_after_bulkaction_btn_callback($fid){
346
+ // Your custom coding here
347
+
348
+ }';
349
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
350
+ ?></p>
351
+ </td>
352
+ </tr>
353
+ <tr class="form-field">
354
+ <th>vsz_cf7_admin_after_heading_field</th>
355
+ <td>
356
+ <p><strong>Parameters : </strong>-</p>
357
+ <p>Using this action,you can display table header in edit column.</p>
358
+ <p><?php
359
+ $code = 'add_action("vsz_cf7_admin_after_heading_field","vsz_cf7_admin_after_heading_field_callback",10);
360
+ function vsz_cf7_admin_after_heading_field_callback(){
361
+ // Your custom coding here
362
+
363
+ }';
364
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
365
+ ?></p>
366
+ </td>
367
+ </tr>
368
+ <tr class="form-field">
369
+ <th>vsz_cf7_admin_after_body_field</th>
370
+ <td>
371
+ <p><strong>Parameters : </strong>$fid, $row_id</p>
372
+ <p>Using this action, you can add custom coding before edit icon.</p>
373
+ <p><?php
374
+ $code = 'add_action("vsz_cf7_admin_after_body_field","vsz_cf7_admin_after_body_field_callback",10,2);
375
+ function vsz_cf7_admin_after_body_field_callback($fid,$row_id){
376
+ // Your custom coding here
377
+
378
+ }';
379
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
380
+ ?></p>
381
+ </td>
382
+ </tr>
383
+ <tr class="form-field">
384
+ <th>vsz_cf7_after_admin_form</th>
385
+ <td>
386
+ <p><strong>Parameters : </strong>$fid</p>
387
+ <p>Using this action, you can add custom coding after whole form.</p>
388
+ <p><?php
389
+ $code = 'add_action("vsz_cf7_after_admin_form","vsz_cf7_after_admin_form_callback",10,1);
390
+ function vsz_cf7_after_admin_form_callback($fid){
391
+ // Your custom coding here
392
+
393
+ }';
394
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
395
+ ?></p>
396
+ </td>
397
+ </tr>
398
+ <tr class="form-field">
399
+ <th>vsz_cf7_before_insert_db</th>
400
+ <td>
401
+ <p><strong>Parameters : </strong>$contact_form</p>
402
+ <p>Using this action, you can customize form data before insert in data base.</p>
403
+ <p><?php
404
+ $code = 'add_action("vsz_cf7_before_insert_db","vsz_cf7_before_insert_db_callback",10,1);
405
+ function vsz_cf7_before_insert_db_callback($contact_form){
406
+ // Your custom coding here
407
+
408
+ }';
409
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
410
+ ?></p>
411
+ </td>
412
+ </tr>
413
+ <tr class="form-field">
414
+ <th>vsz_cf7_after_insert_db</th>
415
+ <td>
416
+ <p><strong>Parameters : </strong>$contact_form, $cf7_id, $data_id</p>
417
+ <p>Using this action, you can customize process after insert value in data base.</p>
418
+ <p><?php
419
+ $code = 'add_action("vsz_cf7_after_insert_db","vsz_cf7_after_insert_db_callback",10,3);
420
+ function vsz_cf7_after_insert_db_callback($fid,$cf7_id,$data_id){
421
+ // Your custom coding here
422
+
423
+ }';
424
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
425
+ ?></p>
426
+ </td>
427
+ </tr>
428
+ </table>
429
+ <h3>Filters</h3>
430
+ <table class="form-table striped bordered widefat fixed action-tbl" cellspacing="15px" >
431
+ <tr class="form-field">
432
+ <th>vsz_cf7_entry_order_by</th>
433
+ <td>
434
+ <p><strong>Parameters : </strong>String</p>
435
+ <p>You can change the order of fields using this filter.</p>
436
+ <p><?php
437
+ $code = 'add_filter("vsz_cf7_entry_order_by","vsz_cf7_entry_order_by_callback",10,1);
438
+ function vsz_cf7_entry_order_by_callback($order){
439
+ // Your custom coding here
440
+
441
+ return $order;
442
+ }';
443
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
444
+ ?></p>
445
+ </td>
446
+ </tr>
447
+ <tr class="form-field">
448
+ <th>vsz_cf7_entry_per_page</th>
449
+ <td>
450
+ <p><strong>Parameters : </strong>Integer (Default: 10)</p>
451
+ <p>You can change the number of entries per page using this filter.</p>
452
+ <p><?php
453
+ $code = 'add_filter("vsz_cf7_entry_per_page","vsz_cf7_entry_per_page_callback",10,1);
454
+ function vsz_cf7_entry_per_page_callback($num){
455
+ // Your custom coding here
456
+
457
+ return $num;
458
+ }';
459
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
460
+ ?></p>
461
+ </td>
462
+ </tr>
463
+ <tr class="form-field">
464
+ <th>vsz_display_character_count</th>
465
+ <td>
466
+ <p><strong>Parameters : </strong>Integer (Default: 30)</p>
467
+ <p>This filter defines how many characters will be displayed in listing screen. You can change the number of characters displayed using this filter.</p>
468
+ <p><?php
469
+ $code = 'add_filter("vsz_display_character_count","vsz_display_character_count_callback",10,1);
470
+ function vsz_display_character_count_callback($count){
471
+ // Your custom coding here
472
+
473
+ return $count;
474
+ }';
475
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
476
+ ?></p>
477
+ </td>
478
+ </tr>
479
+ <tr class="form-field">
480
+ <th>vsz_cf7_not_editable_fields</th>
481
+ <td>
482
+ <p><strong>Parameters : </strong>Array</p>
483
+ <p>You can change non editable fields list using this filter.</p>
484
+ <p><?php
485
+ $code = 'add_filter("vsz_cf7_not_editable_fields","vsz_cf7_not_editable_fields_callback",10,1);
486
+ function vsz_cf7_not_editable_fields_callback($arr){
487
+ // Your custom coding here
488
+
489
+ return $arr;
490
+ }';
491
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
492
+ ?></p>
493
+ </td>
494
+ </tr>
495
+ <tr class="form-field">
496
+ <th>vsz_cf7_entry_actions</th>
497
+ <td>
498
+ <p><strong>Parameters : </strong>Array</p>
499
+ <p>You can add/remove any option for "Bulk Action" in listing screen.</p>
500
+ <p><?php
501
+ $code = 'add_filter("vsz_cf7_entry_actions","vsz_cf7_entry_actions_callback",10,1);
502
+ function vsz_cf7_entry_actions_callback($arr){
503
+ // Your custom coding here
504
+
505
+ return $arr;
506
+ }';
507
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
508
+ ?></p>
509
+ </td>
510
+ </tr>
511
+ <tr class="form-field">
512
+ <th>vsz_cf7_import_date_format</th>
513
+ <td>
514
+ <p><strong>Parameters : </strong>-</p>
515
+ <p>You can change the date format to import functionality with this filter.</p>
516
+ <p><?php
517
+ $code = 'add_filter("vsz_cf7_import_date_format","vsz_cf7_import_date_format_callback",10);
518
+ function vsz_cf7_import_date_format_callback(){
519
+ // Your custom coding here
520
+ $format = "Y-m-d";
521
+
522
+ return $format;
523
+ }';
524
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
525
+ ?></p>
526
+ </td>
527
+ </tr>
528
+ <tr class="form-field">
529
+ <th>vsz_cf7_unwanted_form_data_submission</th>
530
+ <td>
531
+ <p><strong>Parameters : </strong>Array</p>
532
+ <p>You can exclude contact form ids using this filter and those form entries won't be inserted in advanced contact form database.</p>
533
+ <p><?php
534
+ $code = 'add_filter("vsz_cf7_unwanted_form_data_submission","vsz_cf7_unwanted_form_data_submission_callback",10,1);
535
+ function vsz_cf7_unwanted_form_data_submission_callback($arr){
536
+ // Your custom coding here
537
+
538
+ return $arr;
539
+ }';
540
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
541
+ ?></p>
542
+ </td>
543
+ </tr>
544
+ <tr class="form-field">
545
+ <th>vsz_cf7_modify_form_before_insert_data</th>
546
+ <td>
547
+ <p><strong>Parameters : </strong>$contact_form</p>
548
+ <p>You can change the entry data before it saved to database.</p>
549
+ <p><?php
550
+ $code = 'add_filter("vsz_cf7_modify_form_before_insert_data","vsz_cf7_modify_form_before_insert_data_callback",10,1);
551
+ function vsz_cf7_modify_form_before_insert_data_callback($contact_form){
552
+ // Your custom coding here
553
+
554
+ return $contact_form;
555
+ }';
556
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
557
+ ?></p>
558
+ </td>
559
+ </tr>
560
+ <tr class="form-field">
561
+ <th>vsz_cf7_posted_data</th>
562
+ <td>
563
+ <p><strong>Parameters : </strong>$posted_data</p>
564
+ <p>This filter provided to the users to modify the data.Below is the process that can be performed</p>
565
+ <p>1) Add new data to the CF7 Form<br>
566
+ 2) Can modify the existing form submitted data<br>
567
+ 3) Can unset or remove the existing form data of CF7</p>
568
+ <p><?php
569
+ $code = 'add_filter("vsz_cf7_posted_data","vsz_cf7_posted_data_callback",10,1);
570
+ function vsz_cf7_posted_data_callback($posted_data){
571
+ // Your custom coding here
572
+
573
+ return $posted_data;
574
+ }';
575
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
576
+ ?></p>
577
+ </td>
578
+ </tr>
579
+ <tr class="form-field">
580
+ <th>vsz_cf7_no_save_fields</th>
581
+ <td>
582
+ <p><strong>Parameters : </strong>Array</p>
583
+ <p>You can exclude contact form ids using this filter and those form field's entry won't be inserted in advanced contact form database.</p>
584
+ <p><?php
585
+ $code = 'add_filter("vsz_cf7_no_save_fields","vsz_cf7_no_save_fields_callback",10,1);
586
+ function vsz_cf7_no_save_fields_callback($arr){
587
+ // Your custom coding here
588
+
589
+ return $arr;
590
+ }';
591
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
592
+ ?></p>
593
+ </td>
594
+ </tr>
595
+ <tr class="form-field">
596
+ <th>cf7d_entry_value</th>
597
+ <td>
598
+ <p><strong>Parameters : </strong>Value,Key</p>
599
+ <p>You can modify specific field value using this filter.</p>
600
+ <p><?php
601
+ $code = 'add_filter("cf7d_entry_value","cf7d_entry_value_callback",10,2);
602
+ function cf7d_entry_value_callback($val,$key){
603
+ // Your custom coding here
604
+
605
+ return $val;
606
+ }';
607
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
608
+ ?></p>
609
+ </td>
610
+ </tr>
611
+ <tr class="form-field">
612
+ <th>vsz_cf7_admin_fields</th>
613
+ <td>
614
+ <p><strong>Parameters : </strong>Fields, fid</p>
615
+ <p>You can modify fields displaying in listing screen using this filter.</p>
616
+ <p>
617
+ <span class="code">
618
+ <pre><?php
619
+ $code = 'add_filter("vsz_cf7_admin_fields","vsz_cf7_admin_fields_callback",10,2);
620
+ function vsz_cf7_admin_fields_callback($fields,$fid){
621
+ // Your custom coding here
622
+
623
+ return $fields;
624
+ }';
625
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
626
+ ?></p>
627
+ </td>
628
+ </tr>
629
+ <tr class="form-field">
630
+ <th>vsz_cf7_get_current_action</th>
631
+ <td>
632
+ <p><strong>Parameters : </strong>$current_action</p>
633
+ <p>If you have added additional option in "Bulk Actions", then you need to do custom coding for that additional option over here.</p>
634
+ <p><?php
635
+ $code = 'add_filter("vsz_cf7_get_current_action","vsz_cf7_get_current_action_callback",10,1);
636
+ function vsz_cf7_get_current_action_callback($current_action){
637
+ // Your custom coding here
638
+
639
+ return $current_action;
640
+ }';
641
+ echo "<div class='code-php'>".get_highlighted_code($code)."</div>";
642
+ ?></p>
643
+ </td>
644
+ </tr>
645
+ </table>
646
+ </div>
647
+
648
+ </div>
649
+ <script>
650
+ function openTab(evt, cityName) {
651
+ // Declare all variables
652
+ var i, tabcontent, tablinks;
653
+
654
+ // Get all elements with class="tabcontent" and hide them
655
+ tabcontent = document.getElementsByClassName("tabcontent");
656
+ for (i = 0; i < tabcontent.length; i++) {
657
+ tabcontent[i].style.display = "none";
658
+ }
659
+
660
+ // Get all elements with class="tablinks" and remove the class "active"
661
+ tablinks = document.getElementsByClassName("tablinks");
662
+ for (i = 0; i < tablinks.length; i++) {
663
+ tablinks[i].className = tablinks[i].className.replace(" active", "");
664
+ }
665
+
666
+ // Show the current tab, and add an "active" class to the button that opened the tab
667
+ document.getElementById(cityName).style.display = "block";
668
+ evt.currentTarget.className += " active";
669
+ }
670
+ </script>
671
+ <script type="text/javascript">//<![CDATA[
672
+ (function () {
673
+ function htmlEscape(s) {
674
+ return s
675
+ .replace(/&/g, '&amp;')
676
+ .replace(/</g, '&lt;')
677
+ .replace(/>/g, '&gt;');
678
+ }
679
+
680
+ // this page's own source code
681
+ var quineHtml = htmlEscape(
682
+ '<!DOCTYPE html>\n<html>\n' +
683
+ document.documentElement.innerHTML +
684
+ '\n<\/html>\n');
685
+
686
+
687
+
688
+ // insert into PRE
689
+ jQuery("pre").each(function(){
690
+ // Highlight the operative parts:
691
+ var htmlTag = jQuery(this).html().replace(
692
+ /&lt;script src[\s\S]*?&gt;&lt;\/script&gt;|&lt;!--\?[\s\S]*?--&gt;|&lt;pre\b[\s\S]*?&lt;\/pre&gt;/g,
693
+ '<span class="operative">$&<\/span>');
694
+ jQuery(this).html = htmlTag;
695
+ });
696
+
697
+ // document.getElementById("quine").innerHTML = quineHtml;
698
+ })();
699
+ //]]>
700
+ </script><?php
701
+ }
advanced-cf7-db.php CHANGED
@@ -9,7 +9,7 @@
9
  * Plugin Name: Advanced CF7 DB
10
  * Plugin URI: https://wordpress.org/plugins/advanced-cf7-db/
11
  * Description: Save all contact form 7 submitted data to the database, View, Export, ordering, Change field labels, Import data using CSV very easily.
12
- * Version: 1.4.4
13
  * Author: Vsourz Digital
14
  * Author URI: https://www.vsourz.com
15
  * License: GPL-2.0+
@@ -23,7 +23,7 @@ if ( ! defined( 'WPINC' ) ) {
23
  die;
24
  }
25
  global $vsz_cf7db_current_version;
26
- $vsz_cf7db_current_version = '1.4.4';
27
  /**
28
  * Defining all the table names and setting their prefix here
29
  */
9
  * Plugin Name: Advanced CF7 DB
10
  * Plugin URI: https://wordpress.org/plugins/advanced-cf7-db/
11
  * Description: Save all contact form 7 submitted data to the database, View, Export, ordering, Change field labels, Import data using CSV very easily.
12
+ * Version: 1.5.0
13
  * Author: Vsourz Digital
14
  * Author URI: https://www.vsourz.com
15
  * License: GPL-2.0+
23
  die;
24
  }
25
  global $vsz_cf7db_current_version;
26
+ $vsz_cf7db_current_version = '1.5.0';
27
  /**
28
  * Defining all the table names and setting their prefix here
29
  */
includes/class-advanced-cf7-db.php CHANGED
@@ -128,7 +128,7 @@ class Advanced_Cf7_Db {
128
  * The class responsible for defining all actions that occur in the public-facing
129
  * side of the site.
130
  */
131
-
132
 
133
  $this->loader = new Advanced_Cf7_Db_Loader();
134
 
@@ -225,8 +225,14 @@ class Advanced_Cf7_Db {
225
  * @access private
226
  */
227
  private function define_public_hooks() {
 
 
228
 
 
 
229
 
 
 
230
 
231
  }
232
 
128
  * The class responsible for defining all actions that occur in the public-facing
129
  * side of the site.
130
  */
131
+ require_once plugin_dir_path( dirname( __FILE__ ) ) . 'public/class-advanced-cf7-db-public.php';
132
 
133
  $this->loader = new Advanced_Cf7_Db_Loader();
134
 
225
  * @access private
226
  */
227
  private function define_public_hooks() {
228
+
229
+ $plugin_public = new Advanced_Cf7_Db_Public( $this->get_plugin_name(), $this->get_version() );
230
 
231
+ $this->loader->add_action( 'admin_enqueue_scripts', $plugin_public, 'enqueue_styles' );
232
+ $this->loader->add_action( 'admin_enqueue_scripts', $plugin_public, 'enqueue_scripts' );
233
 
234
+ // Register shortcode
235
+ $this->loader->add_action( 'after_setup_theme',$plugin_public,'vsz_acf7_db_register_shortcode' );
236
 
237
  }
238
 
includes/geshi.php ADDED
@@ -0,0 +1,4758 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /**
3
+ * GeSHi - Generic Syntax Highlighter
4
+ *
5
+ * The GeSHi class for Generic Syntax Highlighting. Please refer to the
6
+ * documentation at http://qbnz.com/highlighter/documentation.php for more
7
+ * information about how to use this class.
8
+ *
9
+ * For changes, release notes, TODOs etc, see the relevant files in the docs/
10
+ * directory.
11
+ *
12
+ * This file is part of GeSHi.
13
+ *
14
+ * GeSHi is free software; you can redistribute it and/or modify
15
+ * it under the terms of the GNU General Public License as published by
16
+ * the Free Software Foundation; either version 2 of the License, or
17
+ * (at your option) any later version.
18
+ *
19
+ * GeSHi is distributed in the hope that it will be useful,
20
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
21
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22
+ * GNU General Public License for more details.
23
+ *
24
+ * You should have received a copy of the GNU General Public License
25
+ * along with GeSHi; if not, write to the Free Software
26
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27
+ *
28
+ * @package geshi
29
+ * @subpackage core
30
+ * @author Nigel McNie <nigel@geshi.org>, Benny Baumann <BenBE@omorphia.de>
31
+ * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2014 Benny Baumann
32
+ * @license http://gnu.org/copyleft/gpl.html GNU GPL
33
+ */
34
+
35
+ //
36
+ // GeSHi Constants
37
+ // You should use these constant names in your programs instead of
38
+ // their values - you never know when a value may change in a future
39
+ // version
40
+ //
41
+
42
+ /** The version of this GeSHi file */
43
+ define('GESHI_VERSION', '1.0.9.0');
44
+
45
+ // Define the root directory for the GeSHi code tree
46
+ if (!defined('GESHI_ROOT')) {
47
+ /** The root directory for GeSHi */
48
+ define('GESHI_ROOT', dirname(__FILE__) . DIRECTORY_SEPARATOR);
49
+ }
50
+ /** The language file directory for GeSHi
51
+ @access private */
52
+ define('GESHI_LANG_ROOT', GESHI_ROOT . 'geshi' . DIRECTORY_SEPARATOR);
53
+
54
+ // Define if GeSHi should be paranoid about security
55
+ if (!defined('GESHI_SECURITY_PARANOID')) {
56
+ /** Tells GeSHi to be paranoid about security settings */
57
+ define('GESHI_SECURITY_PARANOID', false);
58
+ }
59
+
60
+ // Line numbers - use with enable_line_numbers()
61
+ /** Use no line numbers when building the result */
62
+ define('GESHI_NO_LINE_NUMBERS', 0);
63
+ /** Use normal line numbers when building the result */
64
+ define('GESHI_NORMAL_LINE_NUMBERS', 1);
65
+ /** Use fancy line numbers when building the result */
66
+ define('GESHI_FANCY_LINE_NUMBERS', 2);
67
+
68
+ // Container HTML type
69
+ /** Use nothing to surround the source */
70
+ define('GESHI_HEADER_NONE', 0);
71
+ /** Use a "div" to surround the source */
72
+ define('GESHI_HEADER_DIV', 1);
73
+ /** Use a "pre" to surround the source */
74
+ define('GESHI_HEADER_PRE', 2);
75
+ /** Use a pre to wrap lines when line numbers are enabled or to wrap the whole code. */
76
+ define('GESHI_HEADER_PRE_VALID', 3);
77
+ /**
78
+ * Use a "table" to surround the source:
79
+ *
80
+ * <table>
81
+ * <thead><tr><td colspan="2">$header</td></tr></thead>
82
+ * <tbody><tr><td><pre>$linenumbers</pre></td><td><pre>$code></pre></td></tr></tbody>
83
+ * <tfooter><tr><td colspan="2">$footer</td></tr></tfoot>
84
+ * </table>
85
+ *
86
+ * this is essentially only a workaround for Firefox, see sf#1651996 or take a look at
87
+ * https://bugzilla.mozilla.org/show_bug.cgi?id=365805
88
+ * @note when linenumbers are disabled this is essentially the same as GESHI_HEADER_PRE
89
+ */
90
+ define('GESHI_HEADER_PRE_TABLE', 4);
91
+
92
+ // Capatalisation constants
93
+ /** Lowercase keywords found */
94
+ define('GESHI_CAPS_NO_CHANGE', 0);
95
+ /** Uppercase keywords found */
96
+ define('GESHI_CAPS_UPPER', 1);
97
+ /** Leave keywords found as the case that they are */
98
+ define('GESHI_CAPS_LOWER', 2);
99
+
100
+ // Link style constants
101
+ /** Links in the source in the :link state */
102
+ define('GESHI_LINK', 0);
103
+ /** Links in the source in the :hover state */
104
+ define('GESHI_HOVER', 1);
105
+ /** Links in the source in the :active state */
106
+ define('GESHI_ACTIVE', 2);
107
+ /** Links in the source in the :visited state */
108
+ define('GESHI_VISITED', 3);
109
+
110
+ // Important string starter/finisher
111
+ // Note that if you change these, they should be as-is: i.e., don't
112
+ // write them as if they had been run through htmlentities()
113
+ /** The starter for important parts of the source */
114
+ define('GESHI_START_IMPORTANT', '<BEGIN GeSHi>');
115
+ /** The ender for important parts of the source */
116
+ define('GESHI_END_IMPORTANT', '<END GeSHi>');
117
+
118
+ /**#@+
119
+ * @access private
120
+ */
121
+ // When strict mode applies for a language
122
+ /** Strict mode never applies (this is the most common) */
123
+ define('GESHI_NEVER', 0);
124
+ /** Strict mode *might* apply, and can be enabled or
125
+ disabled by {@link GeSHi->enable_strict_mode()} */
126
+ define('GESHI_MAYBE', 1);
127
+ /** Strict mode always applies */
128
+ define('GESHI_ALWAYS', 2);
129
+
130
+ // Advanced regexp handling constants, used in language files
131
+ /** The key of the regex array defining what to search for */
132
+ define('GESHI_SEARCH', 0);
133
+ /** The key of the regex array defining what bracket group in a
134
+ matched search to use as a replacement */
135
+ define('GESHI_REPLACE', 1);
136
+ /** The key of the regex array defining any modifiers to the regular expression */
137
+ define('GESHI_MODIFIERS', 2);
138
+ /** The key of the regex array defining what bracket group in a
139
+ matched search to put before the replacement */
140
+ define('GESHI_BEFORE', 3);
141
+ /** The key of the regex array defining what bracket group in a
142
+ matched search to put after the replacement */
143
+ define('GESHI_AFTER', 4);
144
+ /** The key of the regex array defining a custom keyword to use
145
+ for this regexp's html tag class */
146
+ define('GESHI_CLASS', 5);
147
+
148
+ /** Used in language files to mark comments */
149
+ define('GESHI_COMMENTS', 0);
150
+
151
+ /** some old PHP / PCRE subpatterns only support up to xxx subpatterns in
152
+ regular expressions. Set this to false if your PCRE lib is up to date
153
+ @see GeSHi->optimize_regexp_list()
154
+ **/
155
+ define('GESHI_MAX_PCRE_SUBPATTERNS', 500);
156
+ /** it's also important not to generate too long regular expressions
157
+ be generous here... but keep in mind, that when reaching this limit we
158
+ still have to close open patterns. 12k should do just fine on a 16k limit.
159
+ @see GeSHi->optimize_regexp_list()
160
+ **/
161
+ define('GESHI_MAX_PCRE_LENGTH', 12288);
162
+
163
+ //Number format specification
164
+ /** Basic number format for integers */
165
+ define('GESHI_NUMBER_INT_BASIC', 1); //Default integers \d+
166
+ /** Enhanced number format for integers like seen in C */
167
+ define('GESHI_NUMBER_INT_CSTYLE', 2); //Default C-Style \d+[lL]?
168
+ /** Number format to highlight binary numbers with a suffix "b" */
169
+ define('GESHI_NUMBER_BIN_SUFFIX', 16); //[01]+[bB]
170
+ /** Number format to highlight binary numbers with a prefix % */
171
+ define('GESHI_NUMBER_BIN_PREFIX_PERCENT', 32); //%[01]+
172
+ /** Number format to highlight binary numbers with a prefix 0b (C) */
173
+ define('GESHI_NUMBER_BIN_PREFIX_0B', 64); //0b[01]+
174
+ /** Number format to highlight octal numbers with a leading zero */
175
+ define('GESHI_NUMBER_OCT_PREFIX', 256); //0[0-7]+
176
+ /** Number format to highlight octal numbers with a prefix 0o (logtalk) */
177
+ define('GESHI_NUMBER_OCT_PREFIX_0O', 512); //0[0-7]+
178
+ /** Number format to highlight octal numbers with a leading @ (Used in HiSofts Devpac series). */
179
+ define('GESHI_NUMBER_OCT_PREFIX_AT', 1024); //@[0-7]+
180
+ /** Number format to highlight octal numbers with a suffix of o */
181
+ define('GESHI_NUMBER_OCT_SUFFIX', 2048); //[0-7]+[oO]
182
+ /** Number format to highlight hex numbers with a prefix 0x */
183
+ define('GESHI_NUMBER_HEX_PREFIX', 4096); //0x[0-9a-fA-F]+
184
+ /** Number format to highlight hex numbers with a prefix $ */
185
+ define('GESHI_NUMBER_HEX_PREFIX_DOLLAR', 8192); //$[0-9a-fA-F]+
186
+ /** Number format to highlight hex numbers with a suffix of h */
187
+ define('GESHI_NUMBER_HEX_SUFFIX', 16384); //[0-9][0-9a-fA-F]*h
188
+ /** Number format to highlight floating-point numbers without support for scientific notation */
189
+ define('GESHI_NUMBER_FLT_NONSCI', 65536); //\d+\.\d+
190
+ /** Number format to highlight floating-point numbers without support for scientific notation */
191
+ define('GESHI_NUMBER_FLT_NONSCI_F', 131072); //\d+(\.\d+)?f
192
+ /** Number format to highlight floating-point numbers with support for scientific notation (E) and optional leading zero */
193
+ define('GESHI_NUMBER_FLT_SCI_SHORT', 262144); //\.\d+e\d+
194
+ /** Number format to highlight floating-point numbers with support for scientific notation (E) and required leading digit */
195
+ define('GESHI_NUMBER_FLT_SCI_ZERO', 524288); //\d+(\.\d+)?e\d+
196
+ //Custom formats are passed by RX array
197
+
198
+ // Error detection - use these to analyse faults
199
+ /** No sourcecode to highlight was specified
200
+ * @deprecated
201
+ */
202
+ define('GESHI_ERROR_NO_INPUT', 1);
203
+ /** The language specified does not exist */
204
+ define('GESHI_ERROR_NO_SUCH_LANG', 2);
205
+ /** GeSHi could not open a file for reading (generally a language file) */
206
+ define('GESHI_ERROR_FILE_NOT_READABLE', 3);
207
+ /** The header type passed to {@link GeSHi->set_header_type()} was invalid */
208
+ define('GESHI_ERROR_INVALID_HEADER_TYPE', 4);
209
+ /** The line number type passed to {@link GeSHi->enable_line_numbers()} was invalid */
210
+ define('GESHI_ERROR_INVALID_LINE_NUMBER_TYPE', 5);
211
+ /**#@-*/
212
+
213
+
214
+ /**
215
+ * The GeSHi Class.
216
+ *
217
+ * Please refer to the documentation for GeSHi 1.0.X that is available
218
+ * at http://qbnz.com/highlighter/documentation.php for more information
219
+ * about how to use this class.
220
+ *
221
+ * @package geshi
222
+ * @author Nigel McNie <nigel@geshi.org>
223
+ * @author Benny Baumann <BenBE@omorphia.de>
224
+ * @copyright (C) 2004 - 2007 Nigel McNie, (C) 2007 - 2014 Benny Baumann
225
+ */
226
+ class GeSHi {
227
+
228
+ /**
229
+ * The source code to highlight
230
+ * @var string
231
+ */
232
+ protected $source = '';
233
+
234
+ /**
235
+ * The language to use when highlighting
236
+ * @var string
237
+ */
238
+ protected $language = '';
239
+
240
+ /**
241
+ * The data for the language used
242
+ * @var array
243
+ */
244
+ protected $language_data = array();
245
+
246
+ /**
247
+ * The path to the language files
248
+ * @var string
249
+ */
250
+ protected $language_path = GESHI_LANG_ROOT;
251
+
252
+ /**
253
+ * The error message associated with an error
254
+ * @var string
255
+ * @todo check err reporting works
256
+ */
257
+ protected $error = false;
258
+
259
+ /**
260
+ * Possible error messages
261
+ * @var array
262
+ */
263
+ protected $error_messages = array(
264
+ GESHI_ERROR_NO_SUCH_LANG => 'GeSHi could not find the language {LANGUAGE} (using path {PATH})',
265
+ GESHI_ERROR_FILE_NOT_READABLE => 'The file specified for load_from_file was not readable',
266
+ GESHI_ERROR_INVALID_HEADER_TYPE => 'The header type specified is invalid',
267
+ GESHI_ERROR_INVALID_LINE_NUMBER_TYPE => 'The line number type specified is invalid'
268
+ );
269
+
270
+ /**
271
+ * Whether highlighting is strict or not
272
+ * @var boolean
273
+ */
274
+ protected $strict_mode = false;
275
+
276
+ /**
277
+ * Whether to use CSS classes in output
278
+ * @var boolean
279
+ */
280
+ protected $use_classes = false;
281
+
282
+ /**
283
+ * The type of header to use. Can be one of the following
284
+ * values:
285
+ *
286
+ * - GESHI_HEADER_PRE: Source is outputted in a "pre" HTML element.
287
+ * - GESHI_HEADER_DIV: Source is outputted in a "div" HTML element.
288
+ * - GESHI_HEADER_NONE: No header is outputted.
289
+ *
290
+ * @var int
291
+ */
292
+ protected $header_type = GESHI_HEADER_PRE;
293
+
294
+ /**
295
+ * Array of permissions for which lexics should be highlighted
296
+ * @var array
297
+ */
298
+ protected $lexic_permissions = array(
299
+ 'KEYWORDS' => array(),
300
+ 'COMMENTS' => array('MULTI' => true),
301
+ 'REGEXPS' => array(),
302
+ 'ESCAPE_CHAR' => true,
303
+ 'BRACKETS' => true,
304
+ 'SYMBOLS' => false,
305
+ 'STRINGS' => true,
306
+ 'NUMBERS' => true,
307
+ 'METHODS' => true,
308
+ 'SCRIPT' => true
309
+ );
310
+
311
+ /**
312
+ * The time it took to parse the code
313
+ * @var double
314
+ */
315
+ protected $time = 0;
316
+
317
+ /**
318
+ * The content of the header block
319
+ * @var string
320
+ */
321
+ protected $header_content = '';
322
+
323
+ /**
324
+ * The content of the footer block
325
+ * @var string
326
+ */
327
+ protected $footer_content = '';
328
+
329
+ /**
330
+ * The style of the header block
331
+ * @var string
332
+ */
333
+ protected $header_content_style = '';
334
+
335
+ /**
336
+ * The style of the footer block
337
+ * @var string
338
+ */
339
+ protected $footer_content_style = '';
340
+
341
+ /**
342
+ * Tells if a block around the highlighted source should be forced
343
+ * if not using line numbering
344
+ * @var boolean
345
+ */
346
+ protected $force_code_block = false;
347
+
348
+ /**
349
+ * The styles for hyperlinks in the code
350
+ * @var array
351
+ */
352
+ protected $link_styles = array();
353
+
354
+ /**
355
+ * Whether important blocks should be recognised or not
356
+ * @var boolean
357
+ * @deprecated
358
+ * @todo REMOVE THIS FUNCTIONALITY!
359
+ */
360
+ protected $enable_important_blocks = false;
361
+
362
+ /**
363
+ * Styles for important parts of the code
364
+ * @var string
365
+ * @deprecated
366
+ * @todo As above - rethink the whole idea of important blocks as it is buggy and
367
+ * will be hard to implement in 1.2
368
+ */
369
+ protected $important_styles = 'font-weight: bold; color: red;'; // Styles for important parts of the code
370
+
371
+ /**
372
+ * Whether CSS IDs should be added to the code
373
+ * @var boolean
374
+ */
375
+ protected $add_ids = false;
376
+
377
+ /**
378
+ * Lines that should be highlighted extra
379
+ * @var array
380
+ */
381
+ protected $highlight_extra_lines = array();
382
+
383
+ /**
384
+ * Styles of lines that should be highlighted extra
385
+ * @var array
386
+ */
387
+ protected $highlight_extra_lines_styles = array();
388
+
389
+ /**
390
+ * Styles of extra-highlighted lines
391
+ * @var string
392
+ */
393
+ protected $highlight_extra_lines_style = 'background-color: #ffc;';
394
+
395
+ /**
396
+ * The line ending
397
+ * If null, nl2br() will be used on the result string.
398
+ * Otherwise, all instances of \n will be replaced with $line_ending
399
+ * @var string
400
+ */
401
+ protected $line_ending = null;
402
+
403
+ /**
404
+ * Number at which line numbers should start at
405
+ * @var int
406
+ */
407
+ protected $line_numbers_start = 1;
408
+
409
+ /**
410
+ * The overall style for this code block
411
+ * @var string
412
+ */
413
+ protected $overall_style = 'font-family:monospace;';
414
+
415
+ /**
416
+ * The style for the actual code
417
+ * @var string
418
+ */
419
+ protected $code_style = 'font: normal normal 1em/1.2em monospace; margin:0; padding:0; background:none; vertical-align:top;';
420
+
421
+ /**
422
+ * The overall class for this code block
423
+ * @var string
424
+ */
425
+ protected $overall_class = '';
426
+
427
+ /**
428
+ * The overall ID for this code block
429
+ * @var string
430
+ */
431
+ protected $overall_id = '';
432
+
433
+ /**
434
+ * Line number styles
435
+ * @var string
436
+ */
437
+ protected $line_style1 = 'font-weight: normal; vertical-align:top;';
438
+
439
+ /**
440
+ * Line number styles for fancy lines
441
+ * @var string
442
+ */
443
+ protected $line_style2 = 'font-weight: bold; vertical-align:top;';
444
+
445
+ /**
446
+ * Style for line numbers when GESHI_HEADER_PRE_TABLE is chosen
447
+ * @var string
448
+ */
449
+ protected $table_linenumber_style = 'width:1px;text-align:right;margin:0;padding:0 2px;vertical-align:top;';
450
+
451
+ /**
452
+ * Flag for how line numbers are displayed
453
+ * @var boolean
454
+ */
455
+ protected $line_numbers = GESHI_NO_LINE_NUMBERS;
456
+
457
+ /**
458
+ * Flag to decide if multi line spans are allowed. Set it to false to make sure
459
+ * each tag is closed before and reopened after each linefeed.
460
+ * @var boolean
461
+ */
462
+ protected $allow_multiline_span = true;
463
+
464
+ /**
465
+ * The "nth" value for fancy line highlighting
466
+ * @var int
467
+ */
468
+ protected $line_nth_row = 0;
469
+
470
+ /**
471
+ * The size of tab stops
472
+ * @var int
473
+ */
474
+ protected $tab_width = 8;
475
+
476
+ /**
477
+ * Should we use language-defined tab stop widths?
478
+ * @var int
479
+ */
480
+ protected $use_language_tab_width = false;
481
+
482
+ /**
483
+ * Default target for keyword links
484
+ * @var string
485
+ */
486
+ protected $link_target = '';
487
+
488
+ /**
489
+ * The encoding to use for entity encoding
490
+ * NOTE: Used with Escape Char Sequences to fix UTF-8 handling (cf. SF#2037598)
491
+ * @var string
492
+ */
493
+ protected $encoding = 'utf-8';
494
+
495
+ /**
496
+ * Should keywords be linked?
497
+ * @var boolean
498
+ */
499
+ protected $keyword_links = true;
500
+
501
+ /**
502
+ * Currently loaded language file
503
+ * @var string
504
+ * @since 1.0.7.22
505
+ */
506
+ protected $loaded_language = '';
507
+
508
+ /**
509
+ * Wether the caches needed for parsing are built or not
510
+ *
511
+ * @var bool
512
+ * @since 1.0.8
513
+ */
514
+ protected $parse_cache_built = false;
515
+
516
+ /**
517
+ * Work around for Suhosin Patch with disabled /e modifier
518
+ *
519
+ * Note from suhosins author in config file:
520
+ * <blockquote>
521
+ * The /e modifier inside <code>preg_replace()</code> allows code execution.
522
+ * Often it is the cause for remote code execution exploits. It is wise to
523
+ * deactivate this feature and test where in the application it is used.
524
+ * The developer using the /e modifier should be made aware that he should
525
+ * use <code>preg_replace_callback()</code> instead
526
+ * </blockquote>
527
+ *
528
+ * @var array
529
+ * @since 1.0.8
530
+ */
531
+ protected $_kw_replace_group = 0;
532
+ protected $_rx_key = 0;
533
+
534
+ /**
535
+ * some "callback parameters" for handle_multiline_regexps
536
+ *
537
+ * @since 1.0.8
538
+ * @access private
539
+ * @var string
540
+ */
541
+ protected $_hmr_before = '';
542
+ protected $_hmr_replace = '';
543
+ protected $_hmr_after = '';
544
+ protected $_hmr_key = 0;
545
+
546
+ /**
547
+ * Creates a new GeSHi object, with source and language
548
+ *
549
+ * @param string $source The source code to highlight
550
+ * @param string $language The language to highlight the source with
551
+ * @param string $path The path to the language file directory. <b>This
552
+ * is deprecated!</b> I've backported the auto path
553
+ * detection from the 1.1.X dev branch, so now it
554
+ * should be automatically set correctly. If you have
555
+ * renamed the language directory however, you will
556
+ * still need to set the path using this parameter or
557
+ * {@link GeSHi->set_language_path()}
558
+ * @since 1.0.0
559
+ */
560
+ public function __construct($source = '', $language = '', $path = '') {
561
+ if ( is_string($source) && ($source !== '') ) {
562
+ $this->set_source($source);
563
+ }
564
+ if ( is_string($language) && ($language !== '') ) {
565
+ $this->set_language($language);
566
+ }
567
+ $this->set_language_path($path);
568
+ }
569
+
570
+ /**
571
+ * Returns the version of GeSHi
572
+ *
573
+ * @return string
574
+ * @since 1.0.8.11
575
+ */
576
+ public function get_version()
577
+ {
578
+ return GESHI_VERSION;
579
+ }
580
+
581
+ /**
582
+ * Returns an error message associated with the last GeSHi operation,
583
+ * or false if no error has occurred
584
+ *
585
+ * @return string|false An error message if there has been an error, else false
586
+ * @since 1.0.0
587
+ */
588
+ public function error() {
589
+ if ($this->error) {
590
+ //Put some template variables for debugging here ...
591
+ $debug_tpl_vars = array(
592
+ '{LANGUAGE}' => $this->language,
593
+ '{PATH}' => $this->language_path
594
+ );
595
+ $msg = str_replace(
596
+ array_keys($debug_tpl_vars),
597
+ array_values($debug_tpl_vars),
598
+ $this->error_messages[$this->error]);
599
+
600
+ return "<br /><strong>GeSHi Error:</strong> $msg (code {$this->error})<br />";
601
+ }
602
+ return false;
603
+ }
604
+
605
+ /**
606
+ * Gets a human-readable language name (thanks to Simon Patterson
607
+ * for the idea :))
608
+ *
609
+ * @return string The name for the current language
610
+ * @since 1.0.2
611
+ */
612
+ public function get_language_name() {
613
+ if (GESHI_ERROR_NO_SUCH_LANG == $this->error) {
614
+ return $this->language_data['LANG_NAME'] . ' (Unknown Language)';
615
+ }
616
+ return $this->language_data['LANG_NAME'];
617
+ }
618
+
619
+ /**
620
+ * Sets the source code for this object
621
+ *
622
+ * @param string $source The source code to highlight
623
+ * @since 1.0.0
624
+ */
625
+ public function set_source($source) {
626
+ $this->source = $source;
627
+ $this->highlight_extra_lines = array();
628
+ }
629
+
630
+ /**
631
+ * Clean up the language name to prevent malicious code injection
632
+ *
633
+ * @param string $language The name of the language to strip
634
+ * @since 1.0.9.1
635
+ */
636
+ public function strip_language_name($language) {
637
+ $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
638
+ $language = strtolower($language);
639
+
640
+ return $language;
641
+ }
642
+
643
+ /**
644
+ * Sets the language for this object
645
+ *
646
+ * @note since 1.0.8 this function won't reset language-settings by default anymore!
647
+ * if you need this set $force_reset = true
648
+ *
649
+ * @param string $language The name of the language to use
650
+ * @param bool $force_reset
651
+ * @since 1.0.0
652
+ */
653
+ public function set_language($language, $force_reset = false) {
654
+ $this->error = false;
655
+ $this->strict_mode = GESHI_NEVER;
656
+
657
+ if ($force_reset) {
658
+ $this->loaded_language = false;
659
+ }
660
+
661
+ //Clean up the language name to prevent malicious code injection
662
+ $language = $this->strip_language_name($language);
663
+
664
+ //Retreive the full filename
665
+ $file_name = $this->language_path . $language . '.php';
666
+ if ($file_name == $this->loaded_language) {
667
+ // this language is already loaded!
668
+ return;
669
+ }
670
+
671
+ $this->language = $language;
672
+
673
+ //Check if we can read the desired file
674
+ if (!is_readable($file_name)) {
675
+ $this->error = GESHI_ERROR_NO_SUCH_LANG;
676
+ return;
677
+ }
678
+
679
+ // Load the language for parsing
680
+ $this->load_language($file_name);
681
+ }
682
+
683
+ /**
684
+ * Sets the path to the directory containing the language files. Note
685
+ * that this path is relative to the directory of the script that included
686
+ * geshi.php, NOT geshi.php itself.
687
+ *
688
+ * @param string $path The path to the language directory
689
+ * @since 1.0.0
690
+ * @deprecated The path to the language files should now be automatically
691
+ * detected, so this method should no longer be needed. The
692
+ * 1.1.X branch handles manual setting of the path differently
693
+ * so this method will disappear in 1.2.0.
694
+ */
695
+ public function set_language_path($path) {
696
+ if(strpos($path,':')) {
697
+ //Security Fix to prevent external directories using fopen wrappers.
698
+ if(DIRECTORY_SEPARATOR == "\\") {
699
+ if(!preg_match('#^[a-zA-Z]:#', $path) || false !== strpos($path, ':', 2)) {
700
+ return;
701
+ }
702
+ } else {
703
+ return;
704
+ }
705
+ }
706
+ if(preg_match('#[^/a-zA-Z0-9_\.\-\\\s:]#', $path)) {
707
+ //Security Fix to prevent external directories using fopen wrappers.
708
+ return;
709
+ }
710
+ if(GESHI_SECURITY_PARANOID && false !== strpos($path, '/.')) {
711
+ //Security Fix to prevent external directories using fopen wrappers.
712
+ return;
713
+ }
714
+ if(GESHI_SECURITY_PARANOID && false !== strpos($path, '..')) {
715
+ //Security Fix to prevent external directories using fopen wrappers.
716
+ return;
717
+ }
718
+ if ($path) {
719
+ $this->language_path = ('/' == $path[strlen($path) - 1]) ? $path : $path . '/';
720
+ $this->set_language($this->language); // otherwise set_language_path has no effect
721
+ }
722
+ }
723
+
724
+ /**
725
+ * Get supported langs or an associative array lang=>full_name.
726
+ * @param boolean $full_names
727
+ * @return array
728
+ */
729
+ public function get_supported_languages($full_names=false)
730
+ {
731
+ // return array
732
+ $back = array();
733
+
734
+ // we walk the lang root
735
+ $dir = dir($this->language_path);
736
+
737
+ // foreach entry
738
+ while (false !== ($entry = $dir->read()))
739
+ {
740
+ $full_path = $this->language_path.$entry;
741
+
742
+ // Skip all dirs
743
+ if (is_dir($full_path)) {
744
+ continue;
745
+ }
746
+
747
+ // we only want lang.php files
748
+ if (!preg_match('/^([^.]+)\.php$/', $entry, $matches)) {
749
+ continue;
750
+ }
751
+
752
+ // Raw lang name is here
753
+ $langname = $matches[1];
754
+
755
+ // We want the fullname too?
756
+ if ($full_names === true)
757
+ {
758
+ if (false !== ($fullname = $this->get_language_fullname($langname)))
759
+ {
760
+ $back[$langname] = $fullname; // we go associative
761
+ }
762
+ }
763
+ else
764
+ {
765
+ // just store raw langname
766
+ $back[] = $langname;
767
+ }
768
+ }
769
+
770
+ $dir->close();
771
+
772
+ return $back;
773
+ }
774
+
775
+ /**
776
+ * Get full_name for a lang or false.
777
+ * @param string $language short langname (html4strict for example)
778
+ * @return mixed
779
+ */
780
+ public function get_language_fullname($language)
781
+ {
782
+ //Clean up the language name to prevent malicious code injection
783
+ $language = preg_replace('#[^a-zA-Z0-9\-_]#', '', $language);
784
+
785
+ $language = strtolower($language);
786
+
787
+ // get fullpath-filename for a langname
788
+ $fullpath = $this->language_path.$language.'.php';
789
+
790
+ // we need to get contents :S
791
+ if (false === ($data = file_get_contents($fullpath))) {
792
+ $this->error = sprintf('Geshi::get_lang_fullname() Unknown Language: %s', $language);
793
+ return false;
794
+ }
795
+
796
+ // match the langname
797
+ if (!preg_match('/\'LANG_NAME\'\s*=>\s*\'((?:[^\']|\\\')+?)\'/', $data, $matches)) {
798
+ $this->error = sprintf('Geshi::get_lang_fullname(%s): Regex can not detect language', $language);
799
+ return false;
800
+ }
801
+
802
+ // return fullname for langname
803
+ return stripcslashes($matches[1]);
804
+ }
805
+
806
+ /**
807
+ * Sets the type of header to be used.
808
+ *
809
+ * If GESHI_HEADER_DIV is used, the code is surrounded in a "div".This
810
+ * means more source code but more control over tab width and line-wrapping.
811
+ * GESHI_HEADER_PRE means that a "pre" is used - less source, but less
812
+ * control. Default is GESHI_HEADER_PRE.
813
+ *
814
+ * From 1.0.7.2, you can use GESHI_HEADER_NONE to specify that no header code
815
+ * should be outputted.
816
+ *
817
+ * @param int $type The type of header to be used
818
+ * @since 1.0.0
819
+ */
820
+ public function set_header_type($type) {
821
+ //Check if we got a valid header type
822
+ if (!in_array($type, array(GESHI_HEADER_NONE, GESHI_HEADER_DIV,
823
+ GESHI_HEADER_PRE, GESHI_HEADER_PRE_VALID, GESHI_HEADER_PRE_TABLE))) {
824
+ $this->error = GESHI_ERROR_INVALID_HEADER_TYPE;
825
+ return;
826
+ }
827
+
828
+ //Set that new header type
829
+ $this->header_type = $type;
830
+ }
831
+
832
+ /**
833
+ * Sets the styles for the code that will be outputted
834
+ * when this object is parsed. The style should be a
835
+ * string of valid stylesheet declarations
836
+ *
837
+ * @param string $style The overall style for the outputted code block
838
+ * @param boolean $preserve_defaults Whether to merge the styles with the current styles or not
839
+ * @since 1.0.0
840
+ */
841
+ public function set_overall_style($style, $preserve_defaults = false) {
842
+ if (!$preserve_defaults) {
843
+ $this->overall_style = $style;
844
+ } else {
845
+ $this->overall_style .= $style;
846
+ }
847
+ }
848
+
849
+ /**
850
+ * Sets the overall classname for this block of code. This
851
+ * class can then be used in a stylesheet to style this object's
852
+ * output
853
+ *
854
+ * @param string $class The class name to use for this block of code
855
+ * @since 1.0.0
856
+ */
857
+ public function set_overall_class($class) {
858
+ $this->overall_class = $class;
859
+ }
860
+
861
+ /**
862
+ * Sets the overall id for this block of code. This id can then
863
+ * be used in a stylesheet to style this object's output
864
+ *
865
+ * @param string $id The ID to use for this block of code
866
+ * @since 1.0.0
867
+ */
868
+ public function set_overall_id($id) {
869
+ $this->overall_id = $id;
870
+ }
871
+
872
+ /**
873
+ * Sets whether CSS classes should be used to highlight the source. Default
874
+ * is off, calling this method with no arguments will turn it on
875
+ *
876
+ * @param boolean $flag Whether to turn classes on or not
877
+ * @since 1.0.0
878
+ */
879
+ public function enable_classes($flag = true) {
880
+ $this->use_classes = ($flag) ? true : false;
881
+ }
882
+
883
+ /**
884
+ * Sets the style for the actual code. This should be a string
885
+ * containing valid stylesheet declarations. If $preserve_defaults is
886
+ * true, then styles are merged with the default styles, with the
887
+ * user defined styles having priority
888
+ *
889
+ * Note: Use this method to override any style changes you made to
890
+ * the line numbers if you are using line numbers, else the line of
891
+ * code will have the same style as the line number! Consult the
892
+ * GeSHi documentation for more information about this.
893
+ *
894
+ * @param string $style The style to use for actual code
895
+ * @param boolean $preserve_defaults Whether to merge the current styles with the new styles
896
+ * @since 1.0.2
897
+ */
898
+ public function set_code_style($style, $preserve_defaults = false) {
899
+ if (!$preserve_defaults) {
900
+ $this->code_style = $style;
901
+ } else {
902
+ $this->code_style .= $style;
903
+ }
904
+ }
905
+
906
+ /**
907
+ * Sets the styles for the line numbers.
908
+ *
909
+ * @param string $style1 The style for the line numbers that are "normal"
910
+ * @param string|boolean $style2 If a string, this is the style of the line
911
+ * numbers that are "fancy", otherwise if boolean then this
912
+ * defines whether the normal styles should be merged with the
913
+ * new normal styles or not
914
+ * @param boolean $preserve_defaults If set, is the flag for whether to merge the "fancy"
915
+ * styles with the current styles or not
916
+ * @since 1.0.2
917
+ */
918
+ public function set_line_style($style1, $style2 = '', $preserve_defaults = false) {
919
+ //Check if we got 2 or three parameters
920
+ if (is_bool($style2)) {
921
+ $preserve_defaults = $style2;
922
+ $style2 = '';
923
+ }
924
+
925
+ //Actually set the new styles
926
+ if (!$preserve_defaults) {
927
+ $this->line_style1 = $style1;
928
+ $this->line_style2 = $style2;
929
+ } else {
930
+ $this->line_style1 .= $style1;
931
+ $this->line_style2 .= $style2;
932
+ }
933
+ }
934
+
935
+ /**
936
+ * Sets whether line numbers should be displayed.
937
+ *
938
+ * Valid values for the first parameter are:
939
+ *
940
+ * - GESHI_NO_LINE_NUMBERS: Line numbers will not be displayed
941
+ * - GESHI_NORMAL_LINE_NUMBERS: Line numbers will be displayed
942
+ * - GESHI_FANCY_LINE_NUMBERS: Fancy line numbers will be displayed
943
+ *
944
+ * For fancy line numbers, the second parameter is used to signal which lines
945
+ * are to be fancy. For example, if the value of this parameter is 5 then every
946
+ * 5th line will be fancy.
947
+ *
948
+ * @param int $flag How line numbers should be displayed
949
+ * @param int $nth_row Defines which lines are fancy
950
+ * @since 1.0.0
951
+ */
952
+ public function enable_line_numbers($flag, $nth_row = 5) {
953
+ if (GESHI_NO_LINE_NUMBERS != $flag && GESHI_NORMAL_LINE_NUMBERS != $flag
954
+ && GESHI_FANCY_LINE_NUMBERS != $flag) {
955
+ $this->error = GESHI_ERROR_INVALID_LINE_NUMBER_TYPE;
956
+ }
957
+ $this->line_numbers = $flag;
958
+ $this->line_nth_row = $nth_row;
959
+ }
960
+
961
+ /**
962
+ * Sets wether spans and other HTML markup generated by GeSHi can
963
+ * span over multiple lines or not. Defaults to true to reduce overhead.
964
+ * Set it to false if you want to manipulate the output or manually display
965
+ * the code in an ordered list.
966
+ *
967
+ * @param boolean $flag Wether multiline spans are allowed or not
968
+ * @since 1.0.7.22
969
+ */
970
+ public function enable_multiline_span($flag) {
971
+ $this->allow_multiline_span = (bool) $flag;
972
+ }
973
+
974
+ /**
975
+ * Get current setting for multiline spans, see GeSHi->enable_multiline_span().
976
+ *
977
+ * @see enable_multiline_span
978
+ * @return bool
979
+ */
980
+ public function get_multiline_span() {
981
+ return $this->allow_multiline_span;
982
+ }
983
+
984
+ /**
985
+ * Sets the style for a keyword group. If $preserve_defaults is
986
+ * true, then styles are merged with the default styles, with the
987
+ * user defined styles having priority
988
+ *
989
+ * @param int $key The key of the keyword group to change the styles of
990
+ * @param string $style The style to make the keywords
991
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
992
+ * to overwrite them
993
+ * @since 1.0.0
994
+ */
995
+ public function set_keyword_group_style($key, $style, $preserve_defaults = false) {
996
+ //Set the style for this keyword group
997
+ if('*' == $key) {
998
+ foreach($this->language_data['STYLES']['KEYWORDS'] as $_key => $_value) {
999
+ if (!$preserve_defaults) {
1000
+ $this->language_data['STYLES']['KEYWORDS'][$_key] = $style;
1001
+ } else {
1002
+ $this->language_data['STYLES']['KEYWORDS'][$_key] .= $style;
1003
+ }
1004
+ }
1005
+ } else {
1006
+ if (!$preserve_defaults) {
1007
+ $this->language_data['STYLES']['KEYWORDS'][$key] = $style;
1008
+ } else {
1009
+ $this->language_data['STYLES']['KEYWORDS'][$key] .= $style;
1010
+ }
1011
+ }
1012
+
1013
+ //Update the lexic permissions
1014
+ if (!isset($this->lexic_permissions['KEYWORDS'][$key])) {
1015
+ $this->lexic_permissions['KEYWORDS'][$key] = true;
1016
+ }
1017
+ }
1018
+
1019
+ /**
1020
+ * Turns highlighting on/off for a keyword group
1021
+ *
1022
+ * @param int $key The key of the keyword group to turn on or off
1023
+ * @param boolean $flag Whether to turn highlighting for that group on or off
1024
+ * @since 1.0.0
1025
+ */
1026
+ public function set_keyword_group_highlighting($key, $flag = true) {
1027
+ $this->lexic_permissions['KEYWORDS'][$key] = ($flag) ? true : false;
1028
+ }
1029
+
1030
+ /**
1031
+ * Sets the styles for comment groups. If $preserve_defaults is
1032
+ * true, then styles are merged with the default styles, with the
1033
+ * user defined styles having priority
1034
+ *
1035
+ * @param int $key The key of the comment group to change the styles of
1036
+ * @param string $style The style to make the comments
1037
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
1038
+ * to overwrite them
1039
+ * @since 1.0.0
1040
+ */
1041
+ public function set_comments_style($key, $style, $preserve_defaults = false) {
1042
+ if('*' == $key) {
1043
+ foreach($this->language_data['STYLES']['COMMENTS'] as $_key => $_value) {
1044
+ if (!$preserve_defaults) {
1045
+ $this->language_data['STYLES']['COMMENTS'][$_key] = $style;
1046
+ } else {
1047
+ $this->language_data['STYLES']['COMMENTS'][$_key] .= $style;
1048
+ }
1049
+ }
1050
+ } else {
1051
+ if (!$preserve_defaults) {
1052
+ $this->language_data['STYLES']['COMMENTS'][$key] = $style;
1053
+ } else {
1054
+ $this->language_data['STYLES']['COMMENTS'][$key] .= $style;
1055
+ }
1056
+ }
1057
+ }
1058
+
1059
+ /**
1060
+ * Turns highlighting on/off for comment groups
1061
+ *
1062
+ * @param int $key The key of the comment group to turn on or off
1063
+ * @param boolean $flag Whether to turn highlighting for that group on or off
1064
+ * @since 1.0.0
1065
+ */
1066
+ public function set_comments_highlighting($key, $flag = true) {
1067
+ $this->lexic_permissions['COMMENTS'][$key] = ($flag) ? true : false;
1068
+ }
1069
+
1070
+ /**
1071
+ * Sets the styles for escaped characters. If $preserve_defaults is
1072
+ * true, then styles are merged with the default styles, with the
1073
+ * user defined styles having priority
1074
+ *
1075
+ * @param string $style The style to make the escape characters
1076
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
1077
+ * to overwrite them
1078
+ * @param int $group Tells the group of symbols for which style should be set.
1079
+ * @since 1.0.0
1080
+ */
1081
+ public function set_escape_characters_style($style, $preserve_defaults = false, $group = 0) {
1082
+ if (!$preserve_defaults) {
1083
+ $this->language_data['STYLES']['ESCAPE_CHAR'][$group] = $style;
1084
+ } else {
1085
+ $this->language_data['STYLES']['ESCAPE_CHAR'][$group] .= $style;
1086
+ }
1087
+ }
1088
+
1089
+ /**
1090
+ * Turns highlighting on/off for escaped characters
1091
+ *
1092
+ * @param boolean $flag Whether to turn highlighting for escape characters on or off
1093
+ * @since 1.0.0
1094
+ */
1095
+ public function set_escape_characters_highlighting($flag = true) {
1096
+ $this->lexic_permissions['ESCAPE_CHAR'] = ($flag) ? true : false;
1097
+ }
1098
+
1099
+ /**
1100
+ * Sets the styles for brackets. If $preserve_defaults is
1101
+ * true, then styles are merged with the default styles, with the
1102
+ * user defined styles having priority
1103
+ *
1104
+ * This method is DEPRECATED: use set_symbols_style instead.
1105
+ * This method will be removed in 1.2.X
1106
+ *
1107
+ * @param string $style The style to make the brackets
1108
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
1109
+ * to overwrite them
1110
+ * @since 1.0.0
1111
+ * @deprecated In favour of set_symbols_style
1112
+ */
1113
+ public function set_brackets_style($style, $preserve_defaults = false) {
1114
+ if (!$preserve_defaults) {
1115
+ $this->language_data['STYLES']['BRACKETS'][0] = $style;
1116
+ } else {
1117
+ $this->language_data['STYLES']['BRACKETS'][0] .= $style;
1118
+ }
1119
+ }
1120
+
1121
+ /**
1122
+ * Turns highlighting on/off for brackets
1123
+ *
1124
+ * This method is DEPRECATED: use set_symbols_highlighting instead.
1125
+ * This method will be remove in 1.2.X
1126
+ *
1127
+ * @param boolean $flag Whether to turn highlighting for brackets on or off
1128
+ * @since 1.0.0
1129
+ * @deprecated In favour of set_symbols_highlighting
1130
+ */
1131
+ public function set_brackets_highlighting($flag) {
1132
+ $this->lexic_permissions['BRACKETS'] = ($flag) ? true : false;
1133
+ }
1134
+
1135
+ /**
1136
+ * Sets the styles for symbols. If $preserve_defaults is
1137
+ * true, then styles are merged with the default styles, with the
1138
+ * user defined styles having priority
1139
+ *
1140
+ * @param string $style The style to make the symbols
1141
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
1142
+ * to overwrite them
1143
+ * @param int $group Tells the group of symbols for which style should be set.
1144
+ * @since 1.0.1
1145
+ */
1146
+ public function set_symbols_style($style, $preserve_defaults = false, $group = 0) {
1147
+ // Update the style of symbols
1148
+ if (!$preserve_defaults) {
1149
+ $this->language_data['STYLES']['SYMBOLS'][$group] = $style;
1150
+ } else {
1151
+ $this->language_data['STYLES']['SYMBOLS'][$group] .= $style;
1152
+ }
1153
+
1154
+ // For backward compatibility
1155
+ if (0 == $group) {
1156
+ $this->set_brackets_style ($style, $preserve_defaults);
1157
+ }
1158
+ }
1159
+
1160
+ /**
1161
+ * Turns highlighting on/off for symbols
1162
+ *
1163
+ * @param boolean $flag Whether to turn highlighting for symbols on or off
1164
+ * @since 1.0.0
1165
+ */
1166
+ public function set_symbols_highlighting($flag) {
1167
+ // Update lexic permissions for this symbol group
1168
+ $this->lexic_permissions['SYMBOLS'] = ($flag) ? true : false;
1169
+
1170
+ // For backward compatibility
1171
+ $this->set_brackets_highlighting ($flag);
1172
+ }
1173
+
1174
+ /**
1175
+ * Sets the styles for strings. If $preserve_defaults is
1176
+ * true, then styles are merged with the default styles, with the
1177
+ * user defined styles having priority
1178
+ *
1179
+ * @param string $style The style to make the escape characters
1180
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
1181
+ * to overwrite them
1182
+ * @param int $group Tells the group of strings for which style should be set.
1183
+ * @since 1.0.0
1184
+ */
1185
+ public function set_strings_style($style, $preserve_defaults = false, $group = 0) {
1186
+ if (!$preserve_defaults) {
1187
+ $this->language_data['STYLES']['STRINGS'][$group] = $style;
1188
+ } else {
1189
+ $this->language_data['STYLES']['STRINGS'][$group] .= $style;
1190
+ }
1191
+ }
1192
+
1193
+ /**
1194
+ * Turns highlighting on/off for strings
1195
+ *
1196
+ * @param boolean $flag Whether to turn highlighting for strings on or off
1197
+ * @since 1.0.0
1198
+ */
1199
+ public function set_strings_highlighting($flag) {
1200
+ $this->lexic_permissions['STRINGS'] = ($flag) ? true : false;
1201
+ }
1202
+
1203
+ /**
1204
+ * Sets the styles for strict code blocks. If $preserve_defaults is
1205
+ * true, then styles are merged with the default styles, with the
1206
+ * user defined styles having priority
1207
+ *
1208
+ * @param string $style The style to make the script blocks
1209
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
1210
+ * to overwrite them
1211
+ * @param int $group Tells the group of script blocks for which style should be set.
1212
+ * @since 1.0.8.4
1213
+ */
1214
+ public function set_script_style($style, $preserve_defaults = false, $group = 0) {
1215
+ // Update the style of symbols
1216
+ if (!$preserve_defaults) {
1217
+ $this->language_data['STYLES']['SCRIPT'][$group] = $style;
1218
+ } else {
1219
+ $this->language_data['STYLES']['SCRIPT'][$group] .= $style;
1220
+ }
1221
+ }
1222
+
1223
+ /**
1224
+ * Sets the styles for numbers. If $preserve_defaults is
1225
+ * true, then styles are merged with the default styles, with the
1226
+ * user defined styles having priority
1227
+ *
1228
+ * @param string $style The style to make the numbers
1229
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
1230
+ * to overwrite them
1231
+ * @param int $group Tells the group of numbers for which style should be set.
1232
+ * @since 1.0.0
1233
+ */
1234
+ public function set_numbers_style($style, $preserve_defaults = false, $group = 0) {
1235
+ if (!$preserve_defaults) {
1236
+ $this->language_data['STYLES']['NUMBERS'][$group] = $style;
1237
+ } else {
1238
+ $this->language_data['STYLES']['NUMBERS'][$group] .= $style;
1239
+ }
1240
+ }
1241
+
1242
+ /**
1243
+ * Turns highlighting on/off for numbers
1244
+ *
1245
+ * @param boolean $flag Whether to turn highlighting for numbers on or off
1246
+ * @since 1.0.0
1247
+ */
1248
+ public function set_numbers_highlighting($flag) {
1249
+ $this->lexic_permissions['NUMBERS'] = ($flag) ? true : false;
1250
+ }
1251
+
1252
+ /**
1253
+ * Sets the styles for methods. $key is a number that references the
1254
+ * appropriate "object splitter" - see the language file for the language
1255
+ * you are highlighting to get this number. If $preserve_defaults is
1256
+ * true, then styles are merged with the default styles, with the
1257
+ * user defined styles having priority
1258
+ *
1259
+ * @param int $key The key of the object splitter to change the styles of
1260
+ * @param string $style The style to make the methods
1261
+ * @param boolean $preserve_defaults Whether to merge the new styles with the old or just
1262
+ * to overwrite them
1263
+ * @since 1.0.0
1264
+ */
1265
+ public function set_methods_style($key, $style, $preserve_defaults = false) {
1266
+ if (!$preserve_defaults) {
1267
+ $this->language_data['STYLES']['METHODS'][$key] = $style;
1268
+ } else {
1269
+ $this->language_data['STYLES']['METHODS'][$key] .= $style;
1270
+ }
1271
+ }
1272
+
1273
+ /**
1274
+ * Turns highlighting on/off for methods
1275
+ *
1276
+ * @param boolean $flag Whether to turn highlighting for methods on or off
1277
+ * @since 1.0.0
1278
+ */
1279
+ public function set_methods_highlighting($flag) {
1280
+ $this->lexic_permissions['METHODS'] = ($flag) ? true : false;
1281
+ }
1282
+
1283
+ /**
1284
+ * Sets the styles for regexps. If $preserve_defaults is
1285
+ * true, then styles are merged with the default styles, with the
1286
+ * user defined styles having priority
1287
+ *
1288
+ * @param string $key The style to make the regular expression matches
1289
+ * @param boolean $style Whether to merge the new styles with the old or just
1290
+ * to overwrite them
1291
+ * @param bool $preserve_defaults Whether to merge the new styles with the old or just
1292
+ * to overwrite them
1293
+ * @since 1.0.0
1294
+ */
1295
+ public function set_regexps_style($key, $style, $preserve_defaults = false) {
1296
+ if (!$preserve_defaults) {
1297
+ $this->language_data['STYLES']['REGEXPS'][$key] = $style;
1298
+ } else {
1299
+ $this->language_data['STYLES']['REGEXPS'][$key] .= $style;
1300
+ }
1301
+ }
1302
+
1303
+ /**
1304
+ * Turns highlighting on/off for regexps
1305
+ *
1306
+ * @param int $key The key of the regular expression group to turn on or off
1307
+ * @param boolean $flag Whether to turn highlighting for the regular expression group on or off
1308
+ * @since 1.0.0
1309
+ */
1310
+ public function set_regexps_highlighting($key, $flag) {
1311
+ $this->lexic_permissions['REGEXPS'][$key] = ($flag) ? true : false;
1312
+ }
1313
+
1314
+ /**
1315
+ * Sets whether a set of keywords are checked for in a case sensitive manner
1316
+ *
1317
+ * @param int $key The key of the keyword group to change the case sensitivity of
1318
+ * @param boolean $case Whether to check in a case sensitive manner or not
1319
+ * @since 1.0.0
1320
+ */
1321
+ public function set_case_sensitivity($key, $case) {
1322
+ $this->language_data['CASE_SENSITIVE'][$key] = ($case) ? true : false;
1323
+ }
1324
+
1325
+ /**
1326
+ * Sets the case that keywords should use when found. Use the constants:
1327
+ *
1328
+ * - GESHI_CAPS_NO_CHANGE: leave keywords as-is
1329
+ * - GESHI_CAPS_UPPER: convert all keywords to uppercase where found
1330
+ * - GESHI_CAPS_LOWER: convert all keywords to lowercase where found
1331
+ *
1332
+ * @param int $case A constant specifying what to do with matched keywords
1333
+ * @since 1.0.1
1334
+ */
1335
+ public function set_case_keywords($case) {
1336
+ if (in_array($case, array(
1337
+ GESHI_CAPS_NO_CHANGE, GESHI_CAPS_UPPER, GESHI_CAPS_LOWER))) {
1338
+ $this->language_data['CASE_KEYWORDS'] = $case;
1339
+ }
1340
+ }
1341
+
1342
+ /**
1343
+ * Sets how many spaces a tab is substituted for
1344
+ *
1345
+ * Widths below zero are ignored
1346
+ *
1347
+ * @param int $width The tab width
1348
+ * @since 1.0.0
1349
+ */
1350
+ public function set_tab_width($width) {
1351
+ $this->tab_width = intval($width);
1352
+
1353
+ //Check if it fit's the constraints:
1354
+ if ($this->tab_width < 1) {
1355
+ //Return it to the default
1356
+ $this->tab_width = 8;
1357
+ }
1358
+ }
1359
+
1360
+ /**
1361
+ * Sets whether or not to use tab-stop width specifed by language
1362
+ *
1363
+ * @param boolean $use Whether to use language-specific tab-stop widths
1364
+ * @since 1.0.7.20
1365
+ */
1366
+ public function set_use_language_tab_width($use) {
1367
+ $this->use_language_tab_width = (bool) $use;
1368
+ }
1369
+
1370
+ /**
1371
+ * Returns the tab width to use, based on the current language and user
1372
+ * preference
1373
+ *
1374
+ * @return int Tab width
1375
+ * @since 1.0.7.20
1376
+ */
1377
+ public function get_real_tab_width() {
1378
+ if (!$this->use_language_tab_width ||
1379
+ !isset($this->language_data['TAB_WIDTH'])) {
1380
+ return $this->tab_width;
1381
+ } else {
1382
+ return $this->language_data['TAB_WIDTH'];
1383
+ }
1384
+ }
1385
+
1386
+ /**
1387
+ * Enables/disables strict highlighting. Default is off, calling this
1388
+ * method without parameters will turn it on. See documentation
1389
+ * for more details on strict mode and where to use it.
1390
+ *
1391
+ * @param boolean $mode Whether to enable strict mode or not
1392
+ * @since 1.0.0
1393
+ */
1394
+ public function enable_strict_mode($mode = true) {
1395
+ if (GESHI_MAYBE == $this->language_data['STRICT_MODE_APPLIES']) {
1396
+ $this->strict_mode = ($mode) ? GESHI_ALWAYS : GESHI_NEVER;
1397
+ }
1398
+ }
1399
+
1400
+ /**
1401
+ * Disables all highlighting
1402
+ *
1403
+ * @since 1.0.0
1404
+ * @todo Rewrite with array traversal
1405
+ * @deprecated In favour of enable_highlighting
1406
+ */
1407
+ public function disable_highlighting() {
1408
+ $this->enable_highlighting(false);
1409
+ }
1410
+
1411
+ /**
1412
+ * Enables all highlighting
1413
+ *
1414
+ * The optional flag parameter was added in version 1.0.7.21 and can be used
1415
+ * to enable (true) or disable (false) all highlighting.
1416
+ *
1417
+ * @since 1.0.0
1418
+ * @param boolean $flag A flag specifying whether to enable or disable all highlighting
1419
+ * @todo Rewrite with array traversal
1420
+ */
1421
+ public function enable_highlighting($flag = true) {
1422
+ $flag = $flag ? true : false;
1423
+ foreach ($this->lexic_permissions as $key => $value) {
1424
+ if (is_array($value)) {
1425
+ foreach ($value as $k => $v) {
1426
+ $this->lexic_permissions[$key][$k] = $flag;
1427
+ }
1428
+ } else {
1429
+ $this->lexic_permissions[$key] = $flag;
1430
+ }
1431
+ }
1432
+
1433
+ // Context blocks
1434
+ $this->enable_important_blocks = $flag;
1435
+ }
1436
+
1437
+ /**
1438
+ * Given a file extension, this method returns either a valid geshi language
1439
+ * name, or the empty string if it couldn't be found
1440
+ *
1441
+ * @param string $extension The extension to get a language name for
1442
+ * @param array $lookup A lookup array to use instead of the default one
1443
+ * @since 1.0.5
1444
+ * @todo Re-think about how this method works (maybe make it private and/or make it
1445
+ * a extension->lang lookup?)
1446
+ * @return int|string
1447
+ */
1448
+ public static function get_language_name_from_extension( $extension, $lookup = array() ) {
1449
+ $extension = strtolower($extension);
1450
+
1451
+ if ( !is_array($lookup) || empty($lookup)) {
1452
+ $lookup = array(
1453
+ '6502acme' => array( 'a', 's', 'asm', 'inc' ),
1454
+ '6502tasm' => array( 'a', 's', 'asm', 'inc' ),
1455
+ '6502kickass' => array( 'a', 's', 'asm', 'inc' ),
1456
+ '68000devpac' => array( 'a', 's', 'asm', 'inc' ),
1457
+ 'abap' => array('abap'),
1458
+ 'actionscript' => array('as'),
1459
+ 'ada' => array('a', 'ada', 'adb', 'ads'),
1460
+ 'apache' => array('conf'),
1461
+ 'asm' => array('ash', 'asm', 'inc'),
1462
+ 'asp' => array('asp'),
1463
+ 'bash' => array('sh'),
1464
+ 'bf' => array('bf'),
1465
+ 'c' => array('c', 'h'),
1466
+ 'c_mac' => array('c', 'h'),
1467
+ 'caddcl' => array(),
1468
+ 'cadlisp' => array(),
1469
+ 'cdfg' => array('cdfg'),
1470
+ 'cobol' => array('cbl'),
1471
+ 'cpp' => array('cpp', 'hpp', 'C', 'H', 'CPP', 'HPP'),
1472
+ 'csharp' => array('cs'),
1473
+ 'css' => array('css'),
1474
+ 'd' => array('d'),
1475
+ 'delphi' => array('dpk', 'dpr', 'pp', 'pas'),
1476
+ 'diff' => array('diff', 'patch'),
1477
+ 'dos' => array('bat', 'cmd'),
1478
+ 'gdb' => array('kcrash', 'crash', 'bt'),
1479
+ 'gettext' => array('po', 'pot'),
1480
+ 'gml' => array('gml'),
1481
+ 'gnuplot' => array('plt'),
1482
+ 'groovy' => array('groovy'),
1483
+ 'haskell' => array('hs'),
1484
+ 'haxe' => array('hx'),
1485
+ 'html4strict' => array('html', 'htm'),
1486
+ 'ini' => array('ini', 'desktop', 'vbp'),
1487
+ 'java' => array('java'),
1488
+ 'javascript' => array('js'),
1489
+ 'klonec' => array('kl1'),
1490
+ 'klonecpp' => array('klx'),
1491
+ 'latex' => array('tex'),
1492
+ 'lisp' => array('lisp'),
1493
+ 'lua' => array('lua'),
1494
+ 'matlab' => array('m'),
1495
+ 'mpasm' => array(),
1496
+ 'mysql' => array('sql'),
1497
+ 'nsis' => array(),
1498
+ 'objc' => array(),
1499
+ 'oobas' => array(),
1500
+ 'oracle8' => array(),
1501
+ 'oracle10' => array(),
1502
+ 'pascal' => array('pas'),
1503
+ 'perl' => array('pl', 'pm'),
1504
+ 'php' => array('php', 'php5', 'phtml', 'phps'),
1505
+ 'povray' => array('pov'),
1506
+ 'providex' => array('pvc', 'pvx'),
1507
+ 'prolog' => array('pl'),
1508
+ 'python' => array('py'),
1509
+ 'qbasic' => array('bi'),
1510
+ 'reg' => array('reg'),
1511
+ 'ruby' => array('rb'),
1512
+ 'sas' => array('sas'),
1513
+ 'scala' => array('scala'),
1514
+ 'scheme' => array('scm'),
1515
+ 'scilab' => array('sci'),
1516
+ 'smalltalk' => array('st'),
1517
+ 'smarty' => array(),
1518
+ 'tcl' => array('tcl'),
1519
+ 'text' => array('txt'),
1520
+ 'vb' => array('bas', 'ctl', 'frm'),
1521
+ 'vbnet' => array('vb', 'sln'),
1522
+ 'visualfoxpro' => array(),
1523
+ 'whitespace' => array('ws'),
1524
+ 'xml' => array('xml', 'svg', 'xrc', 'vbproj', 'csproj', 'userprefs', 'resx', 'stetic', 'settings', 'manifest', 'myapp'),
1525
+ 'z80' => array('z80', 'asm', 'inc')
1526
+ );
1527
+ }
1528
+
1529
+ foreach ($lookup as $lang => $extensions) {
1530
+ if (in_array($extension, $extensions)) {
1531
+ return $lang;
1532
+ }
1533
+ }
1534
+
1535
+ return 'text';
1536
+ }
1537
+
1538
+ /**
1539
+ * Given a file name, this method loads its contents in, and attempts
1540
+ * to set the language automatically. An optional lookup table can be
1541
+ * passed for looking up the language name. If not specified a default
1542
+ * table is used
1543
+ *
1544
+ * The language table is in the form
1545
+ * <pre>array(
1546
+ * 'lang_name' => array('extension', 'extension', ...),
1547
+ * 'lang_name' ...
1548
+ * );</pre>
1549
+ *
1550
+ * @param string $file_name The filename to load the source from
1551
+ * @param array $lookup A lookup array to use instead of the default one
1552
+ * @todo Complete rethink of this and above method
1553
+ * @since 1.0.5
1554
+ */
1555
+ public function load_from_file($file_name, $lookup = array()) {
1556
+ if (is_readable($file_name)) {
1557
+ $this->set_source(file_get_contents($file_name));
1558
+ $this->set_language(self::get_language_name_from_extension(substr(strrchr($file_name, '.'), 1), $lookup));
1559
+ } else {
1560
+ $this->error = GESHI_ERROR_FILE_NOT_READABLE;
1561
+ }
1562
+ }
1563
+
1564
+ /**
1565
+ * Adds a keyword to a keyword group for highlighting
1566
+ *
1567
+ * @param int $key The key of the keyword group to add the keyword to
1568
+ * @param string $word The word to add to the keyword group
1569
+ * @since 1.0.0
1570
+ */
1571
+ public function add_keyword($key, $word) {
1572
+ if (!is_array($this->language_data['KEYWORDS'][$key])) {
1573
+ $this->language_data['KEYWORDS'][$key] = array();
1574
+ }
1575
+ if (!in_array($word, $this->language_data['KEYWORDS'][$key])) {
1576
+ $this->language_data['KEYWORDS'][$key][] = $word;
1577
+
1578
+ //NEW in 1.0.8 don't recompile the whole optimized regexp, simply append it
1579
+ if ($this->parse_cache_built) {
1580
+ $subkey = count($this->language_data['CACHED_KEYWORD_LISTS'][$key]) - 1;
1581
+ $this->language_data['CACHED_KEYWORD_LISTS'][$key][$subkey] .= '|' . preg_quote($word, '/');
1582
+ }
1583
+ }
1584
+ }
1585
+
1586
+ /**
1587
+ * Removes a keyword from a keyword group
1588
+ *
1589
+ * @param int $key The key of the keyword group to remove the keyword from
1590
+ * @param string $word The word to remove from the keyword group
1591
+ * @param bool $recompile Wether to automatically recompile the optimized regexp list or not.
1592
+ * Note: if you set this to false and @see GeSHi->parse_code() was already called once,
1593
+ * for the current language, you have to manually call @see GeSHi->optimize_keyword_group()
1594
+ * or the removed keyword will stay in cache and still be highlighted! On the other hand
1595
+ * it might be too expensive to recompile the regexp list for every removal if you want to
1596
+ * remove a lot of keywords.
1597
+ * @since 1.0.0
1598
+ */
1599
+ public function remove_keyword($key, $word, $recompile = true) {
1600
+ $key_to_remove = array_search($word, $this->language_data['KEYWORDS'][$key]);
1601
+ if ($key_to_remove !== false) {
1602
+ unset($this->language_data['KEYWORDS'][$key][$key_to_remove]);
1603
+
1604
+ //NEW in 1.0.8, optionally recompile keyword group
1605
+ if ($recompile && $this->parse_cache_built) {
1606
+ $this->optimize_keyword_group($key);
1607
+ }
1608
+ }
1609
+ }
1610
+
1611
+ /**
1612
+ * Creates a new keyword group
1613
+ *
1614
+ * @param int $key The key of the keyword group to create
1615
+ * @param string $styles The styles for the keyword group
1616
+ * @param boolean $case_sensitive Whether the keyword group is case sensitive ornot
1617
+ * @param array $words The words to use for the keyword group
1618
+ * @since 1.0.0
1619
+ * @return bool
1620
+ */
1621
+ public function add_keyword_group($key, $styles, $case_sensitive = true, $words = array()) {
1622
+ $words = (array) $words;
1623
+ if (empty($words)) {
1624
+ // empty word lists mess up highlighting
1625
+ return false;
1626
+ }
1627
+
1628
+ //Add the new keyword group internally
1629
+ $this->language_data['KEYWORDS'][$key] = $words;
1630
+ $this->lexic_permissions['KEYWORDS'][$key] = true;
1631
+ $this->language_data['CASE_SENSITIVE'][$key] = $case_sensitive;
1632
+ $this->language_data['STYLES']['KEYWORDS'][$key] = $styles;
1633
+
1634
+ //NEW in 1.0.8, cache keyword regexp
1635
+ if ($this->parse_cache_built) {
1636
+ $this->optimize_keyword_group($key);
1637
+ }
1638
+ return true;
1639
+ }
1640
+
1641
+ /**
1642
+ * Removes a keyword group
1643
+ *
1644
+ * @param int $key The key of the keyword group to remove
1645
+ * @since 1.0.0
1646
+ */
1647
+ public function remove_keyword_group ($key) {
1648
+ //Remove the keyword group internally
1649
+ unset($this->language_data['KEYWORDS'][$key]);
1650
+ unset($this->lexic_permissions['KEYWORDS'][$key]);
1651
+ unset($this->language_data['CASE_SENSITIVE'][$key]);
1652
+ unset($this->language_data['STYLES']['KEYWORDS'][$key]);
1653
+
1654
+ //NEW in 1.0.8
1655
+ unset($this->language_data['CACHED_KEYWORD_LISTS'][$key]);
1656
+ }
1657
+
1658
+ /**
1659
+ * compile optimized regexp list for keyword group
1660
+ *
1661
+ * @param int $key The key of the keyword group to compile & optimize
1662
+ * @since 1.0.8
1663
+ */
1664
+ public function optimize_keyword_group($key) {
1665
+ $this->language_data['CACHED_KEYWORD_LISTS'][$key] =
1666
+ $this->optimize_regexp_list($this->language_data['KEYWORDS'][$key]);
1667
+ $space_as_whitespace = false;
1668
+ if(isset($this->language_data['PARSER_CONTROL'])) {
1669
+ if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
1670
+ if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'])) {
1671
+ $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS']['SPACE_AS_WHITESPACE'];
1672
+ }
1673
+ if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
1674
+ if(isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'])) {
1675
+ $space_as_whitespace = $this->language_data['PARSER_CONTROL']['KEYWORDS'][$key]['SPACE_AS_WHITESPACE'];
1676
+ }
1677
+ }
1678
+ }
1679
+ }
1680
+ if($space_as_whitespace) {
1681
+ foreach($this->language_data['CACHED_KEYWORD_LISTS'][$key] as $rxk => $rxv) {
1682
+ $this->language_data['CACHED_KEYWORD_LISTS'][$key][$rxk] =
1683
+ str_replace(" ", "\\s+", $rxv);
1684
+ }
1685
+ }
1686
+ }
1687
+
1688
+ /**
1689
+ * Sets the content of the header block
1690
+ *
1691
+ * @param string $content The content of the header block
1692
+ * @since 1.0.2
1693
+ */
1694
+ public function set_header_content($content) {
1695
+ $this->header_content = $content;
1696
+ }
1697
+
1698
+ /**
1699
+ * Sets the content of the footer block
1700
+ *
1701
+ * @param string $content The content of the footer block
1702
+ * @since 1.0.2
1703
+ */
1704
+ public function set_footer_content($content) {
1705
+ $this->footer_content = $content;
1706
+ }
1707
+
1708
+ /**
1709
+ * Sets the style for the header content
1710
+ *
1711
+ * @param string $style The style for the header content
1712
+ * @since 1.0.2
1713
+ */
1714
+ public function set_header_content_style($style) {
1715
+ $this->header_content_style = $style;
1716
+ }
1717
+
1718
+ /**
1719
+ * Sets the style for the footer content
1720
+ *
1721
+ * @param string $style The style for the footer content
1722
+ * @since 1.0.2
1723
+ */
1724
+ public function set_footer_content_style($style) {
1725
+ $this->footer_content_style = $style;
1726
+ }
1727
+
1728
+ /**
1729
+ * Sets whether to force a surrounding block around
1730
+ * the highlighted code or not
1731
+ *
1732
+ * @param boolean $flag Tells whether to enable or disable this feature
1733
+ * @since 1.0.7.20
1734
+ */
1735
+ public function enable_inner_code_block($flag) {
1736
+ $this->force_code_block = (bool)$flag;
1737
+ }
1738
+
1739
+ /**
1740
+ * Sets the base URL to be used for keywords
1741
+ *
1742
+ * @param int $group The key of the keyword group to set the URL for
1743
+ * @param string $url The URL to set for the group. If {FNAME} is in
1744
+ * the url somewhere, it is replaced by the keyword
1745
+ * that the URL is being made for
1746
+ * @since 1.0.2
1747
+ */
1748
+ public function set_url_for_keyword_group($group, $url) {
1749
+ $this->language_data['URLS'][$group] = $url;
1750
+ }
1751
+
1752
+ /**
1753
+ * Sets styles for links in code
1754
+ *
1755
+ * @param int $type A constant that specifies what state the style is being
1756
+ * set for - e.g. :hover or :visited
1757
+ * @param string $styles The styles to use for that state
1758
+ * @since 1.0.2
1759
+ */
1760
+ public function set_link_styles($type, $styles) {
1761
+ $this->link_styles[$type] = $styles;
1762
+ }
1763
+
1764
+ /**
1765
+ * Sets the target for links in code
1766
+ *
1767
+ * @param string $target The target for links in the code, e.g. _blank
1768
+ * @since 1.0.3
1769
+ */
1770
+ public function set_link_target($target) {
1771
+ if (!$target) {
1772
+ $this->link_target = '';
1773
+ } else {
1774
+ $this->link_target = ' target="' . $target . '"';
1775
+ }
1776
+ }
1777
+
1778
+ /**
1779
+ * Sets styles for important parts of the code
1780
+ *
1781
+ * @param string $styles The styles to use on important parts of the code
1782
+ * @since 1.0.2
1783
+ */
1784
+ public function set_important_styles($styles) {
1785
+ $this->important_styles = $styles;
1786
+ }
1787
+
1788
+ /**
1789
+ * Sets whether context-important blocks are highlighted
1790
+ *
1791
+ * @param boolean $flag Tells whether to enable or disable highlighting of important blocks
1792
+ * @todo REMOVE THIS SHIZ FROM GESHI!
1793
+ * @deprecated
1794
+ * @since 1.0.2
1795
+ */
1796
+ public function enable_important_blocks($flag) {
1797
+ $this->enable_important_blocks = ( $flag ) ? true : false;
1798
+ }
1799
+
1800
+ /**
1801
+ * Whether CSS IDs should be added to each line
1802
+ *
1803
+ * @param boolean $flag If true, IDs will be added to each line.
1804
+ * @since 1.0.2
1805
+ */
1806
+ public function enable_ids($flag = true) {
1807
+ $this->add_ids = ($flag) ? true : false;
1808
+ }
1809
+
1810
+ /**
1811
+ * Specifies which lines to highlight extra
1812
+ *
1813
+ * The extra style parameter was added in 1.0.7.21.
1814
+ *
1815
+ * @param mixed $lines An array of line numbers to highlight, or just a line
1816
+ * number on its own.
1817
+ * @param string $style A string specifying the style to use for this line.
1818
+ * If null is specified, the default style is used.
1819
+ * If false is specified, the line will be removed from
1820
+ * special highlighting
1821
+ * @since 1.0.2
1822
+ * @todo Some data replication here that could be cut down on
1823
+ */
1824
+ public function highlight_lines_extra($lines, $style = null) {
1825
+ if (is_array($lines)) {
1826
+ //Split up the job using single lines at a time
1827
+ foreach ($lines as $line) {
1828
+ $this->highlight_lines_extra($line, $style);
1829
+ }
1830
+ } else {
1831
+ //Mark the line as being highlighted specially
1832
+ $lines = intval($lines);
1833
+ $this->highlight_extra_lines[$lines] = $lines;
1834
+
1835
+ //Decide on which style to use
1836
+ if ($style === null) { //Check if we should use default style
1837
+ unset($this->highlight_extra_lines_styles[$lines]);
1838
+ } elseif ($style === false) { //Check if to remove this line
1839
+ unset($this->highlight_extra_lines[$lines]);
1840
+ unset($this->highlight_extra_lines_styles[$lines]);
1841
+ } else {
1842
+ $this->highlight_extra_lines_styles[$lines] = $style;
1843
+ }
1844
+ }
1845
+ }
1846
+
1847
+ /**
1848
+ * Sets the style for extra-highlighted lines
1849
+ *
1850
+ * @param string $styles The style for extra-highlighted lines
1851
+ * @since 1.0.2
1852
+ */
1853
+ public function set_highlight_lines_extra_style($styles) {
1854
+ $this->highlight_extra_lines_style = $styles;
1855
+ }
1856
+
1857
+ /**
1858
+ * Sets the line-ending
1859
+ *
1860
+ * @param string $line_ending The new line-ending
1861
+ * @since 1.0.2
1862
+ */
1863
+ public function set_line_ending($line_ending) {
1864
+ $this->line_ending = (string)$line_ending;
1865
+ }
1866
+
1867
+ /**
1868
+ * Sets what number line numbers should start at. Should
1869
+ * be a positive integer, and will be converted to one.
1870
+ *
1871
+ * <b>Warning:</b> Using this method will add the "start"
1872
+ * attribute to the &lt;ol&gt; that is used for line numbering.
1873
+ * This is <b>not</b> valid XHTML strict, so if that's what you
1874
+ * care about then don't use this method. Firefox is getting
1875
+ * support for the CSS method of doing this in 1.1 and Opera
1876
+ * has support for the CSS method, but (of course) IE doesn't
1877
+ * so it's not worth doing it the CSS way yet.
1878
+ *
1879
+ * @param int $number The number to start line numbers at
1880
+ * @since 1.0.2
1881
+ */
1882
+ public function start_line_numbers_at($number) {
1883
+ $this->line_numbers_start = abs(intval($number));
1884
+ }
1885
+
1886
+ /**
1887
+ * Sets the encoding used for htmlspecialchars(), for international
1888
+ * support.
1889
+ *
1890
+ * NOTE: This is not needed for now because htmlspecialchars() is not
1891
+ * being used (it has a security hole in PHP4 that has not been patched).
1892
+ * Maybe in a future version it may make a return for speed reasons, but
1893
+ * I doubt it.
1894
+ *
1895
+ * @param string $encoding The encoding to use for the source
1896
+ * @since 1.0.3
1897
+ */
1898
+ public function set_encoding($encoding) {
1899
+ if ($encoding) {
1900
+ $this->encoding = strtolower($encoding);
1901
+ }
1902
+ }
1903
+
1904
+ /**
1905
+ * Turns linking of keywords on or off.
1906
+ *
1907
+ * @param boolean $enable If true, links will be added to keywords
1908
+ * @since 1.0.2
1909
+ */
1910
+ public function enable_keyword_links($enable = true) {
1911
+ $this->keyword_links = (bool) $enable;
1912
+ }
1913
+
1914
+ /**
1915
+ * Setup caches needed for styling. This is automatically called in
1916
+ * parse_code() and get_stylesheet() when appropriate. This function helps
1917
+ * stylesheet generators as they rely on some style information being
1918
+ * preprocessed
1919
+ *
1920
+ * @since 1.0.8
1921
+ */
1922
+ protected function build_style_cache() {
1923
+ //Build the style cache needed to highlight numbers appropriate
1924
+ if($this->lexic_permissions['NUMBERS']) {
1925
+ //First check what way highlighting information for numbers are given
1926
+ if(!isset($this->language_data['NUMBERS'])) {
1927
+ $this->language_data['NUMBERS'] = 0;
1928
+ }
1929
+
1930
+ if(is_array($this->language_data['NUMBERS'])) {
1931
+ $this->language_data['NUMBERS_CACHE'] = $this->language_data['NUMBERS'];
1932
+ } else {
1933
+ $this->language_data['NUMBERS_CACHE'] = array();
1934
+ if(!$this->language_data['NUMBERS']) {
1935
+ $this->language_data['NUMBERS'] =
1936
+ GESHI_NUMBER_INT_BASIC |
1937
+ GESHI_NUMBER_FLT_NONSCI;
1938
+ }
1939
+
1940
+ for($i = 0, $j = $this->language_data['NUMBERS']; $j > 0; ++$i, $j>>=1) {
1941
+ //Rearrange style indices if required ...
1942
+ if(isset($this->language_data['STYLES']['NUMBERS'][1<<$i])) {
1943
+ $this->language_data['STYLES']['NUMBERS'][$i] =
1944
+ $this->language_data['STYLES']['NUMBERS'][1<<$i];
1945
+ unset($this->language_data['STYLES']['NUMBERS'][1<<$i]);
1946
+ }
1947
+
1948
+ //Check if this bit is set for highlighting
1949
+ if($j&1) {
1950
+ //So this bit is set ...
1951
+ //Check if it belongs to group 0 or the actual stylegroup
1952
+ if(isset($this->language_data['STYLES']['NUMBERS'][$i])) {
1953
+ $this->language_data['NUMBERS_CACHE'][$i] = 1 << $i;
1954
+ } else {
1955
+ if(!isset($this->language_data['NUMBERS_CACHE'][0])) {
1956
+ $this->language_data['NUMBERS_CACHE'][0] = 0;
1957
+ }
1958
+ $this->language_data['NUMBERS_CACHE'][0] |= 1 << $i;
1959
+ }
1960
+ }
1961
+ }
1962
+ }
1963
+ }
1964
+ }
1965
+
1966
+ /**
1967
+ * Setup caches needed for parsing. This is automatically called in parse_code() when appropriate.
1968
+ * This function makes stylesheet generators much faster as they do not need these caches.
1969
+ *
1970
+ * @since 1.0.8
1971
+ */
1972
+ protected function build_parse_cache() {
1973
+ // check whether language_data is available
1974
+ if (empty($this->language_data)) {
1975
+ return false;
1976
+ }
1977
+
1978
+ // cache symbol regexp
1979
+ //As this is a costy operation, we avoid doing it for multiple groups ...
1980
+ //Instead we perform it for all symbols at once.
1981
+ //
1982
+ //For this to work, we need to reorganize the data arrays.
1983
+ if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) {
1984
+ $this->language_data['MULTIPLE_SYMBOL_GROUPS'] = count($this->language_data['STYLES']['SYMBOLS']) > 1;
1985
+
1986
+ $this->language_data['SYMBOL_DATA'] = array();
1987
+ $symbol_preg_multi = array(); // multi char symbols
1988
+ $symbol_preg_single = array(); // single char symbols
1989
+ foreach ($this->language_data['SYMBOLS'] as $key => $symbols) {
1990
+ if (is_array($symbols)) {
1991
+ foreach ($symbols as $sym) {
1992
+ $sym = $this->hsc($sym);
1993
+ if (!isset($this->language_data['SYMBOL_DATA'][$sym])) {
1994
+ $this->language_data['SYMBOL_DATA'][$sym] = $key;
1995
+ if (isset($sym[1])) { // multiple chars
1996
+ $symbol_preg_multi[] = preg_quote($sym, '/');
1997
+ } else { // single char
1998
+ if ($sym == '-') {
1999
+ // don't trigger range out of order error
2000
+ $symbol_preg_single[] = '\-';
2001
+ } else {
2002
+ $symbol_preg_single[] = preg_quote($sym, '/');
2003
+ }
2004
+ }
2005
+ }
2006
+ }
2007
+ } else {
2008
+ $symbols = $this->hsc($symbols);
2009
+ if (!isset($this->language_data['SYMBOL_DATA'][$symbols])) {
2010
+ $this->language_data['SYMBOL_DATA'][$symbols] = 0;
2011
+ if (isset($symbols[1])) { // multiple chars
2012
+ $symbol_preg_multi[] = preg_quote($symbols, '/');
2013
+ } elseif ($symbols == '-') {
2014
+ // don't trigger range out of order error
2015
+ $symbol_preg_single[] = '\-';
2016
+ } else { // single char
2017
+ $symbol_preg_single[] = preg_quote($symbols, '/');
2018
+ }
2019
+ }
2020
+ }
2021
+ }
2022
+
2023
+ //Now we have an array with each possible symbol as the key and the style as the actual data.
2024
+ //This way we can set the correct style just the moment we highlight ...
2025
+ //
2026
+ //Now we need to rewrite our array to get a search string that
2027
+ $symbol_preg = array();
2028
+ if (!empty($symbol_preg_multi)) {
2029
+ rsort($symbol_preg_multi);
2030
+ $symbol_preg[] = implode('|', $symbol_preg_multi);
2031
+ }
2032
+ if (!empty($symbol_preg_single)) {
2033
+ rsort($symbol_preg_single);
2034
+ $symbol_preg[] = '[' . implode('', $symbol_preg_single) . ']';
2035
+ }
2036
+ $this->language_data['SYMBOL_SEARCH'] = implode("|", $symbol_preg);
2037
+ }
2038
+
2039
+ // cache optimized regexp for keyword matching
2040
+ // remove old cache
2041
+ $this->language_data['CACHED_KEYWORD_LISTS'] = array();
2042
+ foreach (array_keys($this->language_data['KEYWORDS']) as $key) {
2043
+ if (!isset($this->lexic_permissions['KEYWORDS'][$key]) ||
2044
+ $this->lexic_permissions['KEYWORDS'][$key]) {
2045
+ $this->optimize_keyword_group($key);
2046
+ }
2047
+ }
2048
+
2049
+ // brackets
2050
+ if ($this->lexic_permissions['BRACKETS']) {
2051
+ $this->language_data['CACHE_BRACKET_MATCH'] = array('[', ']', '(', ')', '{', '}');
2052
+ if (!$this->use_classes && isset($this->language_data['STYLES']['BRACKETS'][0])) {
2053
+ $this->language_data['CACHE_BRACKET_REPLACE'] = array(
2054
+ '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#91;|>',
2055
+ '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#93;|>',
2056
+ '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#40;|>',
2057
+ '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#41;|>',
2058
+ '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#123;|>',
2059
+ '<| style="' . $this->language_data['STYLES']['BRACKETS'][0] . '">&#125;|>',
2060
+ );
2061
+ }
2062
+ else {
2063
+ $this->language_data['CACHE_BRACKET_REPLACE'] = array(
2064
+ '<| class="br0">&#91;|>',
2065
+ '<| class="br0">&#93;|>',
2066
+ '<| class="br0">&#40;|>',
2067
+ '<| class="br0">&#41;|>',
2068
+ '<| class="br0">&#123;|>',
2069
+ '<| class="br0">&#125;|>',
2070
+ );
2071
+ }
2072
+ }
2073
+
2074
+ //Build the parse cache needed to highlight numbers appropriate
2075
+ if($this->lexic_permissions['NUMBERS']) {
2076
+ //Check if the style rearrangements have been processed ...
2077
+ //This also does some preprocessing to check which style groups are useable ...
2078
+ if(!isset($this->language_data['NUMBERS_CACHE'])) {
2079
+ $this->build_style_cache();
2080
+ }
2081
+
2082
+ //Number format specification
2083
+ //All this formats are matched case-insensitively!
2084
+ static $numbers_format = array(
2085
+ GESHI_NUMBER_INT_BASIC =>
2086
+ '(?:(?<![0-9a-z_\.%$@])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2087
+ GESHI_NUMBER_INT_CSTYLE =>
2088
+ '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])([1-9]\d*?|0)l(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2089
+ GESHI_NUMBER_BIN_SUFFIX =>
2090
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[01]+?[bB](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2091
+ GESHI_NUMBER_BIN_PREFIX_PERCENT =>
2092
+ '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])%[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2093
+ GESHI_NUMBER_BIN_PREFIX_0B =>
2094
+ '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0b[01]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2095
+ GESHI_NUMBER_OCT_PREFIX =>
2096
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2097
+ GESHI_NUMBER_OCT_PREFIX_0O =>
2098
+ '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])0o[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2099
+ GESHI_NUMBER_OCT_PREFIX_AT =>
2100
+ '(?<![0-9a-z_\.%])(?<![\d\.]e[+\-])\@[0-7]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2101
+ GESHI_NUMBER_OCT_SUFFIX =>
2102
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])[0-7]+?o(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2103
+ GESHI_NUMBER_HEX_PREFIX =>
2104
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])0x[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2105
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR =>
2106
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\$[0-9a-fA-F]+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2107
+ GESHI_NUMBER_HEX_SUFFIX =>
2108
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d[0-9a-fA-F]*?[hH](?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2109
+ GESHI_NUMBER_FLT_NONSCI =>
2110
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\d+?\.\d+?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2111
+ GESHI_NUMBER_FLT_NONSCI_F =>
2112
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)f(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2113
+ GESHI_NUMBER_FLT_SCI_SHORT =>
2114
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])\.\d+?(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)',
2115
+ GESHI_NUMBER_FLT_SCI_ZERO =>
2116
+ '(?<![0-9a-z_\.])(?<![\d\.]e[+\-])(?:\d+?(?:\.\d*?)?|\.\d+?)(?:e[+\-]?\d+?)?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)'
2117
+ );
2118
+
2119
+ //At this step we have an associative array with flag groups for a
2120
+ //specific style or an string denoting a regexp given its index.
2121
+ $this->language_data['NUMBERS_RXCACHE'] = array();
2122
+ foreach($this->language_data['NUMBERS_CACHE'] as $key => $rxdata) {
2123
+ if(is_string($rxdata)) {
2124
+ $regexp = $rxdata;
2125
+ } else {
2126
+ //This is a bitfield of number flags to highlight:
2127
+ //Build an array, implode them together and make this the actual RX
2128
+ $rxuse = array();
2129
+ for($i = 1; $i <= $rxdata; $i<<=1) {
2130
+ if($rxdata & $i) {
2131
+ $rxuse[] = $numbers_format[$i];
2132
+ }
2133
+ }
2134
+ $regexp = implode("|", $rxuse);
2135
+ }
2136
+
2137
+ $this->language_data['NUMBERS_RXCACHE'][$key] =
2138
+ "/(?<!<\|\/)(?<!<\|!REG3XP)(?<!<\|\/NUM!)(?<!\d\/>)($regexp)(?!(?:<DOT>|(?>[^\<]))+>)(?![^<]*>)(?!\|>)(?!\/>)/i";
2139
+ }
2140
+
2141
+ if(!isset($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'])) {
2142
+ $this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'] = '#\d#';
2143
+ }
2144
+ }
2145
+
2146
+ $this->parse_cache_built = true;
2147
+ }
2148
+
2149
+ /**
2150
+ * Returns the code in $this->source, highlighted and surrounded by the
2151
+ * nessecary HTML.
2152
+ *
2153
+ * This should only be called ONCE, cos it's SLOW! If you want to highlight
2154
+ * the same source multiple times, you're better off doing a whole lot of
2155
+ * str_replaces to replace the &lt;span&gt;s
2156
+ *
2157
+ * @since 1.0.0
2158
+ */
2159
+ public function parse_code() {
2160
+ // Start the timer
2161
+ $start_time = microtime();
2162
+
2163
+ // Replace all newlines to a common form.
2164
+ $code = str_replace("\r\n", "\n", $this->source);
2165
+ $code = str_replace("\r", "\n", $code);
2166
+
2167
+ // check whether language_data is available
2168
+ if (empty($this->language_data)) {
2169
+ $this->error = GESHI_ERROR_NO_SUCH_LANG;
2170
+ }
2171
+
2172
+ // Firstly, if there is an error, we won't highlight
2173
+ if ($this->error) {
2174
+ //Escape the source for output
2175
+ $result = $this->hsc($this->source);
2176
+
2177
+ //This fix is related to SF#1923020, but has to be applied regardless of
2178
+ //actually highlighting symbols.
2179
+ $result = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $result);
2180
+
2181
+ // Timing is irrelevant
2182
+ $this->set_time($start_time, $start_time);
2183
+ $this->finalise($result);
2184
+ return $result;
2185
+ }
2186
+
2187
+ // make sure the parse cache is up2date
2188
+ if (!$this->parse_cache_built) {
2189
+ $this->build_parse_cache();
2190
+ }
2191
+
2192
+ // Initialise various stuff
2193
+ $length = strlen($code);
2194
+ $COMMENT_MATCHED = false;
2195
+ $stuff_to_parse = '';
2196
+ $endresult = '';
2197
+
2198
+ // "Important" selections are handled like multiline comments
2199
+ // @todo GET RID OF THIS SHIZ
2200
+ if ($this->enable_important_blocks) {
2201
+ $this->language_data['COMMENT_MULTI'][GESHI_START_IMPORTANT] = GESHI_END_IMPORTANT;
2202
+ }
2203
+
2204
+ if ($this->strict_mode) {
2205
+ // Break the source into bits. Each bit will be a portion of the code
2206
+ // within script delimiters - for example, HTML between < and >
2207
+ $k = 0;
2208
+ $parts = array();
2209
+ $matches = array();
2210
+ $next_match_pointer = null;
2211
+ // we use a copy to unset delimiters on demand (when they are not found)
2212
+ $delim_copy = $this->language_data['SCRIPT_DELIMITERS'];
2213
+ $i = 0;
2214
+ while ($i < $length) {
2215
+ $next_match_pos = $length + 1; // never true
2216
+ foreach ($delim_copy as $dk => $delimiters) {
2217
+ if(is_array($delimiters)) {
2218
+ foreach ($delimiters as $open => $close) {
2219
+ // make sure the cache is setup properly
2220
+ if (!isset($matches[$dk][$open])) {
2221
+ $matches[$dk][$open] = array(
2222
+ 'next_match' => -1,
2223
+ 'dk' => $dk,
2224
+
2225
+ 'open' => $open, // needed for grouping of adjacent code blocks (see below)
2226
+ 'open_strlen' => strlen($open),
2227
+
2228
+ 'close' => $close,
2229
+ 'close_strlen' => strlen($close),
2230
+ );
2231
+ }
2232
+ // Get the next little bit for this opening string
2233
+ if ($matches[$dk][$open]['next_match'] < $i) {
2234
+ // only find the next pos if it was not already cached
2235
+ $open_pos = strpos($code, $open, $i);
2236
+ if ($open_pos === false) {
2237
+ // no match for this delimiter ever
2238
+ unset($delim_copy[$dk][$open]);
2239
+ continue;
2240
+ }
2241
+ $matches[$dk][$open]['next_match'] = $open_pos;
2242
+ }
2243
+ if ($matches[$dk][$open]['next_match'] < $next_match_pos) {
2244
+ //So we got a new match, update the close_pos
2245
+ $matches[$dk][$open]['close_pos'] =
2246
+ strpos($code, $close, $matches[$dk][$open]['next_match']+1);
2247
+
2248
+ $next_match_pointer =& $matches[$dk][$open];
2249
+ $next_match_pos = $matches[$dk][$open]['next_match'];
2250
+ }
2251
+ }
2252
+ } else {
2253
+ //So we should match an RegExp as Strict Block ...
2254
+ /**
2255
+ * The value in $delimiters is expected to be an RegExp
2256
+ * containing exactly 2 matching groups:
2257
+ * - Group 1 is the opener
2258
+ * - Group 2 is the closer
2259
+ */
2260
+ if(preg_match($delimiters, $code, $matches_rx, PREG_OFFSET_CAPTURE, $i)) {
2261
+ //We got a match ...
2262
+ if(isset($matches_rx['start']) && isset($matches_rx['end']))
2263
+ {
2264
+ $matches[$dk] = array(
2265
+ 'next_match' => $matches_rx['start'][1],
2266
+ 'dk' => $dk,
2267
+
2268
+ 'close_strlen' => strlen($matches_rx['end'][0]),
2269
+ 'close_pos' => $matches_rx['end'][1],
2270
+ );
2271
+ } else {
2272
+ $matches[$dk] = array(
2273
+ 'next_match' => $matches_rx[1][1],
2274
+ 'dk' => $dk,
2275
+
2276
+ 'close_strlen' => strlen($matches_rx[2][0]),
2277
+ 'close_pos' => $matches_rx[2][1],
2278
+ );
2279
+ }
2280
+ } else {
2281
+ // no match for this delimiter ever
2282
+ unset($delim_copy[$dk]);
2283
+ continue;
2284
+ }
2285
+
2286
+ if ($matches[$dk]['next_match'] <= $next_match_pos) {
2287
+ $next_match_pointer =& $matches[$dk];
2288
+ $next_match_pos = $matches[$dk]['next_match'];
2289
+ }
2290
+ }
2291
+ }
2292
+
2293
+ // non-highlightable text
2294
+ $parts[$k] = array(
2295
+ 1 => substr($code, $i, $next_match_pos - $i)
2296
+ );
2297
+ ++$k;
2298
+
2299
+ if ($next_match_pos > $length) {
2300
+ // out of bounds means no next match was found
2301
+ break;
2302
+ }
2303
+
2304
+ // highlightable code
2305
+ $parts[$k][0] = $next_match_pointer['dk'];
2306
+
2307
+ //Only combine for non-rx script blocks
2308
+ if(is_array($delim_copy[$next_match_pointer['dk']])) {
2309
+ // group adjacent script blocks, e.g. <foobar><asdf> should be one block, not three!
2310
+ $i = $next_match_pos + $next_match_pointer['open_strlen'];
2311
+ while (true) {
2312
+ $close_pos = strpos($code, $next_match_pointer['close'], $i);
2313
+ if ($close_pos == false) {
2314
+ break;
2315
+ }
2316
+ $i = $close_pos + $next_match_pointer['close_strlen'];
2317
+ if ($i == $length) {
2318
+ break;
2319
+ }
2320
+ if ($code[$i] == $next_match_pointer['open'][0] && ($next_match_pointer['open_strlen'] == 1 ||
2321
+ substr($code, $i, $next_match_pointer['open_strlen']) == $next_match_pointer['open'])) {
2322
+ // merge adjacent but make sure we don't merge things like <tag><!-- comment -->
2323
+ foreach ($matches as $submatches) {
2324
+ foreach ($submatches as $match) {
2325
+ if ($match['next_match'] == $i) {
2326
+ // a different block already matches here!
2327
+ break 3;
2328
+ }
2329
+ }
2330
+ }
2331
+ } else {
2332
+ break;
2333
+ }
2334
+ }
2335
+ } else {
2336
+ $close_pos = $next_match_pointer['close_pos'] + $next_match_pointer['close_strlen'];
2337
+ $i = $close_pos;
2338
+ }
2339
+
2340
+ if ($close_pos === false) {
2341
+ // no closing delimiter found!
2342
+ $parts[$k][1] = substr($code, $next_match_pos);
2343
+ ++$k;
2344
+ break;
2345
+ } else {
2346
+ $parts[$k][1] = substr($code, $next_match_pos, $i - $next_match_pos);
2347
+ ++$k;
2348
+ }
2349
+ }
2350
+ unset($delim_copy, $next_match_pointer, $next_match_pos, $matches);
2351
+ $num_parts = $k;
2352
+
2353
+ if ($num_parts == 1 && $this->strict_mode == GESHI_MAYBE) {
2354
+ // when we have only one part, we don't have anything to highlight at all.
2355
+ // if we have a "maybe" strict language, this should be handled as highlightable code
2356
+ $parts = array(
2357
+ 0 => array(
2358
+ 0 => '',
2359
+ 1 => ''
2360
+ ),
2361
+ 1 => array(
2362
+ 0 => null,
2363
+ 1 => $parts[0][1]
2364
+ )
2365
+ );
2366
+ $num_parts = 2;
2367
+ }
2368
+
2369
+ } else {
2370
+ // Not strict mode - simply dump the source into
2371
+ // the array at index 1 (the first highlightable block)
2372
+ $parts = array(
2373
+ 0 => array(
2374
+ 0 => '',
2375
+ 1 => ''
2376
+ ),
2377
+ 1 => array(
2378
+ 0 => null,
2379
+ 1 => $code
2380
+ )
2381
+ );
2382
+ $num_parts = 2;
2383
+ }
2384
+
2385
+ //Unset variables we won't need any longer
2386
+ unset($code);
2387
+
2388
+ //Preload some repeatedly used values regarding hardquotes ...
2389
+ $hq = isset($this->language_data['HARDQUOTE']) ? $this->language_data['HARDQUOTE'][0] : false;
2390
+ $hq_strlen = strlen($hq);
2391
+
2392
+ //Preload if line numbers are to be generated afterwards
2393
+ //Added a check if line breaks should be forced even without line numbers, fixes SF#1727398
2394
+ $check_linenumbers = $this->line_numbers != GESHI_NO_LINE_NUMBERS ||
2395
+ !empty($this->highlight_extra_lines) || !$this->allow_multiline_span;
2396
+
2397
+ //preload the escape char for faster checking ...
2398
+ $escaped_escape_char = $this->hsc($this->language_data['ESCAPE_CHAR']);
2399
+
2400
+ // this is used for single-line comments
2401
+ $sc_disallowed_before = "";
2402
+ $sc_disallowed_after = "";
2403
+
2404
+ if (isset($this->language_data['PARSER_CONTROL'])) {
2405
+ if (isset($this->language_data['PARSER_CONTROL']['COMMENTS'])) {
2406
+ if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'])) {
2407
+ $sc_disallowed_before = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_BEFORE'];
2408
+ }
2409
+ if (isset($this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'])) {
2410
+ $sc_disallowed_after = $this->language_data['PARSER_CONTROL']['COMMENTS']['DISALLOWED_AFTER'];
2411
+ }
2412
+ }
2413
+ }
2414
+
2415
+ //Fix for SF#1932083: Multichar Quotemarks unsupported
2416
+ $is_string_starter = array();
2417
+ if ($this->lexic_permissions['STRINGS']) {
2418
+ foreach ($this->language_data['QUOTEMARKS'] as $quotemark) {
2419
+ if (!isset($is_string_starter[$quotemark[0]])) {
2420
+ $is_string_starter[$quotemark[0]] = (string)$quotemark;
2421
+ } elseif (is_string($is_string_starter[$quotemark[0]])) {
2422
+ $is_string_starter[$quotemark[0]] = array(
2423
+ $is_string_starter[$quotemark[0]],
2424
+ $quotemark);
2425
+ } else {
2426
+ $is_string_starter[$quotemark[0]][] = $quotemark;
2427
+ }
2428
+ }
2429
+ }
2430
+
2431
+ // Now we go through each part. We know that even-indexed parts are
2432
+ // code that shouldn't be highlighted, and odd-indexed parts should
2433
+ // be highlighted
2434
+ for ($key = 0; $key < $num_parts; ++$key) {
2435
+ $STRICTATTRS = '';
2436
+
2437
+ // If this block should be highlighted...
2438
+ if (!($key & 1)) {
2439
+ // Else not a block to highlight
2440
+ $endresult .= $this->hsc($parts[$key][1]);
2441
+ unset($parts[$key]);
2442
+ continue;
2443
+ }
2444
+
2445
+ $result = '';
2446
+ $part = $parts[$key][1];
2447
+
2448
+ $highlight_part = true;
2449
+ if ($this->strict_mode && !is_null($parts[$key][0])) {
2450
+ // get the class key for this block of code
2451
+ $script_key = $parts[$key][0];
2452
+ $highlight_part = $this->language_data['HIGHLIGHT_STRICT_BLOCK'][$script_key];
2453
+ if ($this->language_data['STYLES']['SCRIPT'][$script_key] != '' &&
2454
+ $this->lexic_permissions['SCRIPT']) {
2455
+ // Add a span element around the source to
2456
+ // highlight the overall source block
2457
+ if (!$this->use_classes &&
2458
+ $this->language_data['STYLES']['SCRIPT'][$script_key] != '') {
2459
+ $attributes = ' style="' . $this->language_data['STYLES']['SCRIPT'][$script_key] . '"';
2460
+ } else {
2461
+ $attributes = ' class="sc' . $script_key . '"';
2462
+ }
2463
+ $result .= "<span$attributes>";
2464
+ $STRICTATTRS = $attributes;
2465
+ }
2466
+ }
2467
+
2468
+ if ($highlight_part) {
2469
+ // Now, highlight the code in this block. This code
2470
+ // is really the engine of GeSHi (along with the method
2471
+ // parse_non_string_part).
2472
+
2473
+ // cache comment regexps incrementally
2474
+ $next_comment_regexp_key = '';
2475
+ $next_comment_regexp_pos = -1;
2476
+ $next_comment_multi_pos = -1;
2477
+ $next_comment_single_pos = -1;
2478
+ $comment_regexp_cache_per_key = array();
2479
+ $comment_multi_cache_per_key = array();
2480
+ $comment_single_cache_per_key = array();
2481
+ $next_open_comment_multi = '';
2482
+ $next_comment_single_key = '';
2483
+ $escape_regexp_cache_per_key = array();
2484
+ $next_escape_regexp_key = '';
2485
+ $next_escape_regexp_pos = -1;
2486
+
2487
+ $length = strlen($part);
2488
+ for ($i = 0; $i < $length; ++$i) {
2489
+ // Get the next char
2490
+ $char = $part[$i];
2491
+ $char_len = 1;
2492
+
2493
+ // update regexp comment cache if needed
2494
+ if (isset($this->language_data['COMMENT_REGEXP']) && $next_comment_regexp_pos < $i) {
2495
+ $next_comment_regexp_pos = $length;
2496
+ foreach ($this->language_data['COMMENT_REGEXP'] as $comment_key => $regexp) {
2497
+ $match_i = false;
2498
+ if (isset($comment_regexp_cache_per_key[$comment_key]) &&
2499
+ ($comment_regexp_cache_per_key[$comment_key]['pos'] >= $i ||
2500
+ $comment_regexp_cache_per_key[$comment_key]['pos'] === false)) {
2501
+ // we have already matched something
2502
+ if ($comment_regexp_cache_per_key[$comment_key]['pos'] === false) {
2503
+ // this comment is never matched
2504
+ continue;
2505
+ }
2506
+ $match_i = $comment_regexp_cache_per_key[$comment_key]['pos'];
2507
+ } elseif (preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $i)) {
2508
+ $match_i = $match[0][1];
2509
+
2510
+ $comment_regexp_cache_per_key[$comment_key] = array(
2511
+ 'key' => $comment_key,
2512
+ 'length' => strlen($match[0][0]),
2513
+ 'pos' => $match_i
2514
+ );
2515
+ } else {
2516
+ $comment_regexp_cache_per_key[$comment_key]['pos'] = false;
2517
+ continue;
2518
+ }
2519
+
2520
+ if ($match_i !== false && $match_i < $next_comment_regexp_pos) {
2521
+ $next_comment_regexp_pos = $match_i;
2522
+ $next_comment_regexp_key = $comment_key;
2523
+ if ($match_i === $i) {
2524
+ break;
2525
+ }
2526
+ }
2527
+ }
2528
+ }
2529
+
2530
+ $string_started = false;
2531
+
2532
+ if (isset($is_string_starter[$char])) {
2533
+ // Possibly the start of a new string ...
2534
+
2535
+ //Check which starter it was ...
2536
+ //Fix for SF#1932083: Multichar Quotemarks unsupported
2537
+ if (is_array($is_string_starter[$char])) {
2538
+ $char_new = '';
2539
+ foreach ($is_string_starter[$char] as $testchar) {
2540
+ if ($testchar === substr($part, $i, strlen($testchar)) &&
2541
+ strlen($testchar) > strlen($char_new)) {
2542
+ $char_new = $testchar;
2543
+ $string_started = true;
2544
+ }
2545
+ }
2546
+ if ($string_started) {
2547
+ $char = $char_new;
2548
+ }
2549
+ } else {
2550
+ $testchar = $is_string_starter[$char];
2551
+ if ($testchar === substr($part, $i, strlen($testchar))) {
2552
+ $char = $testchar;
2553
+ $string_started = true;
2554
+ }
2555
+ }
2556
+ $char_len = strlen($char);
2557
+ }
2558
+
2559
+ if ($string_started && ($i != $next_comment_regexp_pos)) {
2560
+ // Hand out the correct style information for this string
2561
+ $string_key = array_search($char, $this->language_data['QUOTEMARKS']);
2562
+ if (!isset($this->language_data['STYLES']['STRINGS'][$string_key]) ||
2563
+ !isset($this->language_data['STYLES']['ESCAPE_CHAR'][$string_key])) {
2564
+ $string_key = 0;
2565
+ }
2566
+
2567
+ // parse the stuff before this
2568
+ $result .= $this->parse_non_string_part($stuff_to_parse);
2569
+ $stuff_to_parse = '';
2570
+
2571
+ if (!$this->use_classes) {
2572
+ $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS'][$string_key] . '"';
2573
+ } else {
2574
+ $string_attributes = ' class="st'.$string_key.'"';
2575
+ }
2576
+
2577
+ // now handle the string
2578
+ $string = "<span$string_attributes>" . GeSHi::hsc($char);
2579
+ $start = $i + $char_len;
2580
+ $string_open = true;
2581
+
2582
+ if(empty($this->language_data['ESCAPE_REGEXP'])) {
2583
+ $next_escape_regexp_pos = $length;
2584
+ }
2585
+
2586
+ do {
2587
+ //Get the regular ending pos ...
2588
+ $close_pos = strpos($part, $char, $start);
2589
+ if(false === $close_pos) {
2590
+ $close_pos = $length;
2591
+ }
2592
+
2593
+ if($this->lexic_permissions['ESCAPE_CHAR']) {
2594
+ // update escape regexp cache if needed
2595
+ if (isset($this->language_data['ESCAPE_REGEXP']) && $next_escape_regexp_pos < $start) {
2596
+ $next_escape_regexp_pos = $length;
2597
+ foreach ($this->language_data['ESCAPE_REGEXP'] as $escape_key => $regexp) {
2598
+ $match_i = false;
2599
+ if (isset($escape_regexp_cache_per_key[$escape_key]) &&
2600
+ ($escape_regexp_cache_per_key[$escape_key]['pos'] >= $start ||
2601
+ $escape_regexp_cache_per_key[$escape_key]['pos'] === false)) {
2602
+ // we have already matched something
2603
+ if ($escape_regexp_cache_per_key[$escape_key]['pos'] === false) {
2604
+ // this comment is never matched
2605
+ continue;
2606
+ }
2607
+ $match_i = $escape_regexp_cache_per_key[$escape_key]['pos'];
2608
+ } elseif (preg_match($regexp, $part, $match, PREG_OFFSET_CAPTURE, $start)) {
2609
+ $match_i = $match[0][1];
2610
+
2611
+ $escape_regexp_cache_per_key[$escape_key] = array(
2612
+ 'key' => $escape_key,
2613
+ 'length' => strlen($match[0][0]),
2614
+ 'pos' => $match_i
2615
+ );
2616
+ } else {
2617
+ $escape_regexp_cache_per_key[$escape_key]['pos'] = false;
2618
+ continue;
2619
+ }
2620
+
2621
+ if ($match_i !== false && $match_i < $next_escape_regexp_pos) {
2622
+ $next_escape_regexp_pos = $match_i;
2623
+ $next_escape_regexp_key = $escape_key;
2624
+ if ($match_i === $start) {
2625
+ break;
2626
+ }
2627
+ }
2628
+ }
2629
+ }
2630
+
2631
+ //Find the next simple escape position
2632
+ if('' != $this->language_data['ESCAPE_CHAR']) {
2633
+ $simple_escape = strpos($part, $this->language_data['ESCAPE_CHAR'], $start);
2634
+ if(false === $simple_escape) {
2635
+ $simple_escape = $length;
2636
+ }
2637
+ } else {
2638
+ $simple_escape = $length;
2639
+ }
2640
+ } else {
2641
+ $next_escape_regexp_pos = $length;
2642
+ $simple_escape = $length;
2643
+ }
2644
+
2645
+ if($simple_escape < $next_escape_regexp_pos &&
2646
+ $simple_escape < $length &&
2647
+ $simple_escape < $close_pos) {
2648
+ //The nexxt escape sequence is a simple one ...
2649
+ $es_pos = $simple_escape;
2650
+
2651
+ //Add the stuff not in the string yet ...
2652
+ $string .= $this->hsc(substr($part, $start, $es_pos - $start));
2653
+
2654
+ //Get the style for this escaped char ...
2655
+ if (!$this->use_classes) {
2656
+ $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][0] . '"';
2657
+ } else {
2658
+ $escape_char_attributes = ' class="es0"';
2659
+ }
2660
+
2661
+ //Add the style for the escape char ...
2662
+ $string .= "<span$escape_char_attributes>" .
2663
+ GeSHi::hsc($this->language_data['ESCAPE_CHAR']);
2664
+
2665
+ //Get the byte AFTER the ESCAPE_CHAR we just found
2666
+ $es_char = $part[$es_pos + 1];
2667
+ if ($es_char == "\n") {
2668
+ // don't put a newline around newlines
2669
+ $string .= "</span>\n";
2670
+ $start = $es_pos + 2;
2671
+ } elseif (ord($es_char) >= 128) {
2672
+ //This is an non-ASCII char (UTF8 or single byte)
2673
+ //This code tries to work around SF#2037598 ...
2674
+ if(function_exists('mb_substr')) {
2675
+ $es_char_m = mb_substr(substr($part, $es_pos+1, 16), 0, 1, $this->encoding);
2676
+ $string .= $es_char_m . '</span>';
2677
+ } elseif ('utf-8' == $this->encoding) {
2678
+ if(preg_match("/[\xC2-\xDF][\x80-\xBF]".
2679
+ "|\xE0[\xA0-\xBF][\x80-\xBF]".
2680
+ "|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}".
2681
+ "|\xED[\x80-\x9F][\x80-\xBF]".
2682
+ "|\xF0[\x90-\xBF][\x80-\xBF]{2}".
2683
+ "|[\xF1-\xF3][\x80-\xBF]{3}".
2684
+ "|\xF4[\x80-\x8F][\x80-\xBF]{2}/s",
2685
+ $part, $es_char_m, null, $es_pos + 1)) {
2686
+ $es_char_m = $es_char_m[0];
2687
+ } else {
2688
+ $es_char_m = $es_char;
2689
+ }
2690
+ $string .= $this->hsc($es_char_m) . '</span>';
2691
+ } else {
2692
+ $es_char_m = $this->hsc($es_char);
2693
+ }
2694
+ $start = $es_pos + strlen($es_char_m) + 1;
2695
+ } else {
2696
+ $string .= $this->hsc($es_char) . '</span>';
2697
+ $start = $es_pos + 2;
2698
+ }
2699
+ } elseif ($next_escape_regexp_pos < $length &&
2700
+ $next_escape_regexp_pos < $close_pos) {
2701
+ $es_pos = $next_escape_regexp_pos;
2702
+ //Add the stuff not in the string yet ...
2703
+ $string .= $this->hsc(substr($part, $start, $es_pos - $start));
2704
+
2705
+ //Get the key and length of this match ...
2706
+ $escape = $escape_regexp_cache_per_key[$next_escape_regexp_key];
2707
+ $escape_str = substr($part, $es_pos, $escape['length']);
2708
+ $escape_key = $escape['key'];
2709
+
2710
+ //Get the style for this escaped char ...
2711
+ if (!$this->use_classes) {
2712
+ $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR'][$escape_key] . '"';
2713
+ } else {
2714
+ $escape_char_attributes = ' class="es' . $escape_key . '"';
2715
+ }
2716
+
2717
+ //Add the style for the escape char ...
2718
+ $string .= "<span$escape_char_attributes>" .
2719
+ $this->hsc($escape_str) . '</span>';
2720
+
2721
+ $start = $es_pos + $escape['length'];
2722
+ } else {
2723
+ //Copy the remainder of the string ...
2724
+ $string .= $this->hsc(substr($part, $start, $close_pos - $start + $char_len)) . '</span>';
2725
+ $start = $close_pos + $char_len;
2726
+ $string_open = false;
2727
+ }
2728
+ } while($string_open);
2729
+
2730
+ if ($check_linenumbers) {
2731
+ // Are line numbers used? If, we should end the string before
2732
+ // the newline and begin it again (so when <li>s are put in the source
2733
+ // remains XHTML compliant)
2734
+ // note to self: This opens up possibility of config files specifying
2735
+ // that languages can/cannot have multiline strings???
2736
+ $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
2737
+ }
2738
+
2739
+ $result .= $string;
2740
+ $string = '';
2741
+ $i = $start - 1;
2742
+ continue;
2743
+ } elseif ($this->lexic_permissions['STRINGS'] && $hq && $hq[0] == $char &&
2744
+ substr($part, $i, $hq_strlen) == $hq && ($i != $next_comment_regexp_pos)) {
2745
+ // The start of a hard quoted string
2746
+ if (!$this->use_classes) {
2747
+ $string_attributes = ' style="' . $this->language_data['STYLES']['STRINGS']['HARD'] . '"';
2748
+ $escape_char_attributes = ' style="' . $this->language_data['STYLES']['ESCAPE_CHAR']['HARD'] . '"';
2749
+ } else {
2750
+ $string_attributes = ' class="st_h"';
2751
+ $escape_char_attributes = ' class="es_h"';
2752
+ }
2753
+ // parse the stuff before this
2754
+ $result .= $this->parse_non_string_part($stuff_to_parse);
2755
+ $stuff_to_parse = '';
2756
+
2757
+ // now handle the string
2758
+ $string = '';
2759
+
2760
+ // look for closing quote
2761
+ $start = $i + $hq_strlen;
2762
+ while ($close_pos = strpos($part, $this->language_data['HARDQUOTE'][1], $start)) {
2763
+ $start = $close_pos + 1;
2764
+ if ($this->lexic_permissions['ESCAPE_CHAR'] && $part[$close_pos - 1] == $this->language_data['HARDCHAR'] &&
2765
+ (($i + $hq_strlen) != ($close_pos))) { //Support empty string for HQ escapes if Starter = Escape
2766
+ // make sure this quote is not escaped
2767
+ foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
2768
+ if (substr($part, $close_pos - 1, strlen($hardescape)) == $hardescape) {
2769
+ // check wether this quote is escaped or if it is something like '\\'
2770
+ $escape_char_pos = $close_pos - 1;
2771
+ while ($escape_char_pos > 0
2772
+ && $part[$escape_char_pos - 1] == $this->language_data['HARDCHAR']) {
2773
+ --$escape_char_pos;
2774
+ }
2775
+ if (($close_pos - $escape_char_pos) & 1) {
2776
+ // uneven number of escape chars => this quote is escaped
2777
+ continue 2;
2778
+ }
2779
+ }
2780
+ }
2781
+ }
2782
+
2783
+ // found closing quote
2784
+ break;
2785
+ }
2786
+
2787
+ //Found the closing delimiter?
2788
+ if (!$close_pos) {
2789
+ // span till the end of this $part when no closing delimiter is found
2790
+ $close_pos = $length;
2791
+ }
2792
+
2793
+ //Get the actual string
2794
+ $string = substr($part, $i, $close_pos - $i + 1);
2795
+ $i = $close_pos;
2796
+
2797
+ // handle escape chars and encode html chars
2798
+ // (special because when we have escape chars within our string they may not be escaped)
2799
+ if ($this->lexic_permissions['ESCAPE_CHAR'] && $this->language_data['ESCAPE_CHAR']) {
2800
+ $start = 0;
2801
+ $new_string = '';
2802
+ while ($es_pos = strpos($string, $this->language_data['ESCAPE_CHAR'], $start)) {
2803
+ // hmtl escape stuff before
2804
+ $new_string .= $this->hsc(substr($string, $start, $es_pos - $start));
2805
+ // check if this is a hard escape
2806
+ foreach ($this->language_data['HARDESCAPE'] as $hardescape) {
2807
+ if (substr($string, $es_pos, strlen($hardescape)) == $hardescape) {
2808
+ // indeed, this is a hardescape
2809
+ $new_string .= "<span$escape_char_attributes>" .
2810
+ $this->hsc($hardescape) . '</span>';
2811
+ $start = $es_pos + strlen($hardescape);
2812
+ continue 2;
2813
+ }
2814
+ }
2815
+ // not a hard escape, but a normal escape
2816
+ // they come in pairs of two
2817
+ $c = 0;
2818
+ while (isset($string[$es_pos + $c]) && isset($string[$es_pos + $c + 1])
2819
+ && $string[$es_pos + $c] == $this->language_data['ESCAPE_CHAR']
2820
+ && $string[$es_pos + $c + 1] == $this->language_data['ESCAPE_CHAR']) {
2821
+ $c += 2;
2822
+ }
2823
+ if ($c) {
2824
+ $new_string .= "<span$escape_char_attributes>" .
2825
+ str_repeat($escaped_escape_char, $c) .
2826
+ '</span>';
2827
+ $start = $es_pos + $c;
2828
+ } else {
2829
+ // this is just a single lonely escape char...
2830
+ $new_string .= $escaped_escape_char;
2831
+ $start = $es_pos + 1;
2832
+ }
2833
+ }
2834
+ $string = $new_string . $this->hsc(substr($string, $start));
2835
+ } else {
2836
+ $string = $this->hsc($string);
2837
+ }
2838
+
2839
+ if ($check_linenumbers) {
2840
+ // Are line numbers used? If, we should end the string before
2841
+ // the newline and begin it again (so when <li>s are put in the source
2842
+ // remains XHTML compliant)
2843
+ // note to self: This opens up possibility of config files specifying
2844
+ // that languages can/cannot have multiline strings???
2845
+ $string = str_replace("\n", "</span>\n<span$string_attributes>", $string);
2846
+ }
2847
+
2848
+ $result .= "<span$string_attributes>" . $string . '</span>';
2849
+ $string = '';
2850
+ continue;
2851
+ } else {
2852
+ //Have a look for regexp comments
2853
+ if ($i == $next_comment_regexp_pos) {
2854
+ $COMMENT_MATCHED = true;
2855
+ $comment = $comment_regexp_cache_per_key[$next_comment_regexp_key];
2856
+ $test_str = $this->hsc(substr($part, $i, $comment['length']));
2857
+
2858
+ //@todo If remove important do remove here
2859
+ if ($this->lexic_permissions['COMMENTS']['MULTI']) {
2860
+ if (!$this->use_classes) {
2861
+ $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment['key']] . '"';
2862
+ } else {
2863
+ $attributes = ' class="co' . $comment['key'] . '"';
2864
+ }
2865
+
2866
+ $test_str = "<span$attributes>" . $test_str . "</span>";
2867
+
2868
+ // Short-cut through all the multiline code
2869
+ if ($check_linenumbers) {
2870
+ // strreplace to put close span and open span around multiline newlines
2871
+ $test_str = str_replace(
2872
+ "\n", "</span>\n<span$attributes>",
2873
+ str_replace("\n ", "\n&nbsp;", $test_str)
2874
+ );
2875
+ }
2876
+ }
2877
+
2878
+ $i += $comment['length'] - 1;
2879
+
2880
+ // parse the rest
2881
+ $result .= $this->parse_non_string_part($stuff_to_parse);
2882
+ $stuff_to_parse = '';
2883
+ }
2884
+
2885
+ // If we haven't matched a regexp comment, try multi-line comments
2886
+ if (!$COMMENT_MATCHED) {
2887
+ // Is this a multiline comment?
2888
+ if (!empty($this->language_data['COMMENT_MULTI']) && $next_comment_multi_pos < $i) {
2889
+ $next_comment_multi_pos = $length;
2890
+ foreach ($this->language_data['COMMENT_MULTI'] as $open => $close) {
2891
+ $match_i = false;
2892
+ if (isset($comment_multi_cache_per_key[$open]) &&
2893
+ ($comment_multi_cache_per_key[$open] >= $i ||
2894
+ $comment_multi_cache_per_key[$open] === false)) {
2895
+ // we have already matched something
2896
+ if ($comment_multi_cache_per_key[$open] === false) {
2897
+ // this comment is never matched
2898
+ continue;
2899
+ }
2900
+ $match_i = $comment_multi_cache_per_key[$open];
2901
+ } elseif (($match_i = stripos($part, $open, $i)) !== false) {
2902
+ $comment_multi_cache_per_key[$open] = $match_i;
2903
+ } else {
2904
+ $comment_multi_cache_per_key[$open] = false;
2905
+ continue;
2906
+ }
2907
+ if ($match_i !== false && $match_i < $next_comment_multi_pos) {
2908
+ $next_comment_multi_pos = $match_i;
2909
+ $next_open_comment_multi = $open;
2910
+ if ($match_i === $i) {
2911
+ break;
2912
+ }
2913
+ }
2914
+ }
2915
+ }
2916
+ if ($i == $next_comment_multi_pos) {
2917
+ $open = $next_open_comment_multi;
2918
+ $close = $this->language_data['COMMENT_MULTI'][$open];
2919
+ $open_strlen = strlen($open);
2920
+ $close_strlen = strlen($close);
2921
+ $COMMENT_MATCHED = true;
2922
+ $test_str_match = $open;
2923
+ //@todo If remove important do remove here
2924
+ if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
2925
+ $open == GESHI_START_IMPORTANT) {
2926
+ if ($open != GESHI_START_IMPORTANT) {
2927
+ if (!$this->use_classes) {
2928
+ $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS']['MULTI'] . '"';
2929
+ } else {
2930
+ $attributes = ' class="coMULTI"';
2931
+ }
2932
+ $test_str = "<span$attributes>" . $this->hsc($open);
2933
+ } else {
2934
+ if (!$this->use_classes) {
2935
+ $attributes = ' style="' . $this->important_styles . '"';
2936
+ } else {
2937
+ $attributes = ' class="imp"';
2938
+ }
2939
+
2940
+ // We don't include the start of the comment if it's an
2941
+ // "important" part
2942
+ $test_str = "<span$attributes>";
2943
+ }
2944
+ } else {
2945
+ $test_str = $this->hsc($open);
2946
+ }
2947
+
2948
+ $close_pos = strpos( $part, $close, $i + $open_strlen );
2949
+
2950
+ if ($close_pos === false) {
2951
+ $close_pos = $length;
2952
+ }
2953
+
2954
+ // Short-cut through all the multiline code
2955
+ $rest_of_comment = $this->hsc(substr($part, $i + $open_strlen, $close_pos - $i - $open_strlen + $close_strlen));
2956
+ if (($this->lexic_permissions['COMMENTS']['MULTI'] ||
2957
+ $test_str_match == GESHI_START_IMPORTANT) &&
2958
+ $check_linenumbers) {
2959
+
2960
+ // strreplace to put close span and open span around multiline newlines
2961
+ $test_str .= str_replace(
2962
+ "\n", "</span>\n<span$attributes>",
2963
+ str_replace("\n ", "\n&nbsp;", $rest_of_comment)
2964
+ );
2965
+ } else {
2966
+ $test_str .= $rest_of_comment;
2967
+ }
2968
+
2969
+ if ($this->lexic_permissions['COMMENTS']['MULTI'] ||
2970
+ $test_str_match == GESHI_START_IMPORTANT) {
2971
+ $test_str .= '</span>';
2972
+ }
2973
+
2974
+ $i = $close_pos + $close_strlen - 1;
2975
+
2976
+ // parse the rest
2977
+ $result .= $this->parse_non_string_part($stuff_to_parse);
2978
+ $stuff_to_parse = '';
2979
+ }
2980
+ }
2981
+
2982
+ // If we haven't matched a multiline comment, try single-line comments
2983
+ if (!$COMMENT_MATCHED) {
2984
+ // cache potential single line comment occurances
2985
+ if (!empty($this->language_data['COMMENT_SINGLE']) && $next_comment_single_pos < $i) {
2986
+ $next_comment_single_pos = $length;
2987
+ foreach ($this->language_data['COMMENT_SINGLE'] as $comment_key => $comment_mark) {
2988
+ $match_i = false;
2989
+ if (isset($comment_single_cache_per_key[$comment_key]) &&
2990
+ ($comment_single_cache_per_key[$comment_key] >= $i ||
2991
+ $comment_single_cache_per_key[$comment_key] === false)) {
2992
+ // we have already matched something
2993
+ if ($comment_single_cache_per_key[$comment_key] === false) {
2994
+ // this comment is never matched
2995
+ continue;
2996
+ }
2997
+ $match_i = $comment_single_cache_per_key[$comment_key];
2998
+ } elseif (
2999
+ // case sensitive comments
3000
+ ($this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] &&
3001
+ ($match_i = stripos($part, $comment_mark, $i)) !== false) ||
3002
+ // non case sensitive
3003
+ (!$this->language_data['CASE_SENSITIVE'][GESHI_COMMENTS] &&
3004
+ (($match_i = strpos($part, $comment_mark, $i)) !== false))) {
3005
+ $comment_single_cache_per_key[$comment_key] = $match_i;
3006
+ } else {
3007
+ $comment_single_cache_per_key[$comment_key] = false;
3008
+ continue;
3009
+ }
3010
+ if ($match_i !== false && $match_i < $next_comment_single_pos) {
3011
+ $next_comment_single_pos = $match_i;
3012
+ $next_comment_single_key = $comment_key;
3013
+ if ($match_i === $i) {
3014
+ break;
3015
+ }
3016
+ }
3017
+ }
3018
+ }
3019
+ if ($next_comment_single_pos == $i) {
3020
+ $comment_key = $next_comment_single_key;
3021
+ $comment_mark = $this->language_data['COMMENT_SINGLE'][$comment_key];
3022
+ $com_len = strlen($comment_mark);
3023
+
3024
+ // This check will find special variables like $# in bash
3025
+ // or compiler directives of Delphi beginning {$
3026
+ if ((empty($sc_disallowed_before) || ($i == 0) ||
3027
+ (false === strpos($sc_disallowed_before, $part[$i-1]))) &&
3028
+ (empty($sc_disallowed_after) || ($length <= $i + $com_len) ||
3029
+ (false === strpos($sc_disallowed_after, $part[$i + $com_len]))))
3030
+ {
3031
+ // this is a valid comment
3032
+ $COMMENT_MATCHED = true;
3033
+ if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
3034
+ if (!$this->use_classes) {
3035
+ $attributes = ' style="' . $this->language_data['STYLES']['COMMENTS'][$comment_key] . '"';
3036
+ } else {
3037
+ $attributes = ' class="co' . $comment_key . '"';
3038
+ }
3039
+ $test_str = "<span$attributes>" . $this->hsc($this->change_case($comment_mark));
3040
+ } else {
3041
+ $test_str = $this->hsc($comment_mark);
3042
+ }
3043
+
3044
+ //Check if this comment is the last in the source
3045
+ $close_pos = strpos($part, "\n", $i);
3046
+ $oops = false;
3047
+ if ($close_pos === false) {
3048
+ $close_pos = $length;
3049
+ $oops = true;
3050
+ }
3051
+ $test_str .= $this->hsc(substr($part, $i + $com_len, $close_pos - $i - $com_len));
3052
+ if ($this->lexic_permissions['COMMENTS'][$comment_key]) {
3053
+ $test_str .= "</span>";
3054
+ }
3055
+
3056
+ // Take into account that the comment might be the last in the source
3057
+ if (!$oops) {
3058
+ $test_str .= "\n";
3059
+ }
3060
+
3061
+ $i = $close_pos;
3062
+
3063
+ // parse the rest
3064
+ $result .= $this->parse_non_string_part($stuff_to_parse);
3065
+ $stuff_to_parse = '';
3066
+ }
3067
+ }
3068
+ }
3069
+ }
3070
+
3071
+ // Where are we adding this char?
3072
+ if (!$COMMENT_MATCHED) {
3073
+ $stuff_to_parse .= $char;
3074
+ } else {
3075
+ $result .= $test_str;
3076
+ unset($test_str);
3077
+ $COMMENT_MATCHED = false;
3078
+ }
3079
+ }
3080
+ // Parse the last bit
3081
+ $result .= $this->parse_non_string_part($stuff_to_parse);
3082
+ $stuff_to_parse = '';
3083
+ } else {
3084
+ $result .= $this->hsc($part);
3085
+ }
3086
+ // Close the <span> that surrounds the block
3087
+ if ($STRICTATTRS != '') {
3088
+ $result = str_replace("\n", "</span>\n<span$STRICTATTRS>", $result);
3089
+ $result .= '</span>';
3090
+ }
3091
+
3092
+ $endresult .= $result;
3093
+ unset($part, $parts[$key], $result);
3094
+ }
3095
+
3096
+ //This fix is related to SF#1923020, but has to be applied regardless of
3097
+ //actually highlighting symbols.
3098
+ /** NOTE: memorypeak #3 */
3099
+ $endresult = str_replace(array('<SEMI>', '<PIPE>'), array(';', '|'), $endresult);
3100
+
3101
+ // // Parse the last stuff (redundant?)
3102
+ // $result .= $this->parse_non_string_part($stuff_to_parse);
3103
+
3104
+ // Lop off the very first and last spaces
3105
+ // $result = substr($result, 1, -1);
3106
+
3107
+ // We're finished: stop timing
3108
+ $this->set_time($start_time, microtime());
3109
+
3110
+ $this->finalise($endresult);
3111
+ return $endresult;
3112
+ }
3113
+
3114
+ /**
3115
+ * Swaps out spaces and tabs for HTML indentation. Not needed if
3116
+ * the code is in a pre block...
3117
+ *
3118
+ * @param string $result The source to indent (reference!)
3119
+ * @since 1.0.0
3120
+ */
3121
+ protected function indent(&$result) {
3122
+ /// Replace tabs with the correct number of spaces
3123
+ if (false !== strpos($result, "\t")) {
3124
+ $lines = explode("\n", $result);
3125
+ $result = null;//Save memory while we process the lines individually
3126
+ $tab_width = $this->get_real_tab_width();
3127
+ $tab_string = '&nbsp;' . str_repeat(' ', $tab_width);
3128
+
3129
+ for ($key = 0, $n = count($lines); $key < $n; $key++) {
3130
+ $line = $lines[$key];
3131
+ if (false === strpos($line, "\t")) {
3132
+ continue;
3133
+ }
3134
+
3135
+ $pos = 0;
3136
+ $length = strlen($line);
3137
+ $lines[$key] = ''; // reduce memory
3138
+
3139
+ $IN_TAG = false;
3140
+ for ($i = 0; $i < $length; ++$i) {
3141
+ $char = $line[$i];
3142
+ // Simple engine to work out whether we're in a tag.
3143
+ // If we are we modify $pos. This is so we ignore HTML
3144
+ // in the line and only workout the tab replacement
3145
+ // via the actual content of the string
3146
+ // This test could be improved to include strings in the
3147
+ // html so that < or > would be allowed in user's styles
3148
+ // (e.g. quotes: '<' '>'; or similar)
3149
+ if ($IN_TAG) {
3150
+ if ('>' == $char) {
3151
+ $IN_TAG = false;
3152
+ }
3153
+ $lines[$key] .= $char;
3154
+ } elseif ('<' == $char) {
3155
+ $IN_TAG = true;
3156
+ $lines[$key] .= '<';
3157
+ } elseif ('&' == $char) {
3158
+ $substr = substr($line, $i + 3, 5);
3159
+ $posi = strpos($substr, ';');
3160
+ if (false === $posi) {
3161
+ ++$pos;
3162
+ } else {
3163
+ $pos -= $posi+2;
3164
+ }
3165
+ $lines[$key] .= $char;
3166
+ } elseif ("\t" == $char) {
3167
+ $str = '';
3168
+ // OPTIMISE - move $strs out. Make an array:
3169
+ // $tabs = array(
3170
+ // 1 => '&nbsp;',
3171
+ // 2 => '&nbsp; ',
3172
+ // 3 => '&nbsp; &nbsp;' etc etc
3173
+ // to use instead of building a string every time
3174
+ $tab_end_width = $tab_width - ($pos % $tab_width); //Moved out of the look as it doesn't change within the loop
3175
+ if (($pos & 1) || 1 == $tab_end_width) {
3176
+ $str .= substr($tab_string, 6, $tab_end_width);
3177
+ } else {
3178
+ $str .= substr($tab_string, 0, $tab_end_width+5);
3179
+ }
3180
+ $lines[$key] .= $str;
3181
+ $pos += $tab_end_width;
3182
+
3183
+ if (false === strpos($line, "\t", $i + 1)) {
3184
+ $lines[$key] .= substr($line, $i + 1);
3185
+ break;
3186
+ }
3187
+ } elseif (0 == $pos && ' ' == $char) {
3188
+ $lines[$key] .= '&nbsp;';
3189
+ ++$pos;
3190
+ } else {
3191
+ $lines[$key] .= $char;
3192
+ ++$pos;
3193
+ }
3194
+ }
3195
+ }
3196
+ $result = implode("\n", $lines);
3197
+ unset($lines);//We don't need the lines separated beyond this --- free them!
3198
+ }
3199
+ // Other whitespace
3200
+ // BenBE: Fix to reduce the number of replacements to be done
3201
+ $result = preg_replace('/^ /m', '&nbsp;', $result);
3202
+ $result = str_replace(' ', ' &nbsp;', $result);
3203
+
3204
+ if ($this->line_numbers == GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) {
3205
+ if ($this->line_ending === null) {
3206
+ $result = nl2br($result);
3207
+ } else {
3208
+ $result = str_replace("\n", $this->line_ending, $result);
3209
+ }
3210
+ }
3211
+ }
3212
+
3213
+ /**
3214
+ * Changes the case of a keyword for those languages where a change is asked for
3215
+ *
3216
+ * @param string $instr The keyword to change the case of
3217
+ * @return string The keyword with its case changed
3218
+ * @since 1.0.0
3219
+ */
3220
+ protected function change_case($instr) {
3221
+ switch ($this->language_data['CASE_KEYWORDS']) {
3222
+ case GESHI_CAPS_UPPER:
3223
+ return strtoupper($instr);
3224
+ case GESHI_CAPS_LOWER:
3225
+ return strtolower($instr);
3226
+ default:
3227
+ return $instr;
3228
+ }
3229
+ }
3230
+
3231
+ /**
3232
+ * Handles replacements of keywords to include markup and links if requested
3233
+ *
3234
+ * @param string $match The keyword to add the Markup to
3235
+ * @return string The HTML for the match found
3236
+ * @since 1.0.8
3237
+ *
3238
+ * @todo Get rid of ender in keyword links
3239
+ */
3240
+ protected function handle_keyword_replace($match) {
3241
+ $k = $this->_kw_replace_group;
3242
+ $keyword = $match[0];
3243
+ $keyword_match = $match[1];
3244
+
3245
+ $before = '';
3246
+ $after = '';
3247
+
3248
+ if ($this->keyword_links) {
3249
+ // Keyword links have been ebabled
3250
+
3251
+ if (isset($this->language_data['URLS'][$k]) &&
3252
+ $this->language_data['URLS'][$k] != '') {
3253
+ // There is a base group for this keyword
3254
+
3255
+ // Old system: strtolower
3256
+ //$keyword = ( $this->language_data['CASE_SENSITIVE'][$group] ) ? $keyword : strtolower($keyword);
3257
+ // New system: get keyword from language file to get correct case
3258
+ if (!$this->language_data['CASE_SENSITIVE'][$k] &&
3259
+ strpos($this->language_data['URLS'][$k], '{FNAME}') !== false) {
3260
+ foreach ($this->language_data['KEYWORDS'][$k] as $word) {
3261
+ if (strcasecmp($word, $keyword_match) == 0) {
3262
+ break;
3263
+ }
3264
+ }
3265
+ } else {
3266
+ $word = $keyword_match;
3267
+ }
3268
+
3269
+ $before = '<|UR1|"' .
3270
+ str_replace(
3271
+ array(
3272
+ '{FNAME}',
3273
+ '{FNAMEL}',
3274
+ '{FNAMEU}',
3275
+ '{FNAMEUF}',
3276
+ '.'),
3277
+ array(
3278
+ str_replace('+', '%20', urlencode($this->hsc($word))),
3279
+ str_replace('+', '%20', urlencode($this->hsc(strtolower($word)))),
3280
+ str_replace('+', '%20', urlencode($this->hsc(strtoupper($word)))),
3281
+ str_replace('+', '%20', urlencode($this->hsc(ucfirst($word)))),
3282
+ '<DOT>'),
3283
+ $this->language_data['URLS'][$k]
3284
+ ) . '">';
3285
+ $after = '</a>';
3286
+ }
3287
+ }
3288
+
3289
+ return $before . '<|/'. $k .'/>' . $this->change_case($keyword) . '|>' . $after;
3290
+ }
3291
+
3292
+ /**
3293
+ * handles regular expressions highlighting-definitions with callback functions
3294
+ *
3295
+ * @note this is a callback, don't use it directly
3296
+ *
3297
+ * @param array $matches the matches array
3298
+ * @return string The highlighted string
3299
+ * @since 1.0.8
3300
+ */
3301
+ protected function handle_regexps_callback($matches) {
3302
+ // before: "' style=\"' . call_user_func(\"$func\", '\\1') . '\"\\1|>'",
3303
+ return ' style="' . call_user_func($this->language_data['STYLES']['REGEXPS'][$this->_rx_key], $matches[1]) . '"'. $matches[1] . '|>';
3304
+ }
3305
+
3306
+ /**
3307
+ * handles newlines in REGEXPS matches. Set the _hmr_* vars before calling this
3308
+ *
3309
+ * @note this is a callback, don't use it directly
3310
+ *
3311
+ * @param array $matches the matches array
3312
+ * @return string
3313
+ * @since 1.0.8
3314
+ */
3315
+ protected function handle_multiline_regexps($matches) {
3316
+ $before = $this->_hmr_before;
3317
+ $after = $this->_hmr_after;
3318
+ if ($this->_hmr_replace) {
3319
+ $replace = $this->_hmr_replace;
3320
+ $search = array();
3321
+
3322
+ foreach (array_keys($matches) as $k) {
3323
+ $search[] = '\\' . $k;
3324
+ }
3325
+
3326
+ $before = str_replace($search, $matches, $before);
3327
+ $after = str_replace($search, $matches, $after);
3328
+ $replace = str_replace($search, $matches, $replace);
3329
+ } else {
3330
+ $replace = $matches[0];
3331
+ }
3332
+ return $before
3333
+ . '<|!REG3XP' . $this->_hmr_key .'!>'
3334
+ . str_replace("\n", "|>\n<|!REG3XP" . $this->_hmr_key . '!>', $replace)
3335
+ . '|>'
3336
+ . $after;
3337
+ }
3338
+
3339
+ /**
3340
+ * Takes a string that has no strings or comments in it, and highlights
3341
+ * stuff like keywords, numbers and methods.
3342
+ *
3343
+ * @param string $stuff_to_parse The string to parse for keyword, numbers etc.
3344
+ * @since 1.0.0
3345
+ * @todo BUGGY! Why? Why not build string and return?
3346
+ * @return string
3347
+ */
3348
+ protected function parse_non_string_part($stuff_to_parse) {
3349
+ $stuff_to_parse = ' ' . $this->hsc($stuff_to_parse);
3350
+
3351
+ // Highlight keywords
3352
+ $disallowed_before = "(?<![a-zA-Z0-9\$_\|\#|^&";
3353
+ $disallowed_after = "(?![a-zA-Z0-9_\|%\\-&;";
3354
+ if ($this->lexic_permissions['STRINGS']) {
3355
+ $quotemarks = preg_quote(implode($this->language_data['QUOTEMARKS']), '/');
3356
+ $disallowed_before .= $quotemarks;
3357
+ $disallowed_after .= $quotemarks;
3358
+ }
3359
+ $disallowed_before .= "])";
3360
+ $disallowed_after .= "])";
3361
+
3362
+ $parser_control_pergroup = false;
3363
+ if (isset($this->language_data['PARSER_CONTROL'])) {
3364
+ if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'])) {
3365
+ $x = 0; // check wether per-keyword-group parser_control is enabled
3366
+ if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'])) {
3367
+ $disallowed_before = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_BEFORE'];
3368
+ ++$x;
3369
+ }
3370
+ if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'])) {
3371
+ $disallowed_after = $this->language_data['PARSER_CONTROL']['KEYWORDS']['DISALLOWED_AFTER'];
3372
+ ++$x;
3373
+ }
3374
+ $parser_control_pergroup = (count($this->language_data['PARSER_CONTROL']['KEYWORDS']) - $x) > 0;
3375
+ }
3376
+ }
3377
+
3378
+ foreach (array_keys($this->language_data['KEYWORDS']) as $k) {
3379
+ if (!isset($this->lexic_permissions['KEYWORDS'][$k]) ||
3380
+ $this->lexic_permissions['KEYWORDS'][$k]) {
3381
+
3382
+ $case_sensitive = $this->language_data['CASE_SENSITIVE'][$k];
3383
+ $modifiers = $case_sensitive ? '' : 'i';
3384
+
3385
+ // NEW in 1.0.8 - per-keyword-group parser control
3386
+ $disallowed_before_local = $disallowed_before;
3387
+ $disallowed_after_local = $disallowed_after;
3388
+ if ($parser_control_pergroup && isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k])) {
3389
+ if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'])) {
3390
+ $disallowed_before_local =
3391
+ $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_BEFORE'];
3392
+ }
3393
+
3394
+ if (isset($this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'])) {
3395
+ $disallowed_after_local =
3396
+ $this->language_data['PARSER_CONTROL']['KEYWORDS'][$k]['DISALLOWED_AFTER'];
3397
+ }
3398
+ }
3399
+
3400
+ $this->_kw_replace_group = $k;
3401
+
3402
+ //NEW in 1.0.8, the cached regexp list
3403
+ // since we don't want PHP / PCRE to crash due to too large patterns we split them into smaller chunks
3404
+ for ($set = 0, $set_length = count($this->language_data['CACHED_KEYWORD_LISTS'][$k]); $set < $set_length; ++$set) {
3405
+ $keywordset =& $this->language_data['CACHED_KEYWORD_LISTS'][$k][$set];
3406
+ // Might make a more unique string for putting the number in soon
3407
+ // Basically, we don't put the styles in yet because then the styles themselves will
3408
+ // get highlighted if the language has a CSS keyword in it (like CSS, for example ;))
3409
+ $stuff_to_parse = preg_replace_callback(
3410
+ "/$disallowed_before_local({$keywordset})(?!\<DOT\>(?:htm|php|aspx?))$disallowed_after_local/$modifiers",
3411
+ array($this, 'handle_keyword_replace'),
3412
+ $stuff_to_parse
3413
+ );
3414
+ }
3415
+ }
3416
+ }
3417
+
3418
+ // Regular expressions
3419
+ foreach ($this->language_data['REGEXPS'] as $key => $regexp) {
3420
+ if ($this->lexic_permissions['REGEXPS'][$key]) {
3421
+ if (is_array($regexp)) {
3422
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
3423
+ // produce valid HTML when we match multiple lines
3424
+ $this->_hmr_replace = $regexp[GESHI_REPLACE];
3425
+ $this->_hmr_before = $regexp[GESHI_BEFORE];
3426
+ $this->_hmr_key = $key;
3427
+ $this->_hmr_after = $regexp[GESHI_AFTER];
3428
+ $stuff_to_parse = preg_replace_callback(
3429
+ "/" . $regexp[GESHI_SEARCH] . "/{$regexp[GESHI_MODIFIERS]}",
3430
+ array($this, 'handle_multiline_regexps'),
3431
+ $stuff_to_parse);
3432
+ $this->_hmr_replace = false;
3433
+ $this->_hmr_before = '';
3434
+ $this->_hmr_after = '';
3435
+ } else {
3436
+ $stuff_to_parse = preg_replace(
3437
+ '/' . $regexp[GESHI_SEARCH] . '/' . $regexp[GESHI_MODIFIERS],
3438
+ $regexp[GESHI_BEFORE] . '<|!REG3XP'. $key .'!>' . $regexp[GESHI_REPLACE] . '|>' . $regexp[GESHI_AFTER],
3439
+ $stuff_to_parse);
3440
+ }
3441
+ } else {
3442
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
3443
+ // produce valid HTML when we match multiple lines
3444
+ $this->_hmr_key = $key;
3445
+ $stuff_to_parse = preg_replace_callback( "/(" . $regexp . ")/",
3446
+ array($this, 'handle_multiline_regexps'), $stuff_to_parse);
3447
+ $this->_hmr_key = '';
3448
+ } else {
3449
+ $stuff_to_parse = preg_replace( "/(" . $regexp . ")/", "<|!REG3XP$key!>\\1|>", $stuff_to_parse);
3450
+ }
3451
+ }
3452
+ }
3453
+ }
3454
+
3455
+ // Highlight numbers. As of 1.0.8 we support different types of numbers
3456
+ $numbers_found = false;
3457
+
3458
+ if ($this->lexic_permissions['NUMBERS'] && preg_match($this->language_data['PARSER_CONTROL']['NUMBERS']['PRECHECK_RX'], $stuff_to_parse )) {
3459
+ $numbers_found = true;
3460
+
3461
+ //For each of the formats ...
3462
+ foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) {
3463
+ //Check if it should be highlighted ...
3464
+ $stuff_to_parse = preg_replace($regexp, "<|/NUM!$id/>\\1|>", $stuff_to_parse);
3465
+ }
3466
+ }
3467
+
3468
+ //
3469
+ // Now that's all done, replace /[number]/ with the correct styles
3470
+ //
3471
+ foreach (array_keys($this->language_data['KEYWORDS']) as $k) {
3472
+ if (!$this->use_classes) {
3473
+ $attributes = ' style="' .
3474
+ (isset($this->language_data['STYLES']['KEYWORDS'][$k]) ?
3475
+ $this->language_data['STYLES']['KEYWORDS'][$k] : "") . '"';
3476
+ } else {
3477
+ $attributes = ' class="kw' . $k . '"';
3478
+ }
3479
+ $stuff_to_parse = str_replace("<|/$k/>", "<|$attributes>", $stuff_to_parse);
3480
+ }
3481
+
3482
+ if ($numbers_found) {
3483
+ // Put number styles in
3484
+ foreach($this->language_data['NUMBERS_RXCACHE'] as $id => $regexp) {
3485
+ //Commented out for now, as this needs some review ...
3486
+ // if ($numbers_permissions & $id) {
3487
+ //Get the appropriate style ...
3488
+ //Checking for unset styles is done by the style cache builder ...
3489
+ if (!$this->use_classes) {
3490
+ $attributes = ' style="' . $this->language_data['STYLES']['NUMBERS'][$id] . '"';
3491
+ } else {
3492
+ $attributes = ' class="nu'.$id.'"';
3493
+ }
3494
+
3495
+ //Set in the correct styles ...
3496
+ $stuff_to_parse = str_replace("/NUM!$id/", $attributes, $stuff_to_parse);
3497
+ // }
3498
+ }
3499
+ }
3500
+
3501
+ // Highlight methods and fields in objects
3502
+ if ($this->lexic_permissions['METHODS'] && $this->language_data['OOLANG']) {
3503
+ $oolang_spaces = "[\s]*";
3504
+ $oolang_before = "";
3505
+ $oolang_after = "[a-zA-Z][a-zA-Z0-9_]*";
3506
+ if (isset($this->language_data['PARSER_CONTROL'])) {
3507
+ if (isset($this->language_data['PARSER_CONTROL']['OOLANG'])) {
3508
+ if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'])) {
3509
+ $oolang_before = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_BEFORE'];
3510
+ }
3511
+ if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'])) {
3512
+ $oolang_after = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_AFTER'];
3513
+ }
3514
+ if (isset($this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'])) {
3515
+ $oolang_spaces = $this->language_data['PARSER_CONTROL']['OOLANG']['MATCH_SPACES'];
3516
+ }
3517
+ }
3518
+ }
3519
+
3520
+ foreach ($this->language_data['OBJECT_SPLITTERS'] as $key => $splitter) {
3521
+ if (false !== strpos($stuff_to_parse, $splitter)) {
3522
+ if (!$this->use_classes) {
3523
+ $attributes = ' style="' . $this->language_data['STYLES']['METHODS'][$key] . '"';
3524
+ } else {
3525
+ $attributes = ' class="me' . $key . '"';
3526
+ }
3527
+ $stuff_to_parse = preg_replace("/($oolang_before)(" . preg_quote($this->language_data['OBJECT_SPLITTERS'][$key], '/') . ")($oolang_spaces)($oolang_after)/", "\\1\\2\\3<|$attributes>\\4|>", $stuff_to_parse);
3528
+ }
3529
+ }
3530
+ }
3531
+
3532
+ //
3533
+ // Highlight brackets. Yes, I've tried adding a semi-colon to this list.
3534
+ // You try it, and see what happens ;)
3535
+ // TODO: Fix lexic permissions not converting entities if shouldn't
3536
+ // be highlighting regardless
3537
+ //
3538
+ if ($this->lexic_permissions['BRACKETS']) {
3539
+ $stuff_to_parse = str_replace( $this->language_data['CACHE_BRACKET_MATCH'],
3540
+ $this->language_data['CACHE_BRACKET_REPLACE'], $stuff_to_parse );
3541
+ }
3542
+
3543
+
3544
+ //FIX for symbol highlighting ...
3545
+ if ($this->lexic_permissions['SYMBOLS'] && !empty($this->language_data['SYMBOLS'])) {
3546
+ //Get all matches and throw away those witin a block that is already highlighted... (i.e. matched by a regexp)
3547
+ $n_symbols = preg_match_all("/<\|(?:<DOT>|[^>])+>(?:(?!\|>).*?)\|>|<\/a>|(?:" . $this->language_data['SYMBOL_SEARCH'] . ")+(?![^<]+?>)/", $stuff_to_parse, $pot_symbols, PREG_OFFSET_CAPTURE | PREG_SET_ORDER);
3548
+ $global_offset = 0;
3549
+ for ($s_id = 0; $s_id < $n_symbols; ++$s_id) {
3550
+ $symbol_match = $pot_symbols[$s_id][0][0];
3551
+ if (strpos($symbol_match, '<') !== false || strpos($symbol_match, '>') !== false) {
3552
+ // already highlighted blocks _must_ include either < or >
3553
+ // so if this conditional applies, we have to skip this match
3554
+ // BenBE: UNLESS the block contains <SEMI> or <PIPE>
3555
+ if(strpos($symbol_match, '<SEMI>') === false &&
3556
+ strpos($symbol_match, '<PIPE>') === false) {
3557
+ continue;
3558
+ }
3559
+ }
3560
+
3561
+ // if we reach this point, we have a valid match which needs to be highlighted
3562
+
3563
+ $symbol_length = strlen($symbol_match);
3564
+ $symbol_offset = $pot_symbols[$s_id][0][1];
3565
+ unset($pot_symbols[$s_id]);
3566
+ $symbol_hl = "";
3567
+
3568
+ // if we have multiple styles, we have to handle them properly
3569
+ if ($this->language_data['MULTIPLE_SYMBOL_GROUPS']) {
3570
+ $old_sym = -1;
3571
+ // Split the current stuff to replace into its atomic symbols ...
3572
+ preg_match_all("/" . $this->language_data['SYMBOL_SEARCH'] . "/", $symbol_match, $sym_match_syms, PREG_PATTERN_ORDER);
3573
+ foreach ($sym_match_syms[0] as $sym_ms) {
3574
+ //Check if consequtive symbols belong to the same group to save output ...
3575
+ if (isset($this->language_data['SYMBOL_DATA'][$sym_ms])
3576
+ && ($this->language_data['SYMBOL_DATA'][$sym_ms] != $old_sym)) {
3577
+ if (-1 != $old_sym) {
3578
+ $symbol_hl .= "|>";
3579
+ }
3580
+ $old_sym = $this->language_data['SYMBOL_DATA'][$sym_ms];
3581
+ if (!$this->use_classes) {
3582
+ $symbol_hl .= '<| style="' . $this->language_data['STYLES']['SYMBOLS'][$old_sym] . '">';
3583
+ } else {
3584
+ $symbol_hl .= '<| class="sy' . $old_sym . '">';
3585
+ }
3586
+ }
3587
+ $symbol_hl .= $sym_ms;
3588
+ }
3589
+ unset($sym_match_syms);
3590
+
3591
+ //Close remaining tags and insert the replacement at the right position ...
3592
+ //Take caution if symbol_hl is empty to avoid doubled closing spans.
3593
+ if (-1 != $old_sym) {
3594
+ $symbol_hl .= "|>";
3595
+ }
3596
+ } else {
3597
+ if (!$this->use_classes) {
3598
+ $symbol_hl = '<| style="' . $this->language_data['STYLES']['SYMBOLS'][0] . '">';
3599
+ } else {
3600
+ $symbol_hl = '<| class="sy0">';
3601
+ }
3602
+ $symbol_hl .= $symbol_match . '|>';
3603
+ }
3604
+
3605
+ $stuff_to_parse = substr_replace($stuff_to_parse, $symbol_hl, $symbol_offset + $global_offset, $symbol_length);
3606
+
3607
+ // since we replace old text with something of different size,
3608
+ // we'll have to keep track of the differences
3609
+ $global_offset += strlen($symbol_hl) - $symbol_length;
3610
+ }
3611
+ }
3612
+ //FIX for symbol highlighting ...
3613
+
3614
+ // Add class/style for regexps
3615
+ foreach (array_keys($this->language_data['REGEXPS']) as $key) {
3616
+ if ($this->lexic_permissions['REGEXPS'][$key]) {
3617
+ if (is_callable($this->language_data['STYLES']['REGEXPS'][$key])) {
3618
+ $this->_rx_key = $key;
3619
+ $stuff_to_parse = preg_replace_callback("/!REG3XP$key!(.*)\|>/U",
3620
+ array($this, 'handle_regexps_callback'),
3621
+ $stuff_to_parse);
3622
+ } else {
3623
+ if (!$this->use_classes) {
3624
+ $attributes = ' style="' . $this->language_data['STYLES']['REGEXPS'][$key] . '"';
3625
+ } else {
3626
+ if (is_array($this->language_data['REGEXPS'][$key]) &&
3627
+ array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$key])) {
3628
+ $attributes = ' class="' .
3629
+ $this->language_data['REGEXPS'][$key][GESHI_CLASS] . '"';
3630
+ } else {
3631
+ $attributes = ' class="re' . $key . '"';
3632
+ }
3633
+ }
3634
+ $stuff_to_parse = str_replace("!REG3XP$key!", "$attributes", $stuff_to_parse);
3635
+ }
3636
+ }
3637
+ }
3638
+
3639
+ // Replace <DOT> with . for urls
3640
+ $stuff_to_parse = str_replace('<DOT>', '.', $stuff_to_parse);
3641
+ // Replace <|UR1| with <a href= for urls also
3642
+ if (isset($this->link_styles[GESHI_LINK])) {
3643
+ if ($this->use_classes) {
3644
+ $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' href=', $stuff_to_parse);
3645
+ } else {
3646
+ $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' style="' . $this->link_styles[GESHI_LINK] . '" href=', $stuff_to_parse);
3647
+ }
3648
+ } else {
3649
+ $stuff_to_parse = str_replace('<|UR1|', '<a' . $this->link_target . ' href=', $stuff_to_parse);
3650
+ }
3651
+
3652
+ //
3653
+ // NOW we add the span thingy ;)
3654
+ //
3655
+
3656
+ $stuff_to_parse = str_replace('<|', '<span', $stuff_to_parse);
3657
+ $stuff_to_parse = str_replace ( '|>', '</span>', $stuff_to_parse );
3658
+ return substr($stuff_to_parse, 1);
3659
+ }
3660
+
3661
+ /**
3662
+ * Sets the time taken to parse the code
3663
+ *
3664
+ * @param string $start_time The time when parsing started as returned by @see microtime()
3665
+ * @param string $end_time The time when parsing ended as returned by @see microtime()
3666
+ * @since 1.0.2
3667
+ */
3668
+ protected function set_time($start_time, $end_time) {
3669
+ $start = explode(' ', $start_time);
3670
+ $end = explode(' ', $end_time);
3671
+ $this->time = $end[0] + $end[1] - $start[0] - $start[1];
3672
+ }
3673
+
3674
+ /**
3675
+ * Gets the time taken to parse the code
3676
+ *
3677
+ * @return double The time taken to parse the code
3678
+ * @since 1.0.2
3679
+ */
3680
+ public function get_time() {
3681
+ return $this->time;
3682
+ }
3683
+
3684
+ /**
3685
+ * Merges arrays recursively, overwriting values of the first array with values of later arrays
3686
+ *
3687
+ * @since 1.0.8
3688
+ */
3689
+ protected function merge_arrays() {
3690
+ $arrays = func_get_args();
3691
+ $narrays = count($arrays);
3692
+
3693
+ // check arguments
3694
+ // comment out if more performance is necessary (in this case the foreach loop will trigger a warning if the argument is not an array)
3695
+ for ($i = 0; $i < $narrays; $i ++) {
3696
+ if (!is_array($arrays[$i])) {
3697
+ // also array_merge_recursive returns nothing in this case
3698
+ trigger_error('Argument #' . ($i+1) . ' is not an array - trying to merge array with scalar! Returning false!', E_USER_WARNING);
3699
+ return false;
3700
+ }
3701
+ }
3702
+
3703
+ // the first array is in the output set in every case
3704
+ $ret = $arrays[0];
3705
+
3706
+ // merege $ret with the remaining arrays
3707
+ for ($i = 1; $i < $narrays; $i ++) {
3708
+ foreach ($arrays[$i] as $key => $value) {
3709
+ if (is_array($value) && isset($ret[$key])) {
3710
+ // if $ret[$key] is not an array you try to merge an scalar value with an array - the result is not defined (incompatible arrays)
3711
+ // in this case the call will trigger an E_USER_WARNING and the $ret[$key] will be false.
3712
+ $ret[$key] = $this->merge_arrays($ret[$key], $value);
3713
+ } else {
3714
+ $ret[$key] = $value;
3715
+ }
3716
+ }
3717
+ }
3718
+
3719
+ return $ret;
3720
+ }
3721
+
3722
+ /**
3723
+ * Gets language information and stores it for later use
3724
+ *
3725
+ * @param string $file_name The filename of the language file you want to load
3726
+ * @since 1.0.0
3727
+ * @todo Needs to load keys for lexic permissions for keywords, regexps etc
3728
+ */
3729
+ protected function load_language($file_name) {
3730
+ if ($file_name == $this->loaded_language) {
3731
+ // this file is already loaded!
3732
+ return;
3733
+ }
3734
+
3735
+ //Prepare some stuff before actually loading the language file
3736
+ $this->loaded_language = $file_name;
3737
+ $this->parse_cache_built = false;
3738
+ $this->enable_highlighting();
3739
+ $language_data = array();
3740
+
3741
+ //Load the language file
3742
+ require $file_name;
3743
+
3744
+ // Perhaps some checking might be added here later to check that
3745
+ // $language data is a valid thing but maybe not
3746
+ $this->language_data = $language_data;
3747
+
3748
+ // Set strict mode if should be set
3749
+ $this->strict_mode = $this->language_data['STRICT_MODE_APPLIES'];
3750
+
3751
+ // Set permissions for all lexics to true
3752
+ // so they'll be highlighted by default
3753
+ foreach (array_keys($this->language_data['KEYWORDS']) as $key) {
3754
+ if (!empty($this->language_data['KEYWORDS'][$key])) {
3755
+ $this->lexic_permissions['KEYWORDS'][$key] = true;
3756
+ } else {
3757
+ $this->lexic_permissions['KEYWORDS'][$key] = false;
3758
+ }
3759
+ }
3760
+
3761
+ foreach (array_keys($this->language_data['COMMENT_SINGLE']) as $key) {
3762
+ $this->lexic_permissions['COMMENTS'][$key] = true;
3763
+ }
3764
+ foreach (array_keys($this->language_data['REGEXPS']) as $key) {
3765
+ $this->lexic_permissions['REGEXPS'][$key] = true;
3766
+ }
3767
+
3768
+ // for BenBE and future code reviews:
3769
+ // we can use empty here since we only check for existance and emptiness of an array
3770
+ // if it is not an array at all but rather false or null this will work as intended as well
3771
+ // even if $this->language_data['PARSER_CONTROL'] is undefined this won't trigger a notice
3772
+ if (!empty($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'])) {
3773
+ foreach ($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS'] as $flag => $value) {
3774
+ // it's either true or false and maybe is true as well
3775
+ $perm = $value !== GESHI_NEVER;
3776
+ if ($flag == 'ALL') {
3777
+ $this->enable_highlighting($perm);
3778
+ continue;
3779
+ }
3780
+ if (!isset($this->lexic_permissions[$flag])) {
3781
+ // unknown lexic permission
3782
+ continue;
3783
+ }
3784
+ if (is_array($this->lexic_permissions[$flag])) {
3785
+ foreach ($this->lexic_permissions[$flag] as $key => $val) {
3786
+ $this->lexic_permissions[$flag][$key] = $perm;
3787
+ }
3788
+ } else {
3789
+ $this->lexic_permissions[$flag] = $perm;
3790
+ }
3791
+ }
3792
+ unset($this->language_data['PARSER_CONTROL']['ENABLE_FLAGS']);
3793
+ }
3794
+
3795
+ //Fix: Problem where hardescapes weren't handled if no ESCAPE_CHAR was given
3796
+ //You need to set one for HARDESCAPES only in this case.
3797
+ if(!isset($this->language_data['HARDCHAR'])) {
3798
+ $this->language_data['HARDCHAR'] = $this->language_data['ESCAPE_CHAR'];
3799
+ }
3800
+
3801
+ //NEW in 1.0.8: Allow styles to be loaded from a separate file to override defaults
3802
+ $style_filename = substr($file_name, 0, -4) . '.style.php';
3803
+ if (is_readable($style_filename)) {
3804
+ //Clear any style_data that could have been set before ...
3805
+ if (isset($style_data)) {
3806
+ unset($style_data);
3807
+ }
3808
+
3809
+ //Read the Style Information from the style file
3810
+ include $style_filename;
3811
+
3812
+ //Apply the new styles to our current language styles
3813
+ if (isset($style_data) && is_array($style_data)) {
3814
+ $this->language_data['STYLES'] =
3815
+ $this->merge_arrays($this->language_data['STYLES'], $style_data);
3816
+ }
3817
+ }
3818
+ }
3819
+
3820
+ /**
3821
+ * Takes the parsed code and various options, and creates the HTML
3822
+ * surrounding it to make it look nice.
3823
+ *
3824
+ * @param string $parsed_code The code already parsed (reference!)
3825
+ * @since 1.0.0
3826
+ */
3827
+ protected function finalise(&$parsed_code) {
3828
+ // Remove end parts of important declarations
3829
+ // This is BUGGY!! My fault for bad code: fix coming in 1.2
3830
+ // @todo Remove this crap
3831
+ if ($this->enable_important_blocks &&
3832
+ (strpos($parsed_code, $this->hsc(GESHI_START_IMPORTANT)) === false)) {
3833
+ $parsed_code = str_replace($this->hsc(GESHI_END_IMPORTANT), '', $parsed_code);
3834
+ }
3835
+
3836
+ // Add HTML whitespace stuff if we're using the <div> header
3837
+ if ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) {
3838
+ $this->indent($parsed_code);
3839
+ }
3840
+
3841
+ // purge some unnecessary stuff
3842
+ /** NOTE: memorypeak #1 */
3843
+ $parsed_code = preg_replace('#<span[^>]+>(\s*)</span>#', '\\1', $parsed_code);
3844
+
3845
+ // If we are using IDs for line numbers, there needs to be an overall
3846
+ // ID set to prevent collisions.
3847
+ if ($this->add_ids && !$this->overall_id) {
3848
+ $this->overall_id = 'geshi-' . substr(md5(microtime()), 0, 4);
3849
+ }
3850
+
3851
+ // Get code into lines
3852
+ /** NOTE: memorypeak #2 */
3853
+ $code = explode("\n", $parsed_code);
3854
+ $parsed_code = $this->header();
3855
+
3856
+ // If we're using line numbers, we insert <li>s and appropriate
3857
+ // markup to style them (otherwise we don't need to do anything)
3858
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS && $this->header_type != GESHI_HEADER_PRE_TABLE) {
3859
+ // If we're using the <pre> header, we shouldn't add newlines because
3860
+ // the <pre> will line-break them (and the <li>s already do this for us)
3861
+ $ls = ($this->header_type != GESHI_HEADER_PRE && $this->header_type != GESHI_HEADER_PRE_VALID) ? "\n" : '';
3862
+
3863
+ // Foreach line...
3864
+ for ($i = 0, $n = count($code); $i < $n;) {
3865
+ //Reset the attributes for a new line ...
3866
+ $attrs = array();
3867
+
3868
+ // Make lines have at least one space in them if they're empty
3869
+ // BenBE: Checking emptiness using trim instead of relying on blanks
3870
+ if ('' == trim($code[$i])) {
3871
+ $code[$i] = '&nbsp;';
3872
+ }
3873
+
3874
+ // If this is a "special line"...
3875
+ if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
3876
+ $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
3877
+ // Set the attributes to style the line
3878
+ if ($this->use_classes) {
3879
+ //$attr = ' class="li2"';
3880
+ $attrs['class'][] = 'li2';
3881
+ $def_attr = ' class="de2"';
3882
+ } else {
3883
+ //$attr = ' style="' . $this->line_style2 . '"';
3884
+ $attrs['style'][] = $this->line_style2;
3885
+ // This style "covers up" the special styles set for special lines
3886
+ // so that styles applied to special lines don't apply to the actual
3887
+ // code on that line
3888
+ $def_attr = ' style="' . $this->code_style . '"';
3889
+ }
3890
+ } else {
3891
+ if ($this->use_classes) {
3892
+ //$attr = ' class="li1"';
3893
+ $attrs['class'][] = 'li1';
3894
+ $def_attr = ' class="de1"';
3895
+ } else {
3896
+ //$attr = ' style="' . $this->line_style1 . '"';
3897
+ $attrs['style'][] = $this->line_style1;
3898
+ $def_attr = ' style="' . $this->code_style . '"';
3899
+ }
3900
+ }
3901
+
3902
+ //Check which type of tag to insert for this line
3903
+ if ($this->header_type == GESHI_HEADER_PRE_VALID) {
3904
+ $start = "<pre$def_attr>";
3905
+ $end = '</pre>';
3906
+ } else {
3907
+ // Span or div?
3908
+ $start = "<div$def_attr>";
3909
+ $end = '</div>';
3910
+ }
3911
+
3912
+ ++$i;
3913
+
3914
+ // Are we supposed to use ids? If so, add them
3915
+ if ($this->add_ids) {
3916
+ $attrs['id'][] = "$this->overall_id-$i";
3917
+ }
3918
+
3919
+ //Is this some line with extra styles???
3920
+ if (in_array($i, $this->highlight_extra_lines)) {
3921
+ if ($this->use_classes) {
3922
+ if (isset($this->highlight_extra_lines_styles[$i])) {
3923
+ $attrs['class'][] = "lx$i";
3924
+ } else {
3925
+ $attrs['class'][] = "ln-xtra";
3926
+ }
3927
+ } else {
3928
+ array_push($attrs['style'], $this->get_line_style($i));
3929
+ }
3930
+ }
3931
+
3932
+ // Add in the line surrounded by appropriate list HTML
3933
+ $attr_string = '';
3934
+ foreach ($attrs as $key => $attr) {
3935
+ $attr_string .= ' ' . $key . '="' . implode(' ', $attr) . '"';
3936
+ }
3937
+
3938
+ $parsed_code .= "<li$attr_string>$start{$code[$i-1]}$end</li>$ls";
3939
+ unset($code[$i - 1]);
3940
+ }
3941
+ } else {
3942
+ $n = count($code);
3943
+ if ($this->use_classes) {
3944
+ $attributes = ' class="de1"';
3945
+ } else {
3946
+ $attributes = ' style="'. $this->code_style .'"';
3947
+ }
3948
+ if ($this->header_type == GESHI_HEADER_PRE_VALID) {
3949
+ $parsed_code .= '<pre'. $attributes .'>';
3950
+ } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
3951
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
3952
+ if ($this->use_classes) {
3953
+ $attrs = ' class="ln"';
3954
+ } else {
3955
+ $attrs = ' style="'. $this->table_linenumber_style .'"';
3956
+ }
3957
+ $parsed_code .= '<td'.$attrs.'><pre'.$attributes.'>';
3958
+ // get linenumbers
3959
+ // we don't merge it with the for below, since it should be better for
3960
+ // memory consumption this way
3961
+ // @todo: but... actually it would still be somewhat nice to merge the two loops
3962
+ // the mem peaks are at different positions
3963
+ for ($i = 0; $i < $n; ++$i) {
3964
+ $close = 0;
3965
+ // fancy lines
3966
+ if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
3967
+ $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
3968
+ // Set the attributes to style the line
3969
+ if ($this->use_classes) {
3970
+ $parsed_code .= '<span class="xtra li2"><span class="de2">';
3971
+ } else {
3972
+ // This style "covers up" the special styles set for special lines
3973
+ // so that styles applied to special lines don't apply to the actual
3974
+ // code on that line
3975
+ $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
3976
+ .'<span style="' . $this->code_style .'">';
3977
+ }
3978
+ $close += 2;
3979
+ }
3980
+ //Is this some line with extra styles???
3981
+ if (in_array($i + 1, $this->highlight_extra_lines)) {
3982
+ if ($this->use_classes) {
3983
+ if (isset($this->highlight_extra_lines_styles[$i])) {
3984
+ $parsed_code .= "<span class=\"xtra lx$i\">";
3985
+ } else {
3986
+ $parsed_code .= "<span class=\"xtra ln-xtra\">";
3987
+ }
3988
+ } else {
3989
+ $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
3990
+ }
3991
+ ++$close;
3992
+ }
3993
+ $parsed_code .= $this->line_numbers_start + $i;
3994
+ if ($close) {
3995
+ $parsed_code .= str_repeat('</span>', $close);
3996
+ } elseif ($i != $n) {
3997
+ $parsed_code .= "\n";
3998
+ }
3999
+ }
4000
+ $parsed_code .= '</pre></td><td'.$attributes.'>';
4001
+ }
4002
+ $parsed_code .= '<pre'. $attributes .'>';
4003
+ }
4004
+ // No line numbers, but still need to handle highlighting lines extra.
4005
+ // Have to use divs so the full width of the code is highlighted
4006
+ $close = 0;
4007
+ for ($i = 0; $i < $n; ++$i) {
4008
+ // Make lines have at least one space in them if they're empty
4009
+ // BenBE: Checking emptiness using trim instead of relying on blanks
4010
+ if ('' == trim($code[$i])) {
4011
+ $code[$i] = '&nbsp;';
4012
+ }
4013
+ // fancy lines
4014
+ if ($this->line_numbers == GESHI_FANCY_LINE_NUMBERS &&
4015
+ $i % $this->line_nth_row == ($this->line_nth_row - 1)) {
4016
+ // Set the attributes to style the line
4017
+ if ($this->use_classes) {
4018
+ $parsed_code .= '<span class="xtra li2"><span class="de2">';
4019
+ } else {
4020
+ // This style "covers up" the special styles set for special lines
4021
+ // so that styles applied to special lines don't apply to the actual
4022
+ // code on that line
4023
+ $parsed_code .= '<span style="display:block;' . $this->line_style2 . '">'
4024
+ .'<span style="' . $this->code_style .'">';
4025
+ }
4026
+ $close += 2;
4027
+ }
4028
+ //Is this some line with extra styles???
4029
+ if (in_array($i + 1, $this->highlight_extra_lines)) {
4030
+ if ($this->use_classes) {
4031
+ if (isset($this->highlight_extra_lines_styles[$i])) {
4032
+ $parsed_code .= "<span class=\"xtra lx$i\">";
4033
+ } else {
4034
+ $parsed_code .= "<span class=\"xtra ln-xtra\">";
4035
+ }
4036
+ } else {
4037
+ $parsed_code .= "<span style=\"display:block;" . $this->get_line_style($i) . "\">";
4038
+ }
4039
+ ++$close;
4040
+ }
4041
+
4042
+ $parsed_code .= $code[$i];
4043
+
4044
+ if ($close) {
4045
+ $parsed_code .= str_repeat('</span>', $close);
4046
+ $close = 0;
4047
+ }
4048
+ elseif ($i + 1 < $n) {
4049
+ $parsed_code .= "\n";
4050
+ }
4051
+ unset($code[$i]);
4052
+ }
4053
+
4054
+ if ($this->header_type == GESHI_HEADER_PRE_VALID || $this->header_type == GESHI_HEADER_PRE_TABLE) {
4055
+ $parsed_code .= '</pre>';
4056
+ }
4057
+ if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4058
+ $parsed_code .= '</td>';
4059
+ }
4060
+ }
4061
+
4062
+ $parsed_code .= $this->footer();
4063
+ }
4064
+
4065
+ /**
4066
+ * Creates the header for the code block (with correct attributes)
4067
+ *
4068
+ * @return string The header for the code block
4069
+ * @since 1.0.0
4070
+ */
4071
+ protected function header() {
4072
+ // Get attributes needed
4073
+ /**
4074
+ * @todo Document behaviour change - class is outputted regardless of whether
4075
+ * we're using classes or not. Same with style
4076
+ */
4077
+ $attributes = ' class="' . $this->_genCSSName($this->language);
4078
+ if ($this->overall_class != '') {
4079
+ $attributes .= " ".$this->_genCSSName($this->overall_class);
4080
+ }
4081
+ $attributes .= '"';
4082
+
4083
+ if ($this->overall_id != '') {
4084
+ $attributes .= " id=\"{$this->overall_id}\"";
4085
+ }
4086
+ if ($this->overall_style != '' && !$this->use_classes) {
4087
+ $attributes .= ' style="' . $this->overall_style . '"';
4088
+ }
4089
+
4090
+ $ol_attributes = '';
4091
+
4092
+ if ($this->line_numbers_start != 1) {
4093
+ $ol_attributes .= ' start="' . $this->line_numbers_start . '"';
4094
+ }
4095
+
4096
+ // Get the header HTML
4097
+ $header = $this->header_content;
4098
+ if ($header) {
4099
+ if ($this->header_type == GESHI_HEADER_PRE || $this->header_type == GESHI_HEADER_PRE_VALID) {
4100
+ $header = str_replace("\n", '', $header);
4101
+ }
4102
+ $header = $this->replace_keywords($header);
4103
+
4104
+ if ($this->use_classes) {
4105
+ $attr = ' class="head"';
4106
+ } else {
4107
+ $attr = " style=\"{$this->header_content_style}\"";
4108
+ }
4109
+ if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4110
+ $header = "<thead><tr><td colspan=\"2\" $attr>$header</td></tr></thead>";
4111
+ } else {
4112
+ $header = "<div$attr>$header</div>";
4113
+ }
4114
+ }
4115
+
4116
+ if (GESHI_HEADER_NONE == $this->header_type) {
4117
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4118
+ return "$header<ol$attributes$ol_attributes>";
4119
+ }
4120
+ return $header . ($this->force_code_block ? '<div>' : '');
4121
+ }
4122
+
4123
+ // Work out what to return and do it
4124
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4125
+ if ($this->header_type == GESHI_HEADER_PRE) {
4126
+ return "<pre$attributes>$header<ol$ol_attributes>";
4127
+ } elseif ($this->header_type == GESHI_HEADER_DIV ||
4128
+ $this->header_type == GESHI_HEADER_PRE_VALID) {
4129
+ return "<div$attributes>$header<ol$ol_attributes>";
4130
+ } elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
4131
+ return "<table$attributes>$header<tbody><tr class=\"li1\">";
4132
+ }
4133
+ } else {
4134
+ if ($this->header_type == GESHI_HEADER_PRE) {
4135
+ return "<pre$attributes>$header" .
4136
+ ($this->force_code_block ? '<div>' : '');
4137
+ } else {
4138
+ return "<div$attributes>$header" .
4139
+ ($this->force_code_block ? '<div>' : '');
4140
+ }
4141
+ }
4142
+ }
4143
+
4144
+ /**
4145
+ * Returns the footer for the code block.
4146
+ *
4147
+ * @return string The footer for the code block
4148
+ * @since 1.0.0
4149
+ */
4150
+ protected function footer() {
4151
+ $footer = $this->footer_content;
4152
+ if ($footer) {
4153
+ if ($this->header_type == GESHI_HEADER_PRE) {
4154
+ $footer = str_replace("\n", '', $footer);;
4155
+ }
4156
+ $footer = $this->replace_keywords($footer);
4157
+
4158
+ if ($this->use_classes) {
4159
+ $attr = ' class="foot"';
4160
+ } else {
4161
+ $attr = " style=\"{$this->footer_content_style}\"";
4162
+ }
4163
+ if ($this->header_type == GESHI_HEADER_PRE_TABLE && $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4164
+ $footer = "<tfoot><tr><td colspan=\"2\">$footer</td></tr></tfoot>";
4165
+ } else {
4166
+ $footer = "<div$attr>$footer</div>";
4167
+ }
4168
+ }
4169
+
4170
+ if (GESHI_HEADER_NONE == $this->header_type) {
4171
+ return ($this->line_numbers != GESHI_NO_LINE_NUMBERS) ? '</ol>' . $footer : $footer;
4172
+ }
4173
+
4174
+ if ($this->header_type == GESHI_HEADER_DIV || $this->header_type == GESHI_HEADER_PRE_VALID) {
4175
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4176
+ return "</ol>$footer</div>";
4177
+ }
4178
+ return ($this->force_code_block ? '</div>' : '') .
4179
+ "$footer</div>";
4180
+ }
4181
+ elseif ($this->header_type == GESHI_HEADER_PRE_TABLE) {
4182
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4183
+ return "</tr></tbody>$footer</table>";
4184
+ }
4185
+ return ($this->force_code_block ? '</div>' : '') .
4186
+ "$footer</div>";
4187
+ }
4188
+ else {
4189
+ if ($this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4190
+ return "</ol>$footer</pre>";
4191
+ }
4192
+ return ($this->force_code_block ? '</div>' : '') .
4193
+ "$footer</pre>";
4194
+ }
4195
+ }
4196
+
4197
+ /**
4198
+ * Replaces certain keywords in the header and footer with
4199
+ * certain configuration values
4200
+ *
4201
+ * @param string $instr The header or footer content to do replacement on
4202
+ * @return string The header or footer with replaced keywords
4203
+ * @since 1.0.2
4204
+ */
4205
+ protected function replace_keywords($instr) {
4206
+ $keywords = $replacements = array();
4207
+
4208
+ $keywords[] = '<TIME>';
4209
+ $keywords[] = '{TIME}';
4210
+ $replacements[] = $replacements[] = number_format($time = $this->get_time(), 3);
4211
+
4212
+ $keywords[] = '<LANGUAGE>';
4213
+ $keywords[] = '{LANGUAGE}';
4214
+ $replacements[] = $replacements[] = $this->language_data['LANG_NAME'];
4215
+
4216
+ $keywords[] = '<VERSION>';
4217
+ $keywords[] = '{VERSION}';
4218
+ $replacements[] = $replacements[] = GESHI_VERSION;
4219
+
4220
+ $keywords[] = '<SPEED>';
4221
+ $keywords[] = '{SPEED}';
4222
+ if ($time <= 0) {
4223
+ $speed = 'N/A';
4224
+ } else {
4225
+ $speed = strlen($this->source) / $time;
4226
+ if ($speed >= 1024) {
4227
+ $speed = sprintf("%.2f KB/s", $speed / 1024.0);
4228
+ } else {
4229
+ $speed = sprintf("%.0f B/s", $speed);
4230
+ }
4231
+ }
4232
+ $replacements[] = $replacements[] = $speed;
4233
+
4234
+ return str_replace($keywords, $replacements, $instr);
4235
+ }
4236
+
4237
+ /**
4238
+ * Secure replacement for PHP built-in function htmlspecialchars().
4239
+ *
4240
+ * See ticket #427 (http://wush.net/trac/wikka/ticket/427) for the rationale
4241
+ * for this replacement function.
4242
+ *
4243
+ * The INTERFACE for this function is almost the same as that for
4244
+ * htmlspecialchars(), with the same default for quote style; however, there
4245
+ * is no 'charset' parameter. The reason for this is as follows:
4246
+ *
4247
+ * The PHP docs say:
4248
+ * "The third argument charset defines character set used in conversion."
4249
+ *
4250
+ * I suspect PHP's htmlspecialchars() is working at the byte-value level and
4251
+ * thus _needs_ to know (or asssume) a character set because the special
4252
+ * characters to be replaced could exist at different code points in
4253
+ * different character sets. (If indeed htmlspecialchars() works at
4254
+ * byte-value level that goes some way towards explaining why the
4255
+ * vulnerability would exist in this function, too, and not only in
4256
+ * htmlentities() which certainly is working at byte-value level.)
4257
+ *
4258
+ * This replacement function however works at character level and should
4259
+ * therefore be "immune" to character set differences - so no charset
4260
+ * parameter is needed or provided. If a third parameter is passed, it will
4261
+ * be silently ignored.
4262
+ *
4263
+ * In the OUTPUT there is a minor difference in that we use '&#39;' instead
4264
+ * of PHP's '&#039;' for a single quote: this provides compatibility with
4265
+ * get_html_translation_table(HTML_SPECIALCHARS, ENT_QUOTES)
4266
+ * (see comment by mikiwoz at yahoo dot co dot uk on
4267
+ * http://php.net/htmlspecialchars); it also matches the entity definition
4268
+ * for XML 1.0
4269
+ * (http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_Special_characters).
4270
+ * Like PHP we use a numeric character reference instead of '&apos;' for the
4271
+ * single quote. For the other special characters we use the named entity
4272
+ * references, as PHP is doing.
4273
+ *
4274
+ * @author {@link http://wikkawiki.org/JavaWoman Marjolein Katsma}
4275
+ *
4276
+ * @license http://www.gnu.org/copyleft/lgpl.html
4277
+ * GNU Lesser General Public License
4278
+ * @copyright Copyright 2007, {@link http://wikkawiki.org/CreditsPage
4279
+ * Wikka Development Team}
4280
+ *
4281
+ * @param string $string string to be converted
4282
+ * @param integer $quote_style
4283
+ * - ENT_COMPAT: escapes &, <, > and double quote (default)
4284
+ * - ENT_NOQUOTES: escapes only &, < and >
4285
+ * - ENT_QUOTES: escapes &, <, >, double and single quotes
4286
+ * @return string converted string
4287
+ * @since 1.0.7.18
4288
+ */
4289
+ protected function hsc($string, $quote_style = ENT_COMPAT) {
4290
+ // init
4291
+ static $aTransSpecchar = array(
4292
+ '&' => '&amp;',
4293
+ '"' => '&quot;',
4294
+ '<' => '&lt;',
4295
+ '>' => '&gt;',
4296
+
4297
+ //This fix is related to SF#1923020, but has to be applied
4298
+ //regardless of actually highlighting symbols.
4299
+
4300
+ //Circumvent a bug with symbol highlighting
4301
+ //This is required as ; would produce undesirable side-effects if it
4302
+ //was not to be processed as an entity.
4303
+ ';' => '<SEMI>', // Force ; to be processed as entity
4304
+ '|' => '<PIPE>' // Force | to be processed as entity
4305
+ ); // ENT_COMPAT set
4306
+
4307
+ switch ($quote_style) {
4308
+ case ENT_NOQUOTES: // don't convert double quotes
4309
+ unset($aTransSpecchar['"']);
4310
+ break;
4311
+ case ENT_QUOTES: // convert single quotes as well
4312
+ $aTransSpecchar["'"] = '&#39;'; // (apos) htmlspecialchars() uses '&#039;'
4313
+ break;
4314
+ }
4315
+
4316
+ // return translated string
4317
+ return strtr($string, $aTransSpecchar);
4318
+ }
4319
+
4320
+ /**
4321
+ * Generate a CSS class name from a given string.
4322
+ * Prevents invalid CSS classes.
4323
+ *
4324
+ * @param string $name Proposed class name
4325
+ *
4326
+ * @return string Safe CSS class name
4327
+ */
4328
+ protected function _genCSSName($name) {
4329
+ return (is_numeric($name[0]) ? '_' : '') . $name;
4330
+ }
4331
+
4332
+ /**
4333
+ * Returns a stylesheet for the highlighted code. If $economy mode
4334
+ * is true, we only return the stylesheet declarations that matter for
4335
+ * this code block instead of the whole thing
4336
+ *
4337
+ * @param boolean $economy_mode Whether to use economy mode or not
4338
+ * @return string A stylesheet built on the data for the current language
4339
+ * @since 1.0.0
4340
+ */
4341
+ public function get_stylesheet($economy_mode = true) {
4342
+ // If there's an error, chances are that the language file
4343
+ // won't have populated the language data file, so we can't
4344
+ // risk getting a stylesheet...
4345
+ if ($this->error) {
4346
+ return '';
4347
+ }
4348
+
4349
+ //Check if the style rearrangements have been processed ...
4350
+ //This also does some preprocessing to check which style groups are useable ...
4351
+ if(!isset($this->language_data['NUMBERS_CACHE'])) {
4352
+ $this->build_style_cache();
4353
+ }
4354
+
4355
+ // First, work out what the selector should be. If there's an ID,
4356
+ // that should be used, the same for a class. Otherwise, a selector
4357
+ // of '' means that these styles will be applied anywhere
4358
+ if ($this->overall_id) {
4359
+ $selector = '#' . $this->_genCSSName($this->overall_id);
4360
+ } else {
4361
+ $selector = '.' . $this->_genCSSName($this->language);
4362
+ if ($this->overall_class) {
4363
+ $selector .= '.' . $this->_genCSSName($this->overall_class);
4364
+ }
4365
+ }
4366
+ $selector .= ' ';
4367
+
4368
+ // Header of the stylesheet
4369
+ if (!$economy_mode) {
4370
+ $stylesheet = "/**\n".
4371
+ " * GeSHi Dynamically Generated Stylesheet\n".
4372
+ " * --------------------------------------\n".
4373
+ " * Dynamically generated stylesheet for {$this->language}\n".
4374
+ " * CSS class: {$this->overall_class}, CSS id: {$this->overall_id}\n".
4375
+ " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2014 Benny Baumann\n" .
4376
+ " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
4377
+ " * --------------------------------------\n".
4378
+ " */\n";
4379
+ } else {
4380
+ $stylesheet = "/**\n".
4381
+ " * GeSHi (C) 2004 - 2007 Nigel McNie, 2007 - 2014 Benny Baumann\n" .
4382
+ " * (http://qbnz.com/highlighter/ and http://geshi.org/)\n".
4383
+ " */\n";
4384
+ }
4385
+
4386
+ // Set the <ol> to have no effect at all if there are line numbers
4387
+ // (<ol>s have margins that should be destroyed so all layout is
4388
+ // controlled by the set_overall_style method, which works on the
4389
+ // <pre> or <div> container). Additionally, set default styles for lines
4390
+ if (!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) {
4391
+ //$stylesheet .= "$selector, {$selector}ol, {$selector}ol li {margin: 0;}\n";
4392
+ $stylesheet .= "$selector.de1, $selector.de2 {{$this->code_style}}\n";
4393
+ }
4394
+
4395
+ // Add overall styles
4396
+ // note: neglect economy_mode, empty styles are meaningless
4397
+ if ($this->overall_style != '') {
4398
+ $stylesheet .= "$selector {{$this->overall_style}}\n";
4399
+ }
4400
+
4401
+ // Add styles for links
4402
+ // note: economy mode does not make _any_ sense here
4403
+ // either the style is empty and thus no selector is needed
4404
+ // or the appropriate key is given.
4405
+ foreach ($this->link_styles as $key => $style) {
4406
+ if ($style != '') {
4407
+ switch ($key) {
4408
+ case GESHI_LINK:
4409
+ $stylesheet .= "{$selector}a:link {{$style}}\n";
4410
+ break;
4411
+ case GESHI_HOVER:
4412
+ $stylesheet .= "{$selector}a:hover {{$style}}\n";
4413
+ break;
4414
+ case GESHI_ACTIVE:
4415
+ $stylesheet .= "{$selector}a:active {{$style}}\n";
4416
+ break;
4417
+ case GESHI_VISITED:
4418
+ $stylesheet .= "{$selector}a:visited {{$style}}\n";
4419
+ break;
4420
+ }
4421
+ }
4422
+ }
4423
+
4424
+ // Header and footer
4425
+ // note: neglect economy_mode, empty styles are meaningless
4426
+ if ($this->header_content_style != '') {
4427
+ $stylesheet .= "$selector.head {{$this->header_content_style}}\n";
4428
+ }
4429
+ if ($this->footer_content_style != '') {
4430
+ $stylesheet .= "$selector.foot {{$this->footer_content_style}}\n";
4431
+ }
4432
+
4433
+ // Styles for important stuff
4434
+ // note: neglect economy_mode, empty styles are meaningless
4435
+ if ($this->important_styles != '') {
4436
+ $stylesheet .= "$selector.imp {{$this->important_styles}}\n";
4437
+ }
4438
+
4439
+ // Simple line number styles
4440
+ if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->line_style1 != '') {
4441
+ $stylesheet .= "{$selector}li, {$selector}.li1 {{$this->line_style1}}\n";
4442
+ }
4443
+ if ((!$economy_mode || $this->line_numbers != GESHI_NO_LINE_NUMBERS) && $this->table_linenumber_style != '') {
4444
+ $stylesheet .= "{$selector}.ln {{$this->table_linenumber_style}}\n";
4445
+ }
4446
+ // If there is a style set for fancy line numbers, echo it out
4447
+ if ((!$economy_mode || $this->line_numbers == GESHI_FANCY_LINE_NUMBERS) && $this->line_style2 != '') {
4448
+ $stylesheet .= "{$selector}.li2 {{$this->line_style2}}\n";
4449
+ }
4450
+
4451
+ // note: empty styles are meaningless
4452
+ foreach ($this->language_data['STYLES']['KEYWORDS'] as $group => $styles) {
4453
+ if ($styles != '' && (!$economy_mode ||
4454
+ (isset($this->lexic_permissions['KEYWORDS'][$group]) &&
4455
+ $this->lexic_permissions['KEYWORDS'][$group]))) {
4456
+ $stylesheet .= "$selector.kw$group {{$styles}}\n";
4457
+ }
4458
+ }
4459
+ foreach ($this->language_data['STYLES']['COMMENTS'] as $group => $styles) {
4460
+ if ($styles != '' && (!$economy_mode ||
4461
+ (isset($this->lexic_permissions['COMMENTS'][$group]) &&
4462
+ $this->lexic_permissions['COMMENTS'][$group]) ||
4463
+ (!empty($this->language_data['COMMENT_REGEXP']) &&
4464
+ !empty($this->language_data['COMMENT_REGEXP'][$group])))) {
4465
+ $stylesheet .= "$selector.co$group {{$styles}}\n";
4466
+ }
4467
+ }
4468
+ foreach ($this->language_data['STYLES']['ESCAPE_CHAR'] as $group => $styles) {
4469
+ if ($styles != '' && (!$economy_mode || $this->lexic_permissions['ESCAPE_CHAR'])) {
4470
+ // NEW: since 1.0.8 we have to handle hardescapes
4471
+ if ($group === 'HARD') {
4472
+ $group = '_h';
4473
+ }
4474
+ $stylesheet .= "$selector.es$group {{$styles}}\n";
4475
+ }
4476
+ }
4477
+ foreach ($this->language_data['STYLES']['BRACKETS'] as $group => $styles) {
4478
+ if ($styles != '' && (!$economy_mode || $this->lexic_permissions['BRACKETS'])) {
4479
+ $stylesheet .= "$selector.br$group {{$styles}}\n";
4480
+ }
4481
+ }
4482
+ foreach ($this->language_data['STYLES']['SYMBOLS'] as $group => $styles) {
4483
+ if ($styles != '' && (!$economy_mode || $this->lexic_permissions['SYMBOLS'])) {
4484
+ $stylesheet .= "$selector.sy$group {{$styles}}\n";
4485
+ }
4486
+ }
4487
+ foreach ($this->language_data['STYLES']['STRINGS'] as $group => $styles) {
4488
+ if ($styles != '' && (!$economy_mode || $this->lexic_permissions['STRINGS'])) {
4489
+ // NEW: since 1.0.8 we have to handle hardquotes
4490
+ if ($group === 'HARD') {
4491
+ $group = '_h';
4492
+ }
4493
+ $stylesheet .= "$selector.st$group {{$styles}}\n";
4494
+ }
4495
+ }
4496
+ foreach ($this->language_data['STYLES']['NUMBERS'] as $group => $styles) {
4497
+ if ($styles != '' && (!$economy_mode || $this->lexic_permissions['NUMBERS'])) {
4498
+ $stylesheet .= "$selector.nu$group {{$styles}}\n";
4499
+ }
4500
+ }
4501
+ foreach ($this->language_data['STYLES']['METHODS'] as $group => $styles) {
4502
+ if ($styles != '' && (!$economy_mode || $this->lexic_permissions['METHODS'])) {
4503
+ $stylesheet .= "$selector.me$group {{$styles}}\n";
4504
+ }
4505
+ }
4506
+ // note: neglect economy_mode, empty styles are meaningless
4507
+ foreach ($this->language_data['STYLES']['SCRIPT'] as $group => $styles) {
4508
+ if ($styles != '') {
4509
+ $stylesheet .= "$selector.sc$group {{$styles}}\n";
4510
+ }
4511
+ }
4512
+ foreach ($this->language_data['STYLES']['REGEXPS'] as $group => $styles) {
4513
+ if ($styles != '' && (!$economy_mode ||
4514
+ (isset($this->lexic_permissions['REGEXPS'][$group]) &&
4515
+ $this->lexic_permissions['REGEXPS'][$group]))) {
4516
+ if (is_array($this->language_data['REGEXPS'][$group]) &&
4517
+ array_key_exists(GESHI_CLASS, $this->language_data['REGEXPS'][$group])) {
4518
+ $stylesheet .= "$selector.";
4519
+ $stylesheet .= $this->language_data['REGEXPS'][$group][GESHI_CLASS];
4520
+ $stylesheet .= " {{$styles}}\n";
4521
+ } else {
4522
+ $stylesheet .= "$selector.re$group {{$styles}}\n";
4523
+ }
4524
+ }
4525
+ }
4526
+ // Styles for lines being highlighted extra
4527
+ if (!$economy_mode || (count($this->highlight_extra_lines)!=count($this->highlight_extra_lines_styles))) {
4528
+ $stylesheet .= "{$selector}.ln-xtra, {$selector}li.ln-xtra, {$selector}div.ln-xtra {{$this->highlight_extra_lines_style}}\n";
4529
+ }
4530
+ $stylesheet .= "{$selector}span.xtra { display:block; }\n";
4531
+ foreach ($this->highlight_extra_lines_styles as $lineid => $linestyle) {
4532
+ $stylesheet .= "{$selector}.lx$lineid, {$selector}li.lx$lineid, {$selector}div.lx$lineid {{$linestyle}}\n";
4533
+ }
4534
+
4535
+ return $stylesheet;
4536
+ }
4537
+
4538
+ /**
4539
+ * Get's the style that is used for the specified line
4540
+ *
4541
+ * @param int $line The line number information is requested for
4542
+ * @since 1.0.7.21
4543
+ */
4544
+ protected function get_line_style($line) {
4545
+ $style = null;
4546
+ if (isset($this->highlight_extra_lines_styles[$line])) {
4547
+ $style = $this->highlight_extra_lines_styles[$line];
4548
+ } else { // if no "extra" style assigned
4549
+ $style = $this->highlight_extra_lines_style;
4550
+ }
4551
+
4552
+ return $style;
4553
+ }
4554
+
4555
+ /**
4556
+ * this functions creates an optimized regular expression list
4557
+ * of an array of strings.
4558
+ *
4559
+ * Example:
4560
+ * <code>$list = array('faa', 'foo', 'foobar');
4561
+ * => string 'f(aa|oo(bar)?)'</code>
4562
+ *
4563
+ * @param array $list array of (unquoted) strings
4564
+ * @param string $regexp_delimiter your regular expression delimiter, @see preg_quote()
4565
+ * @return string for regular expression
4566
+ * @author Milian Wolff <mail@milianw.de>
4567
+ * @since 1.0.8
4568
+ */
4569
+ protected function optimize_regexp_list($list, $regexp_delimiter = '/') {
4570
+ $regex_chars = array('.', '\\', '+', '-', '*', '?', '[', '^', ']', '$',
4571
+ '(', ')', '{', '}', '=', '!', '<', '>', '|', ':', $regexp_delimiter);
4572
+ sort($list);
4573
+ $regexp_list = array('');
4574
+ $num_subpatterns = 0;
4575
+ $list_key = 0;
4576
+
4577
+ // the tokens which we will use to generate the regexp list
4578
+ $tokens = array();
4579
+ $prev_keys = array();
4580
+ // go through all entries of the list and generate the token list
4581
+ $cur_len = 0;
4582
+ for ($i = 0, $i_max = count($list); $i < $i_max; ++$i) {
4583
+ if ($cur_len > GESHI_MAX_PCRE_LENGTH) {
4584
+ // seems like the length of this pcre is growing exorbitantly
4585
+ $regexp_list[++$list_key] = $this->_optimize_regexp_list_tokens_to_string($tokens);
4586
+ $num_subpatterns = substr_count($regexp_list[$list_key], '(?:');
4587
+ $tokens = array();
4588
+ $cur_len = 0;
4589
+ }
4590
+ $level = 0;
4591
+ $entry = preg_quote((string) $list[$i], $regexp_delimiter);
4592
+ $pointer = &$tokens;
4593
+ // properly assign the new entry to the correct position in the token array
4594
+ // possibly generate smaller common denominator keys
4595
+ while (true) {
4596
+ // get the common denominator
4597
+ if (isset($prev_keys[$level])) {
4598
+ if ($prev_keys[$level] == $entry) {
4599
+ // this is a duplicate entry, skip it
4600
+ continue 2;
4601
+ }
4602
+ $char = 0;
4603
+ while (isset($entry[$char]) && isset($prev_keys[$level][$char])
4604
+ && $entry[$char] == $prev_keys[$level][$char]) {
4605
+ ++$char;
4606
+ }
4607
+ if ($char > 0) {
4608
+ // this entry has at least some chars in common with the current key
4609
+ if ($char == strlen($prev_keys[$level])) {
4610
+ // current key is totally matched, i.e. this entry has just some bits appended
4611
+ $pointer = &$pointer[$prev_keys[$level]];
4612
+ } else {
4613
+ // only part of the keys match
4614
+ $new_key_part1 = substr($prev_keys[$level], 0, $char);
4615
+ $new_key_part2 = substr($prev_keys[$level], $char);
4616
+
4617
+ if (in_array($new_key_part1[0], $regex_chars)
4618
+ || in_array($new_key_part2[0], $regex_chars)) {
4619
+ // this is bad, a regex char as first character
4620
+ $pointer[$entry] = array('' => true);
4621
+ array_splice($prev_keys, $level, count($prev_keys), $entry);
4622
+ $cur_len += strlen($entry);
4623
+ continue;
4624
+ } else {
4625
+ // relocate previous tokens
4626
+ $pointer[$new_key_part1] = array($new_key_part2 => $pointer[$prev_keys[$level]]);
4627
+ unset($pointer[$prev_keys[$level]]);
4628
+ $pointer = &$pointer[$new_key_part1];
4629
+ // recreate key index
4630
+ array_splice($prev_keys, $level, count($prev_keys), array($new_key_part1, $new_key_part2));
4631
+ $cur_len += strlen($new_key_part2);
4632
+ }
4633
+ }
4634
+ ++$level;
4635
+ $entry = substr($entry, $char);
4636
+ continue;
4637
+ }
4638
+ // else: fall trough, i.e. no common denominator was found
4639
+ }
4640
+ if ($level == 0 && !empty($tokens)) {
4641
+ // we can dump current tokens into the string and throw them away afterwards
4642
+ $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens);
4643
+ $new_subpatterns = substr_count($new_entry, '(?:');
4644
+ if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + $new_subpatterns > GESHI_MAX_PCRE_SUBPATTERNS) {
4645
+ $regexp_list[++$list_key] = $new_entry;
4646
+ $num_subpatterns = $new_subpatterns;
4647
+ } else {
4648
+ if (!empty($regexp_list[$list_key])) {
4649
+ $new_entry = '|' . $new_entry;
4650
+ }
4651
+ $regexp_list[$list_key] .= $new_entry;
4652
+ $num_subpatterns += $new_subpatterns;
4653
+ }
4654
+ $tokens = array();
4655
+ $cur_len = 0;
4656
+ }
4657
+ // no further common denominator found
4658
+ $pointer[$entry] = array('' => true);
4659
+ array_splice($prev_keys, $level, count($prev_keys), $entry);
4660
+
4661
+ $cur_len += strlen($entry);
4662
+ break;
4663
+ }
4664
+ unset($list[$i]);
4665
+ }
4666
+ // make sure the last tokens get converted as well
4667
+ $new_entry = $this->_optimize_regexp_list_tokens_to_string($tokens);
4668
+ if (GESHI_MAX_PCRE_SUBPATTERNS && $num_subpatterns + substr_count($new_entry, '(?:') > GESHI_MAX_PCRE_SUBPATTERNS) {
4669
+ if ( !empty($regexp_list[$list_key]) ) {
4670
+ ++$list_key;
4671
+ }
4672
+ $regexp_list[$list_key] = $new_entry;
4673
+ } else {
4674
+ if (!empty($regexp_list[$list_key])) {
4675
+ $new_entry = '|' . $new_entry;
4676
+ }
4677
+ $regexp_list[$list_key] .= $new_entry;
4678
+ }
4679
+ return $regexp_list;
4680
+ }
4681
+
4682
+ /**
4683
+ * this function creates the appropriate regexp string of an token array
4684
+ * you should not call this function directly, @see $this->optimize_regexp_list().
4685
+ *
4686
+ * @param array $tokens array of tokens
4687
+ * @param bool $recursed to know wether we recursed or not
4688
+ * @return string
4689
+ * @author Milian Wolff <mail@milianw.de>
4690
+ * @since 1.0.8
4691
+ */
4692
+ protected function _optimize_regexp_list_tokens_to_string(&$tokens, $recursed = false) {
4693
+ $list = '';
4694
+ foreach ($tokens as $token => $sub_tokens) {
4695
+ $list .= $token;
4696
+ $close_entry = isset($sub_tokens['']);
4697
+ unset($sub_tokens['']);
4698
+ if (!empty($sub_tokens)) {
4699
+ $list .= '(?:' . $this->_optimize_regexp_list_tokens_to_string($sub_tokens, true) . ')';
4700
+ if ($close_entry) {
4701
+ // make sub_tokens optional
4702
+ $list .= '?';
4703
+ }
4704
+ }
4705
+ $list .= '|';
4706
+ }
4707
+ if (!$recursed) {
4708
+ // do some optimizations
4709
+ // common trailing strings
4710
+ // BUGGY!
4711
+ //$list = preg_replace_callback('#(?<=^|\:|\|)\w+?(\w+)(?:\|.+\1)+(?=\|)#', create_function(
4712
+ // '$matches', 'return "(?:" . preg_replace("#" . preg_quote($matches[1], "#") . "(?=\||$)#", "", $matches[0]) . ")" . $matches[1];'), $list);
4713
+ // (?:p)? => p?
4714
+ $list = preg_replace('#\(\?\:(.)\)\?#', '\1?', $list);
4715
+ // (?:a|b|c|d|...)? => [abcd...]?
4716
+ // TODO: a|bb|c => [ac]|bb
4717
+ static $callback_2;
4718
+ if (!isset($callback_2)) {
4719
+ $callback_2 = function($matches) {
4720
+ return "[" . str_replace("|", "", $matches[1]) . "]";
4721
+ };
4722
+ }
4723
+ $list = preg_replace_callback('#\(\?\:((?:.\|)+.)\)#', $callback_2, $list);
4724
+ }
4725
+ // return $list without trailing pipe
4726
+ return substr($list, 0, -1);
4727
+ }
4728
+ } // End Class GeSHi
4729
+
4730
+
4731
+ if (!function_exists('geshi_highlight')) {
4732
+ /**
4733
+ * Easy way to highlight stuff. Behaves just like highlight_string
4734
+ *
4735
+ * @param string $string The code to highlight
4736
+ * @param string $language The language to highlight the code in
4737
+ * @param string $path The path to the language files. You can leave this blank if you need
4738
+ * as from version 1.0.7 the path should be automatically detected
4739
+ * @param boolean $return Whether to return the result or to echo
4740
+ * @return string The code highlighted (if $return is true)
4741
+ * @since 1.0.2
4742
+ */
4743
+ function geshi_highlight($string, $language, $path = null, $return = false) {
4744
+ $geshi = new GeSHi($string, $language, $path);
4745
+ $geshi->set_header_type(GESHI_HEADER_NONE);
4746
+
4747
+ if ($return) {
4748
+ return '<code>' . $geshi->parse_code() . '</code>';
4749
+ }
4750
+
4751
+ echo '<code>' . $geshi->parse_code() . '</code>';
4752
+
4753
+ if ($geshi->error()) {
4754
+ return false;
4755
+ }
4756
+ return true;
4757
+ }
4758
+ }
includes/geshi/4cs.php ADDED
@@ -0,0 +1,137 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * 4cs.php
4
+ * ------
5
+ * Author: Jason Curl (jason.curl@continental-corporation.com)
6
+ * Copyright: (c) 2009 Jason Curl
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2009/09/05
9
+ *
10
+ * 4CS language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2009/09/05
15
+ * - First Release
16
+ *
17
+ * TODO (updated 2009/09/01)
18
+ * -------------------------
19
+ *
20
+ *************************************************************************************
21
+ *
22
+ * This file is part of GeSHi.
23
+ *
24
+ * GeSHi is free software; you can redistribute it and/or modify
25
+ * it under the terms of the GNU General Public License as published by
26
+ * the Free Software Foundation; either version 2 of the License, or
27
+ * (at your option) any later version.
28
+ *
29
+ * GeSHi is distributed in the hope that it will be useful,
30
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
31
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32
+ * GNU General Public License for more details.
33
+ *
34
+ * You should have received a copy of the GNU General Public License
35
+ * along with GeSHi; if not, write to the Free Software
36
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
37
+ *
38
+ ************************************************************************************/
39
+
40
+ $language_data = array (
41
+ 'LANG_NAME' => 'GADV 4CS',
42
+ 'COMMENT_SINGLE' => array(1 => "//"),
43
+ 'COMMENT_MULTI' => array(),
44
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
45
+ 'QUOTEMARKS' => array('"'),
46
+ 'ESCAPE_CHAR' => '',
47
+ 'KEYWORDS' => array(
48
+ 1 => array(
49
+ 'All', 'AllMatches', 'And', 'And_Filters', 'As', 'Asc', 'BasedOn',
50
+ 'BestMatch', 'Block', 'Buffer', 'ByRef', 'ByVal', 'Call', 'Channel',
51
+ 'Chr', 'Clear', 'Close', 'Confirm', 'Const', 'Continue', 'Cos',
52
+ 'Critical', 'Declare', 'Default', 'DefaultChannel', 'DefaultDelayTime',
53
+ 'DefaultReceiveMode', 'DefaultResponseTime', '#Define', 'DelayTime',
54
+ 'Delete', 'Div', 'Else', '#Else', 'ElseIf', '#ElseIf', 'End', 'EndCritical',
55
+ 'EndInlineC', 'EndFunction', 'EndIf', '#EndIf', 'EndInputList',
56
+ 'EndLocalChannel', 'EndScenario', 'EndSub', 'EndWhile', 'Error',
57
+ 'ErrorLevelOff', 'ErrorLevelOn', 'ErrorLevelSet', 'ErrorLevelSetRaw',
58
+ 'Event', 'EventMode', 'EventOff', 'EventOn', 'EventSet', 'EventSetRaw',
59
+ 'Execute', 'Exit', 'Exp', 'FileClose', 'FilterClear', 'FileEOF', 'FileOpen',
60
+ 'FileRead', 'FileSize', 'FileWrite', 'FilterAdd', 'FilterMode',
61
+ 'FilterOff', 'FilterOn', 'For', 'Format', 'Function', 'GoOnline', 'GoTo',
62
+ 'Handle', 'Hide', 'If', '#If', '#IfDef', '#IfNDef', 'Ignore', '#Include',
63
+ 'InlineC', 'Input', 'InputItem', 'InputList', 'Kill', 'LBound', 'LocalChannel',
64
+ 'Local', 'Log', 'Log10', 'LogOff', 'LogOn', 'Loop', 'Message', 'Mod',
65
+ 'MonitorChannel', 'MostFormat', 'MostMessage', 'Named', 'Never', 'Next',
66
+ 'NoOrder', 'Not', 'Nothing', 'NoWait', 'Numeric', 'OnError', 'OnEvent',
67
+ 'Or', 'Or_Filters', 'Order', 'Pass', 'Pow', 'Prototype', 'Quit', 'Raise',
68
+ 'Random', 'Receive', 'ReceiveMode', 'ReceiveRaw', 'Redim', 'Remote', 'Repeat',
69
+ 'Repeated', 'ResponseTime', 'Resume', 'ResumeCritical', 'RT_Common',
70
+ 'RT_Dll_Call', 'RT_FILEIO', 'RT_General', 'RT_HardwareAccess',
71
+ 'RT_MessageVariableAccess', 'RT_Scenario', 'RT_VariableAccess', 'Runtime',
72
+ 'Scenario', 'ScenarioEnd', 'ScenarioStart', 'ScenarioStatus', 'ScenarioTerminate',
73
+ 'Send', 'SendRaw', 'Set', 'SetError', 'Sin', 'Single', 'Show', 'Start',
74
+ 'StartCritical', 'Starts', 'Static', 'Step', 'Stop', 'String', 'Sub',
75
+ 'System_Error', 'TerminateAllChilds', 'Terminates', 'Then', 'Throw', 'TimeOut',
76
+ 'To', 'TooLate', 'Trunc', 'UBound', 'Unexpected', 'Until', 'User_Error',
77
+ 'View', 'Wait', 'Warning', 'While', 'XOr'
78
+ ),
79
+ 2 => array(
80
+ 'alias', 'winapi', 'long', 'char', 'double', 'float', 'int', 'short', 'lib'
81
+ )
82
+ ),
83
+ 'SYMBOLS' => array(
84
+ '=', ':=', '<', '>', '<>'
85
+ ),
86
+ 'CASE_SENSITIVE' => array(
87
+ GESHI_COMMENTS => false,
88
+ 1 => false,
89
+ 2 => false
90
+ ),
91
+ 'STYLES' => array(
92
+ 'KEYWORDS' => array(
93
+ 1 => 'color: #0000C0; font-weight: bold;',
94
+ 2 => 'color: #808080;'
95
+ ),
96
+ 'COMMENTS' => array(
97
+ 1 => 'color: #008000;'
98
+ ),
99
+ 'BRACKETS' => array(
100
+ 0 => 'color: #000080;'
101
+ ),
102
+ 'STRINGS' => array(
103
+ 0 => 'color: #800080;'
104
+ ),
105
+ 'NUMBERS' => array(
106
+ 0 => 'color: #cc66cc;'
107
+ ),
108
+ 'METHODS' => array(
109
+ 1 => 'color: #66cc66;'
110
+ ),
111
+ 'SYMBOLS' => array(
112
+ 0 => 'color: #000080;'
113
+ ),
114
+ 'ESCAPE_CHAR' => array(
115
+ 0 => 'color: #000099;'
116
+ ),
117
+ 'SCRIPT' => array(
118
+ ),
119
+ 'REGEXPS' => array(
120
+ )
121
+ ),
122
+ 'URLS' => array(
123
+ 1 => '',
124
+ 2 => ''
125
+ ),
126
+ 'OOLANG' => true,
127
+ 'OBJECT_SPLITTERS' => array(
128
+ 1 => '.'
129
+ ),
130
+ 'REGEXPS' => array(
131
+ ),
132
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
133
+ 'SCRIPT_DELIMITERS' => array(
134
+ ),
135
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
136
+ )
137
+ );
includes/geshi/6502acme.php ADDED
@@ -0,0 +1,228 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * 6502acme.php
4
+ * -------
5
+ * Author: Warren Willmey
6
+ * Copyright: (c) 2010 Warren Willmey.
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2010/05/26
9
+ *
10
+ * MOS 6502 (more specifically 6510) ACME Cross Assembler 0.93 by Marco Baye language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2010/07/22
15
+ * - First Release
16
+ *
17
+ * TODO (updated 2010/07/22)
18
+ * -------------------------
19
+ *
20
+ *************************************************************************************
21
+ *
22
+ * This file is part of GeSHi.
23
+ *
24
+ * GeSHi is free software; you can redistribute it and/or modify
25
+ * it under the terms of the GNU General Public License as published by
26
+ * the Free Software Foundation; either version 2 of the License, or
27
+ * (at your option) any later version.
28
+ *
29
+ * GeSHi is distributed in the hope that it will be useful,
30
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
31
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32
+ * GNU General Public License for more details.
33
+ *
34
+ * You should have received a copy of the GNU General Public License
35
+ * along with GeSHi; if not, write to the Free Software
36
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
37
+ *
38
+ ************************************************************************************/
39
+
40
+ $language_data = array (
41
+ 'LANG_NAME' => 'MOS 6502 (6510) ACME Cross Assembler format',
42
+ 'COMMENT_SINGLE' => array(1 => ';'),
43
+ 'COMMENT_MULTI' => array(),
44
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
45
+ 'QUOTEMARKS' => array("'", '"'),
46
+ 'ESCAPE_CHAR' => '',
47
+ 'KEYWORDS' => array(
48
+ /* 6502/6510 Opcodes. */
49
+ 1 => array(
50
+ 'adc', 'and', 'asl', 'bcc', 'bcs', 'beq', 'bit', 'bmi',
51
+ 'bne', 'bpl', 'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli',
52
+ 'clv', 'cmp', 'cpx', 'cpy', 'dec', 'dex', 'dey', 'eor',
53
+ 'inc', 'inx', 'iny', 'jmp', 'jsr', 'lda', 'ldx', 'ldy',
54
+ 'lsr', 'nop', 'ora', 'pha', 'php', 'pla', 'plp', 'rol',
55
+ 'ror', 'rti', 'rts', 'sbc', 'sec', 'sed', 'sei', 'sta',
56
+ 'stx', 'sty', 'tax', 'tay', 'tsx', 'txa', 'txs', 'tya',
57
+ ),
58
+ /* Index Registers, yes the 6502 has other registers by they are only
59
+ * accessable by specific opcodes. The 65816 also has access to the stack pointer S. */
60
+ 2 => array(
61
+ 'x', 'y', 's'
62
+ ),
63
+ /* Directives or "pseudo opcodes" as defined by ACME 0.93 file AllPOs.txt. */
64
+ 3 => array(
65
+ '!8', '!08', '!by', '!byte',
66
+ '!16', '!wo', '!word',
67
+ '!24', '!32',
68
+ '!fi', '!fill',
69
+ '!align',
70
+ '!ct', '!convtab',
71
+ '!tx', '!text',
72
+ '!pet',
73
+ '!raw',
74
+ '!scrxor',
75
+ '!to',
76
+ '!source',
77
+ '!bin', '!binary',
78
+ '!zn', '!zone',
79
+ '!sl',
80
+ '!svl',
81
+ '!sal',
82
+ '!if', '!ifdef',
83
+ '!for',
84
+ '!set',
85
+ '!do', 'while', 'until',
86
+ '!eof', '!endoffile',
87
+ '!warn', '!error', '!serious',
88
+ '!macro',
89
+ // , '*=' // Not a valid keyword (uses both * and = signs) moved to symbols instead.
90
+ '!initmem',
91
+ '!pseudopc',
92
+ '!cpu',
93
+ '!al', '!as', '!rl', '!rs',
94
+ ),
95
+
96
+ /* 6502/6510 undocumented opcodes (often referred to as illegal instructions).
97
+ * These are present in the 6502/6510 but NOT in the newer CMOS revisions of the 65C02 or 65816.
98
+ * As they are undocumented instructions there are no "official" names for them, there are also
99
+ * several more that mainly perform various forms of crash and are not supported by ACME 0.93.
100
+ */
101
+ 4 => array(
102
+ 'anc', 'arr', 'asr', 'dcp', 'dop', 'isc', 'jam', 'lax',
103
+ 'rla', 'rra', 'sax', 'sbx', 'slo', 'sre', 'top',
104
+ ),
105
+ /* 65c02 instructions, MOS added a few (much needed) instructions in the CMOS version of the 6502, but stupidly removed the undocumented/illegal opcodes.
106
+ * ACME 0.93 does not support the rmb0-7 and smb0-7 instructions (they are currently rem'ed out). */
107
+ 5 => array(
108
+ 'bra', 'phx', 'phy', 'plx', 'ply', 'stz', 'trb', 'tsb'
109
+ ),
110
+ /* 65816 instructions. */
111
+ 6 => array(
112
+ 'brl', 'cop', 'jml', 'jsl', 'mvn', 'mvp', 'pea', 'pei',
113
+ 'per', 'phb', 'phd', 'phk', 'plb', 'pld', 'rep', 'rtl',
114
+ 'sep', 'tcd', 'tcs', 'tdc', 'tsc', 'txy', 'tyx', 'wdm',
115
+ 'xba', 'xce',
116
+ ),
117
+ /* Deprecated directives or "pseudo opcodes" as defined by ACME 0.93 file AllPOs.txt. */
118
+ 7 => array(
119
+ '!cbm',
120
+ '!sz', '!subzone',
121
+ '!realpc',
122
+ ),
123
+ /* Math functions, some are aliases for the symbols. */
124
+ 8 => array(
125
+ 'not', 'div', 'mod', 'xor', 'or', 'sin', 'cos', 'tan',
126
+ 'arcsin', 'arccos', 'arctan', 'int', 'float',
127
+
128
+ ),
129
+
130
+ ),
131
+ 'SYMBOLS' => array(
132
+ // '[', ']', '(', ')', '{', '}', // These are already defined by GeSHi as BRACKETS.
133
+ '*=', '#', '!', '^', '-', '*', '/',
134
+ '%', '+', '-', '<<', '>>', '>>>',
135
+ '<', '>', '^', '<=', '<', '>=', '>', '!=',
136
+ '=', '&', '|', '<>',
137
+ ),
138
+ 'CASE_SENSITIVE' => array(
139
+ GESHI_COMMENTS => false,
140
+ 1 => false,
141
+ 2 => false,
142
+ 3 => false,
143
+ 4 => false,
144
+ 5 => false,
145
+ 6 => false,
146
+ 7 => false,
147
+ 8 => false,
148
+ ),
149
+ 'STYLES' => array(
150
+ 'KEYWORDS' => array(
151
+ 1 => 'color: #00f; font-weight:bold;',
152
+ 2 => 'color: #00f; font-weight:bold;',
153
+ 3 => 'color: #080; font-weight:bold;',
154
+ 4 => 'color: #f00; font-weight:bold;',
155
+ 5 => 'color: #80f; font-weight:bold;',
156
+ 6 => 'color: #f08; font-weight:bold;',
157
+ 7 => 'color: #a04; font-weight:bold; font-style: italic;',
158
+ 8 => 'color: #000;',
159
+ ),
160
+ 'COMMENTS' => array(
161
+ 1 => 'color: #999; font-style: italic;',
162
+ ),
163
+ 'ESCAPE_CHAR' => array(
164
+ 0 => 'color: #009; font-weight: bold;'
165
+ ),
166
+ 'BRACKETS' => array(
167
+ 0 => 'color: #000;'
168
+ ),
169
+ 'STRINGS' => array(
170
+ 0 => 'color: #080;'
171
+ ),
172
+ 'NUMBERS' => array(
173
+ GESHI_NUMBER_INT_BASIC => 'color: #f00;',
174
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR => 'color: #f00;',
175
+ GESHI_NUMBER_HEX_PREFIX => 'color: #f00;',
176
+ GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;',
177
+ GESHI_NUMBER_FLT_NONSCI => 'color: #f00;',
178
+ ),
179
+ 'METHODS' => array(
180
+ ),
181
+ 'SYMBOLS' => array(
182
+ 0 => 'color: #080;'
183
+ ),
184
+ 'REGEXPS' => array(
185
+ 0 => 'color: #f00;'
186
+ , 1 => 'color: #933;'
187
+ ),
188
+ 'SCRIPT' => array(
189
+ )
190
+ ),
191
+ 'URLS' => array(
192
+ 1 => '',
193
+ 2 => '',
194
+ 3 => '',
195
+ 4 => '',
196
+ 5 => '',
197
+ 6 => '',
198
+ 7 => '',
199
+ 8 => '',
200
+ ),
201
+ 'OOLANG' => false,
202
+ 'OBJECT_SPLITTERS' => array(
203
+ ),
204
+ 'NUMBERS' =>
205
+ GESHI_NUMBER_INT_BASIC |
206
+ GESHI_NUMBER_FLT_NONSCI |
207
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR |
208
+ GESHI_NUMBER_HEX_PREFIX |
209
+ GESHI_NUMBER_BIN_PREFIX_PERCENT,
210
+ // AMCE Octal format not support and gets picked up as Decimal unfortunately.
211
+ 'REGEXPS' => array(
212
+ //ACME .# Binary number format. e.g. %..##..##..##
213
+ 0 => '\%[\.\#]{1,64}',
214
+ //ACME Local Labels
215
+ 1 => '\.[_a-zA-Z][_a-zA-Z0-9]*',
216
+ ),
217
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
218
+ 'SCRIPT_DELIMITERS' => array(
219
+ ),
220
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
221
+ ),
222
+ 'TAB_WIDTH' => 8,
223
+ 'PARSER_CONTROL' => array(
224
+ 'NUMBERS' => array(
225
+ 'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/'
226
+ )
227
+ )
228
+ );
includes/geshi/6502kickass.php ADDED
@@ -0,0 +1,239 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * 6502kickass.php
4
+ * -------
5
+ * Author: Warren Willmey
6
+ * Copyright: (c) 2010 Warren Willmey.
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2010/06/07
9
+ *
10
+ * MOS 6502 (6510) Kick Assembler 3.13 language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2010/07/22
15
+ * - First Release
16
+ *
17
+ * TODO (updated 2010/07/22)
18
+ * -------------------------
19
+ *
20
+ *************************************************************************************
21
+ *
22
+ * This file is part of GeSHi.
23
+ *
24
+ * GeSHi is free software; you can redistribute it and/or modify
25
+ * it under the terms of the GNU General Public License as published by
26
+ * the Free Software Foundation; either version 2 of the License, or
27
+ * (at your option) any later version.
28
+ *
29
+ * GeSHi is distributed in the hope that it will be useful,
30
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
31
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32
+ * GNU General Public License for more details.
33
+ *
34
+ * You should have received a copy of the GNU General Public License
35
+ * along with GeSHi; if not, write to the Free Software
36
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
37
+ *
38
+ ************************************************************************************/
39
+
40
+ $language_data = array (
41
+ 'LANG_NAME' => 'MOS 6502 (6510) Kick Assembler format',
42
+ 'COMMENT_SINGLE' => array(1 => '//'),
43
+ 'COMMENT_MULTI' => array('/*' => '*/'),
44
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
45
+ 'QUOTEMARKS' => array("'", '"'),
46
+ 'ESCAPE_CHAR' => '',
47
+ 'KEYWORDS' => array(
48
+ /* 6502/6510 Opcodes including undocumented opcodes as Kick Assembler 3.13 does not make a distinction - they are ALL valid. */
49
+ 1 => array(
50
+ 'adc', 'ahx', 'alr', 'anc', 'anc2', 'and', 'arr', 'asl',
51
+ 'axs', 'bcc', 'bcs', 'beq', 'bit', 'bmi', 'bne', 'bpl',
52
+ 'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli', 'clv', 'cmp',
53
+ 'cpx', 'cpy', 'dcp', 'dec', 'dex', 'dey', 'eor', 'inc',
54
+ 'inx', 'iny', 'isc', 'jmp', 'jsr', 'las', 'lax', 'lda',
55
+ 'ldx', 'ldy', 'lsr', 'nop', 'ora', 'pha', 'php', 'pla',
56
+ 'plp', 'rla', 'rol', 'ror', 'rra', 'rti', 'rts', 'sax',
57
+ 'sbc', 'sbc2', 'sec', 'sed', 'sei', 'shx', 'shy', 'slo',
58
+ 'sre', 'sta', 'stx', 'sty', 'tas', 'tax', 'tay', 'tsx',
59
+ 'txa', 'txs', 'tya', 'xaa',
60
+ ),
61
+ /* DTV additional Opcodes. */
62
+ 2 => array(
63
+ 'bra', 'sac', 'sir'
64
+ ),
65
+ /* Index Registers, yes the 6502 has other registers by they are only
66
+ * accessable by specific opcodes. */
67
+ 3 => array(
68
+ 'x', 'y'
69
+ ),
70
+ /* Directives. */
71
+ 4 => array(
72
+ '.pc', '.pseudopc', 'virtual', '.align', '.byte', '.word', '.text', '.fill',
73
+ '.import source', '.import binary', '.import c64', '.import text', '.import', '.print', '.printnow',
74
+ '.error', '.var', '.eval', '.const', '.eval const', '.enum', '.label', '.define', '.struct',
75
+ 'if', '.for', '.macro', '.function', '.return', '.pseudocommand', '.namespace', '.filenamespace',
76
+ '.assert', '.asserterror',
77
+ ),
78
+ /* Kick Assembler 3.13 Functions/Operators. */
79
+ 5 => array(
80
+ 'size', 'charAt', 'substring', 'asNumber', 'asBoolean', 'toIntString', 'toBinaryString', 'toOctalString',
81
+ 'toHexString', 'lock', // String functions/operators.
82
+ 'get', 'set', 'add', 'remove', 'shuffle', // List functions.
83
+ 'put', 'keys', // Hashtable functions.
84
+ 'getType', 'getValue', 'CmdArgument', // Pseudo Commands functions.
85
+ 'asmCommandSize', // Opcode Constants functions.
86
+ 'LoadBinary', 'getSize',
87
+ 'LoadSid', 'getData',
88
+ 'LoadPicture', 'width', 'height', 'getPixel', 'getSinglecolorByte', 'getMulticolorByte',
89
+ 'createFile', 'writeln',
90
+ 'cmdLineVars',
91
+ 'getX', 'getY', 'getZ', // Vector functions.
92
+ 'RotationMatrix', 'ScaleMatrix', 'MoveMatrix', 'PerspectiveMatrix', // Matrix functions.
93
+
94
+ ),
95
+
96
+ /* Kick Assembler 3.13 Math Functions. */
97
+ 6 => array(
98
+ 'abs', 'acos', 'asin', 'atan', 'atan2', 'cbrt', 'ceil', 'cos', 'cosh',
99
+ 'exp', 'expm1', 'floor', 'hypot', 'IEEEremainder', 'log', 'log10',
100
+ 'log1p', 'max', 'min', 'pow', 'mod', 'random', 'round', 'signum',
101
+ 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'toDegrees', 'toRadians',
102
+ ),
103
+
104
+ /* Kick Assembler 3.13 Objects/Data Types. */
105
+ 7 => array(
106
+ 'List', // List() Object.
107
+ 'Hashtable', // Hashtable() Object.
108
+ 'Vector', // Vector() Object.
109
+ 'Matrix', // Matrix() Object.
110
+ ),
111
+
112
+ /* Kick Assembler 3.13 Constants. */
113
+ 8 => array(
114
+ 'PI', 'E', // Math Constants.
115
+ 'AT_ABSOLUTE' , 'AT_ABSOLUTEX' , 'AT_ABSOLUTEY' , 'AT_IMMEDIATE', // Pseudo Commands Constants.
116
+ 'AT_INDIRECT' , 'AT_IZEROPAGEX' , 'AT_IZEROPAGEY' , 'AT_NONE',
117
+ 'BLACK', 'WHITE', 'RED', 'CYAN', 'PURPLE', 'GREEN', 'BLUE', // Colour Constants.
118
+ 'YELLOW', 'ORANGE', 'BROWN', 'LIGHT_RED', 'DARK_GRAY', 'GRAY',
119
+ 'LIGHT_GREEN', 'LIGHT_BLUE', 'LIGHT_GRAY',
120
+ 'C64FILE', // Template Tag names.
121
+ 'BF_C64FILE', 'BF_BITMAP_SINGLECOLOR', 'BF_KOALA' , 'BF_FLI', // Binary format constant
122
+ ),
123
+
124
+ ),
125
+ 'SYMBOLS' => array(
126
+ // '[', ']', '(', ')', '{', '}', // These are already defined by GeSHi as BRACKETS.
127
+ '-', '+', '-', '*', '/', '>', '<', '<<', '>>', '&', '|', '^', '=', '==',
128
+ '!=', '>=', '<=', '!', '&&', '||', '#',
129
+ ),
130
+ 'CASE_SENSITIVE' => array(
131
+ GESHI_COMMENTS => false,
132
+ 1 => false,
133
+ 2 => false,
134
+ 3 => false,
135
+ 4 => true,
136
+ 5 => true,
137
+ 6 => true,
138
+ 7 => true,
139
+ 8 => true,
140
+ ),
141
+ 'STYLES' => array(
142
+ 'KEYWORDS' => array(
143
+ 1 => 'color: #00f; font-weight:bold;',
144
+ 2 => 'color: #00f; font-weight:bold;',
145
+ 3 => 'color: #00f; font-weight:bold;',
146
+ 4 => 'color: #080; font-weight:bold;',
147
+ 5 => 'color: #80f; font-weight:bold;',
148
+ 6 => 'color: #f08; font-weight:bold;',
149
+ 7 => 'color: #a04; font-weight:bold; font-style: italic;',
150
+ 8 => 'color: #f08; font-weight:bold;',
151
+ ),
152
+ 'COMMENTS' => array(
153
+ 1 => 'color: #999; font-style: italic;',
154
+ ),
155
+ 'ESCAPE_CHAR' => array(
156
+ 0 => 'color: #009; font-weight: bold;'
157
+ ),
158
+ 'BRACKETS' => array(
159
+ 0 => 'color: #000;'
160
+ ),
161
+ 'STRINGS' => array(
162
+ 0 => 'color: #080;'
163
+ ),
164
+ 'NUMBERS' => array(
165
+ GESHI_NUMBER_INT_BASIC => 'color: #f00;',
166
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR => 'color: #f00;',
167
+ GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;',
168
+ GESHI_NUMBER_FLT_NONSCI => 'color: #f00;',
169
+ ),
170
+ 'METHODS' => array(
171
+ ),
172
+ 'SYMBOLS' => array(
173
+ 0 => 'color: #080;'
174
+ ),
175
+ 'REGEXPS' => array(
176
+ 0 => 'color: #933;',
177
+ 1 => 'color: #933;',
178
+ 2 => 'color: #933;',
179
+ 3 => 'color: #00f; font-weight:bold;',
180
+ ),
181
+ 'SCRIPT' => array(
182
+ )
183
+ ),
184
+ 'URLS' => array(
185
+ 1 => '',
186
+ 2 => '',
187
+ 3 => '',
188
+ 4 => '',
189
+ 5 => '',
190
+ 6 => '',
191
+ 7 => '',
192
+ 8 => '',
193
+ ),
194
+ 'OOLANG' => false,
195
+ 'OBJECT_SPLITTERS' => array(
196
+ ),
197
+ 'NUMBERS' =>
198
+ GESHI_NUMBER_INT_BASIC |
199
+ GESHI_NUMBER_FLT_NONSCI |
200
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR |
201
+ GESHI_NUMBER_BIN_PREFIX_PERCENT,
202
+ // AMCE Octal format not support and gets picked up as Decimal unfortunately.
203
+ 'REGEXPS' => array(
204
+ //Labels end with a collon.
205
+ 0 => '[!]{0,1}[_a-zA-Z][_a-zA-Z0-9]*\:',
206
+ //Multi Labels (local labels) references start with ! and end with + or - for forward/backward reference.
207
+ 1 => '![_a-zA-Z][_a-zA-Z0-9]*[+-]',
208
+ //Macros start with a colon :Macro.
209
+ 2 => ':[_a-zA-Z][_a-zA-Z0-9]*',
210
+ // Opcode Constants, such as LDA_IMM, STA_IZPY are basically all 6502 opcodes
211
+ // in UPPER case followed by _underscore_ and the ADDRESS MODE.
212
+ // As you might imagine that is rather a lot ( 78 supported Opcodes * 12 Addressing modes = 936 variations)
213
+ // So I thought it better and easier to maintain as a regular expression.
214
+ // NOTE: The order of the Address Modes must be maintained or it wont work properly (eg. place ZP first and find out!)
215
+ 3 => '[A-Z]{3}[2]?_(?:IMM|IND|IZPX|IZPY|ZPX|ZPY|ABSX|ABSY|REL|ABS|ZP)',
216
+ ),
217
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
218
+ 'SCRIPT_DELIMITERS' => array(
219
+ ),
220
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
221
+ ),
222
+ 'TAB_WIDTH' => 8,
223
+ 'PARSER_CONTROL' => array(
224
+ 'NUMBERS' => array(
225
+ 'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/'
226
+ ),
227
+ 'KEYWORDS' => array(
228
+ 5 => array (
229
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\;>|^&'\"])"
230
+ ),
231
+ 6 => array (
232
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\;>|^&'\"])"
233
+ ),
234
+ 8 => array (
235
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\;>|^&'\"])"
236
+ )
237
+ )
238
+ ),
239
+ );
includes/geshi/6502tasm.php ADDED
@@ -0,0 +1,187 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * 6502tasm.php
4
+ * -------
5
+ * Author: Warren Willmey
6
+ * Copyright: (c) 2010 Warren Willmey.
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2010/06/02
9
+ *
10
+ * MOS 6502 (6510) TASM/64TASS (64TASS being the super set of TASM) language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2010/07/22
15
+ * - First Release
16
+ *
17
+ * TODO (updated 2010/07/22)
18
+ * -------------------------
19
+ *
20
+ *************************************************************************************
21
+ *
22
+ * This file is part of GeSHi.
23
+ *
24
+ * GeSHi is free software; you can redistribute it and/or modify
25
+ * it under the terms of the GNU General Public License as published by
26
+ * the Free Software Foundation; either version 2 of the License, or
27
+ * (at your option) any later version.
28
+ *
29
+ * GeSHi is distributed in the hope that it will be useful,
30
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
31
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32
+ * GNU General Public License for more details.
33
+ *
34
+ * You should have received a copy of the GNU General Public License
35
+ * along with GeSHi; if not, write to the Free Software
36
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
37
+ *
38
+ ************************************************************************************/
39
+
40
+ $language_data = array (
41
+ 'LANG_NAME' => 'MOS 6502 (6510) TASM/64TASS 1.46 Assembler format',
42
+ 'COMMENT_SINGLE' => array(1 => ';'),
43
+ 'COMMENT_MULTI' => array(),
44
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
45
+ 'QUOTEMARKS' => array("'", '"'),
46
+ 'ESCAPE_CHAR' => '',
47
+ 'KEYWORDS' => array(
48
+ /* 6502/6510 Opcodes. */
49
+ 1 => array(
50
+ 'adc', 'and', 'asl', 'bcc', 'bcs', 'beq', 'bit', 'bmi',
51
+ 'bne', 'bpl', 'brk', 'bvc', 'bvs', 'clc', 'cld', 'cli',
52
+ 'clv', 'cmp', 'cpx', 'cpy', 'dec', 'dex', 'dey', 'eor',
53
+ 'inc', 'inx', 'iny', 'jmp', 'jsr', 'lda', 'ldx', 'ldy',
54
+ 'lsr', 'nop', 'ora', 'pha', 'php', 'pla', 'plp', 'rol',
55
+ 'ror', 'rti', 'rts', 'sbc', 'sec', 'sed', 'sei', 'sta',
56
+ 'stx', 'sty', 'tax', 'tay', 'tsx', 'txa', 'txs', 'tya',
57
+ ),
58
+ /* Index Registers, yes the 6502 has other registers by they are only
59
+ * accessable by specific opcodes. The 65816 also has access to the stack pointer S. */
60
+ 2 => array(
61
+ 'x', 'y', 's'
62
+ ),
63
+ /* Directives. */
64
+ 3 => array(
65
+ '.al', '.align', '.as', '.assert', '.binary', '.byte', '.cerror', '.char',
66
+ '.comment', '.cpu', '.cwarn', '.databank', '.dpage', '.else', '.elsif',
67
+ '.enc', '.endc', '.endif', '.endm', '.endp', '.error', '.fi', '.fill',
68
+ '.for', '.here', '.if', '.ifeq', '.ifmi', '.ifne', '.ifpl',
69
+ '.include', '.int', '.logical', '.long', '.macro', '.next', '.null', '.offs',
70
+ '.page', '.pend', '.proc', '.rept', '.rta', '.shift', '.text', '.warn', '.word',
71
+ '.xl', '.xs',
72
+ // , '*=' // Not a valid keyword (uses both * and = signs) moved to symbols instead.
73
+ ),
74
+
75
+ /* 6502/6510 undocumented opcodes (often referred to as illegal instructions).
76
+ * These are present in the 6502/6510 but NOT in the newer CMOS revisions of the 65C02 or 65816.
77
+ * As they are undocumented instructions there are no "official" names for them, these are the names
78
+ * used by 64TASS V1.46.
79
+ */
80
+ 4 => array(
81
+ 'ahx', 'alr', 'anc', 'ane', 'arr', 'asr', 'axs', 'dcm',
82
+ 'dcp', 'ins', 'isb', 'isc', 'jam', 'lae', 'las', 'lax',
83
+ 'lds', 'lxa', 'rla', 'rra', 'sax', 'sbx', 'sha', 'shs',
84
+ 'shx', 'shy', 'slo', 'sre', 'tas', 'xaa',
85
+ ),
86
+ /* 65c02 instructions, MOS added a few (much needed) instructions in the
87
+ * CMOS version of the 6502, but stupidly removed the undocumented/illegal opcodes. */
88
+ 5 => array(
89
+ 'bra', 'dea', 'gra', 'ina', 'phx', 'phy', 'plx', 'ply',
90
+ 'stz', 'trb', 'tsb',
91
+ ),
92
+ /* 65816 instructions. */
93
+ 6 => array(
94
+ 'brl', 'cop', 'jml', 'jsl', 'mvn', 'mvp', 'pea', 'pei',
95
+ 'per', 'phb', 'phd', 'phk', 'plb', 'pld', 'rep', 'rtl',
96
+ 'sep', 'stp', 'swa', 'tad', 'tcd', 'tcs', 'tda',
97
+ 'tdc', 'tsa', 'tsc', 'txy', 'tyx', 'wai', 'xba', 'xce',
98
+ ),
99
+ /* Deprecated directives (or yet to be implemented). */
100
+ 7 => array(
101
+ '.global', '.check'
102
+ ),
103
+ ),
104
+ 'SYMBOLS' => array(
105
+ // '[', ']', '(', ')', '{', '}', // These are already defined by GeSHi as BRACKETS.
106
+ '*=', '#', '<', '>', '`', '=', '<', '>',
107
+ '!=', '>=', '<=', '+', '-', '*', '/', '//', '|',
108
+ '^', '&', '<<', '>>', '-', '~', '!',
109
+ ),
110
+ 'CASE_SENSITIVE' => array(
111
+ GESHI_COMMENTS => false,
112
+ 1 => false,
113
+ 2 => false,
114
+ 3 => false,
115
+ 4 => false,
116
+ 5 => false,
117
+ 6 => false,
118
+ 7 => false,
119
+ ),
120
+ 'STYLES' => array(
121
+ 'KEYWORDS' => array(
122
+ 1 => 'color: #00f; font-weight:bold;',
123
+ 2 => 'color: #00f; font-weight:bold;',
124
+ 3 => 'color: #080; font-weight:bold;',
125
+ 4 => 'color: #f00; font-weight:bold;',
126
+ 5 => 'color: #80f; font-weight:bold;',
127
+ 6 => 'color: #f08; font-weight:bold;',
128
+ 7 => 'color: #a04; font-weight:bold; font-style: italic;',
129
+ ),
130
+ 'COMMENTS' => array(
131
+ 1 => 'color: #999; font-style: italic;',
132
+ ),
133
+ 'ESCAPE_CHAR' => array(
134
+ 0 => 'color: #009; font-weight: bold;'
135
+ ),
136
+ 'BRACKETS' => array(
137
+ 0 => 'color: #000;'
138
+ ),
139
+ 'STRINGS' => array(
140
+ 0 => 'color: #080;'
141
+ ),
142
+ 'NUMBERS' => array(
143
+ GESHI_NUMBER_INT_BASIC => 'color: #f00;',
144
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR => 'color: #f00;',
145
+ GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;',
146
+ ),
147
+ 'METHODS' => array(
148
+ ),
149
+ 'SYMBOLS' => array(
150
+ 0 => 'color: #080;'
151
+ ),
152
+ 'REGEXPS' => array(
153
+ ),
154
+ 'SCRIPT' => array(
155
+ )
156
+ ),
157
+ 'URLS' => array(
158
+ 1 => '',
159
+ 2 => '',
160
+ 3 => '',
161
+ 4 => '',
162
+ 5 => '',
163
+ 6 => '',
164
+ 7 => '',
165
+ ),
166
+ 'OOLANG' => false,
167
+ 'OBJECT_SPLITTERS' => array(
168
+ ),
169
+ 'NUMBERS' =>
170
+ GESHI_NUMBER_INT_BASIC |
171
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR |
172
+ GESHI_NUMBER_BIN_PREFIX_PERCENT,
173
+ // AMCE Octal format not support and gets picked up as Decimal unfortunately.
174
+ 'REGEXPS' => array(
175
+ ),
176
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
177
+ 'SCRIPT_DELIMITERS' => array(
178
+ ),
179
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
180
+ ),
181
+ 'TAB_WIDTH' => 8,
182
+ 'PARSER_CONTROL' => array(
183
+ 'NUMBERS' => array(
184
+ 'PRECHECK_RX' => '/[\da-fA-F\.\$\%]/'
185
+ )
186
+ )
187
+ );
includes/geshi/68000devpac.php ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * 68000devpac.php
4
+ * -------
5
+ * Author: Warren Willmey
6
+ * Copyright: (c) 2010 Warren Willmey.
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2010/06/09
9
+ *
10
+ * Motorola 68000 - HiSoft Devpac ST 2 Assembler language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2010/07/22
15
+ * - First Release
16
+ *
17
+ * TODO (updated 2010/07/22)
18
+ * -------------------------
19
+ *
20
+ *************************************************************************************
21
+ *
22
+ * This file is part of GeSHi.
23
+ *
24
+ * GeSHi is free software; you can redistribute it and/or modify
25
+ * it under the terms of the GNU General Public License as published by
26
+ * the Free Software Foundation; either version 2 of the License, or
27
+ * (at your option) any later version.
28
+ *
29
+ * GeSHi is distributed in the hope that it will be useful,
30
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
31
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
32
+ * GNU General Public License for more details.
33
+ *
34
+ * You should have received a copy of the GNU General Public License
35
+ * along with GeSHi; if not, write to the Free Software
36
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
37
+ *
38
+ ************************************************************************************/
39
+
40
+ $language_data = array (
41
+ 'LANG_NAME' => 'Motorola 68000 - HiSoft Devpac ST 2 Assembler format',
42
+ 'COMMENT_SINGLE' => array(1 => ';'),
43
+ 'COMMENT_MULTI' => array(),
44
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
45
+ 'QUOTEMARKS' => array("'", '"'),
46
+ 'ESCAPE_CHAR' => '',
47
+ 'KEYWORDS' => array(
48
+ /* Directives. */
49
+ 1 => array(
50
+ 'end', 'include', 'incbin', 'opt', 'even', 'cnop', 'dc.b', 'dc.w',
51
+ 'dc.l', 'ds.b', 'ds.w', 'ds.l', 'dcb.b', 'dcb.w', 'dcb.l',
52
+ 'fail', 'output', '__g2', 'rept', 'endr', 'list', 'nolist', 'plen',
53
+ 'llen', 'ttl', 'subttl', 'spc', 'page', 'listchar', 'format',
54
+ 'equ', 'equr', 'set', 'reg', 'rs.b', 'rs.w', 'rs.l', 'rsreset',
55
+ 'rsset', '__rs', 'ifeq', 'ifne', 'ifgt', 'ifge', 'iflt', 'ifle', 'endc',
56
+ 'ifd', 'ifnd', 'ifc', 'ifnc', 'elseif', 'iif', 'macro', 'endm', 'mexit',
57
+ 'narg', '\@', 'section', 'text', 'data', 'bss', 'xdef', 'xref', 'org',
58
+ 'offset', '__lk', 'comment',
59
+ ),
60
+ /* 68000 Opcodes. */
61
+ 2 => array(
62
+ 'abcd', 'add', 'adda', 'addi', 'addq', 'addx', 'and', 'andi',
63
+ 'asl', 'asr', 'bcc', 'bchg', 'bclr', 'bcs', 'beq', 'bge',
64
+ 'bgt', 'bhi', 'ble', 'bls', 'blt', 'bmi', 'bne', 'bpl',
65
+ 'bra', 'bset', 'bsr', 'btst', 'bvc', 'bvs', 'chk', 'clr',
66
+ 'cmp', 'cmpa', 'cmpi', 'cmpm', 'dbcc', 'dbcs', 'dbeq', 'dbf',
67
+ 'dbge', 'dbgt', 'dbhi', 'dble', 'dbls', 'dblt', 'dbmi', 'dbne',
68
+ 'dbpl', 'dbra', 'dbt', 'dbvc', 'dbvs', 'divs', 'divu', 'eor',
69
+ 'eori', 'exg', 'ext','illegal','jmp', 'jsr', 'lea', 'link',
70
+ 'lsl', 'lsr', 'move','movea','movem','movep','moveq', 'muls',
71
+ 'mulu', 'nbcd', 'neg', 'negx', 'nop', 'not', 'or', 'ori',
72
+ 'pea', 'reset', 'rol', 'ror', 'roxl', 'roxr', 'rte', 'rtr',
73
+ 'rts', 'sbcd', 'scc', 'scs', 'seq', 'sf', 'sge', 'sgt',
74
+ 'shi', 'sle', 'sls', 'slt', 'smi', 'sne', 'spl', 'st',
75
+ 'stop', 'sub', 'suba', 'subi', 'subq', 'subx', 'svc', 'svs',
76
+ 'swap', 'tas', 'trap','trapv', 'tst', 'unlk',
77
+ ),
78
+ /* oprand sizes. */
79
+ 3 => array(
80
+ 'b', 'w', 'l' , 's'
81
+ ),
82
+ /* 68000 Registers. */
83
+ 4 => array(
84
+ 'd0', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7',
85
+ 'a0', 'a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'sp', 'usp', 'ssp',
86
+ 'pc', 'ccr', 'sr',
87
+ ),
88
+ ),
89
+ 'SYMBOLS' => array(
90
+ // '[', ']', '(', ')', '{', '}', // These are already defined by GeSHi as BRACKETS.
91
+ '+', '-', '~', '<<', '>>', '&',
92
+ '!', '^', '*', '/', '=', '<', '>',
93
+ ),
94
+ 'CASE_SENSITIVE' => array(
95
+ GESHI_COMMENTS => false,
96
+ 1 => false,
97
+ 2 => false,
98
+ 3 => false,
99
+ 4 => false,
100
+ ),
101
+ 'STYLES' => array(
102
+ 'KEYWORDS' => array(
103
+ 1 => 'color: #f08; font-weight:bold;',
104
+ 2 => 'color: #00f; font-weight:bold;',
105
+ 3 => 'color: #00f; font-weight:bold;',
106
+ 4 => 'color: #080; font-weight:bold;',
107
+ ),
108
+ 'COMMENTS' => array(
109
+ 1 => 'color: #999; font-style: italic;',
110
+ ),
111
+ 'ESCAPE_CHAR' => array(
112
+ 0 => 'color: #009; font-weight: bold;'
113
+ ),
114
+ 'BRACKETS' => array(
115
+ 0 => 'color: #000;'
116
+ ),
117
+ 'STRINGS' => array(
118
+ 0 => 'color: #080;'
119
+ ),
120
+ 'NUMBERS' => array(
121
+ GESHI_NUMBER_INT_BASIC => 'color: #f00;',
122
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR => 'color: #f00;',
123
+ GESHI_NUMBER_BIN_PREFIX_PERCENT => 'color: #f00;',
124
+ GESHI_NUMBER_OCT_PREFIX_AT => 'color: #f00;',
125
+ ),
126
+ 'METHODS' => array(
127
+ ),
128
+ 'SYMBOLS' => array(
129
+ 0 => 'color: #080;'
130
+ ),
131
+ 'REGEXPS' => array(
132
+ 0 => 'color: #933;'
133
+ ),
134
+ 'SCRIPT' => array(
135
+ )
136
+ ),
137
+ 'URLS' => array(
138
+ 1 => '',
139
+ 2 => '',
140
+ 3 => '',
141
+ 4 => '',
142
+ ),
143
+ 'OOLANG' => false,
144
+ 'OBJECT_SPLITTERS' => array(
145
+ ),
146
+ 'NUMBERS' =>
147
+ GESHI_NUMBER_INT_BASIC |
148
+ GESHI_NUMBER_HEX_PREFIX_DOLLAR |
149
+ GESHI_NUMBER_OCT_PREFIX_AT |
150
+ GESHI_NUMBER_BIN_PREFIX_PERCENT,
151
+ 'REGEXPS' => array(
152
+ //Labels may end in a colon.
153
+ 0 => '(?<=\A\x20|\r|\n|^)[\._a-zA-Z][\._a-zA-Z0-9]*[\:]?[\s]'
154
+ ),
155
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
156
+ 'SCRIPT_DELIMITERS' => array(
157
+ ),
158
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
159
+ ),
160
+ 'TAB_WIDTH' => 8,
161
+ 'PARSER_CONTROL' => array(
162
+ 'NUMBERS' => array(
163
+ 'PRECHECK_RX' => '/[\da-fA-F\.\$\%\@]/'
164
+ )
165
+ )
166
+ );
includes/geshi/abap.php ADDED
@@ -0,0 +1,1407 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * abap.php
4
+ * --------
5
+ * Author: Andres Picazo (andres@andrespicazo.com)
6
+ * Contributors:
7
+ * - Sandra Rossi (sandra.rossi@gmail.com)
8
+ * - Jacob Laursen (jlu@kmd.dk)
9
+ * Copyright: (c) 2007 Andres Picazo
10
+ * Release Version: 1.0.9.0
11
+ * Date Started: 2004/06/04
12
+ *
13
+ * ABAP language file for GeSHi.
14
+ *
15
+ * Reference abap language documentation (abap 7.1) : http://help.sap.com/abapdocu/en/ABENABAP_INDEX.htm
16
+ *
17
+ * ABAP syntax is highly complex, several problems could not be addressed, see TODO below if you dare ;-)
18
+ * Be aware that in ABAP language, keywords may be composed of several tokens,
19
+ * separated by one or more spaces or carriage returns
20
+ * (for example CONCATENATE 'hello' 'world' INTO string SEPARATED BY ' ')
21
+ * it's why we must decode them with REGEXPS. As there are many keywords with several tokens,
22
+ * I had to create a separate section in the code to simplify the reading.
23
+ * Be aware that some words may be highlighted several times like for "ref to data", which is first
24
+ * highlighted for "ref to data", then secondly for "ref to". It is very important to
25
+ * position "ref to" after "ref to data" otherwise "data" wouldn't be highlighted because
26
+ * of the previous highlight.
27
+ * Control, declarative and other statements are assigned URLs to sap documentation website:
28
+ * http://help.sap.com/abapdocu/en/ABAP<statement_name>.htm
29
+ *
30
+ * CHANGES
31
+ * -------
32
+ * 2009/02/25 (1.0.8.3)
33
+ * - Some more rework of the language file
34
+ * 2009/01/04 (1.0.8.2)
35
+ * - Major Release, more than 1000 statements and keywords added = whole abap 7.1 (Sandra Rossi)
36
+ * 2007/06/27 (1.0.0)
37
+ * - First Release
38
+ *
39
+ * TODO
40
+ * ----
41
+ * - in DATA data TYPE type, 2nd "data" and 2nd "type" are highlighted with data
42
+ * style, but should be ignored. Same problem for all words!!! This is quite impossible to
43
+ * solve it as we should define syntaxes of all statements (huge effort!) and use a lex
44
+ * or something like that instead of regexp I guess.
45
+ * - Some words are considered as being statement names (report, tables, etc.) though they
46
+ * are used as keyword in some statements. For example: FORM xxxx TABLES itab. It was
47
+ * arbitrary decided to define them as statement instead of keyword, because it may be
48
+ * useful to have the URL to SAP help for some of them.
49
+ * - if a comment is between 2 words of a keyword (for example SEPARATED "comment \n BY),
50
+ * it is not considered as a keyword, but it should!
51
+ * - for statements like "READ DATASET", GeSHi does not allow to set URLs because these
52
+ * statements are determined by REGEXPS. For "READ DATASET", the URL should be
53
+ * ABAPREAD_DATASET.htm. If a technical solution is found, be careful : URLs
54
+ * are sometimes not valid because the URL does not exist. For example, for "AT NEW"
55
+ * statement, the URL should be ABAPAT_ITAB.htm (not ABAPAT_NEW.htm).
56
+ * There are many other exceptions.
57
+ * Note: for adding this functionality within your php program, you can execute this code:
58
+ * function add_urls_to_multi_tokens( $matches ) {
59
+ * $url = preg_replace( "/[ \n]+/" , "_" , $matches[3] );
60
+ * if( $url == $matches[3] ) return $matches[0] ;
61
+ * else return $matches[1]."<a href=\"http://help.sap.com/abapdocu/en/ABAP".strtoupper($url).".htm\">".$matches[3]."</a>".$matches[4];
62
+ * }
63
+ * $html = $geshi->parse_code();
64
+ * $html = preg_replace_callback( "£(zzz:(control|statement|data);\">)(.+?)(</span>)£s", "add_urls_to_multi_tokens", $html );
65
+ * echo $html;
66
+ * - Numbers followed by a dot terminating the statement are not properly recognized
67
+ *
68
+ *************************************************************************************
69
+ *
70
+ * This file is part of GeSHi.
71
+ *
72
+ * GeSHi is free software; you can redistribute it and/or modify
73
+ * it under the terms of the GNU General Public License as published by
74
+ * the Free Software Foundation; either version 2 of the License, or
75
+ * (at your option) any later version.
76
+ *
77
+ * GeSHi is distributed in the hope that it will be useful,
78
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
79
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
80
+ * GNU General Public License for more details.
81
+ *
82
+ * You should have received a copy of the GNU General Public License
83
+ * along with GeSHi; if not, write to the Free Software
84
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
85
+ *
86
+ ************************************************************************************/
87
+
88
+ $language_data = array(
89
+ 'LANG_NAME' => 'ABAP',
90
+ 'COMMENT_SINGLE' => array(
91
+ 1 => '"'
92
+ ),
93
+ 'COMMENT_MULTI' => array(),
94
+ 'COMMENT_REGEXP' => array(
95
+ // lines beginning with star at 1st position are comments
96
+ // (star anywhere else is not a comment, especially be careful with
97
+ // "assign dref->* to <fs>" statement)
98
+ 2 => '/^\*.*?$/m'
99
+ ),
100
+ 'CASE_KEYWORDS' => 0,
101
+ 'QUOTEMARKS' => array(
102
+ 1 => "'",
103
+ 2 => "`"
104
+ ),
105
+ 'ESCAPE_CHAR' => '',
106
+
107
+ 'KEYWORDS' => array(
108
+ //***********************************************
109
+ // Section 2 : process sequences of several tokens
110
+ //***********************************************
111
+
112
+ 7 => array(
113
+ 'at new',
114
+ 'at end of',
115
+ 'at first',
116
+ 'at last',
117
+ 'loop at',
118
+ 'loop at screen',
119
+ ),
120
+
121
+ 8 => array(
122
+ 'private section',
123
+ 'protected section',
124
+ 'public section',
125
+ 'at line-selection',
126
+ 'at selection-screen',
127
+ 'at user-command',
128
+ 'assign component',
129
+ 'assign table field',
130
+ 'call badi',
131
+ 'call customer-function',
132
+ 'call customer subscreen',
133
+ 'call dialog',
134
+ 'call function',
135
+ 'call method',
136
+ 'call screen',
137
+ 'call selection-screen',
138
+ 'call transaction',
139
+ 'call transformation',
140
+ 'close cursor',
141
+ 'close dataset',
142
+ 'commit work',
143
+ 'convert date',
144
+ 'convert text',
145
+ 'convert time stamp',
146
+ 'create data',
147
+ 'create object',
148
+ 'delete dataset',
149
+ 'delete from',
150
+ 'describe distance',
151
+ 'describe field',
152
+ 'describe list',
153
+ 'describe table',
154
+ 'exec sql',
155
+ 'exit from sql',
156
+ 'exit from step-loop',
157
+ 'export dynpro',
158
+ 'export nametab',
159
+ 'free memory',
160
+ 'generate subroutine-pool',
161
+ 'get badi',
162
+ 'get bit',
163
+ 'get cursor',
164
+ 'get dataset',
165
+ 'get locale',
166
+ 'get parameter',
167
+ 'get pf-status',
168
+ 'get property',
169
+ 'get reference',
170
+ 'get run time',
171
+ 'get time',
172
+ 'get time stamp',
173
+ 'import directory',
174
+ 'insert report',
175
+ 'insert text-pool',
176
+ 'leave list-processing',
177
+ 'leave program',
178
+ 'leave screen',
179
+ 'leave to list-processing',
180
+ 'leave to transaction',
181
+ 'modify line',
182
+ 'modify screen',
183
+ 'move percentage',
184
+ 'open cursor',
185
+ 'open dataset',
186
+ 'raise event',
187
+ 'raise exception',
188
+ 'read dataset',
189
+ 'read line',
190
+ 'read report',
191
+ 'read table',
192
+ 'read textpool',
193
+ 'receive results from function',
194
+ 'refresh control',
195
+ 'rollback work',
196
+ 'set bit',
197
+ 'set blank lines',
198
+ 'set country',
199
+ 'set cursor',
200
+ 'set dataset',
201
+ 'set extended check',
202
+ 'set handler',
203
+ 'set hold data',
204
+ 'set language',
205
+ 'set left scroll-boundary',
206
+ 'set locale',
207
+ 'set margin',
208
+ 'set parameter',
209
+ 'set pf-status',
210
+ 'set property',
211
+ 'set run time analyzer',
212
+ 'set run time clock',
213
+ 'set screen',
214
+ 'set titlebar',
215
+ 'set update task',
216
+ 'set user-command',
217
+ 'suppress dialog',
218
+ 'truncate dataset',
219
+ 'wait until',
220
+ 'wait up to',
221
+ ),
222
+
223
+ 9 => array(
224
+ 'accepting duplicate keys',
225
+ 'accepting padding',
226
+ 'accepting truncation',
227
+ 'according to',
228
+ 'actual length',
229
+ 'adjacent duplicates',
230
+ 'after input',
231
+ 'all blob columns',
232
+ 'all clob columns',
233
+ 'all fields',
234
+ 'all methods',
235
+ 'all other columns',
236
+ 'and mark',
237
+ 'and return to screen',
238
+ 'and return',
239
+ 'and skip first screen',
240
+ 'and wait',
241
+ 'any table',
242
+ 'appendage type',
243
+ 'archive mode',
244
+ 'archiving parameters',
245
+ 'area handle',
246
+ 'as checkbox',
247
+ 'as icon',
248
+ 'as line',
249
+ 'as listbox',
250
+ 'as person table',
251
+ 'as search patterns',
252
+ 'as separate unit',
253
+ 'as subscreen',
254
+ 'as symbol',
255
+ 'as text',
256
+ 'as window',
257
+ 'at cursor-selection',
258
+ 'at exit-command',
259
+ 'at next application statement',
260
+ 'at position',
261
+
262
+ 'backup into',
263
+ 'before output',
264
+ 'before unwind',
265
+ 'begin of block',
266
+ 'begin of common part',
267
+ 'begin of line',
268
+ 'begin of screen',
269
+ 'begin of tabbed block',
270
+ 'begin of version',
271
+ 'begin of',
272
+ 'big endian',
273
+ 'binary mode',
274
+ 'binary search',
275
+ 'by kernel module',
276
+ 'bypassing buffer',
277
+
278
+ 'client specified',
279
+ 'code page',
280
+ 'code page hint',
281
+ 'code page into',
282
+ 'color black',
283
+ 'color blue',
284
+ 'color green',
285
+ 'color pink',
286
+ 'color red',
287
+ 'color yellow',
288
+ 'compression off',
289
+ 'compression on',
290
+ 'connect to',
291
+ 'corresponding fields of table',
292
+ 'corresponding fields of',
293
+ 'cover page',
294
+ 'cover text',
295
+ 'create package',
296
+ 'create private',
297
+ 'create protected',
298
+ 'create public',
299
+ 'current position',
300
+
301
+ 'data buffer',
302
+ 'data values',
303
+ 'dataset expiration',
304
+ 'daylight saving time',
305
+ 'default key',
306
+ 'default program',
307
+ 'default screen',
308
+ 'defining database',
309
+ 'deleting leading',
310
+ 'deleting trailing',
311
+ 'directory entry',
312
+ 'display like',
313
+ 'display offset',
314
+ 'during line-selection',
315
+ 'dynamic selections',
316
+
317
+ 'edit mask',
318
+ 'end of block',
319
+ 'end of common part',
320
+ 'end of file',
321
+ 'end of line',
322
+ 'end of screen',
323
+ 'end of tabbed block',
324
+ 'end of version',
325
+ 'end of',
326
+ 'endian into',
327
+ 'ending at',
328
+ 'enhancement options into',
329
+ 'enhancement into',
330
+ 'environment time format',
331
+ 'execute procedure',
332
+ 'exporting list to memory',
333
+ 'extension type',
334
+
335
+ 'field format',
336
+ 'field selection',
337
+ 'field value into',
338
+ 'final methods',
339
+ 'first occurrence of',
340
+ 'fixed-point arithmetic',
341
+ 'for all entries',
342
+ 'for all instances',
343
+ 'for appending',
344
+ 'for columns',
345
+ 'for event of',
346
+ 'for field',
347
+ 'for high',
348
+ 'for input',
349
+ 'for lines',
350
+ 'for low',
351
+ 'for node',
352
+ 'for output',
353
+ 'for select',
354
+ 'for table',
355
+ 'for testing',
356
+ 'for update',
357
+ 'for user',
358
+ 'frame entry',
359
+ 'frame program from',
360
+ 'from code page',
361
+ 'from context',
362
+ 'from database',
363
+ 'from logfile id',
364
+ 'from number format',
365
+ 'from screen',
366
+ 'from table',
367
+ 'function key',
368
+
369
+ 'get connection',
370
+ 'global friends',
371
+ 'group by',
372
+
373
+ 'hashed table of',
374
+ 'hashed table',
375
+
376
+ 'if found',
377
+ 'ignoring case',
378
+ 'ignoring conversion errors',
379
+ 'ignoring structure boundaries',
380
+ 'implementations from',
381
+ 'in background',
382
+ 'in background task',
383
+ 'in background unit',
384
+ 'in binary mode',
385
+ 'in byte mode',
386
+ 'in char-to-hex mode',
387
+ 'in character mode',
388
+ 'in group',
389
+ 'in legacy binary mode',
390
+ 'in legacy text mode',
391
+ 'in program',
392
+ 'in remote task',
393
+ 'in text mode',
394
+ 'in table',
395
+ 'in update task',
396
+ 'include bound',
397
+ 'include into',
398
+ 'include program from',
399
+ 'include structure',
400
+ 'include type',
401
+ 'including gaps',
402
+ 'index table',
403
+ 'inheriting from',
404
+ 'init destination',
405
+ 'initial line of',
406
+ 'initial line',
407
+ 'initial size',
408
+ 'internal table',
409
+ 'into sortable code',
410
+
411
+ 'keep in spool',
412
+ 'keeping directory entry',
413
+ 'keeping logical unit of work',
414
+ 'keeping task',
415
+ 'keywords from',
416
+
417
+ 'left margin',
418
+ 'left outer',
419
+ 'levels into',
420
+ 'line format',
421
+ 'line into',
422
+ 'line of',
423
+ 'line page',
424
+ 'line value from',
425
+ 'line value into',
426
+ 'lines of',
427
+ 'list authority',
428
+ 'list dataset',
429
+ 'list name',
430
+ 'little endian',
431
+ 'lob handle for',
432
+ 'local friends',
433
+ 'locator for',
434
+ 'lower case',
435
+
436
+ 'main table field',
437
+ 'match count',
438
+ 'match length',
439
+ 'match line',
440
+ 'match offset',
441
+ 'matchcode object',
442
+ 'maximum length',
443
+ 'maximum width into',
444
+ 'memory id',
445
+ 'message into',
446
+ 'messages into',
447
+ 'modif id',
448
+
449
+ 'nesting level',
450
+ 'new list identification',
451
+ 'next cursor',
452
+ 'no database selection',
453
+ 'no dialog',
454
+ 'no end of line',
455
+ 'no fields',
456
+ 'no flush',
457
+ 'no intervals',
458
+ 'no intervals off',
459
+ 'no standard page heading',
460
+ 'no-extension off',
461
+ 'non-unique key',
462
+ 'non-unique sorted key',
463
+ 'not at end of mode',
464
+ 'number of lines',
465
+ 'number of pages',
466
+
467
+ 'object key',
468
+ 'obligatory off',
469
+ 'of current page',
470
+ 'of page',
471
+ 'of program',
472
+ 'offset into',
473
+ 'on block',
474
+ 'on commit',
475
+ 'on end of task',
476
+ 'on end of',
477
+ 'on exit-command',
478
+ 'on help-request for',
479
+ 'on radiobutton group',
480
+ 'on rollback',
481
+ 'on value-request for',
482
+ 'open for package',
483
+ 'option class-coding',
484
+ 'option class',
485
+ 'option coding',
486
+ 'option expand',
487
+ 'option syncpoints',
488
+ 'options from',
489
+ 'order by',
490
+ 'overflow into',
491
+
492
+ 'package section',
493
+ 'package size',
494
+ 'preferred parameter',
495
+ 'preserving identifier escaping',
496
+ 'primary key',
497
+ 'print off',
498
+ 'print on',
499
+ 'program from',
500
+ 'program type',
501
+
502
+ 'radiobutton groups',
503
+ 'radiobutton group',
504
+ 'range of',
505
+ 'reader for',
506
+ 'receive buffer',
507
+ 'reduced functionality',
508
+ 'ref to data',
509
+ 'ref to object',
510
+ 'ref to',
511
+
512
+ 'reference into',
513
+ 'renaming with suffix',
514
+ 'replacement character',
515
+ 'replacement count',
516
+ 'replacement length',
517
+ 'replacement line',
518
+ 'replacement offset',
519
+ 'respecting blanks',
520
+ 'respecting case',
521
+ 'result into',
522
+ 'risk level',
523
+
524
+ 'sap cover page',
525
+ 'search fkeq',
526
+ 'search fkge',
527
+ 'search gkeq',
528
+ 'search gkge',
529
+ 'section of',
530
+ 'send buffer',
531
+ 'separated by',
532
+ 'shared buffer',
533
+ 'shared memory',
534
+ 'shared memory enabled',
535
+ 'skipping byte-order mark',
536
+ 'sorted by',
537
+ 'sorted table of',
538
+ 'sorted table',
539
+ 'spool parameters',
540
+ 'standard table of',
541
+ 'standard table',
542
+ 'starting at',
543
+ 'starting new task',
544
+ 'statements into',
545
+ 'structure default',
546
+ 'structures into',
547
+
548
+ 'table field',
549
+ 'table of',
550
+ 'text mode',
551
+ 'time stamp',
552
+ 'time zone',
553
+ 'to code page',
554
+ 'to column',
555
+ 'to context',
556
+ 'to first page',
557
+ 'to last page',
558
+ 'to last line',
559
+ 'to line',
560
+ 'to lower case',
561
+ 'to number format',
562
+ 'to page',
563
+ 'to sap spool',
564
+ 'to upper case',
565
+ 'tokens into',
566
+ 'transporting no fields',
567
+ 'type tableview',
568
+ 'type tabstrip',
569
+
570
+ 'unicode enabling',
571
+ 'up to',
572
+ 'upper case',
573
+ 'using edit mask',
574
+ 'using key',
575
+ 'using no edit mask',
576
+ 'using screen',
577
+ 'using selection-screen',
578
+ 'using selection-set',
579
+ 'using selection-sets of program',
580
+
581
+ 'valid between',
582
+ 'valid from',
583
+ 'value check',
584
+ 'via job',
585
+ 'via selection-screen',
586
+ 'visible length',
587
+
588
+ 'whenever found',
589
+ 'with analysis',
590
+ 'with byte-order mark',
591
+ 'with comments',
592
+ 'with current switchstates',
593
+ 'with explicit enhancements',
594
+ 'with frame',
595
+ 'with free selections',
596
+ 'with further secondary keys',
597
+ 'with header line',
598
+ 'with hold',
599
+ 'with implicit enhancements',
600
+ 'with inactive enhancements',
601
+ 'with includes',
602
+ 'with key',
603
+ 'with linefeed',
604
+ 'with list tokenization',
605
+ 'with native linefeed',
606
+ 'with non-unique key',
607
+ 'with null',
608
+ 'with pragmas',
609
+ 'with precompiled headers',
610
+ 'with selection-table',
611
+ 'with smart linefeed',
612
+ 'with table key',
613
+ 'with test code',
614
+ 'with type-pools',
615
+ 'with unique key',
616
+ 'with unix linefeed',
617
+ 'with windows linefeed',
618
+ 'without further secondary keys',
619
+ 'without selection-screen',
620
+ 'without spool dynpro',
621
+ 'without trmac',
622
+ 'word into',
623
+ 'writer for'
624
+ ),
625
+
626
+ //**********************************************************
627
+ // Other abap statements
628
+ //**********************************************************
629
+ 3 => array(
630
+ 'add',
631
+ 'add-corresponding',
632
+ 'aliases',
633
+ 'append',
634
+ 'assign',
635
+ 'at',
636
+ 'authority-check',
637
+
638
+ 'break-point',
639
+
640
+ 'clear',
641
+ 'collect',
642
+ 'compute',
643
+ 'concatenate',
644
+ 'condense',
645
+ 'class',
646
+ 'class-events',
647
+ 'class-methods',
648
+ 'class-pool',
649
+
650
+ 'define',
651
+ 'delete',
652
+ 'demand',
653
+ 'detail',
654
+ 'divide',
655
+ 'divide-corresponding',
656
+
657
+ 'editor-call',
658
+ 'end-of-file',
659
+ 'end-enhancement-section',
660
+ 'end-of-definition',
661
+ 'end-of-page',
662
+ 'end-of-selection',
663
+ 'endclass',
664
+ 'endenhancement',
665
+ 'endexec',
666
+ 'endform',
667
+ 'endfunction',
668
+ 'endinterface',
669
+ 'endmethod',
670
+ 'endmodule',
671
+ 'endon',
672
+ 'endprovide',
673
+ 'endselect',
674
+ 'enhancement',
675
+ 'enhancement-point',
676
+ 'enhancement-section',
677
+ 'export',
678
+ 'extract',
679
+ 'events',
680
+
681
+ 'fetch',
682
+ 'field-groups',
683
+ 'find',
684
+ 'format',
685
+ 'form',
686
+ 'free',
687
+ 'function-pool',
688
+ 'function',
689
+
690
+ 'get',
691
+
692
+ 'hide',
693
+
694
+ 'import',
695
+ 'infotypes',
696
+ 'input',
697
+ 'insert',
698
+ 'include',
699
+ 'initialization',
700
+ 'interface',
701
+ 'interface-pool',
702
+ 'interfaces',
703
+
704
+ 'leave',
705
+ 'load-of-program',
706
+ 'log-point',
707
+
708
+ 'maximum',
709
+ 'message',
710
+ 'methods',
711
+ 'method',
712
+ 'minimum',
713
+ 'modify',
714
+ 'move',
715
+ 'move-corresponding',
716
+ 'multiply',
717
+ 'multiply-corresponding',
718
+
719
+ 'new-line',
720
+ 'new-page',
721
+ 'new-section',
722
+
723
+ 'overlay',
724
+
725
+ 'pack',
726
+ 'perform',
727
+ 'position',
728
+ 'print-control',
729
+ 'program',
730
+ 'provide',
731
+ 'put',
732
+
733
+ 'raise',
734
+ 'refresh',
735
+ 'reject',
736
+ 'replace',
737
+ 'report',
738
+ 'reserve',
739
+
740
+ 'scroll',
741
+ 'search',
742
+ 'select',
743
+ 'selection-screen',
744
+ 'shift',
745
+ 'skip',
746
+ 'sort',
747
+ 'split',
748
+ 'start-of-selection',
749
+ 'submit',
750
+ 'subtract',
751
+ 'subtract-corresponding',
752
+ 'sum',
753
+ 'summary',
754
+ 'summing',
755
+ 'supply',
756
+ 'syntax-check',
757
+
758
+ 'top-of-page',
759
+ 'transfer',
760
+ 'translate',
761
+ 'type-pool',
762
+
763
+ 'uline',
764
+ 'unpack',
765
+ 'update',
766
+
767
+ 'window',
768
+ 'write'
769
+
770
+ ),
771
+
772
+ //**********************************************************
773
+ // keywords
774
+ //**********************************************************
775
+
776
+ 4 => array(
777
+ 'abbreviated',
778
+ 'abstract',
779
+ 'accept',
780
+ 'acos',
781
+ 'activation',
782
+ 'alias',
783
+ 'align',
784
+ 'all',
785
+ 'allocate',
786
+ 'and',
787
+ 'assigned',
788
+ 'any',
789
+ 'appending',
790
+ 'area',
791
+ 'as',
792
+ 'ascending',
793
+ 'asin',
794
+ 'assigning',
795
+ 'atan',
796
+ 'attributes',
797
+ 'avg',
798
+
799
+ 'backward',
800
+ 'between',
801
+ 'bit-and',
802
+ 'bit-not',
803
+ 'bit-or',
804
+ 'bit-set',
805
+ 'bit-xor',
806
+ 'boolc',
807
+ 'boolx',
808
+ 'bound',
809
+ 'bt',
810
+ 'blocks',
811
+ 'bounds',
812
+ 'boxed',
813
+ 'by',
814
+ 'byte-ca',
815
+ 'byte-cn',
816
+ 'byte-co',
817
+ 'byte-cs',
818
+ 'byte-na',
819
+ 'byte-ns',
820
+
821
+ 'ca',
822
+ 'calling',
823
+ 'casting',
824
+ 'ceil',
825
+ 'center',
826
+ 'centered',
827
+ 'changing',
828
+ 'char_off',
829
+ 'charlen',
830
+ 'circular',
831
+ 'class_constructor',
832
+ 'client',
833
+ 'clike',
834
+ 'close',
835
+ 'cmax',
836
+ 'cmin',
837
+ 'cn',
838
+ 'cnt',
839
+ 'co',
840
+ 'col_background',
841
+ 'col_group',
842
+ 'col_heading',
843
+ 'col_key',
844
+ 'col_negative',
845
+ 'col_normal',
846
+ 'col_positive',
847
+ 'col_total',
848
+ 'color',
849
+ 'column',
850
+ 'comment',
851
+ 'comparing',
852
+ 'components',
853
+ 'condition',
854
+ 'context',
855
+ 'copies',
856
+ 'count',
857
+ 'country',
858
+ 'cpi',
859
+ 'creating',
860
+ 'critical',
861
+ 'concat_lines_of',
862
+ 'cos',
863
+ 'cosh',
864
+ 'count_any_not_of',
865
+ 'count_any_of',
866
+ 'cp',
867
+ 'cs',
868
+ 'csequence',
869
+ 'currency',
870
+ 'current',
871
+ 'cx_static_check',
872
+ 'cx_root',
873
+ 'cx_dynamic_check',
874
+
875
+ 'dangerous',
876
+ 'database',
877
+ 'datainfo',
878
+ 'date',
879
+ 'dbmaxlen',
880
+ 'dd/mm/yy',
881
+ 'dd/mm/yyyy',
882
+ 'ddmmyy',
883
+ 'deallocate',
884
+ 'decfloat',
885
+ 'decfloat16',
886
+ 'decfloat34',
887
+ 'decimals',
888
+ 'default',
889
+ 'deferred',
890
+ 'definition',
891
+ 'department',
892
+ 'descending',
893
+ 'destination',
894
+ 'disconnect',
895
+ 'display-mode',
896
+ 'distance',
897
+ 'distinct',
898
+ 'div',
899
+ 'dummy',
900
+
901
+ 'encoding',
902
+ 'end-lines',
903
+ 'engineering',
904
+ 'environment',
905
+ 'eq',
906
+ 'equiv',
907
+ 'error_message',
908
+ 'errormessage',
909
+ 'escape',
910
+ 'exact',
911
+ 'exception-table',
912
+ 'exceptions',
913
+ 'exclude',
914
+ 'excluding',
915
+ 'exists',
916
+ 'exp',
917
+ 'exponent',
918
+ 'exporting',
919
+ 'extended_monetary',
920
+
921
+ 'field',
922
+ 'filter-table',
923
+ 'filters',
924
+ 'filter',
925
+ 'final',
926
+ 'find_any_not_of',
927
+ 'find_any_of',
928
+ 'find_end',
929
+ 'floor',
930
+ 'first-line',
931
+ 'font',
932
+ 'forward',
933
+ 'for',
934
+ 'frac',
935
+ 'from_mixed',
936
+ 'friends',
937
+ 'from',
938
+
939
+ 'giving',
940
+ 'ge',
941
+ 'gt',
942
+
943
+ 'handle',
944
+ 'harmless',
945
+ 'having',
946
+ 'head-lines',
947
+ 'help-id',
948
+ 'help-request',
949
+ 'high',
950
+ 'hold',
951
+ 'hotspot',
952
+
953
+ 'id',
954
+ 'ids',
955
+ 'immediately',
956
+ 'implementation',
957
+ 'importing',
958
+ 'in',
959
+ 'initial',
960
+ 'incl',
961
+ 'including',
962
+ 'increment',
963
+ 'index',
964
+ 'index-line',
965
+ 'inner',
966
+ 'inout',
967
+ 'intensified',
968
+ 'into',
969
+ 'inverse',
970
+ 'is',
971
+ 'iso',
972
+
973
+ 'join',
974
+
975
+ 'key',
976
+ 'kind',
977
+
978
+ 'log10',
979
+ 'language',
980
+ 'late',
981
+ 'layout',
982
+ 'le',
983
+ 'lt',
984
+ 'left-justified',
985
+ 'leftplus',
986
+ 'leftspace',
987
+ 'left',
988
+ 'length',
989
+ 'level',
990
+ 'like',
991
+ 'line-count',
992
+ 'line-size',
993
+ 'lines',
994
+ 'line',
995
+ 'load',
996
+ 'long',
997
+ 'lower',
998
+ 'low',
999
+ 'lpi',
1000
+
1001
+ 'matches',
1002
+ 'match',
1003
+ 'mail',
1004
+ 'major-id',
1005
+ 'max',
1006
+ 'medium',
1007
+ 'memory',
1008
+ 'message-id',
1009
+ 'module',
1010
+ 'minor-id',
1011
+ 'min',
1012
+ 'mm/dd/yyyy',
1013
+ 'mm/dd/yy',
1014
+ 'mmddyy',
1015
+ 'mode',
1016
+ 'modifier',
1017
+ 'mod',
1018
+ 'monetary',
1019
+
1020
+ 'name',
1021
+ 'nb',
1022
+ 'ne',
1023
+ 'next',
1024
+ 'no-display',
1025
+ 'no-extension',
1026
+ 'no-gap',
1027
+ 'no-gaps',
1028
+ 'no-grouping',
1029
+ 'no-heading',
1030
+ 'no-scrolling',
1031
+ 'no-sign',
1032
+ 'no-title',
1033
+ 'no-topofpage',
1034
+ 'no-zero',
1035
+ 'nodes',
1036
+ 'non-unicode',
1037
+ 'no',
1038
+ 'number',
1039
+ 'nmax',
1040
+ 'nmin',
1041
+ 'not',
1042
+ 'null',
1043
+ 'numeric',
1044
+ 'numofchar',
1045
+
1046
+ 'o',
1047
+ 'objects',
1048
+ 'obligatory',
1049
+ 'occurs',
1050
+ 'offset',
1051
+ 'off',
1052
+ 'of',
1053
+ 'only',
1054
+ 'open',
1055
+ 'option',
1056
+ 'optional',
1057
+ 'options',
1058
+ 'output-length',
1059
+ 'output',
1060
+ 'out',
1061
+ 'on change of',
1062
+ 'or',
1063
+ 'others',
1064
+
1065
+ 'pad',
1066
+ 'page',
1067
+ 'pages',
1068
+ 'parameter-table',
1069
+ 'part',
1070
+ 'performing',
1071
+ 'pos_high',
1072
+ 'pos_low',
1073
+ 'priority',
1074
+ 'public',
1075
+ 'pushbutton',
1076
+
1077
+ 'queue-only',
1078
+ 'quickinfo',
1079
+
1080
+ 'raising',
1081
+ 'range',
1082
+ 'read-only',
1083
+ 'received',
1084
+ 'receiver',
1085
+ 'receiving',
1086
+ 'redefinition',
1087
+ 'reference',
1088
+ 'regex',
1089
+ 'replacing',
1090
+ 'reset',
1091
+ 'responsible',
1092
+ 'result',
1093
+ 'results',
1094
+ 'resumable',
1095
+ 'returncode',
1096
+ 'returning',
1097
+ 'right',
1098
+ 'right-specified',
1099
+ 'rightplus',
1100
+ 'rightspace',
1101
+ 'round',
1102
+ 'rows',
1103
+ 'repeat',
1104
+ 'requested',
1105
+ 'rescale',
1106
+ 'reverse',
1107
+
1108
+ 'scale_preserving',
1109
+ 'scale_preserving_scientific',
1110
+ 'scientific',
1111
+ 'scientific_with_leading_zero',
1112
+ 'screen',
1113
+ 'scrolling',
1114
+ 'seconds',
1115
+ 'segment',
1116
+ 'shift_left',
1117
+ 'shift_right',
1118
+ 'sign',
1119
+ 'simple',
1120
+ 'sin',
1121
+ 'sinh',
1122
+ 'short',
1123
+ 'shortdump-id',
1124
+ 'sign_as_postfix',
1125
+ 'single',
1126
+ 'size',
1127
+ 'some',
1128
+ 'source',
1129
+ 'space',
1130
+ 'spots',
1131
+ 'stable',
1132
+ 'state',
1133
+ 'static',
1134
+ 'statusinfo',
1135
+ 'sqrt',
1136
+ 'string',
1137
+ 'strlen',
1138
+ 'structure',
1139
+ 'style',
1140
+ 'subkey',
1141
+ 'submatches',
1142
+ 'substring',
1143
+ 'substring_after',
1144
+ 'substring_before',
1145
+ 'substring_from',
1146
+ 'substring_to',
1147
+ 'super',
1148
+ 'supplied',
1149
+ 'switch',
1150
+
1151
+ 'tan',
1152
+ 'tanh',
1153
+ 'table_line',
1154
+ 'table',
1155
+ 'tab',
1156
+ 'then',
1157
+ 'timestamp',
1158
+ 'times',
1159
+ 'time',
1160
+ 'timezone',
1161
+ 'title-lines',
1162
+ 'title',
1163
+ 'top-lines',
1164
+ 'to',
1165
+ 'to_lower',
1166
+ 'to_mixed',
1167
+ 'to_upper',
1168
+ 'trace-file',
1169
+ 'trace-table',
1170
+ 'transporting',
1171
+ 'trunc',
1172
+ 'type',
1173
+
1174
+ 'under',
1175
+ 'unique',
1176
+ 'unit',
1177
+ 'user-command',
1178
+ 'using',
1179
+ 'utf-8',
1180
+
1181
+ 'valid',
1182
+ 'value',
1183
+ 'value-request',
1184
+ 'values',
1185
+ 'vary',
1186
+ 'varying',
1187
+ 'version',
1188
+
1189
+ 'warning',
1190
+ 'where',
1191
+ 'width',
1192
+ 'with',
1193
+ 'word',
1194
+ 'with-heading',
1195
+ 'with-title',
1196
+
1197
+ 'xsequence',
1198
+ 'xstring',
1199
+ 'xstrlen',
1200
+
1201
+ 'yes',
1202
+ 'yymmdd',
1203
+
1204
+ 'z',
1205
+ 'zero'
1206
+
1207
+ ),
1208
+
1209
+ //**********************************************************
1210
+ // screen statements
1211
+ //**********************************************************
1212
+
1213
+ 5 => array(
1214
+ 'call subscreen',
1215
+ 'chain',
1216
+ 'endchain',
1217
+ 'on chain-input',
1218
+ 'on chain-request',
1219
+ 'on help-request',
1220
+ 'on input',
1221
+ 'on request',
1222
+ 'on value-request',
1223
+ 'process'
1224
+ ),
1225
+
1226
+ //**********************************************************
1227
+ // internal statements
1228
+ //**********************************************************
1229
+
1230
+ 6 => array(
1231
+ 'generate dynpro',
1232
+ 'generate report',
1233
+ 'import dynpro',
1234
+ 'import nametab',
1235
+ 'include methods',
1236
+ 'load report',
1237
+ 'scan abap-source',
1238
+ 'scan and check abap-source',
1239
+ 'syntax-check for dynpro',
1240
+ 'syntax-check for program',
1241
+ 'syntax-trace',
1242
+ 'system-call',
1243
+ 'system-exit',
1244
+ 'verification-message'
1245
+ ),
1246
+
1247
+ //**********************************************************
1248
+ // Control statements
1249
+ //**********************************************************
1250
+
1251
+ 1 => array(
1252
+ 'assert',
1253
+ 'case',
1254
+ 'catch',
1255
+ 'check',
1256
+ 'cleanup',
1257
+ 'continue',
1258
+ 'do',
1259
+ 'else',
1260
+ 'elseif',
1261
+ 'endat',
1262
+ 'endcase',
1263
+ 'endcatch',
1264
+ 'endif',
1265
+ 'enddo',
1266
+ 'endloop',
1267
+ 'endtry',
1268
+ 'endwhile',
1269
+ 'exit',
1270
+ 'if',
1271
+ 'loop',
1272
+ 'resume',
1273
+ 'retry',
1274
+ 'return',
1275
+ 'stop',
1276
+ 'try',
1277
+ 'when',
1278
+ 'while'
1279
+
1280
+ ),
1281
+
1282
+ //**********************************************************
1283
+ // variable declaration statements
1284
+ //**********************************************************
1285
+
1286
+ 2 => array(
1287
+ 'class-data',
1288
+ 'controls',
1289
+ 'constants',
1290
+ 'data',
1291
+ 'field-symbols',
1292
+ 'fields',
1293
+ 'local',
1294
+ 'parameters',
1295
+ 'ranges',
1296
+ 'select-options',
1297
+ 'statics',
1298
+ 'tables',
1299
+ 'type-pools',
1300
+ 'types'
1301
+ )
1302
+ ),
1303
+ 'SYMBOLS' => array(
1304
+ 0 => array(
1305
+ '->*', '->', '=>',
1306
+ '(', ')', '{', '}', '[', ']', '+', '-', '*', '/', '!', '%', '^', '&', ':', ',', '.'
1307
+ ),
1308
+ 1 => array(
1309
+ '>=', '<=', '<', '>', '='
1310
+ ),
1311
+ 2 => array(
1312
+ '?='
1313
+ )
1314
+ ),
1315
+ 'CASE_SENSITIVE' => array(
1316
+ GESHI_COMMENTS => false,
1317
+ 1 => false,
1318
+ 2 => false,
1319
+ 3 => false,
1320
+ 4 => false,
1321
+ 5 => false,
1322
+ 6 => false,
1323
+ 7 => false,
1324
+ 8 => false,
1325
+ 9 => false,
1326
+ ),
1327
+ 'STYLES' => array(
1328
+ 'KEYWORDS' => array(
1329
+ 1 => 'color: #000066; font-weight: bold; zzz:control;', //control statements
1330
+ 2 => 'color: #cc4050; font-weight: bold; zzz:data;', //data statements
1331
+ 3 => 'color: #005066; font-weight: bold; zzz:statement;', //first token of other statements
1332
+ 4 => 'color: #500066; font-weight: bold; zzz:keyword;', // next tokens of other statements ("keywords")
1333
+ 5 => 'color: #005066; font-weight: bold; zzz:statement;',
1334
+ 6 => 'color: #000066; font-weight: bold; zzz:control;',
1335
+ 7 => 'color: #000066; font-weight: bold; zzz:control;',
1336
+ 8 => 'color: #005066; font-weight: bold; zzz:statement;',
1337
+ 9 => 'color: #500066; font-weight: bold; zzz:keyword;'
1338
+ ),
1339
+ 'COMMENTS' => array(
1340
+ 1 => 'color: #808080; font-style: italic;',
1341
+ 2 => 'color: #339933;',
1342
+ 'MULTI' => 'color: #808080; font-style: italic;'
1343
+ ),
1344
+ 'ESCAPE_CHAR' => array(
1345
+ 0 => 'color: #000099; font-weight: bold;'
1346
+ ),
1347
+ 'BRACKETS' => array(
1348
+ 0 => 'color: #808080;'
1349
+ ),
1350
+ 'STRINGS' => array(
1351
+ 0 => 'color: #4da619;'
1352
+ ),
1353
+ 'NUMBERS' => array(
1354
+ 0 => 'color: #3399ff;'
1355
+ ),
1356
+ 'METHODS' => array(
1357
+ 1 => 'color: #202020;',
1358
+ 2 => 'color: #202020;'
1359
+ ),
1360
+ 'SYMBOLS' => array(
1361
+ 0 => 'color: #808080;',
1362
+ 1 => 'color: #800080;',
1363
+ 2 => 'color: #0000ff;'
1364
+ ),
1365
+ 'REGEXPS' => array(
1366
+ ),
1367
+ 'SCRIPT' => array(
1368
+ )
1369
+ ),
1370
+ 'URLS' => array(
1371
+ 1 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
1372
+ 2 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
1373
+ 3 => 'http://help.sap.com/abapdocu_740/en/ABAP{FNAMEU}.htm',
1374
+ 4 => '',
1375
+ 5 => '',
1376
+ 6 => '',
1377
+ 7 => '',
1378
+ 8 => '',
1379
+ 9 => ''
1380
+ ),
1381
+ 'OOLANG' => true,
1382
+ 'OBJECT_SPLITTERS' => array(
1383
+ 1 => '-&gt;',
1384
+ 2 => '=&gt;'
1385
+ ),
1386
+ 'REGEXPS' => array(
1387
+ ),
1388
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
1389
+ 'SCRIPT_DELIMITERS' => array(
1390
+ ),
1391
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
1392
+ ),
1393
+ 'PARSER_CONTROL' => array(
1394
+ 'KEYWORDS' => array(
1395
+ 7 => array(
1396
+ 'SPACE_AS_WHITESPACE' => true
1397
+ ),
1398
+ 8 => array(
1399
+ 'SPACE_AS_WHITESPACE' => true
1400
+ ),
1401
+ 9 => array(
1402
+ 'SPACE_AS_WHITESPACE' => true
1403
+ )
1404
+ )
1405
+ ),
1406
+ 'TAB_WIDTH' => 4
1407
+ );
includes/geshi/actionscript.php ADDED
@@ -0,0 +1,195 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * actionscript.php
4
+ * ----------------
5
+ * Author: Steffen Krause (Steffen.krause@muse.de)
6
+ * Copyright: (c) 2004 Steffen Krause, Nigel McNie (http://qbnz.com/highlighter)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2004/06/20
9
+ *
10
+ * Actionscript language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2004/11/27 (1.0.1)
15
+ * - Added support for multiple object splitters
16
+ * 2004/10/27 (1.0.0)
17
+ * - First Release
18
+ *
19
+ * TODO (updated 2004/11/27)
20
+ * -------------------------
21
+ *
22
+ *************************************************************************************
23
+ *
24
+ * This file is part of GeSHi.
25
+ *
26
+ * GeSHi is free software; you can redistribute it and/or modify
27
+ * it under the terms of the GNU General Public License as published by
28
+ * the Free Software Foundation; either version 2 of the License, or
29
+ * (at your option) any later version.
30
+ *
31
+ * GeSHi is distributed in the hope that it will be useful,
32
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
33
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
34
+ * GNU General Public License for more details.
35
+ *
36
+ * You should have received a copy of the GNU General Public License
37
+ * along with GeSHi; if not, write to the Free Software
38
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
39
+ *
40
+ ************************************************************************************/
41
+
42
+ $language_data = array (
43
+ 'LANG_NAME' => 'ActionScript',
44
+ 'COMMENT_SINGLE' => array(1 => '//', 2 => '#'),
45
+ 'COMMENT_MULTI' => array('/*' => '*/'),
46
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
47
+ 'QUOTEMARKS' => array("'", '"'),
48
+ 'ESCAPE_CHAR' => '\\',
49
+ 'KEYWORDS' => array(
50
+ 1 => array(
51
+ '#include', 'for', 'foreach', 'each', 'if', 'elseif', 'else', 'while', 'do', 'dowhile',
52
+ 'endwhile', 'endif', 'switch', 'case', 'endswitch', 'return', 'break', 'continue', 'in'
53
+ ),
54
+ 2 => array(
55
+ 'null', 'false', 'true', 'var',
56
+ 'default', 'function', 'class',
57
+ 'new', '_global'
58
+ ),
59
+ 3 => array(
60
+ '#endinitclip', '#initclip', '__proto__', '_accProps', '_alpha', '_currentframe',
61
+ '_droptarget', '_focusrect', '_framesloaded', '_height', '_highquality', '_lockroot',
62
+ '_name', '_parent', '_quality', '_root', '_rotation', '_soundbuftime', '_target', '_totalframes',
63
+ '_url', '_visible', '_width', '_x', '_xmouse', '_xscale', '_y', '_ymouse', '_yscale', 'abs',
64
+ 'Accessibility', 'acos', 'activityLevel', 'add', 'addListener', 'addPage', 'addProperty',
65
+ 'addRequestHeader', 'align', 'allowDomain', 'allowInsecureDomain', 'and', 'appendChild',
66
+ 'apply', 'Arguments', 'Array', 'asfunction', 'asin', 'atan', 'atan2', 'attachAudio', 'attachMovie',
67
+ 'attachSound', 'attachVideo', 'attributes', 'autosize', 'avHardwareDisable', 'background',
68
+ 'backgroundColor', 'BACKSPACE', 'bandwidth', 'beginFill', 'beginGradientFill', 'blockIndent',
69
+ 'bold', 'Boolean', 'border', 'borderColor', 'bottomScroll', 'bufferLength', 'bufferTime',
70
+ 'builtInItems', 'bullet', 'Button', 'bytesLoaded', 'bytesTotal', 'call', 'callee', 'caller',
71
+ 'Camera', 'capabilities', 'CAPSLOCK', 'caption', 'catch', 'ceil', 'charAt', 'charCodeAt',
72
+ 'childNodes', 'chr', 'clear', 'clearInterval', 'cloneNode', 'close', 'Color', 'concat',
73
+ 'connect', 'condenseWhite', 'constructor', 'contentType', 'ContextMenu', 'ContextMenuItem',
74
+ 'CONTROL', 'copy', 'cos', 'createElement', 'createEmptyMovieClip', 'createTextField',
75
+ 'createTextNode', 'currentFps', 'curveTo', 'CustomActions', 'customItems', 'data', 'Date',
76
+ 'deblocking', 'delete', 'DELETEKEY', 'docTypeDecl', 'domain', 'DOWN',
77
+ 'duplicateMovieClip', 'duration', 'dynamic', 'E', 'embedFonts', 'enabled',
78
+ 'END', 'endFill', 'ENTER', 'eq', 'Error', 'ESCAPE(Konstante)', 'escape(Funktion)', 'eval',
79
+ 'exactSettings', 'exp', 'extends', 'finally', 'findText', 'firstChild', 'floor',
80
+ 'flush', 'focusEnabled', 'font', 'fps', 'fromCharCode', 'fscommand',
81
+ 'gain', 'ge', 'get', 'getAscii', 'getBeginIndex', 'getBounds', 'getBytesLoaded', 'getBytesTotal',
82
+ 'getCaretIndex', 'getCode', 'getCount', 'getDate', 'getDay', 'getDepth', 'getEndIndex', 'getFocus',
83
+ 'getFontList', 'getFullYear', 'getHours', 'getInstanceAtDepth', 'getLocal', 'getMilliseconds',
84
+ 'getMinutes', 'getMonth', 'getNewTextFormat', 'getNextHighestDepth', 'getPan', 'getProgress',
85
+ 'getProperty', 'getRGB', 'getSeconds', 'getSelected', 'getSelectedText', 'getSize', 'getStyle',
86
+ 'getStyleNames', 'getSWFVersion', 'getText', 'getTextExtent', 'getTextFormat', 'getTextSnapshot',
87
+ 'getTime', 'getTimer', 'getTimezoneOffset', 'getTransform', 'getURL', 'getUTCDate', 'getUTCDay',
88
+ 'getUTCFullYear', 'getUTCHours', 'getUTCMilliseconds', 'getUTCMinutes', 'getUTCMonth', 'getUTCSeconds',
89
+ 'getVersion', 'getVolume', 'getYear', 'globalToLocal', 'goto', 'gotoAndPlay', 'gotoAndStop',
90
+ 'hasAccessibility', 'hasAudio', 'hasAudioEncoder', 'hasChildNodes', 'hasEmbeddedVideo', 'hasMP3',
91
+ 'hasPrinting', 'hasScreenBroadcast', 'hasScreenPlayback', 'hasStreamingAudio', 'hasStreamingVideo',
92
+ 'hasVideoEncoder', 'height', 'hide', 'hideBuiltInItems', 'hitArea', 'hitTest', 'hitTestTextNearPos',
93
+ 'HOME', 'hscroll', 'html', 'htmlText', 'ID3', 'ifFrameLoaded', 'ignoreWhite', 'implements',
94
+ 'import', 'indent', 'index', 'indexOf', 'Infinity', '-Infinity', 'INSERT', 'insertBefore', 'install',
95
+ 'instanceof', 'int', 'interface', 'isActive', 'isDebugger', 'isDown', 'isFinite', 'isNaN', 'isToggled',
96
+ 'italic', 'join', 'Key', 'language', 'lastChild', 'lastIndexOf', 'le', 'leading', 'LEFT', 'leftMargin',
97
+ 'length', 'level', 'lineStyle', 'lineTo', 'list', 'LN10', 'LN2', 'load', 'loadClip', 'loaded', 'loadMovie',
98
+ 'loadMovieNum', 'loadSound', 'loadVariables', 'loadVariablesNum', 'LoadVars', 'LocalConnection',
99
+ 'localFileReadDisable', 'localToGlobal', 'log', 'LOG10E', 'LOG2E', 'manufacturer', 'Math', 'max',
100
+ 'MAX_VALUE', 'maxChars', 'maxhscroll', 'maxscroll', 'mbchr', 'mblength', 'mbord', 'mbsubstring', 'menu',
101
+ 'message', 'Microphone', 'min', 'MIN_VALUE', 'MMExecute', 'motionLevel', 'motionTimeOut', 'Mouse',
102
+ 'mouseWheelEnabled', 'moveTo', 'Movieclip', 'MovieClipLoader', 'multiline', 'muted', 'name', 'names', 'NaN',
103
+ 'ne', 'NEGATIVE_INFINITY', 'NetConnection', 'NetStream', 'newline', 'nextFrame',
104
+ 'nextScene', 'nextSibling', 'nodeName', 'nodeType', 'nodeValue', 'not', 'Number', 'Object',
105
+ 'on', 'onActivity', 'onChanged', 'onClipEvent', 'onClose', 'onConnect', 'onData', 'onDragOut',
106
+ 'onDragOver', 'onEnterFrame', 'onID3', 'onKeyDown', 'onKeyUp', 'onKillFocus', 'onLoad', 'onLoadComplete',
107
+ 'onLoadError', 'onLoadInit', 'onLoadProgress', 'onLoadStart', 'onMouseDown', 'onMouseMove', 'onMouseUp',
108
+ 'onMouseWheel', 'onPress', 'onRelease', 'onReleaseOutside', 'onResize', 'onRollOut', 'onRollOver',
109
+ 'onScroller', 'onSelect', 'onSetFocus', 'onSoundComplete', 'onStatus', 'onUnload', 'onUpdate', 'onXML',
110
+ 'or(logischesOR)', 'ord', 'os', 'parentNode', 'parseCSS', 'parseFloat', 'parseInt', 'parseXML', 'password',
111
+ 'pause', 'PGDN', 'PGUP', 'PI', 'pixelAspectRatio', 'play', 'playerType', 'pop', 'position',
112
+ 'POSITIVE_INFINITY', 'pow', 'prevFrame', 'previousSibling', 'prevScene', 'print', 'printAsBitmap',
113
+ 'printAsBitmapNum', 'PrintJob', 'printNum', 'private', 'prototype', 'public', 'push', 'quality',
114
+ 'random', 'rate', 'registerClass', 'removeListener', 'removeMovieClip', 'removeNode', 'removeTextField',
115
+ 'replaceSel', 'replaceText', 'resolutionX', 'resolutionY', 'restrict', 'reverse', 'RIGHT',
116
+ 'rightMargin', 'round', 'scaleMode', 'screenColor', 'screenDPI', 'screenResolutionX', 'screenResolutionY',
117
+ 'scroll', 'seek', 'selectable', 'Selection', 'send', 'sendAndLoad', 'separatorBefore', 'serverString',
118
+ 'set', 'setvariable', 'setBufferTime', 'setClipboard', 'setDate', 'setFocus', 'setFullYear', 'setGain',
119
+ 'setHours', 'setInterval', 'setMask', 'setMilliseconds', 'setMinutes', 'setMode', 'setMonth',
120
+ 'setMotionLevel', 'setNewTextFormat', 'setPan', 'setProperty', 'setQuality', 'setRate', 'setRGB',
121
+ 'setSeconds', 'setSelectColor', 'setSelected', 'setSelection', 'setSilenceLevel', 'setStyle',
122
+ 'setTextFormat', 'setTime', 'setTransform', 'setUseEchoSuppression', 'setUTCDate', 'setUTCFullYear',
123
+ 'setUTCHours', 'setUTCMilliseconds', 'setUTCMinutes', 'setUTCMonth', 'setUTCSeconds', 'setVolume',
124
+ 'setYear', 'SharedObject', 'SHIFT(Konstante)', 'shift(Methode)', 'show', 'showMenu', 'showSettings',
125
+ 'silenceLevel', 'silenceTimeout', 'sin', 'size', 'slice', 'smoothing', 'sort', 'sortOn', 'Sound', 'SPACE',
126
+ 'splice', 'split', 'sqrt', 'SQRT1_2', 'SQRT2', 'Stage', 'start', 'startDrag', 'static', 'status', 'stop',
127
+ 'stopAllSounds', 'stopDrag', 'String', 'StyleSheet(Klasse)', 'styleSheet(Eigenschaft)', 'substr',
128
+ 'substring', 'super', 'swapDepths', 'System', 'TAB', 'tabChildren', 'tabEnabled', 'tabIndex',
129
+ 'tabStops', 'tan', 'target', 'targetPath', 'tellTarget', 'text', 'textColor', 'TextField', 'TextFormat',
130
+ 'textHeight', 'TextSnapshot', 'textWidth', 'this', 'throw', 'time', 'toggleHighQuality', 'toLowerCase',
131
+ 'toString', 'toUpperCase', 'trace', 'trackAsMenu', 'try', 'type', 'typeof', 'undefined',
132
+ 'underline', 'unescape', 'uninstall', 'unloadClip', 'unloadMovie', 'unLoadMovieNum', 'unshift', 'unwatch',
133
+ 'UP', 'updateAfterEvent', 'updateProperties', 'url', 'useCodePage', 'useEchoSuppression', 'useHandCursor',
134
+ 'UTC', 'valueOf', 'variable', 'version', 'Video', 'visible', 'void', 'watch', 'width',
135
+ 'with', 'wordwrap', 'XML', 'xmlDecl', 'XMLNode', 'XMLSocket'
136
+ )
137
+ ),
138
+ 'SYMBOLS' => array(
139
+ '(', ')', '[', ']', '{', '}', '!', '@', '%', '&', '*', '|', '/', '<', '>'
140
+ ),
141
+ 'CASE_SENSITIVE' => array(
142
+ GESHI_COMMENTS => false,
143
+ 1 => false,
144
+ 2 => false,
145
+ 3 => false,
146
+ ),
147
+ 'STYLES' => array(
148
+ 'KEYWORDS' => array(
149
+ 1 => 'color: #b1b100;',
150
+ 2 => 'color: #000000; font-weight: bold;',
151
+ 3 => 'color: #0066CC;'
152
+ ),
153
+ 'COMMENTS' => array(
154
+ 1 => 'color: #808080; font-style: italic;',
155
+ 2 => 'color: #808080; font-style: italic;',
156
+ 'MULTI' => 'color: #808080; font-style: italic;'
157
+ ),
158
+ 'ESCAPE_CHAR' => array(
159
+ 0 => 'color: #000099; font-weight: bold;'
160
+ ),
161
+ 'BRACKETS' => array(
162
+ 0 => 'color: #66cc66;'
163
+ ),
164
+ 'STRINGS' => array(
165
+ 0 => 'color: #ff0000;'
166
+ ),
167
+ 'NUMBERS' => array(
168
+ 0 => 'color: #cc66cc;'
169
+ ),
170
+ 'METHODS' => array(
171
+ 1 => 'color: #006600;'
172
+ ),
173
+ 'SYMBOLS' => array(
174
+ 0 => 'color: #66cc66;'
175
+ ),
176
+ 'REGEXPS' => array(
177
+ ),
178
+ 'SCRIPT' => array(
179
+ )
180
+ ),
181
+ 'URLS' => array(
182
+ 1 => '',
183
+ 2 => '',
184
+ 3 => ''
185
+ ),
186
+ 'OOLANG' => true,
187
+ 'OBJECT_SPLITTERS' => array(
188
+ 1 => '.'
189
+ ),
190
+ 'REGEXPS' => array(
191
+ ),
192
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
193
+ 'SCRIPT_DELIMITERS' => array(),
194
+ 'HIGHLIGHT_STRICT_BLOCK' => array()
195
+ );
includes/geshi/actionscript3.php ADDED
@@ -0,0 +1,471 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * actionscript3.php
4
+ * ----------------
5
+ * Author: Jordi Boggiano (j.boggiano@seld.be)
6
+ * Copyright: (c) 2007 Jordi Boggiano (http://www.seld.be/), Benny Baumann (http://qbnz.com/highlighter)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2007/11/26
9
+ *
10
+ * ActionScript3 language file for GeSHi.
11
+ *
12
+ * All keywords scraped from the Flex 2.0.1 Documentation
13
+ *
14
+ * The default style is based on FlexBuilder2 coloring, with the addition of class, package, method and
15
+ * constant names that are highlighted to help identifying problem when used on public pastebins.
16
+ *
17
+ * For styling, keywords data from 0 to 1 (accessible through .kw1, etc.) are described here :
18
+ *
19
+ * 1 : operators
20
+ * 2 : 'var' keyword
21
+ * 3 : 'function' keyword
22
+ * 4 : 'class' and 'package' keywords
23
+ * 5 : all flash.* class names plus Top Level classes, mx are excluded
24
+ * 6 : all flash.* package names, mx are excluded
25
+ * 7 : valid flash method names and properties (there is no type checks sadly, for example String().x will be highlighted as 'x' is valid, but obviously strings don't have a x property)
26
+ * 8 : valid flash constant names (again, no type check)
27
+ *
28
+ *
29
+ * CHANGES
30
+ * -------
31
+ * 2007/12/06 (1.0.7.22)
32
+ * - Added the 'this' keyword (oops)
33
+ *
34
+ * TODO (updated 2007/11/30)
35
+ * -------------------------
36
+ *
37
+ *************************************************************************************
38
+ *
39
+ * This file is part of GeSHi.
40
+ *
41
+ * GeSHi is free software; you can redistribute it and/or modify
42
+ * it under the terms of the GNU General Public License as published by
43
+ * the Free Software Foundation; either version 2 of the License, or
44
+ * (at your option) any later version.
45
+ *
46
+ * GeSHi is distributed in the hope that it will be useful,
47
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
48
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49
+ * GNU General Public License for more details.
50
+ *
51
+ * You should have received a copy of the GNU General Public License
52
+ * along with GeSHi; if not, write to the Free Software
53
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
54
+ *
55
+ ************************************************************************************/
56
+
57
+ $language_data = array (
58
+ 'LANG_NAME' => 'ActionScript 3',
59
+ 'COMMENT_SINGLE' => array(1 => '//'),
60
+ 'COMMENT_MULTI' => array('/*' => '*/'),
61
+ 'COMMENT_REGEXP' => array(
62
+ //Regular expressions
63
+ 2 => "/(?<=[\\s^])(s|tr|y)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])*(?<!\s)\\/[msixpogcde]*(?=[\\s$\\.\\;])|(?<=[\\s^(=])(m|q[qrwx]?)?\\/(?!\s)(?:\\\\.|(?!\n)[^\\/\\\\])+(?<!\s)\\/[msixpogc]*(?=[\\s$\\.\\,\\;\\)])/iU",
64
+ ),
65
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
66
+ 'QUOTEMARKS' => array("'", '"'),
67
+ 'ESCAPE_CHAR' => '\\',
68
+ 'KEYWORDS' => array(
69
+ 1 => array(
70
+ 'with', 'while', 'void', 'undefined', 'typeof', 'try', 'true',
71
+ 'throw', 'this', 'switch', 'super', 'set', 'return', 'public', 'protected',
72
+ 'private', 'null', 'new', 'is', 'internal', 'instanceof', 'in',
73
+ 'import', 'if', 'get', 'for', 'false', 'else', 'each', 'do',
74
+ 'delete', 'default', 'continue', 'catch', 'case', 'break', 'as',
75
+ 'extends', 'override'
76
+ ),
77
+ 2 => array(
78
+ 'var'
79
+ ),
80
+ 3 => array(
81
+ 'function'
82
+ ),
83
+ 4 => array(
84
+ 'class', 'package'
85
+ ),
86
+ 6 => array(
87
+ 'flash.xml', 'flash.utils', 'flash.ui', 'flash.text',
88
+ 'flash.system', 'flash.profiler', 'flash.printing', 'flash.net',
89
+ 'flash.media', 'flash.geom', 'flash.filters', 'flash.external',
90
+ 'flash.events', 'flash.errors', 'flash.display',
91
+ 'flash.accessibility'
92
+ ),
93
+ 7 => array(
94
+ 'zoom', 'year', 'y', 'xmlDecl', 'x', 'writeUnsignedInt',
95
+ 'writeUTFBytes', 'writeUTF', 'writeShort', 'writeObject',
96
+ 'writeMultiByte', 'writeInt', 'writeFloat', 'writeExternal',
97
+ 'writeDynamicProperty', 'writeDynamicProperties', 'writeDouble',
98
+ 'writeBytes', 'writeByte', 'writeBoolean', 'wordWrap',
99
+ 'willTrigger', 'width', 'volume', 'visible', 'videoWidth',
100
+ 'videoHeight', 'version', 'valueOf', 'value', 'usingTLS',
101
+ 'useRichTextClipboard', 'useHandCursor', 'useEchoSuppression',
102
+ 'useCodePage', 'url', 'uri', 'uploadCompleteData', 'upload',
103
+ 'updateProperties', 'updateAfterEvent', 'upState', 'unshift',
104
+ 'unlock', 'unload', 'union', 'unescapeMultiByte', 'unescape',
105
+ 'underline', 'uncompress', 'type', 'ty', 'tx', 'transparent',
106
+ 'translate', 'transformPoint', 'transform', 'trackAsMenu', 'track',
107
+ 'trace', 'totalMemory', 'totalFrames', 'topLeft', 'top',
108
+ 'togglePause', 'toXMLString', 'toUpperCase', 'toUTCString',
109
+ 'toTimeString', 'toString', 'toPrecision', 'toLowerCase',
110
+ 'toLocaleUpperCase', 'toLocaleTimeString', 'toLocaleString',
111
+ 'toLocaleLowerCase', 'toLocaleDateString', 'toFixed',
112
+ 'toExponential', 'toDateString', 'timezoneOffset', 'timerComplete',
113
+ 'timer', 'time', 'threshold', 'thickness', 'textWidth',
114
+ 'textSnapshot', 'textInput', 'textHeight', 'textColor', 'text',
115
+ 'test', 'target', 'tan', 'tabStops', 'tabIndexChange', 'tabIndex',
116
+ 'tabEnabledChange', 'tabEnabled', 'tabChildrenChange',
117
+ 'tabChildren', 'sync', 'swfVersion', 'swapChildrenAt',
118
+ 'swapChildren', 'subtract', 'substring', 'substr', 'styleSheet',
119
+ 'styleNames', 'strength', 'stopPropagation',
120
+ 'stopImmediatePropagation', 'stopDrag', 'stopAll', 'stop', 'status',
121
+ 'startDrag', 'start', 'stageY', 'stageX', 'stageWidth',
122
+ 'stageHeight', 'stageFocusRect', 'stage', 'sqrt', 'split', 'splice',
123
+ 'source', 'soundTransform', 'soundComplete', 'sortOn', 'sort',
124
+ 'songName', 'some', 'socketData', 'smoothing', 'slice', 'size',
125
+ 'sin', 'silent', 'silenceTimeout', 'silenceLevel', 'showSettings',
126
+ 'showRedrawRegions', 'showDefaultContextMenu', 'show', 'shortcut',
127
+ 'shiftKey', 'shift', 'sharpness', 'sharedEvents', 'shadowColor',
128
+ 'shadowAlpha', 'settings', 'setUseEchoSuppression', 'setUTCSeconds',
129
+ 'setUTCMonth', 'setUTCMinutes', 'setUTCMilliseconds', 'setUTCHours',
130
+ 'setUTCFullYear', 'setUTCDate', 'setTimeout', 'setTime',
131
+ 'setTextFormat', 'setStyle', 'setSilenceLevel', 'setSettings',
132
+ 'setSelection', 'setSelected', 'setSelectColor', 'setSeconds',
133
+ 'setQuality', 'setPropertyIsEnumerable', 'setProperty', 'setPixels',
134
+ 'setPixel32', 'setPixel', 'setNamespace', 'setName',
135
+ 'setMotionLevel', 'setMonth', 'setMode', 'setMinutes',
136
+ 'setMilliseconds', 'setLoopback', 'setLoopBack', 'setLocalName',
137
+ 'setKeyFrameInterval', 'setInterval', 'setHours', 'setFullYear',
138
+ 'setEmpty', 'setDirty', 'setDate', 'setCompositionString',
139
+ 'setClipboard', 'setChildren', 'setChildIndex',
140
+ 'setAdvancedAntiAliasingTable', 'serverString', 'separatorBefore',
141
+ 'sendToURL', 'send', 'selectionEndIndex', 'selectionBeginIndex',
142
+ 'selectable', 'select', 'seek', 'securityError', 'securityDomain',
143
+ 'secondsUTC', 'seconds', 'search', 'scrollV', 'scrollRect',
144
+ 'scrollH', 'scroll', 'screenResolutionY', 'screenResolutionX',
145
+ 'screenDPI', 'screenColor', 'scenes', 'scaleY', 'scaleX',
146
+ 'scaleMode', 'scale9Grid', 'scale', 'save', 'sandboxType',
147
+ 'sameDomain', 'running', 'round', 'rotation', 'rotate', 'root',
148
+ 'rollOver', 'rollOut', 'rightToRight', 'rightToLeft', 'rightPeak',
149
+ 'rightMargin', 'right', 'rewind', 'reverse', 'resume', 'restrict',
150
+ 'resize', 'reset', 'requestHeaders', 'replaceText',
151
+ 'replaceSelectedText', 'replace', 'repeatCount', 'render',
152
+ 'removedFromStage', 'removed', 'removeNode', 'removeNamespace',
153
+ 'removeEventListener', 'removeChildAt', 'removeChild',
154
+ 'relatedObject', 'registerFont', 'registerClassAlias', 'redOffset',
155
+ 'redMultiplier', 'rect', 'receiveVideo', 'receiveAudio',
156
+ 'readUnsignedShort', 'readUnsignedInt', 'readUnsignedByte',
157
+ 'readUTFBytes', 'readUTF', 'readShort', 'readObject',
158
+ 'readMultiByte', 'readInt', 'readFloat', 'readExternal',
159
+ 'readDouble', 'readBytes', 'readByte', 'readBoolean', 'ratios',
160
+ 'rate', 'random', 'quality', 'push', 'publish', 'proxyType',
161
+ 'prototype', 'propertyIsEnumerable', 'progress',
162
+ 'processingInstructions', 'printAsBitmap', 'print',
163
+ 'previousSibling', 'preventDefault', 'prevScene', 'prevFrame',
164
+ 'prettyPrinting', 'prettyIndent', 'preserveAlpha', 'prependChild',
165
+ 'prefix', 'pow', 'position', 'pop', 'polar', 'playerType', 'play',
166
+ 'pixelSnapping', 'pixelDissolve', 'pixelBounds', 'pixelAspectRatio',
167
+ 'perlinNoise', 'pause', 'parseXML', 'parseInt', 'parseFloat',
168
+ 'parseCSS', 'parse', 'parentNode', 'parentDomain',
169
+ 'parentAllowsChild', 'parent', 'parameters', 'paperWidth',
170
+ 'paperHeight', 'pan', 'paletteMap', 'pageWidth', 'pageHeight',
171
+ 'overState', 'outsideCutoff', 'os', 'orientation', 'open',
172
+ 'opaqueBackground', 'onPlayStatus', 'onMetaData', 'onCuePoint',
173
+ 'offsetPoint', 'offset', 'objectID', 'objectEncoding', 'numLock',
174
+ 'numLines', 'numFrames', 'numChildren', 'normalize', 'noise',
175
+ 'nodeValue', 'nodeType', 'nodeName', 'nodeKind', 'noAutoLabeling',
176
+ 'nextValue', 'nextSibling', 'nextScene', 'nextNameIndex',
177
+ 'nextName', 'nextFrame', 'netStatus', 'navigateToURL',
178
+ 'namespaceURI', 'namespaceDeclarations', 'namespace', 'names',
179
+ 'name', 'muted', 'multiline', 'moveTo', 'mouseY', 'mouseX',
180
+ 'mouseWheelEnabled', 'mouseWheel', 'mouseUp', 'mouseTarget',
181
+ 'mouseOver', 'mouseOut', 'mouseMove', 'mouseLeave',
182
+ 'mouseFocusChange', 'mouseEnabled', 'mouseDown', 'mouseChildren',
183
+ 'motionTimeout', 'motionLevel', 'monthUTC', 'month',
184
+ 'modificationDate', 'mode', 'minutesUTC', 'minutes', 'min',
185
+ 'millisecondsUTC', 'milliseconds', 'method', 'message', 'merge',
186
+ 'menuSelect', 'menuItemSelect', 'maxScrollV', 'maxScrollH',
187
+ 'maxLevel', 'maxChars', 'max', 'matrixY', 'matrixX', 'matrix',
188
+ 'match', 'mask', 'mapPoint', 'mapBitmap', 'map', 'manufacturer',
189
+ 'macType', 'loopback', 'loop', 'log', 'lock', 'localeCompare',
190
+ 'localY', 'localX', 'localToGlobal', 'localName',
191
+ 'localFileReadDisable', 'loaderURL', 'loaderInfo', 'loader',
192
+ 'loadPolicyFile', 'loadBytes', 'load', 'liveDelay', 'link',
193
+ 'lineTo', 'lineStyle', 'lineGradientStyle', 'level',
194
+ 'letterSpacing', 'length', 'leftToRight', 'leftToLeft', 'leftPeak',
195
+ 'leftMargin', 'left', 'leading', 'lastIndexOf', 'lastIndex',
196
+ 'lastChild', 'language', 'labels', 'knockout', 'keyUp',
197
+ 'keyLocation', 'keyFrameInterval', 'keyFocusChange', 'keyDown',
198
+ 'keyCode', 'kerning', 'join', 'italic', 'isXMLName',
199
+ 'isPrototypeOf', 'isNaN', 'isFocusInaccessible', 'isFinite',
200
+ 'isEmpty', 'isDefaultPrevented', 'isDebugger', 'isBuffering',
201
+ 'isAttribute', 'isAccessible', 'ioError', 'invert', 'invalidate',
202
+ 'intersects', 'intersection', 'interpolate', 'insideCutoff',
203
+ 'insertChildBefore', 'insertChildAfter', 'insertBefore', 'inner',
204
+ 'init', 'info', 'inflatePoint', 'inflate', 'indexOf', 'index',
205
+ 'indent', 'inScopeNamespaces', 'imeComposition', 'ime',
206
+ 'ignoreWhitespace', 'ignoreWhite', 'ignoreProcessingInstructions',
207
+ 'ignoreComments', 'ignoreCase', 'identity', 'idMap', 'id3',
208
+ 'httpStatus', 'htmlText', 'hoursUTC', 'hours', 'hitTestTextNearPos',
209
+ 'hitTestState', 'hitTestPoint', 'hitTestObject', 'hitTest',
210
+ 'hitArea', 'highlightColor', 'highlightAlpha', 'hideObject',
211
+ 'hideBuiltInItems', 'hide', 'height', 'hasVideoEncoder', 'hasTLS',
212
+ 'hasStreamingVideo', 'hasStreamingAudio', 'hasSimpleContent',
213
+ 'hasScreenPlayback', 'hasScreenBroadcast', 'hasProperty',
214
+ 'hasPrinting', 'hasOwnProperty', 'hasMP3', 'hasIME', 'hasGlyphs',
215
+ 'hasEventListener', 'hasEmbeddedVideo', 'hasDefinition',
216
+ 'hasComplexContent', 'hasChildNodes', 'hasAudioEncoder', 'hasAudio',
217
+ 'hasAccessibility', 'gridFitType', 'greenOffset', 'greenMultiplier',
218
+ 'graphics', 'gotoAndStop', 'gotoAndPlay', 'globalToLocal', 'global',
219
+ 'getUTCSeconds', 'getUTCMonth', 'getUTCMinutes',
220
+ 'getUTCMilliseconds', 'getUTCHours', 'getUTCFullYear', 'getUTCDay',
221
+ 'getUTCDate', 'getTimezoneOffset', 'getTimer', 'getTime',
222
+ 'getTextRunInfo', 'getTextFormat', 'getText', 'getStyle',
223
+ 'getStackTrace', 'getSelectedText', 'getSelected', 'getSeconds',
224
+ 'getRemote', 'getRect', 'getQualifiedSuperclassName',
225
+ 'getQualifiedClassName', 'getProperty', 'getPrefixForNamespace',
226
+ 'getPixels', 'getPixel32', 'getPixel', 'getParagraphLength',
227
+ 'getObjectsUnderPoint', 'getNamespaceForPrefix', 'getMonth',
228
+ 'getMinutes', 'getMilliseconds', 'getMicrophone', 'getLocal',
229
+ 'getLineText', 'getLineOffset', 'getLineMetrics', 'getLineLength',
230
+ 'getLineIndexOfChar', 'getLineIndexAtPoint', 'getImageReference',
231
+ 'getHours', 'getFullYear', 'getFirstCharInParagraph',
232
+ 'getDescendants', 'getDefinitionByName', 'getDefinition', 'getDay',
233
+ 'getDate', 'getColorBoundsRect', 'getClassByAlias', 'getChildIndex',
234
+ 'getChildByName', 'getChildAt', 'getCharIndexAtPoint',
235
+ 'getCharBoundaries', 'getCamera', 'getBounds', 'genre',
236
+ 'generateFilterRect', 'gain', 'fullYearUTC', 'fullYear',
237
+ 'fullScreen', 'fscommand', 'fromCharCode', 'framesLoaded',
238
+ 'frameRate', 'frame', 'fps', 'forwardAndBack', 'formatToString',
239
+ 'forceSimple', 'forEach', 'fontType', 'fontStyle', 'fontSize',
240
+ 'fontName', 'font', 'focusRect', 'focusOut', 'focusIn', 'focus',
241
+ 'flush', 'floor', 'floodFill', 'firstChild', 'findText', 'filters',
242
+ 'filter', 'fillRect', 'fileList', 'extension', 'extended', 'exp',
243
+ 'exec', 'exactSettings', 'every', 'eventPhase', 'escapeMultiByte',
244
+ 'escape', 'errorID', 'error', 'equals', 'enumerateFonts',
245
+ 'enterFrame', 'endian', 'endFill', 'encodeURIComponent',
246
+ 'encodeURI', 'enabled', 'embedFonts', 'elements',
247
+ 'dynamicPropertyWriter', 'dropTarget', 'drawRoundRect', 'drawRect',
248
+ 'drawEllipse', 'drawCircle', 'draw', 'download', 'downState',
249
+ 'doubleClickEnabled', 'doubleClick', 'dotall', 'domain',
250
+ 'docTypeDecl', 'doConversion', 'divisor', 'distance', 'dispose',
251
+ 'displayState', 'displayMode', 'displayAsPassword', 'dispatchEvent',
252
+ 'description', 'describeType', 'descent', 'descendants',
253
+ 'deltaTransformPoint', 'delta', 'deleteProperty', 'delay',
254
+ 'defaultTextFormat', 'defaultSettings', 'defaultObjectEncoding',
255
+ 'decodeURIComponent', 'decodeURI', 'decode', 'deblocking',
256
+ 'deactivate', 'dayUTC', 'day', 'dateUTC', 'date', 'dataFormat',
257
+ 'data', 'd', 'customItems', 'curveTo', 'currentTarget',
258
+ 'currentScene', 'currentLabels', 'currentLabel', 'currentFrame',
259
+ 'currentFPS', 'currentDomain', 'currentCount', 'ctrlKey', 'creator',
260
+ 'creationDate', 'createTextNode', 'createGradientBox',
261
+ 'createElement', 'createBox', 'cos', 'copyPixels', 'copyChannel',
262
+ 'copy', 'conversionMode', 'contextMenuOwner', 'contextMenu',
263
+ 'contentType', 'contentLoaderInfo', 'content', 'containsRect',
264
+ 'containsPoint', 'contains', 'constructor', 'connectedProxyType',
265
+ 'connected', 'connect', 'condenseWhite', 'concatenatedMatrix',
266
+ 'concatenatedColorTransform', 'concat', 'computeSpectrum',
267
+ 'compress', 'componentY', 'componentX', 'complete', 'compare',
268
+ 'comments', 'comment', 'colors', 'colorTransform', 'color', 'code',
269
+ 'close', 'cloneNode', 'clone', 'client', 'click', 'clearTimeout',
270
+ 'clearInterval', 'clear', 'clamp', 'children', 'childNodes',
271
+ 'childIndex', 'childAllowsParent', 'child', 'checkPolicyFile',
272
+ 'charCount', 'charCodeAt', 'charCode', 'charAt', 'changeList',
273
+ 'change', 'ceil', 'caretIndex', 'caption', 'capsLock', 'cancelable',
274
+ 'cancel', 'callee', 'callProperty', 'call', 'cacheAsBitmap', 'c',
275
+ 'bytesTotal', 'bytesLoaded', 'bytesAvailable', 'buttonMode',
276
+ 'buttonDown', 'bullet', 'builtInItems', 'bufferTime',
277
+ 'bufferLength', 'bubbles', 'browse', 'bottomScrollV', 'bottomRight',
278
+ 'bottom', 'borderColor', 'border', 'bold', 'blurY', 'blurX',
279
+ 'blueOffset', 'blueMultiplier', 'blockIndent', 'blendMode',
280
+ 'bitmapData', 'bias', 'beginGradientFill', 'beginFill',
281
+ 'beginBitmapFill', 'bandwidth', 'backgroundColor', 'background',
282
+ 'b', 'available', 'avHardwareDisable', 'autoSize', 'attributes',
283
+ 'attribute', 'attachNetStream', 'attachCamera', 'attachAudio',
284
+ 'atan2', 'atan', 'asyncError', 'asin', 'ascent', 'artist',
285
+ 'areSoundsInaccessible', 'areInaccessibleObjectsUnderPoint',
286
+ 'applyFilter', 'apply', 'applicationDomain', 'appendText',
287
+ 'appendChild', 'antiAliasType', 'angle', 'alwaysShowSelection',
288
+ 'altKey', 'alphas', 'alphaOffset', 'alphaMultiplier', 'alpha',
289
+ 'allowInsecureDomain', 'allowDomain', 'align', 'album',
290
+ 'addedToStage', 'added', 'addPage', 'addNamespace', 'addHeader',
291
+ 'addEventListener', 'addChildAt', 'addChild', 'addCallback', 'add',
292
+ 'activityLevel', 'activity', 'active', 'activating', 'activate',
293
+ 'actionScriptVersion', 'acos', 'accessibilityProperties', 'abs'
294
+ ),
295
+ 8 => array(
296
+ 'WRAP', 'VERTICAL', 'VARIABLES',
297
+ 'UTC', 'UPLOAD_COMPLETE_DATA', 'UP', 'UNLOAD', 'UNKNOWN',
298
+ 'UNIQUESORT', 'TOP_RIGHT', 'TOP_LEFT', 'TOP', 'TIMER_COMPLETE',
299
+ 'TIMER', 'TEXT_NODE', 'TEXT_INPUT', 'TEXT', 'TAB_INDEX_CHANGE',
300
+ 'TAB_ENABLED_CHANGE', 'TAB_CHILDREN_CHANGE', 'TAB', 'SYNC',
301
+ 'SUBTRACT', 'SUBPIXEL', 'STATUS', 'STANDARD', 'SQUARE', 'SQRT2',
302
+ 'SQRT1_2', 'SPACE', 'SOUND_COMPLETE', 'SOCKET_DATA', 'SHOW_ALL',
303
+ 'SHIFT', 'SETTINGS_MANAGER', 'SELECT', 'SECURITY_ERROR', 'SCROLL',
304
+ 'SCREEN', 'ROUND', 'ROLL_OVER', 'ROLL_OUT', 'RIGHT', 'RGB',
305
+ 'RETURNINDEXEDARRAY', 'RESIZE', 'REPEAT', 'RENDER',
306
+ 'REMOVED_FROM_STAGE', 'REMOVED', 'REMOTE', 'REGULAR', 'REFLECT',
307
+ 'RED', 'RADIAL', 'PROGRESS', 'PRIVACY', 'POST', 'POSITIVE_INFINITY',
308
+ 'PORTRAIT', 'PIXEL', 'PI', 'PENDING', 'PAGE_UP', 'PAGE_DOWN', 'PAD',
309
+ 'OVERLAY', 'OUTER', 'OPEN', 'NaN', 'NUM_PAD', 'NUMPAD_SUBTRACT',
310
+ 'NUMPAD_MULTIPLY', 'NUMPAD_ENTER', 'NUMPAD_DIVIDE',
311
+ 'NUMPAD_DECIMAL', 'NUMPAD_ADD', 'NUMPAD_9', 'NUMPAD_8', 'NUMPAD_7',
312
+ 'NUMPAD_6', 'NUMPAD_5', 'NUMPAD_4', 'NUMPAD_3', 'NUMPAD_2',
313
+ 'NUMPAD_1', 'NUMPAD_0', 'NUMERIC', 'NO_SCALE', 'NO_BORDER',
314
+ 'NORMAL', 'NONE', 'NEVER', 'NET_STATUS', 'NEGATIVE_INFINITY',
315
+ 'MULTIPLY', 'MOUSE_WHEEL', 'MOUSE_UP', 'MOUSE_OVER', 'MOUSE_OUT',
316
+ 'MOUSE_MOVE', 'MOUSE_LEAVE', 'MOUSE_FOCUS_CHANGE', 'MOUSE_DOWN',
317
+ 'MITER', 'MIN_VALUE', 'MICROPHONE', 'MENU_SELECT',
318
+ 'MENU_ITEM_SELECT', 'MEDIUM', 'MAX_VALUE', 'LOW', 'LOG2E', 'LOG10E',
319
+ 'LOCAL_WITH_NETWORK', 'LOCAL_WITH_FILE', 'LOCAL_TRUSTED',
320
+ 'LOCAL_STORAGE', 'LN2', 'LN10', 'LITTLE_ENDIAN', 'LINK',
321
+ 'LINEAR_RGB', 'LINEAR', 'LIGHT_COLOR', 'LIGHTEN', 'LEFT', 'LCD',
322
+ 'LAYER', 'LANDSCAPE', 'KOREAN', 'KEY_UP', 'KEY_FOCUS_CHANGE',
323
+ 'KEY_DOWN', 'JUSTIFY', 'JAPANESE_KATAKANA_HALF',
324
+ 'JAPANESE_KATAKANA_FULL', 'JAPANESE_HIRAGANA', 'Infinity', 'ITALIC',
325
+ 'IO_ERROR', 'INVERT', 'INSERT', 'INPUT', 'INNER', 'INIT',
326
+ 'IME_COMPOSITION', 'IGNORE', 'ID3', 'HTTP_STATUS', 'HORIZONTAL',
327
+ 'HOME', 'HIGH', 'HARDLIGHT', 'GREEN', 'GET', 'FULLSCREEN', 'FULL',
328
+ 'FOCUS_OUT', 'FOCUS_IN', 'FLUSHED', 'FLASH9', 'FLASH8', 'FLASH7',
329
+ 'FLASH6', 'FLASH5', 'FLASH4', 'FLASH3', 'FLASH2', 'FLASH1', 'F9',
330
+ 'F8', 'F7', 'F6', 'F5', 'F4', 'F3', 'F2', 'F15', 'F14', 'F13',
331
+ 'F12', 'F11', 'F10', 'F1', 'EXACT_FIT', 'ESCAPE', 'ERROR', 'ERASE',
332
+ 'ENTER_FRAME', 'ENTER', 'END', 'EMBEDDED', 'ELEMENT_NODE', 'E',
333
+ 'DYNAMIC', 'DOWN', 'DOUBLE_CLICK', 'DIFFERENCE', 'DEVICE',
334
+ 'DESCENDING', 'DELETE', 'DEFAULT', 'DEACTIVATE', 'DATA',
335
+ 'DARK_COLOR', 'DARKEN', 'CRT', 'CONTROL', 'CONNECT', 'COMPLETE',
336
+ 'COLOR', 'CLOSE', 'CLICK', 'CLAMP', 'CHINESE', 'CHANGE', 'CENTER',
337
+ 'CASEINSENSITIVE', 'CAPTURING_PHASE', 'CAPS_LOCK', 'CANCEL',
338
+ 'CAMERA', 'BUBBLING_PHASE', 'BOTTOM_RIGHT', 'BOTTOM_LEFT', 'BOTTOM',
339
+ 'BOLD_ITALIC', 'BOLD', 'BLUE', 'BINARY', 'BIG_ENDIAN', 'BEVEL',
340
+ 'BEST', 'BACKSPACE', 'AUTO', 'AT_TARGET', 'ASYNC_ERROR', 'AMF3',
341
+ 'AMF0', 'ALWAYS', 'ALPHANUMERIC_HALF', 'ALPHANUMERIC_FULL', 'ALPHA',
342
+ 'ADVANCED', 'ADDED_TO_STAGE', 'ADDED', 'ADD', 'ACTIVITY',
343
+ 'ACTIONSCRIPT3', 'ACTIONSCRIPT2'
344
+ ),
345
+ //FIX: Must be last in order to avoid conflicts with keywords present
346
+ //in other keyword groups, that might get highlighted as part of the URL.
347
+ //I know this is not a proper work-around, but should do just fine.
348
+ 5 => array(
349
+ 'uint', 'int', 'arguments', 'XMLSocket', 'XMLNodeType', 'XMLNode',
350
+ 'XMLList', 'XMLDocument', 'XML', 'Video', 'VerifyError',
351
+ 'URLVariables', 'URLStream', 'URLRequestMethod', 'URLRequestHeader',
352
+ 'URLRequest', 'URLLoaderDataFormat', 'URLLoader', 'URIError',
353
+ 'TypeError', 'Transform', 'TimerEvent', 'Timer', 'TextSnapshot',
354
+ 'TextRenderer', 'TextLineMetrics', 'TextFormatAlign', 'TextFormat',
355
+ 'TextFieldType', 'TextFieldAutoSize', 'TextField', 'TextEvent',
356
+ 'TextDisplayMode', 'TextColorType', 'System', 'SyntaxError',
357
+ 'SyncEvent', 'StyleSheet', 'String', 'StatusEvent', 'StaticText',
358
+ 'StageScaleMode', 'StageQuality', 'StageAlign', 'Stage',
359
+ 'StackOverflowError', 'Sprite', 'SpreadMethod', 'SoundTransform',
360
+ 'SoundMixer', 'SoundLoaderContext', 'SoundChannel', 'Sound',
361
+ 'Socket', 'SimpleButton', 'SharedObjectFlushStatus', 'SharedObject',
362
+ 'Shape', 'SecurityPanel', 'SecurityErrorEvent', 'SecurityError',
363
+ 'SecurityDomain', 'Security', 'ScriptTimeoutError', 'Scene',
364
+ 'SWFVersion', 'Responder', 'RegExp', 'ReferenceError', 'Rectangle',
365
+ 'RangeError', 'QName', 'Proxy', 'ProgressEvent',
366
+ 'PrintJobOrientation', 'PrintJobOptions', 'PrintJob', 'Point',
367
+ 'PixelSnapping', 'ObjectEncoding', 'Object', 'Number', 'NetStream',
368
+ 'NetStatusEvent', 'NetConnection', 'Namespace', 'MovieClip',
369
+ 'MouseEvent', 'Mouse', 'MorphShape', 'Microphone', 'MemoryError',
370
+ 'Matrix', 'Math', 'LocalConnection', 'LoaderInfo', 'LoaderContext',
371
+ 'Loader', 'LineScaleMode', 'KeyboardEvent', 'Keyboard',
372
+ 'KeyLocation', 'JointStyle', 'InvalidSWFError',
373
+ 'InterpolationMethod', 'InteractiveObject', 'IllegalOperationError',
374
+ 'IOErrorEvent', 'IOError', 'IMEEvent', 'IMEConversionMode', 'IME',
375
+ 'IExternalizable', 'IEventDispatcher', 'IDynamicPropertyWriter',
376
+ 'IDynamicPropertyOutput', 'IDataOutput', 'IDataInput', 'ID3Info',
377
+ 'IBitmapDrawable', 'HTTPStatusEvent', 'GridFitType', 'Graphics',
378
+ 'GradientType', 'GradientGlowFilter', 'GradientBevelFilter',
379
+ 'GlowFilter', 'Function', 'FrameLabel', 'FontType', 'FontStyle',
380
+ 'Font', 'FocusEvent', 'FileReferenceList', 'FileReference',
381
+ 'FileFilter', 'ExternalInterface', 'EventPhase', 'EventDispatcher',
382
+ 'Event', 'EvalError', 'ErrorEvent', 'Error', 'Endian', 'EOFError',
383
+ 'DropShadowFilter', 'DisplayObjectContainer', 'DisplayObject',
384
+ 'DisplacementMapFilterMode', 'DisplacementMapFilter', 'Dictionary',
385
+ 'DefinitionError', 'Date', 'DataEvent', 'ConvolutionFilter',
386
+ 'ContextMenuItem', 'ContextMenuEvent', 'ContextMenuBuiltInItems',
387
+ 'ContextMenu', 'ColorTransform', 'ColorMatrixFilter', 'Class',
388
+ 'CapsStyle', 'Capabilities', 'Camera', 'CSMSettings', 'ByteArray',
389
+ 'Boolean', 'BlurFilter', 'BlendMode', 'BitmapFilterType',
390
+ 'BitmapFilterQuality', 'BitmapFilter', 'BitmapDataChannel',
391
+ 'BitmapData', 'Bitmap', 'BevelFilter', 'AsyncErrorEvent', 'Array',
392
+ 'ArgumentError', 'ApplicationDomain', 'AntiAliasType',
393
+ 'ActivityEvent', 'ActionScriptVersion', 'AccessibilityProperties',
394
+ 'Accessibility', 'AVM1Movie'
395
+ )
396
+ ),
397
+ 'SYMBOLS' => array(
398
+ '(', ')', '[', ']', '{', '}', '!', '%', '&', '*', '|', '/', '<', '>', '^', '-', '+', '~', '?', ':', ';', '.', ','
399
+ ),
400
+ 'CASE_SENSITIVE' => array(
401
+ GESHI_COMMENTS => false,
402
+ 1 => true,
403
+ 2 => true,
404
+ 3 => true,
405
+ 4 => true,
406
+ 5 => true,
407
+ 6 => true,
408
+ 7 => true,
409
+ 8 => true
410
+ ),
411
+ 'STYLES' => array(
412
+ 'KEYWORDS' => array(
413
+ 1 => 'color: #0033ff; font-weight: bold;',
414
+ 2 => 'color: #6699cc; font-weight: bold;',
415
+ 3 => 'color: #339966; font-weight: bold;',
416
+ 4 => 'color: #9900cc; font-weight: bold;',
417
+ 5 => 'color: #004993;',
418
+ 6 => 'color: #004993;',
419
+ 7 => 'color: #004993;',
420
+ 8 => 'color: #004993;'
421
+ ),
422
+ 'COMMENTS' => array(
423
+ 1 => 'color: #009900; font-style: italic;',
424
+ 2 => 'color: #009966; font-style: italic;',
425
+ 'MULTI' => 'color: #3f5fbf;'
426
+ ),
427
+ 'ESCAPE_CHAR' => array(
428
+ 0 => ''
429
+ ),
430
+ 'BRACKETS' => array(
431
+ 0 => 'color: #000000;'
432
+ ),
433
+ 'STRINGS' => array(
434
+ 0 => 'color: #990000;'
435
+ ),
436
+ 'NUMBERS' => array(
437
+ 0 => 'color: #000000; font-weight:bold;'
438
+ ),
439
+ 'METHODS' => array(
440
+ 0 => 'color: #000000;',
441
+ ),
442
+ 'SYMBOLS' => array(
443
+ 0 => 'color: #000066; font-weight: bold;'
444
+ ),
445
+ 'REGEXPS' => array(
446
+ ),
447
+ 'SCRIPT' => array(
448
+ )
449
+ ),
450
+ 'URLS' => array(
451
+ 1 => '',
452
+ 2 => '',
453
+ 3 => '',
454
+ 4 => '',
455
+ 5 => 'http://www.google.com/search?q={FNAMEL}%20inurl:http://livedocs.adobe.com/flex/201/langref/%20inurl:{FNAMEL}.html',
456
+ 6 => '',
457
+ 7 => '',
458
+ 8 => ''
459
+ ),
460
+ 'OOLANG' => false,//Save some time as OO identifiers aren't used
461
+ 'OBJECT_SPLITTERS' => array(
462
+ // commented out because it's not very relevant for AS, as all properties, methods and constants are dot-accessed.
463
+ // I believe it's preferable to have package highlighting for example, which is not possible with this enabled.
464
+ // 0 => '.'
465
+ ),
466
+ 'REGEXPS' => array(
467
+ ),
468
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
469
+ 'SCRIPT_DELIMITERS' => array(),
470
+ 'HIGHLIGHT_STRICT_BLOCK' => array()
471
+ );
includes/geshi/ada.php ADDED
@@ -0,0 +1,130 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * ada.php
4
+ * -------
5
+ * Author: Tux (tux@inmail.cz)
6
+ * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2004/07/29
9
+ *
10
+ * Ada language file for GeSHi.
11
+ * Words are from SciTe configuration file
12
+ *
13
+ * CHANGES
14
+ * -------
15
+ * 2004/11/27 (1.0.2)
16
+ * - Added support for multiple object splitters
17
+ * 2004/10/27 (1.0.1)
18
+ * - Removed apostrophe as string delimiter
19
+ * - Added URL support
20
+ * 2004/08/05 (1.0.0)
21
+ * - First Release
22
+ *
23
+ * TODO (updated 2004/11/27)
24
+ * -------------------------
25
+ *
26
+ *************************************************************************************
27
+ *
28
+ * This file is part of GeSHi.
29
+ *
30
+ * GeSHi is free software; you can redistribute it and/or modify
31
+ * it under the terms of the GNU General Public License as published by
32
+ * the Free Software Foundation; either version 2 of the License, or
33
+ * (at your option) any later version.
34
+ *
35
+ * GeSHi is distributed in the hope that it will be useful,
36
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
37
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
38
+ * GNU General Public License for more details.
39
+ *
40
+ * You should have received a copy of the GNU General Public License
41
+ * along with GeSHi; if not, write to the Free Software
42
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
43
+ *
44
+ ************************************************************************************/
45
+
46
+ $language_data = array (
47
+ 'LANG_NAME' => 'Ada',
48
+ 'COMMENT_SINGLE' => array(1 => '--'),
49
+ 'COMMENT_MULTI' => array('/*' => '*/'),
50
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
51
+ 'QUOTEMARKS' => array('"'),
52
+ 'ESCAPE_CHAR' => '\\',
53
+ 'KEYWORDS' => array(
54
+ 1 => array(
55
+ 'begin', 'declare', 'do', 'else', 'elsif', 'exception', 'for', 'if',
56
+ 'is', 'loop', 'while', 'then', 'end', 'select', 'case', 'until',
57
+ 'goto', 'return'
58
+ ),
59
+ 2 => array(
60
+ 'abs', 'and', 'at', 'mod', 'not', 'or', 'rem', 'xor'
61
+ ),
62
+ 3 => array(
63
+ 'abort', 'abstract', 'accept', 'access', 'aliased', 'all', 'array',
64
+ 'body', 'constant', 'delay', 'delta', 'digits', 'entry', 'exit',
65
+ 'function', 'generic', 'in', 'interface', 'limited', 'new', 'null',
66
+ 'of', 'others', 'out', 'overriding', 'package', 'pragma', 'private',
67
+ 'procedure', 'protected', 'raise', 'range', 'record', 'renames',
68
+ 'requeue', 'reverse', 'separate', 'subtype', 'synchronized',
69
+ 'tagged', 'task', 'terminate', 'type', 'use', 'when', 'with'
70
+ )
71
+ ),
72
+ 'SYMBOLS' => array(
73
+ '(', ')'
74
+ ),
75
+ 'CASE_SENSITIVE' => array(
76
+ GESHI_COMMENTS => false,
77
+ 1 => false,
78
+ 2 => false,
79
+ 3 => false,
80
+ ),
81
+ 'STYLES' => array(
82
+ 'KEYWORDS' => array(
83
+ 1 => 'color: #00007f;',
84
+ 2 => 'color: #0000ff;',
85
+ 3 => 'color: #46aa03; font-weight:bold;',
86
+ ),
87
+ 'BRACKETS' => array(
88
+ 0 => 'color: #66cc66;'
89
+ ),
90
+ 'COMMENTS' => array(
91
+ 1 => 'color: #adadad; font-style: italic;',
92
+ 'MULTI' => 'color: #808080; font-style: italic;'
93
+ ),
94
+ 'ESCAPE_CHAR' => array(
95
+ 0 => 'color: #000099; font-weight: bold;'
96
+ ),
97
+ 'STRINGS' => array(
98
+ 0 => 'color: #7f007f;'
99
+ ),
100
+ 'NUMBERS' => array(
101
+ 0 => 'color: #ff0000;'
102
+ ),
103
+ 'METHODS' => array(
104
+ 1 => 'color: #202020;'
105
+ ),
106
+ 'SYMBOLS' => array(
107
+ 0 => 'color: #66cc66;'
108
+ ),
109
+ 'REGEXPS' => array(
110
+ ),
111
+ 'SCRIPT' => array(
112
+ )
113
+ ),
114
+ 'URLS' => array(
115
+ 1 => '',
116
+ 2 => '',
117
+ 3 => ''
118
+ ),
119
+ 'OOLANG' => true,
120
+ 'OBJECT_SPLITTERS' => array(
121
+ 1 => '.'
122
+ ),
123
+ 'REGEXPS' => array(
124
+ ),
125
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
126
+ 'SCRIPT_DELIMITERS' => array(
127
+ ),
128
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
129
+ )
130
+ );
includes/geshi/aimms.php ADDED
@@ -0,0 +1,316 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * aimms.php
4
+ * --------
5
+ * Author: Guido Diepen (guido.diepen@aimms.com)
6
+ * Copyright: (c) 2011 Guido Diepen (http://www.aimms.com)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2011/05/05
9
+ *
10
+ * AIMMS language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2004/07/14 (1.0.0)
15
+ * - First Release
16
+ *
17
+ * TODO (updated 2004/07/14)
18
+ * -------------------------
19
+ * * Make sure the last few function I may have missed
20
+ * (like eval()) are included for highlighting
21
+ * * Split to several files - php4, php5 etc
22
+ *
23
+ *************************************************************************************
24
+ *
25
+ * This file is part of GeSHi.
26
+ *
27
+ * GeSHi is free software; you can redistribute it and/or modify
28
+ * it under the terms of the GNU General Public License as published by
29
+ * the Free Software Foundation; either version 2 of the License, or
30
+ * (at your option) any later version.
31
+ *
32
+ * GeSHi is distributed in the hope that it will be useful,
33
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
34
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
35
+ * GNU General Public License for more details.
36
+ *
37
+ * You should have received a copy of the GNU General Public License
38
+ * along with GeSHi; if not, write to the Free Software
39
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
40
+ *
41
+ ************************************************************************************/
42
+
43
+ $language_data = array(
44
+ 'LANG_NAME' => 'AIMMS3',
45
+ 'COMMENT_SINGLE' => array(1 => '!'),
46
+ 'COMMENT_MULTI' => array('/*' => '*/'),
47
+ 'HARDQUOTE' => array("'", "'"),
48
+ 'HARDESCAPE' => array("'", "\\"),
49
+ 'HARDCHAR' => "\\",
50
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
51
+ 'QUOTEMARKS' => array('"'),
52
+ 'OBJECT_SPLITTERS' => array(),
53
+ 'REGEXPS' => array(),
54
+ 'STRICT_MODE_APPLIES' => GESHI_MAYBE,
55
+ 'SCRIPT_DELIMITERS' => array(),
56
+ 'HIGHLIGHT_STRICT_BLOCK' => array(),
57
+ 'ESCAPE_CHAR' => '',
58
+ 'KEYWORDS' => array(
59
+ 1 => array(
60
+ 'if', 'then', 'else', 'endif', 'elseif', 'for', 'do', 'while' , 'endfor' , 'endwhile', 'break', 'switch', 'endswitch',
61
+ 'display', 'return', 'in', 'apply'
62
+
63
+ ),
64
+ 2 => array(
65
+ 'main model' , 'declaration section', 'procedure', 'endprocedure', 'endmodel', 'endsection' , 'set', 'parameter',
66
+ 'string parameter', 'element parameter', 'quantity'
67
+ ),
68
+ 3 => array(
69
+ 'identifier', 'index', 'index domain', 'body'
70
+ ),
71
+ 4 => array(
72
+ 'ActiveCard','Card','ConvertUnit','DistributionCumulative','DistributionDensity','DistributionDeviation',
73
+ 'DistributionInverseCumulative','DistributionInverseDensity','DistributionKurtosis','DistributionMean',
74
+ 'DistributionSkewness','DistributionVariance','Element','EvaluateUnit','First','FormatString','Last',
75
+ 'Ord','Unit','Val','Aggregate','AttributeToString','CaseCompareIdentifier','CaseCreateDifferenceFile',
76
+ 'CloseDataSource','CreateTimeTable','ConstraintVariables','ConvertReferenceDate','CloneElement',
77
+ 'FindNthString','FindReplaceNthString','FindReplaceStrings','FindString','StringOccurrences',
78
+ 'CurrentToMoment','CurrentToString','CurrentToTimeSlot','DaylightsavingEndDate','DaylightsavingStartDate',
79
+ 'DeclaredSubset','DomainIndex','IndexRange','IsRunningAsViewer','ListingFileCopy','ListingFileDelete',
80
+ 'DirectoryGetFiles','DirectoryGetSubdirectories','DirectSQL','Disaggregate','ElementCast','ElementRange',
81
+ 'EnvironmentGetString','EnvironmentSetString','errh::Adapt','errh::Attribute','errh::Category',
82
+ 'errh::Code','errh::Column','errh::CreationTime','errh::Filename','errh::InsideCategory',
83
+ 'errh::IsMarkedAsHandled','errh::Line','errh::MarkAsHandled','errh::Message','errh::Multiplicity',
84
+ 'errh::Node','errh::NumberOfLocations','errh::Severity','ExcelAddNewSheet','ExcelAssignParameter',
85
+ 'ExcelAssignSet','ExcelAssignTable','ExcelAssignValue','ExcelClearRange','ExcelCloseWorkbook',
86
+ 'ExcelColumnName','ExcelColumnNumber','ExcelCopyRange','ExcelCreateWorkbook','ExcelDeleteSheet',
87
+ 'ExcelPrint','ExcelRetrieveParameter','ExcelRetrieveSet','ExcelRetrieveTable','ExcelRetrieveValue',
88
+ 'ExcelRunMacro','ExcelSaveWorkbook','ExcelSetActiveSheet','ExcelSetUpdateLinksBehavior',
89
+ 'ExcelSetVisibility','FindUsedElements','GenerateCUT','GMP::Coefficient::Get',
90
+ 'GMP::Coefficient::GetQuadratic','GMP::Coefficient::Set','GMP::Coefficient::SetQuadratic',
91
+ 'GMP::Column::Add','GMP::Column::Delete','GMP::Column::Freeze','GMP::Column::GetLowerbound',
92
+ 'GMP::Column::GetScale','GMP::Column::GetStatus','GMP::Column::GetType','GMP::Column::GetUpperbound',
93
+ 'GMP::Column::SetAsObjective','GMP::Column::SetLowerbound','GMP::Column::SetType',
94
+ 'GMP::Column::SetUpperbound','GMP::Column::Unfreeze','GMP::Instance::AddIntegerEliminationRows',
95
+ 'GMP::Instance::CalculateSubGradient','GMP::Instance::Copy','GMP::Instance::CreateDual',
96
+ 'GMP::Instance::CreateMasterMip','GMP::Instance::CreatePresolved',
97
+ 'GMP::SolverSession::CreateProgressCategory','GMP::Instance::CreateProgressCategory',
98
+ 'GMP::Instance::CreateSolverSession','GMP::Stochastic::CreateBendersRootproblem',
99
+ 'GMP::Instance::Delete','GMP::Instance::DeleteIntegerEliminationRows',
100
+ 'GMP::Instance::DeleteSolverSession','GMP::Instance::FindApproximatelyFeasibleSolution',
101
+ 'GMP::Instance::FixColumns','GMP::Instance::Generate','GMP::Instance::GenerateRobustCounterpart',
102
+ 'GMP::Instance::GenerateStochasticProgram','GMP::SolverSession::GetCallbackInterruptStatus',
103
+ 'GMP::SolverSession::WaitForCompletion','GMP::SolverSession::WaitForSingleCompletion',
104
+ 'GMP::SolverSession::ExecutionStatus','GMP::Instance::GetDirection','GMP::Instance::GetLinearObjective',
105
+ 'GMP::Instance::GetMathematicalProgrammingType','GMP::Instance::GetMemoryUsed',
106
+ 'GMP::Instance::GetNumberOfColumns','GMP::Instance::GetNumberOfIndicatorRows',
107
+ 'GMP::Instance::GetNumberOfIntegerColumns','GMP::Instance::GetNumberOfNonlinearColumns',
108
+ 'GMP::Instance::GetNumberOfNonlinearNonzeros','GMP::Instance::GetNumberOfNonlinearRows',
109
+ 'GMP::Instance::GetNumberOfNonzeros','GMP::Instance::GetNumberOfRows',
110
+ 'GMP::Instance::GetNumberOfSOS1Rows','GMP::Instance::GetNumberOfSOS2Rows',
111
+ 'GMP::Instance::GetObjective','GMP::Instance::GetOptionValue','GMP::Instance::GetSolver',
112
+ 'GMP::Instance::GetSymbolicMathematicalProgram','GMP::Instance::MemoryStatistics',
113
+ 'GMP::Instance::Rename','GMP::Instance::SetCallbackAddCut','GMP::Instance::SetCallbackBranch',
114
+ 'GMP::Instance::SetCallbackHeuristic','GMP::Instance::SetCallbackIncumbent',
115
+ 'GMP::Instance::SetCallbackIterations','GMP::Instance::SetCallbackNewIncumbent',
116
+ 'GMP::Instance::SetCallbackStatusChange','GMP::Instance::SetCutoff','GMP::Instance::SetDirection',
117
+ 'GMP::Instance::SetMathematicalProgrammingType','GMP::Instance::SetSolver','GMP::Instance::Solve',
118
+ 'GMP::Stochastic::GetObjectiveBound','GMP::Stochastic::GetRelativeWeight',
119
+ 'GMP::Stochastic::GetRepresentativeScenario','GMP::Stochastic::UpdateBendersSubproblem',
120
+ 'GMP::Linearization::Add','GMP::Linearization::AddSingle','GMP::Linearization::Delete',
121
+ 'GMP::Linearization::GetDeviation','GMP::Linearization::GetDeviationBound',
122
+ 'GMP::Linearization::GetLagrangeMultiplier','GMP::Linearization::GetType',
123
+ 'GMP::Linearization::GetWeight','GMP::Linearization::RemoveDeviation',
124
+ 'GMP::Linearization::SetDeviationBound','GMP::Linearization::SetType',
125
+ 'GMP::Linearization::SetWeight','GMP::ProgressWindow::DeleteCategory',
126
+ 'GMP::ProgressWindow::DisplayLine','GMP::ProgressWindow::DisplayProgramStatus',
127
+ 'GMP::ProgressWindow::DisplaySolver','GMP::ProgressWindow::DisplaySolverStatus',
128
+ 'GMP::ProgressWindow::FreezeLine','GMP::ProgressWindow::UnfreezeLine',
129
+ 'GMP::QuadraticCoefficient::Get','GMP::QuadraticCoefficient::Set','GMP::Row::Activate',
130
+ 'GMP::Stochastic::AddBendersFeasibilityCut','GMP::Stochastic::AddBendersOptimalityCut',
131
+ 'GMP::Stochastic::BendersFindFeasibilityReference','GMP::Stochastic::MergeSolution',
132
+ 'GMP::Row::Add','GMP::Row::Deactivate','GMP::Row::Delete','GMP::Row::DeleteIndicatorCondition',
133
+ 'GMP::Row::Generate','GMP::Row::GetConvex','GMP::Row::GetIndicatorColumn',
134
+ 'GMP::Row::GetIndicatorCondition','GMP::Row::GetLeftHandSide','GMP::Row::GetRelaxationOnly',
135
+ 'GMP::Row::GetRightHandSide','GMP::Row::GetScale','GMP::Row::GetStatus','GMP::Row::GetType',
136
+ 'GMP::Row::SetConvex','GMP::Row::SetIndicatorCondition','GMP::Row::SetLeftHandSide',
137
+ 'GMP::Row::SetRelaxationOnly','GMP::Row::SetRightHandSide','GMP::Row::SetType',
138
+ 'GMP::Solution::Check','GMP::Solution::Copy','GMP::Solution::Count','GMP::Solution::Delete',
139
+ 'GMP::Solution::DeleteAll','GMP::Solution::GetColumnValue','GMP::Solution::GetCPUSecondsUsed',
140
+ 'GMP::Solution::GetDistance','GMP::Solution::GetFirstOrderDerivative',
141
+ 'GMP::Solution::GetIterationsUsed','GMP::Solution::GetNodesUsed','GMP::Solution::GetLinearObjective',
142
+ 'GMP::Solution::GetMemoryUsed','GMP::Solution::GetObjective','GMP::Solution::GetPenalizedObjective',
143
+ 'GMP::Solution::GetProgramStatus','GMP::Solution::GetRowValue','GMP::Solution::GetSolutionsSet',
144
+ 'GMP::Solution::GetSolverStatus','GMP::Solution::IsDualDegenerated','GMP::Solution::IsInteger',
145
+ 'GMP::Solution::IsPrimalDegenerated','GMP::Solution::SetMIPStartFlag','GMP::Solution::Move',
146
+ 'GMP::Solution::RandomlyGenerate','GMP::Solution::RetrieveFromModel',
147
+ 'GMP::Solution::RetrieveFromSolverSession','GMP::Solution::SendToModel',
148
+ 'GMP::Solution::SendToModelSelection','GMP::Solution::SendToSolverSession',
149
+ 'GMP::Solution::SetIterationCount','GMP::Solution::SetProgramStatus','GMP::Solution::SetSolverStatus',
150
+ 'GMP::Solution::UpdatePenaltyWeights','GMP::Solution::ConstructMean',
151
+ 'GMP::SolverSession::AsynchronousExecute','GMP::SolverSession::Execute',
152
+ 'GMP::SolverSession::Interrupt','GMP::SolverSession::AddLinearization',
153
+ 'GMP::SolverSession::GenerateBranchLowerBound','GMP::SolverSession::GenerateBranchUpperBound',
154
+ 'GMP::SolverSession::GenerateBranchRow','GMP::SolverSession::GenerateCut',
155
+ 'GMP::SolverSession::GenerateBinaryEliminationRow','GMP::SolverSession::GetCPUSecondsUsed',
156
+ 'GMP::SolverSession::GetHost','GMP::SolverSession::GetInstance',
157
+ 'GMP::SolverSession::GetIterationsUsed','GMP::SolverSession::GetNodesLeft',
158
+ 'GMP::SolverSession::GetNodesUsed','GMP::SolverSession::GetNodeNumber',
159
+ 'GMP::SolverSession::GetNodeObjective','GMP::SolverSession::GetNumberOfBranchNodes',
160
+ 'GMP::SolverSession::GetLinearObjective','GMP::SolverSession::GetMemoryUsed',
161
+ 'GMP::SolverSession::GetObjective','GMP::SolverSession::GetOptionValue',
162
+ 'GMP::SolverSession::GetProgramStatus','GMP::SolverSession::GetSolver',
163
+ 'GMP::SolverSession::GetSolverStatus','GMP::SolverSession::RejectIncumbent',
164
+ 'GMP::Event::Create','GMP::Event::Delete','GMP::Event::Reset','GMP::Event::Set',
165
+ 'GMP::SolverSession::SetObjective','GMP::SolverSession::SetOptionValue',
166
+ 'GMP::Instance::SetCPUSecondsLimit','GMP::Instance::SetIterationLimit',
167
+ 'GMP::Instance::SetMemoryLimit','GMP::Instance::SetOptionValue','GMP::Tuning::SolveSingleMPS',
168
+ 'GMP::Tuning::TuneMultipleMPS','GMP::Tuning::TuneSingleGMP',
169
+ 'GMP::Solver::GetAsynchronousSessionsLimit','GMP::Robust::EvaluateAdjustableVariables',
170
+ 'GenerateXML','GetDatasourceProperty','ReadGeneratedXML','ReadXML','ReferencedIdentifiers',
171
+ 'WriteXML','IdentifierAttributes','IdentifierDimension','IsRuntimeIdentifier','IdentifierMemory',
172
+ 'IdentifierMemoryStatistics','IdentifierText','IdentifierType','IdentifierUnit','ScalarValue',
173
+ 'SectionIdentifiers','SubRange','MemoryInUse','CommitTransaction','RollbackTransaction',
174
+ 'MemoryStatistics','me::AllowedAttribute','me::ChangeType','me::ChangeTypeAllowed','me::Children',
175
+ 'me::ChildTypeAllowed','me::Compile','me::Create','me::CreateLibrary','me::Delete','me::ExportNode',
176
+ 'me::GetAttribute','me::ImportLibrary','me::ImportNode','me::IsRunnable','me::Move','me::Parent',
177
+ 'me::Rename','me::SetAttribute','MomentToString','MomentToTimeSlot','OptionGetValue',
178
+ 'OptionGetKeywords','OptionGetString','OptionSetString','OptionSetValue','PeriodToString',
179
+ 'ProfilerContinue','ProfilerPause','ProfilerRestart','RestoreInactiveElements',
180
+ 'RetrieveCurrentVariableValues','SetAddRecursive','SetElementAdd','SetElementRename',
181
+ 'SQLColumnData','SQLCreateConnectionString','SQLDriverName','SQLNumberOfColumns',
182
+ 'SQLNumberOfDrivers','SQLNumberOfTables','SQLNumberOfViews','SQLTableName','SQLViewName',
183
+ 'StartTransaction','StringToElement','StringToMoment','StringToTimeSlot','TestDatabaseColumn',
184
+ 'TestDatabaseTable','TestDataSource','TestDate','TimeslotCharacteristic','TimeslotToMoment',
185
+ 'TimeslotToString','TimeZoneOffset','VariableConstraints','PageOpen','PageOpenSingle','PageClose',
186
+ 'PageGetActive','PageSetFocus','PageGetFocus','PageSetCursor','PageRefreshAll','PageGetChild',
187
+ 'PageGetParent','PageGetNext','PageGetPrevious','PageGetNextInTreeWalk','PageGetUsedIdentifiers',
188
+ 'PageGetTitle','PageGetAll','PageCopyTableToClipboard','PageCopyTableToExcel','PrintPage',
189
+ 'PrintPageCount','PrintStartReport','PrintEndReport','PivotTableReloadState','PivotTableSaveState',
190
+ 'PivotTableDeleteState','FileSelect','FileSelectNew','FileDelete','FileExists','FileCopy',
191
+ 'FileMove','FileView','FileEdit','FilePrint','FileTime','FileTouch','FileAppend','FileGetSize',
192
+ 'DirectorySelect','DirectoryCreate','DirectoryDelete','DirectoryExists','DirectoryCopy',
193
+ 'DirectoryMove','DirectoryGetCurrent','DialogProgress','DialogMessage','DialogError',
194
+ 'StatusMessage','DialogAsk','DialogGetString','DialogGetDate','DialogGetNumber','DialogGetElement',
195
+ 'DialogGetElementByText','DialogGetElementByData','DialogGetPassword','DialogGetColor','CaseNew',
196
+ 'CaseFind','CaseCreate','CaseLoadCurrent','CaseMerge','CaseLoadIntoCurrent','CaseSelect',
197
+ 'CaseSelectNew','CaseSetCurrent','CaseSave','CaseSaveAll','CaseSaveAs','CaseSelectMultiple',
198
+ 'CaseGetChangedStatus','CaseSetChangedStatus','CaseDelete','CaseGetType','CaseGetDatasetReference',
199
+ 'CaseWriteToSingleFile','CaseReadFromSingleFile','DatasetNew','DatasetFind','DatasetCreate',
200
+ 'DatasetLoadCurrent','DatasetMerge','DatasetLoadIntoCurrent','DatasetSelect','DatasetSelectNew',
201
+ 'DatasetSetCurrent','DatasetSave','DatasetSaveAll','DatasetSaveAs','DatasetGetChangedStatus',
202
+ 'DatasetSetChangedStatus','DatasetDelete','DatasetGetCategory','DataFileGetName',
203
+ 'DataFileGetAcronym','DataFileSetAcronym','DataFileGetComment','DataFileSetComment',
204
+ 'DataFileGetPath','DataFileGetTime','DataFileGetOwner','DataFileGetGroup','DataFileReadPermitted',
205
+ 'DataFileWritePermitted','DataFileExists','DataFileCopy','DataCategoryContents','CaseTypeContents',
206
+ 'CaseTypeCategories','Execute','OpenDocument','TestInternetConnection','GeoFindCoordinates',
207
+ 'ShowHelpTopic','Delay','ScheduleAt','ExitAimms','SessionArgument','SessionHasVisibleGUI',
208
+ 'ProjectDeveloperMode','DebuggerBreakpoint','ShowProgressWindow','ShowMessageWindow',
209
+ 'SolverGetControl','SolverReleaseControl','ProfilerStart','DataManagerImport','DataManagerExport',
210
+ 'DataManagerFileNew','DataManagerFileOpen','DataManagerFileGetCurrent','DataImport220',
211
+ 'SecurityGetUsers','SecurityGetGroups','UserColorAdd','UserColorDelete','UserColorGetRGB',
212
+ 'UserColorModify','LicenseNumber','LicenseType','LicenseStartDate','LicenseExpirationDate',
213
+ 'LicenseMaintenanceExpirationDate','VARLicenseExpirationDate','AimmsRevisionString',
214
+ 'VARLicenseCreate','HistogramCreate','HistogramDelete','HistogramSetDomain',
215
+ 'HistogramAddObservation','HistogramGetFrequencies','HistogramGetBounds',
216
+ 'HistogramGetObservationCount','HistogramGetAverage','HistogramGetDeviation',
217
+ 'HistogramGetSkewness','HistogramGetKurtosis','DateDifferenceDays','DateDifferenceYearFraction',
218
+ 'PriceFractional','PriceDecimal','RateEffective','RateNominal','DepreciationLinearLife',
219
+ 'DepreciationLinearRate','DepreciationNonLinearSumOfYear','DepreciationNonLinearLife',
220
+ 'DepreciationNonLinearFactor','DepreciationNonLinearRate','DepreciationSum',
221
+ 'InvestmentConstantPresentValue','InvestmentConstantFutureValue',
222
+ 'InvestmentConstantPeriodicPayment','InvestmentConstantInterestPayment',
223
+ 'InvestmentConstantPrincipalPayment','InvestmentConstantCumulativePrincipalPayment',
224
+ 'InvestmentConstantCumulativeInterestPayment','InvestmentConstantNumberPeriods',
225
+ 'InvestmentConstantRateAll','InvestmentConstantRate','InvestmentVariablePresentValue',
226
+ 'InvestmentVariablePresentValueInperiodic','InvestmentSingleFutureValue',
227
+ 'InvestmentVariableInternalRateReturnAll','InvestmentVariableInternalRateReturn',
228
+ 'InvestmentVariableInternalRateReturnInperiodicAll','InvestmentVariableInternalRateReturnInperiodic',
229
+ 'InvestmentVariableInternalRateReturnModified','SecurityDiscountedPrice',
230
+ 'SecurityDiscountedRedemption','SecurityDiscountedYield','SecurityDiscountedRate',
231
+ 'TreasuryBillPrice','TreasuryBillYield','TreasuryBillBondEquivalent','SecurityMaturityPrice',
232
+ 'SecurityMaturityCouponRate','SecurityMaturityYield','SecurityMaturityAccruedInterest',
233
+ 'SecurityCouponNumber','SecurityCouponPreviousDate','SecurityCouponNextDate','SecurityCouponDays',
234
+ 'SecurityCouponDaysPreSettlement','SecurityCouponDaysPostSettlement','SecurityPeriodicPrice',
235
+ 'SecurityPeriodicRedemption','SecurityPeriodicCouponRate','SecurityPeriodicYieldAll',
236
+ 'SecurityPeriodicYield','SecurityPeriodicAccruedInterest','SecurityPeriodicDuration',
237
+ 'SecurityPeriodicDurationModified','Abs','AtomicUnit','Ceil','Character','CharacterNumber','Cube',
238
+ 'Degrees','Div','Exp','FileRead','Floor','Log','Log10','Mapval','Max','Min','Mod','Power',
239
+ 'Radians','Round','Sign','Sqr','Sqrt','StringCapitalize','StringLength','StringToLower',
240
+ 'StringToUnit','StringToUpper','SubString','Trunc','Binomial','NegativeBinomial','Poisson',
241
+ 'Geometric','HyperGeometric','Uniform','Normal','LogNormal','Triangular','Exponential','Weibull',
242
+ 'Beta','Gamma','Logistic','Pareto','ExtremeValue','Precision','Factorial','Combination',
243
+ 'Permutation','Errorf','Cos','Sin','Tan','ArcCos','ArcSin','ArcTan','Cosh','Sinh','Tanh',
244
+ 'ArcCosh','ArcSinh','ArcTanh'
245
+ )
246
+ ),
247
+ 'SYMBOLS' => array(
248
+ 0 => array(
249
+ '(', ')', '[', ']', '{', '}',
250
+ '%', '&', '|', '/',
251
+ '<', '>', '>=' , '<=', ':=',
252
+ '=', '-', '+', '*',
253
+ '.', ','
254
+ )
255
+ ),
256
+ 'CASE_SENSITIVE' => array(
257
+ GESHI_COMMENTS => false,
258
+ 1 => false,
259
+ 2 => false,
260
+ 3 => false,
261
+ 4 => false
262
+ ),
263
+ 'STYLES' => array(
264
+ 'KEYWORDS' => array(
265
+ 1 => 'color: #0000FF;',
266
+ 2 => 'color: #000000; font-weight: bold;',
267
+ 3 => 'color: #404040;',
268
+ 4 => 'color: #990000; font-weight: bold;'
269
+ ),
270
+ 'BRACKETS' => array(
271
+ 0 => 'color: #009900;'
272
+ ),
273
+ 'STRINGS' => array(
274
+ 0 => 'color: #808080; font-style: italic ',
275
+ 'HARD' => 'color: #808080; font-style: italic'
276
+ ),
277
+ 'NUMBERS' => array(
278
+ 0 => 'color: #cc66cc;',
279
+ GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
280
+ GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
281
+ GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
282
+ ),
283
+ 'COMMENTS' => array(
284
+ 1 => 'color: #008000; font-style: italic;',
285
+ 'MULTI' => 'color: #008000; font-style: italic;'
286
+ ),
287
+
288
+ 'METHODS' => array(
289
+ 1 => 'color: #004000;',
290
+ 2 => 'color: #004000;'
291
+ ),
292
+ 'SYMBOLS' => array(
293
+ 0 => 'color: #339933;',
294
+ 1 => 'color: #000000; font-weight: bold;'
295
+ ),
296
+ 'REGEXPS' => array(
297
+ ),
298
+ 'SCRIPT' => array(
299
+ 0 => '',
300
+ 1 => '',
301
+ 2 => '',
302
+ 3 => '',
303
+ 4 => '',
304
+ 5 => ''
305
+ ),
306
+ 'ESCAPE_CHAR' => array()
307
+ ),
308
+ 'URLS' => array(
309
+ 1 => '',
310
+ 2 => '',
311
+ 3 => '',
312
+ 4 => ''
313
+ ),
314
+ 'OOLANG' => false,
315
+ 'TAB_WIDTH' => 4
316
+ );
includes/geshi/algol68.php ADDED
@@ -0,0 +1,328 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * algol68.php
4
+ * --------
5
+ * Author: Neville Dempsey (NevilleD.sourceforge@sgr-a.net)
6
+ * Copyright: (c) 2010 Neville Dempsey (https://sourceforge.net/projects/algol68/files/)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2010/04/24
9
+ *
10
+ * ALGOL 68 language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2010/04/24 (1.0.8.8.0)
15
+ * - First Release - machine generated by http://rosettacode.org/geshi/
16
+ * 2010/05/24 (1.0.8.8.1)
17
+ * - #2324 - converted comment detection to RegEx
18
+ * 2010/06/16 (1.0.8.8.2)
19
+ * - separate symbols from keywords - quick fix
20
+ * 2010/06/16 (1.0.8.8.3)
21
+ * - reverse length order symbols
22
+ * - Add RegEx for BITS and REAL literals (INT to do)
23
+ * - recognise LONG and SHORT prefixes to literals
24
+ * 2010/07/23 (1.0.8.8.4)
25
+ * - fix errors detected by langcheck.php, eg rm tab, fix indenting, rm duplicate keywords, fix symbols as keywords etc
26
+ * - removed bulk of local variables from name space.
27
+ * - unfolded arrays
28
+ *
29
+ * TODO (updated yyyy/mm/dd)
30
+ * -------------------------
31
+ * - Use "Parser Control" to fix KEYWORD parsing, eg: (INT minus one= -1; print(ABSminus one))
32
+ * - Parse $FORMATS$ more fully - if possible.
33
+ * - Pull reserved words from the source of A68G and A68RS
34
+ * - Pull stdlib PROC/OP/MODE symbols from the soruce of A68G and A68RS
35
+ * - Pull PROC/OP/MODE extensions from the soruce of A68G and A68RS
36
+ * - Use RegEx to detect extended precision PROC names, eg 'long long sin' etc
37
+ * - Use RegEx to detect white space std PROC names, eg 'new line'
38
+ * - Use RegEx to detect white space ext PROC names, eg 'cgs speed of light'
39
+ * - Use RegEx to detect BOLD symbols, eg userdefined MODEs and OPs
40
+ * - Add REgEx for INT literals - Adding INT breaks formatting...
41
+ * - Adding PIPE as a key word breaks formatting of "|" symbols!!
42
+ *
43
+ *************************************************************************************
44
+ *
45
+ * This file is part of GeSHi.
46
+ *
47
+ * GeSHi is free software; you can redistribute it and/or modify
48
+ * it under the terms of the GNU General Public License as published by
49
+ * the Free Software Foundation; either version 2 of the License, or
50
+ * (at your option) any later version.
51
+ *
52
+ * GeSHi is distributed in the hope that it will be useful,
53
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
54
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
55
+ * GNU General Public License for more details.
56
+ *
57
+ * You should have received a copy of the GNU General Public License
58
+ * along with GeSHi; if not, write to the Free Software
59
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
60
+ *
61
+ ************************************************************************************/
62
+
63
+ if(!function_exists('geshi_langfile_algol68_vars')) {
64
+ function geshi_langfile_algol68_vars(){
65
+ $pre='(?<![0-9a-z_\.])';
66
+ $post='?(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
67
+ $post=""; # assuming the RegEx is greedy #
68
+
69
+ $_="\s*";
70
+
71
+ $srad="Rr"; $rrad="[".$srad."]"; # either one digit, OR opt-space in digits #
72
+ $sbin="0-1"; $rbin="[".$sbin."]"; $_bin=$rbin."(?:[".$sbin."\s]*".$rbin."|)";
73
+ $snib="0-3"; $rnib="[".$snib."]"; $_nib=$rnib."(?:[".$snib."\s]*".$rnib."|)";
74
+ $soct="0-7"; $roct="[".$soct."]"; $_oct=$roct."(?:[".$soct."\s]*".$roct."|)";
75
+ $sdec="0-9"; $rdec="[".$sdec."]"; $_dec=$rdec."(?:[".$sdec."\s]*".$rdec."|)";
76
+ $shex="0-9A-Fa-f"; $rhex="[".$shex."]"; $_hex=$rhex."(?:[".$shex."\s]*".$rhex."|)";
77
+
78
+ # Define BITS: #
79
+ $prebits=$pre; $postbits=$post;
80
+ $bl="2".$_.$rrad.$_.$_bin;
81
+ $bl=$bl."|"."2".$_.$rrad.$_.$_bin;
82
+ $bl=$bl."|"."4".$_.$rrad.$_.$_nib;
83
+ $bl=$bl."|"."8".$_.$rrad.$_.$_oct;
84
+ $bl=$bl."|"."1".$_."0".$_.$rrad.$_.$_dec;
85
+ $bl=$bl."|"."1".$_."6".$_.$rrad.$_.$_hex;
86
+
87
+ # Define INT: #
88
+ $preint=$pre; $postint=$post;
89
+ # for some reason ".0 e - 2" is not recognised, but ".0 e + 2" IS!
90
+ # work around: remove spaces between sign and digits! Maybe because
91
+ # of the Unary '-' Operator
92
+ $sign_="(?:-|\-|[-]|[\-]|\+|)"; # attempts # // FIXME: This should be used or removed. Assignment beneath
93
+
94
+ $sign_="(?:-\s*|\+\s*|)"; # n.b. sign is followed by white space #
95
+
96
+ $_int=$sign_.$_dec;
97
+ $il= $_int; # +_9 #
98
+
99
+ //$GESHI_NUMBER_INT_BASIC='(?:(?<![0-9a-z_\.%])|(?<=\.\.))(?<![\d\.]e[+\-])([1-9]\d*?|0)(?![0-9a-z]|\.(?:[eE][+\-]?)?\d)';
100
+
101
+ # Define REAL: #
102
+ $prereal=$pre; $postreal=$post;
103
+ $sexp="Ee\\\\"; $_exp="(?:⏨|[".$sexp."])".$_.$_int;
104
+ $_decimal="[.]".$_.$_dec;
105
+
106
+ # Add permitted permutations of various parts #
107
+ $rl= $_int.$_.$_decimal.$_.$_exp; # +_9_._9_e_+_9 #
108
+ $rl=$rl."|".$_int.$_."[.]".$_.$_exp; # +_9_.___e_+_9 #
109
+ $rl=$rl."|".$_int.$_.$_exp; # +_9_____e_+_9 #
110
+ $rl=$rl."|".$sign_.$_decimal.$_.$_exp; # +___._9_e_+_9 #
111
+
112
+ $rl=$rl."|".$_int.$_.$_decimal; # +_9_._9 #
113
+ $rl=$rl."|".$sign_.$_decimal; # +___._9 #
114
+
115
+ # The following line damaged formatting...
116
+ #$rl=$rl."|".$_int; # +_9 #
117
+
118
+ # Apparently Algol68 does not support '2.', c.f. Algol 68G
119
+ #$rl=$rl."|".$_int.$_."[.]"; # +_9_. #
120
+
121
+ # Literal prefixes are overridden by KEYWORDS :-(
122
+ $LONGS="(?:(?:(LONG\s+)*|(SHORT\s+))*|)";
123
+
124
+ return array(
125
+ "BITS" => $prebits.$LONGS."(?:".$bl.")".$postbits,
126
+ "INT" => $preint.$LONGS."(?:".$il.")".$postint,
127
+ "REAL" => $prereal.$LONGS."(?:".$rl.")".$postreal,
128
+
129
+ "BOLD" => 'color: #b1b100; font-weight: bold;',
130
+ "ITALIC" => 'color: #b1b100;', # procedures traditionally italic #
131
+ "NONSTD" => 'color: #FF0000; font-weight: bold;', # RED #
132
+ "COMMENT" => 'color: #666666; font-style: italic;'
133
+ );
134
+ }
135
+ }
136
+ $a68=geshi_langfile_algol68_vars();
137
+
138
+ $language_data = array(
139
+ 'LANG_NAME' => 'ALGOL 68',
140
+ 'COMMENT_SINGLE' => array(),
141
+ 'COMMENT_MULTI' => array(
142
+ '¢' => '¢',
143
+ '£' => '£',
144
+ '#' => '#',
145
+ ),
146
+ 'COMMENT_REGEXP' => array(
147
+ 1 => '/\bCO((?:MMENT)?)\b.*?\bCO\\1\b/i',
148
+ 2 => '/\bPR((?:AGMAT)?)\b.*?\bPR\\1\b/i',
149
+ 3 => '/\bQUOTE\b.*?\bQUOTE\b/i'
150
+ ),
151
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
152
+ 'QUOTEMARKS' => array('"'),
153
+ 'ESCAPE_CHAR' => '"',
154
+ 'NUMBERS' => GESHI_NUMBER_HEX_SUFFIX, # Warning: Feature!! #
155
+ # GESHI_NUMBER_HEX_SUFFIX, # Attempt ignore default #
156
+ 'KEYWORDS' => array(
157
+ # Extensions
158
+ 1 => array('KEEP', 'FINISH', 'USE', 'SYSPROCS', 'IOSTATE', 'USING', 'ENVIRON', 'PROGRAM', 'CONTEXT'),
159
+ # 2 => array('CASE', 'IN', 'OUSE', 'IN', 'OUT', 'ESAC', '(', '|', '|:', ')', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', 'THEN', 'ELSE', 'FI', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO', 'GOTO', 'FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT'), #
160
+ 2 => array('CASE', 'IN', 'OUSE', /* 'IN',*/ 'OUT', 'ESAC', 'PAR', 'BEGIN', 'EXIT', 'END', 'GO TO', 'GOTO', 'FOR', 'FROM', 'TO', 'BY', 'WHILE', 'DO', 'OD', 'IF', 'THEN', 'ELIF', /* 'THEN',*/ 'ELSE', 'FI' ),
161
+ 3 => array('BITS', 'BOOL', 'BYTES', 'CHAR', 'COMPL', 'INT', 'REAL', 'SEMA', 'STRING', 'VOID'),
162
+ 4 => array('MODE', 'OP', 'PRIO', 'PROC', 'FLEX', 'HEAP', 'LOC', 'REF', 'LONG', 'SHORT', 'EITHER'),
163
+ # Extensions or deprecated keywords
164
+ # 'PIPE': keyword somehow interferes with the internal operation of GeSHi
165
+ 5 => array('FORALL', 'UPTO', 'DOWNTO', 'FOREACH', 'ASSERT', 'CTB', 'CT', 'CTAB', 'COMPLEX', 'VECTOR', 'SOUND' /*, 'PIPE'*/),
166
+ 6 => array('CHANNEL', 'FILE', 'FORMAT', 'STRUCT', 'UNION', 'OF'),
167
+ # '(', '|', '|:', ')', #
168
+ # 7 => array('OF', 'AT', '@', 'IS', ':=:', 'ISNT', ':/=:', ':≠:', 'CTB', 'CT', '::', 'CTAB', '::=', 'TRUE', 'FALSE', 'EMPTY', 'NIL', '○', 'SKIP', '~'),
169
+ 7 => array('AT', 'IS', 'ISNT', 'TRUE', 'FALSE', 'EMPTY', 'NIL', 'SKIP'),
170
+ 8 => array('NOT', 'UP', 'DOWN', 'LWB', 'UPB', /* '-',*/ 'ABS', 'ARG', 'BIN', 'ENTIER', 'LENG', 'LEVEL', 'ODD', 'REPR', 'ROUND', 'SHORTEN', 'CONJ', 'SIGN'),
171
+ # OPERATORS ordered roughtly by PRIORITY #
172
+ # 9 => array('¬', '↑', '↓', '⌊', '⌈', '~', '⎩', '⎧'),
173
+ # 10 => array('+*', 'I', '+×', '⊥', '!', '⏨'),
174
+ 10 => array('I'),
175
+ # 11 => array('SHL', 'SHR', '**', 'UP', 'DOWN', 'LWB', 'UPB', '↑', '↓', '⌊', '⌈', '⎩', '⎧'),
176
+ 11 => array('SHL', 'SHR', /*'UP', 'DOWN', 'LWB', 'UPB'*/),
177
+ # 12 => array('*', '/', '%', 'OVER', '%*', 'MOD', 'ELEM', '×', '÷', '÷×', '÷*', '%×', '□', '÷:'),
178
+ 12 => array('OVER', 'MOD', 'ELEM'),
179
+ # 13 => array('-', '+'),
180
+ # 14 => array('<', 'LT', '<=', 'LE', '>=', 'GE', '>', 'GT', '≤', '≥'),
181
+ 14 => array('LT', 'LE', 'GE', 'GT'),
182
+ # 15 => array('=', 'EQ', '/=', 'NE', '≠', '~='),
183
+ 15 => array('EQ', 'NE'),
184
+ # 16 => array('&', 'AND', '∧', 'OR', '∨', '/\\', '\\/'),
185
+ 16 => array('AND', 'OR'),
186
+ 17 => array('MINUSAB', 'PLUSAB', 'TIMESAB', 'DIVAB', 'OVERAB', 'MODAB', 'PLUSTO'),
187
+ # 18 => array('-:=', '+:=', '*:=', '/:=', '%:=', '%*:=', '+=:', '×:=', '÷:=', '÷×:=', '÷*:=', '%×:=', '÷::=', 'MINUS', 'PLUS', 'DIV', 'MOD', 'PRUS'),
188
+ # Extensions or deprecated keywords
189
+ 18 => array('MINUS', 'PLUS', 'DIV', /* 'MOD',*/ 'PRUS', 'IS NOT'),
190
+ # Extensions or deprecated keywords
191
+ 19 => array('THEF', 'ANDF', 'ORF', 'ANDTH', 'OREL', 'ANDTHEN', 'ORELSE'),
192
+ # Built in procedures - from standard prelude #
193
+ 20 => array('int lengths', 'intlengths', 'int shorths', 'intshorths', 'max int', 'maxint', 'real lengths', 'reallengths', 'real shorths', 'realshorths', 'bits lengths', 'bitslengths', 'bits shorths', 'bitsshorths', 'bytes lengths', 'byteslengths', 'bytes shorths', 'bytesshorths', 'max abs char', 'maxabschar', 'int width', 'intwidth', 'long int width', 'longintwidth', 'long long int width', 'longlongintwidth', 'real width', 'realwidth', 'long real width', 'longrealwidth', 'long long real width', 'longlongrealwidth', 'exp width', 'expwidth', 'long exp width', 'longexpwidth', 'long long exp width', 'longlongexpwidth', 'bits width', 'bitswidth', 'long bits width', 'longbitswidth', 'long long bits width', 'longlongbitswidth', 'bytes width', 'byteswidth', 'long bytes width', 'longbyteswidth', 'max real', 'maxreal', 'small real', 'smallreal', 'long max int', 'longmaxint', 'long long max int', 'longlongmaxint', 'long max real', 'longmaxreal', 'long small real', 'longsmallreal', 'long long max real', 'longlongmaxreal', 'long long small real', 'longlongsmallreal', 'long max bits', 'longmaxbits', 'long long max bits', 'longlongmaxbits', 'null character', 'nullcharacter', 'blank', 'flip', 'flop', 'error char', 'errorchar', 'exp char', 'expchar', 'newline char', 'newlinechar', 'formfeed char', 'formfeedchar', 'tab char', 'tabchar'),
194
+ 21 => array('stand in channel', 'standinchannel', 'stand out channel', 'standoutchannel', 'stand back channel', 'standbackchannel', 'stand draw channel', 'standdrawchannel', 'stand error channel', 'standerrorchannel'),
195
+ 22 => array('put possible', 'putpossible', 'get possible', 'getpossible', 'bin possible', 'binpossible', 'set possible', 'setpossible', 'reset possible', 'resetpossible', 'reidf possible', 'reidfpossible', 'draw possible', 'drawpossible', 'compressible', 'on logical file end', 'onlogicalfileend', 'on physical file end', 'onphysicalfileend', 'on line end', 'onlineend', 'on page end', 'onpageend', 'on format end', 'onformatend', 'on value error', 'onvalueerror', 'on open error', 'onopenerror', 'on transput error', 'ontransputerror', 'on format error', 'onformaterror', 'open', 'establish', 'create', 'associate', 'close', 'lock', 'scratch', 'space', 'new line', 'newline', 'print', 'write f', 'writef', 'print f', 'printf', 'write bin', 'writebin', 'print bin', 'printbin', 'read f', 'readf', 'read bin', 'readbin', 'put f', 'putf', 'get f', 'getf', 'make term', 'maketerm', 'make device', 'makedevice', 'idf', 'term', 'read int', 'readint', 'read long int', 'readlongint', 'read long long int', 'readlonglongint', 'read real', 'readreal', 'read long real', 'readlongreal', 'read long long real', 'readlonglongreal', 'read complex', 'readcomplex', 'read long complex', 'readlongcomplex', 'read long long complex', 'readlonglongcomplex', 'read bool', 'readbool', 'read bits', 'readbits', 'read long bits', 'readlongbits', 'read long long bits', 'readlonglongbits', 'read char', 'readchar', 'read string', 'readstring', 'print int', 'printint', 'print long int', 'printlongint', 'print long long int', 'printlonglongint', 'print real', 'printreal', 'print long real', 'printlongreal', 'print long long real', 'printlonglongreal', 'print complex', 'printcomplex', 'print long complex', 'printlongcomplex', 'print long long complex', 'printlonglongcomplex', 'print bool', 'printbool', 'print bits', 'printbits', 'print long bits', 'printlongbits', 'print long long bits', 'printlonglongbits', 'print char', 'printchar', 'print string', 'printstring', 'whole', 'fixed', 'float'),
196
+ 23 => array('pi', 'long pi', 'longpi', 'long long pi', 'longlongpi'),
197
+ 24 => array('sqrt', 'curt', 'cbrt', 'exp', 'ln', 'log', 'sin', 'arc sin', 'arcsin', 'cos', 'arc cos', 'arccos', 'tan', 'arc tan', 'arctan', 'long sqrt', 'longsqrt', 'long curt', 'longcurt', 'long cbrt', 'longcbrt', 'long exp', 'longexp', 'long ln', 'longln', 'long log', 'longlog', 'long sin', 'longsin', 'long arc sin', 'longarcsin', 'long cos', 'longcos', 'long arc cos', 'longarccos', 'long tan', 'longtan', 'long arc tan', 'longarctan', 'long long sqrt', 'longlongsqrt', 'long long curt', 'longlongcurt', 'long long cbrt', 'longlongcbrt', 'long long exp', 'longlongexp', 'long long ln', 'longlongln', 'long long log', 'longlonglog', 'long long sin', 'longlongsin', 'long long arc sin', 'longlongarcsin', 'long long cos', 'longlongcos', 'long long arc cos', 'longlongarccos', 'long long tan', 'longlongtan', 'long long arc tan', 'longlongarctan'),
198
+ 25 => array('first random', 'firstrandom', 'next random', 'nextrandom', 'long next random', 'longnextrandom', 'long long next random', 'longlongnextrandom'),
199
+ 26 => array('real', 'bits pack', 'bitspack', 'long bits pack', 'longbitspack', 'long long bits pack', 'longlongbitspack', 'bytes pack', 'bytespack', 'long bytes pack', 'longbytespack', 'char in string', 'charinstring', 'last char in string', 'lastcharinstring', 'string in string', 'stringinstring'),
200
+ 27 => array('utc time', 'utctime', 'local time', 'localtime', 'argc', 'argv', 'get env', 'getenv', 'reset errno', 'reseterrno', 'errno', 'strerror'),
201
+ 28 => array('sinh', 'long sinh', 'longsinh', 'long long sinh', 'longlongsinh', 'arc sinh', 'arcsinh', 'long arc sinh', 'longarcsinh', 'long long arc sinh', 'longlongarcsinh', 'cosh', 'long cosh', 'longcosh', 'long long cosh', 'longlongcosh', 'arc cosh', 'arccosh', 'long arc cosh', 'longarccosh', 'long long arc cosh', 'longlongarccosh', 'tanh', 'long tanh', 'longtanh', 'long long tanh', 'longlongtanh', 'arc tanh', 'arctanh', 'long arc tanh', 'longarctanh', 'long long arc tanh', 'longlongarctanh', 'arc tan2', 'arctan2', 'long arc tan2', 'longarctan2', 'long long arc tan2', 'longlongarctan2'),
202
+ 29 => array('complex sqrt', 'complexsqrt', 'long complex sqrt', 'longcomplexsqrt', 'long long complex sqrt', 'longlongcomplexsqrt', 'complex exp', 'complexexp', 'long complex exp', 'longcomplexexp', 'long long complex exp', 'longlongcomplexexp', 'complex ln', 'complexln', 'long complex ln', 'longcomplexln', 'long long complex ln', 'longlongcomplexln', 'complex sin', 'complexsin', 'long complex sin', 'longcomplexsin', 'long long complex sin', 'longlongcomplexsin', 'complex arc sin', 'complexarcsin', 'long complex arc sin', 'longcomplexarcsin', 'long long complex arc sin', 'longlongcomplexarcsin', 'complex cos', 'complexcos', 'long complex cos', 'longcomplexcos', 'long long complex cos', 'longlongcomplexcos', 'complex arc cos', 'complexarccos', 'long complex arc cos', 'longcomplexarccos', 'long long complex arc cos', 'longlongcomplexarccos', 'complex tan', 'complextan', 'long complex tan', 'longcomplextan', 'long long complex tan', 'longlongcomplextan', 'complex arc tan', 'complexarctan', 'long complex arc tan', 'longcomplexarctan', 'long long complex arc tan', 'longlongcomplexarctan', 'complex sinh', 'complexsinh', 'complex arc sinh', 'complexarcsinh', 'complex cosh', 'complexcosh', 'complex arc cosh', 'complexarccosh', 'complex tanh', 'complextanh', 'complex arc tanh', 'complexarctanh')
203
+ ),
204
+ 'SYMBOLS' => array(
205
+ 1 => array( /* reverse length sorted... */ '÷×:=', '%×:=', ':≠:', '÷*:=', '÷::=', '%*:=', ':/=:', '×:=', '÷:=', '÷×', '%:=', '%×', '*:=', '+:=', '+=:', '+×', '-:=', '/:=', '::=', ':=:', '÷*', '÷:', '↑', '↓', '∧', '∨', '≠', '≤', '≥', '⊥', '⌈', '⌊', '⎧', '⎩', /* '⏨', */ '□', '○', '%*', '**', '+*', '/=', '::', '/\\', '\\/', '<=', '>=', '|:', '~=', '¬', '×', '÷', '!', '%', '&', '(', ')', '*', '+', ',', '-', '/', ':', ';', '<', '=', '>', '?', '@', '[', ']', '^', '{', '|', '}', '~')
206
+ ),
207
+ 'CASE_SENSITIVE' => array(
208
+ GESHI_COMMENTS => false,
209
+ 1 => true,
210
+ 2 => true,
211
+ 3 => true,
212
+ 4 => true,
213
+ 5 => true,
214
+ 6 => true,
215
+ 7 => true,
216
+ 8 => true,
217
+ # 9 => true,
218
+ 10 => true,
219
+ 11 => true,
220
+ 12 => true,
221
+ # 13 => true,
222
+ 14 => true,
223
+ 15 => true,
224
+ 16 => true,
225
+ 17 => true,
226
+ 18 => true,
227
+ 19 => true,
228
+ 20 => true,
229
+ 21 => true,
230
+ 22 => true,
231
+ 23 => true,
232
+ 24 => true,
233
+ 25 => true,
234
+ 26 => true,
235
+ 27 => true,
236
+ 28 => true,
237
+ 29 => true
238
+ ),
239
+ 'STYLES' => array(
240
+ 'KEYWORDS' => array(
241
+ 1 => $a68['NONSTD'], 2 => $a68['BOLD'], 3 => $a68['BOLD'], 4 => $a68['BOLD'],
242
+ 5 => $a68['NONSTD'], 6 => $a68['BOLD'], 7 => $a68['BOLD'], 8 => $a68['BOLD'],
243
+ /* 9 => $a68['BOLD'],*/ 10 => $a68['BOLD'], 11 => $a68['BOLD'], 12 => $a68['BOLD'],
244
+ /* 13 => $a68['BOLD'],*/ 14 => $a68['BOLD'], 15 => $a68['BOLD'], 16 => $a68['BOLD'], 17 => $a68['BOLD'],
245
+ 18 => $a68['NONSTD'], 19 => $a68['NONSTD'],
246
+ 20 => $a68['ITALIC'], 21 => $a68['ITALIC'], 22 => $a68['ITALIC'], 23 => $a68['ITALIC'],
247
+ 24 => $a68['ITALIC'], 25 => $a68['ITALIC'], 26 => $a68['ITALIC'], 27 => $a68['ITALIC'],
248
+ 28 => $a68['ITALIC'], 29 => $a68['ITALIC']
249
+ ),
250
+ 'COMMENTS' => array(
251
+ 1 => $a68['COMMENT'], 2 => $a68['COMMENT'], 3 => $a68['COMMENT'], /* 4 => $a68['COMMENT'],
252
+ 5 => $a68['COMMENT'],*/ 'MULTI' => $a68['COMMENT']
253
+ ),
254
+ 'ESCAPE_CHAR' => array(
255
+ 0 => 'color: #000099; font-weight: bold;'
256
+ ),
257
+ 'BRACKETS' => array(
258
+ 0 => 'color: #009900;'
259
+ ),
260
+ 'STRINGS' => array(
261
+ 0 => 'color: #0000ff;'
262
+ ),
263
+ 'NUMBERS' => array(
264
+ 0 => 'color: #cc66cc;',
265
+ ),
266
+ 'METHODS' => array(
267
+ 0 => 'color: #004000;',
268
+ 1 => 'color: #004000;'
269
+ ),
270
+ 'SYMBOLS' => array(
271
+ 0 => 'color: #339933;',
272
+ 1 => 'color: #339933;'
273
+ ),
274
+ 'REGEXPS' => array(
275
+ 0 => 'color: #cc66cc;', # BITS #
276
+ 1 => 'color: #cc66cc;', # REAL #
277
+ /* 2 => 'color: #cc66cc;', # INT # */
278
+ ),
279
+ 'SCRIPT' => array()
280
+ ),
281
+ 'URLS' => array(
282
+ 1 => '',
283
+ 2 => '',
284
+ 3 => '',
285
+ 4 => '',
286
+ 5 => '',
287
+ 6 => '',
288
+ 7 => '',
289
+ 8 => '',
290
+ # 9 => '',
291
+ 10 => '',
292
+ 11 => '',
293
+ 12 => '',
294
+ # 13 => '',
295
+ 14 => '',
296
+ 15 => '',
297
+ 16 => '',
298
+ 17 => '',
299
+ 18 => '',
300
+ 19 => '',
301
+ 20 => '',
302
+ 21 => '',
303
+ 22 => '',
304
+ 23 => '',
305
+ 24 => '',
306
+ 25 => '',
307
+ 26 => '',
308
+ 27 => '',
309
+ 28 => '',
310
+ 29 => ''
311
+ ),
312
+ 'OOLANG' => true,
313
+ 'OBJECT_SPLITTERS' => array(
314
+ 0 => '→',
315
+ 1 => 'OF'
316
+ ),
317
+ 'REGEXPS' => array(
318
+ 0 => $a68['BITS'],
319
+ 1 => $a68['REAL']
320
+ # 2 => $a68['INT'], # Breaks formatting for some reason #
321
+ # 2 => $GESHI_NUMBER_INT_BASIC # Also breaks formatting #
322
+ ),
323
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
324
+ 'SCRIPT_DELIMITERS' => array(),
325
+ 'HIGHLIGHT_STRICT_BLOCK' => array()
326
+ );
327
+
328
+ unset($a68);
includes/geshi/apache.php ADDED
@@ -0,0 +1,481 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * apache.php
4
+ * ----------
5
+ * Author: Tux (tux@inmail.cz)
6
+ * Copyright: (c) 2004 Tux (http://tux.a4.cz/), Nigel McNie (http://qbnz.com/highlighter)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2004/29/07
9
+ *
10
+ * Apache language file for GeSHi.
11
+ * Words are from SciTe configuration file
12
+ *
13
+ * CHANGES
14
+ * -------
15
+ * 2008/17/06 (1.0.8)
16
+ * - Added support for apache configuration sections (milian)
17
+ * - Added missing php keywords (milian)
18
+ * - Added some more keywords
19
+ * - Disabled highlighting of brackets by default
20
+ * 2004/11/27 (1.0.2)
21
+ * - Added support for multiple object splitters
22
+ * 2004/10/27 (1.0.1)
23
+ * - Added support for URLs
24
+ * 2004/08/05 (1.0.0)
25
+ * - First Release
26
+ *
27
+ * TODO (updated 2004/07/29)
28
+ * -------------------------
29
+ *
30
+ *************************************************************************************
31
+ *
32
+ * This file is part of GeSHi.
33
+ *
34
+ * GeSHi is free software; you can redistribute it and/or modify
35
+ * it under the terms of the GNU General Public License as published by
36
+ * the Free Software Foundation; either version 2 of the License, or
37
+ * (at your option) any later version.
38
+ *
39
+ * GeSHi is distributed in the hope that it will be useful,
40
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
41
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
42
+ * GNU General Public License for more details.
43
+ *
44
+ * You should have received a copy of the GNU General Public License
45
+ * along with GeSHi; if not, write to the Free Software
46
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
47
+ *
48
+ ************************************************************************************/
49
+
50
+ $language_data = array (
51
+ 'LANG_NAME' => 'Apache configuration',
52
+ 'COMMENT_SINGLE' => array(1 => '#'),
53
+ 'COMMENT_MULTI' => array(),
54
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
55
+ 'QUOTEMARKS' => array("'", '"'),
56
+ 'ESCAPE_CHAR' => '\\',
57
+ 'KEYWORDS' => array(
58
+ /*keywords*/
59
+ 1 => array(
60
+ //core.c
61
+ 'AcceptFilter','AcceptPathInfo','AccessConfig','AccessFileName',
62
+ 'AddDefaultCharset','AddOutputFilterByType','AllowEncodedSlashes',
63
+ 'AllowOverride','AuthName','AuthType','ContentDigest',
64
+ 'CoreDumpDirectory','DefaultType','DocumentRoot','EnableMMAP',
65
+ 'EnableSendfile','ErrorDocument','ErrorLog','FileETag','ForceType',
66
+ 'HostnameLookups','Include','LimitInternalRecursion',
67
+ 'LimitRequestBody','LimitRequestFields','LimitRequestFieldsize',
68
+ 'LimitRequestLine','LimitXMLRequestBody','LogLevel','MaxMemFree',
69
+ 'MaxRequestsPerChild','NameVirtualHost','Options','PidFile','Port',
70
+ 'Protocol','Require','RLimitCPU','RLimitMEM','RLimitNPROC',
71
+ 'Satisfy','ScoreBoardFile','ServerAdmin','ServerAlias','ServerName',
72
+ 'ServerPath','ServerRoot','ServerSignature','ServerTokens',
73
+ 'SetHandler','SetInputFilter','SetOutputFilter','ThreadStackSize',
74
+ 'Timeout','TraceEnable','UseCanonicalName',
75
+ 'UseCanonicalPhysicalPort',
76
+
77
+ //http_core.c
78
+ 'KeepAlive','KeepAliveTimeout','MaxKeepAliveRequests',
79
+
80
+ //mod_actions.c
81
+ 'Action','Script',
82
+
83
+ //mod_alias.c
84
+ 'Alias','AliasMatch','Redirect','RedirectMatch','RedirectPermanent',
85
+ 'RedirectTemp','ScriptAlias','ScriptAliasMatch',
86
+
87
+ //mod_asis.c
88
+
89
+ //mod_auth_basic.c
90
+ 'AuthBasicAuthoritative','AuthBasicProvider',
91
+
92
+ //mod_auth_digest.c
93
+ 'AuthDigestAlgorithm','AuthDigestDomain','AuthDigestNcCheck',
94
+ 'AuthDigestNonceFormat','AuthDigestNonceLifetime',
95
+ 'AuthDigestProvider','AuthDigestQop','AuthDigestShmemSize',
96
+
97
+ //mod_authn_alias.c
98
+
99
+ //mod_authn_anon.c
100
+ 'Anonymous','Anonymous_LogEmail','Anonymous_MustGiveEmail',
101
+ 'Anonymous_NoUserId','Anonymous_VerifyEmail',
102
+
103
+ //mod_authn_dbd.c
104
+ 'AuthDBDUserPWQuery','AuthDBDUserRealmQuery',
105
+
106
+ //mod_authn_dbm.c
107
+ 'AuthDBMType','AuthDBMUserFile',
108
+
109
+ //mod_authn_default.c
110
+ 'AuthDefaultAuthoritative',
111
+
112
+ //mod_authn_file.c
113
+ 'AuthUserFile',
114
+
115
+ //mod_authnz_ldap.c
116
+ 'AuthLDAPBindDN','AuthLDAPBindPassword','AuthLDAPCharsetConfig',
117
+ 'AuthLDAPCompareDNOnServer','AuthLDAPDereferenceAliases',
118
+ 'AuthLDAPGroupAttribute','AuthLDAPGroupAttributeIsDN',
119
+ 'AuthLDAPRemoteUserAttribute','AuthLDAPRemoteUserIsDN',
120
+ 'AuthLDAPURL','AuthzLDAPAuthoritative',
121
+
122
+ //mod_authz_dbm.c
123
+ 'AuthDBMGroupFile','AuthzDBMAuthoritative','AuthzDBMType',
124
+
125
+ //mod_authz_default.c
126
+ 'AuthzDefaultAuthoritative',
127
+
128
+ //mod_authz_groupfile.c
129
+ 'AuthGroupFile','AuthzGroupFileAuthoritative',
130
+
131
+ //mod_authz_host.c
132
+ 'Allow','Deny','Order',
133
+
134
+ //mod_authz_owner.c
135
+ 'AuthzOwnerAuthoritative',
136
+
137
+ //mod_authz_svn.c
138
+ 'AuthzForceUsernameCase','AuthzSVNAccessFile','AuthzSVNAnonymous',
139
+ 'AuthzSVNAuthoritative','AuthzSVNNoAuthWhenAnonymousAllowed',
140
+
141
+ //mod_authz_user.c
142
+ 'AuthzUserAuthoritative',
143
+
144
+ //mod_autoindex.c
145
+ 'AddAlt','AddAltByEncoding','AddAltByType','AddDescription',
146
+ 'AddIcon','AddIconByEncoding','AddIconByType','DefaultIcon',
147
+ 'FancyIndexing','HeaderName','IndexHeadInsert','IndexIgnore',
148
+ 'IndexOptions','IndexOrderDefault','IndexStyleSheet','ReadmeName',
149
+
150
+ //mod_bt.c
151
+ 'Tracker','TrackerDetailURL','TrackerFlags','TrackerHashMaxAge',
152
+ 'TrackerHashMinAge','TrackerHashWatermark','TrackerHome',
153
+ 'TrackerReturnInterval','TrackerReturnMax',
154
+ 'TrackerReturnPeerFactor','TrackerReturnPeers','TrackerRootInclude',
155
+ 'TrackerStyleSheet',
156
+
157
+ //mod_bw.c
158
+ 'BandWidth','BandWidthError','BandWidthModule','BandWidthPacket',
159
+ 'ForceBandWidthModule','LargeFileLimit','MaxConnection',
160
+ 'MinBandWidth',
161
+
162
+ //mod_cache.c
163
+ 'CacheDefaultExpire','CacheDisable','CacheEnable',
164
+ 'CacheIgnoreCacheControl','CacheIgnoreHeaders',
165
+ 'CacheIgnoreNoLastMod','CacheIgnoreQueryString',
166
+ 'CacheLastModifiedFactor','CacheMaxExpire','CacheStoreNoStore',
167
+ 'CacheStorePrivate',
168
+
169
+ //mod_cern_meta.c
170
+ 'MetaDir','MetaFiles','MetaSuffix',
171
+
172
+ //mod_cgi.c
173
+ 'ScriptLog','ScriptLogBuffer','ScriptLogLength',
174
+
175
+ //mod_charset_lite.c
176
+ 'CharsetDefault','CharsetOptions','CharsetSourceEnc',
177
+
178
+ //mod_dav.c
179
+ 'DAV','DAVDepthInfinity','DAVMinTimeout',
180
+
181
+ //mod_dav_fs.c
182
+ 'DAVLockDB',
183
+
184
+ //mod_dav_lock.c
185
+ 'DAVGenericLockDB',
186
+
187
+ //mod_dav_svn.c
188
+ 'SVNActivitiesDB','SVNAllowBulkUpdates','SVNAutoversioning',
189
+ 'SVNIndexXSLT','SVNListParentPath','SVNMasterURI','SVNParentPath',
190
+ 'SVNPath','SVNPathAuthz','SVNReposName','SVNSpecialURI',
191
+
192
+ //mod_dbd.c
193
+ 'DBDExptime','DBDKeep','DBDMax','DBDMin','DBDParams','DBDPersist',
194
+ 'DBDPrepareSQL','DBDriver',
195
+
196
+ //mod_deflate.c
197
+ 'DeflateBufferSize','DeflateCompressionLevel','DeflateFilterNote',
198
+ 'DeflateMemLevel','DeflateWindowSize',
199
+
200
+ //mod_dir.c
201
+ 'DirectoryIndex','DirectorySlash',
202
+
203
+ //mod_disk_cache.c
204
+ 'CacheDirLength','CacheDirLevels','CacheMaxFileSize',
205
+ 'CacheMinFileSize','CacheRoot',
206
+
207
+ //mod_dumpio.c
208
+ 'DumpIOInput','DumpIOLogLevel','DumpIOOutput',
209
+
210
+ //mod_env.c
211
+ 'PassEnv','SetEnv','UnsetEnv',
212
+
213
+ //mod_expires.c
214
+ 'ExpiresActive','ExpiresByType','ExpiresDefault',
215
+
216
+ //mod_ext_filter.c
217
+ 'ExtFilterDefine','ExtFilterOptions',
218
+
219
+ //mod_file_cache.c
220
+ 'cachefile','mmapfile',
221
+
222
+ //mod_filter.c
223
+ 'FilterChain','FilterDeclare','FilterProtocol','FilterProvider',
224
+ 'FilterTrace',
225
+
226
+ //mod_gnutls.c
227
+ 'GnuTLSCache','GnuTLSCacheTimeout','GnuTLSCertificateFile',
228
+ 'GnuTLSKeyFile','GnuTLSPGPCertificateFile','GnuTLSPGPKeyFile',
229
+ 'GnuTLSClientVerify','GnuTLSClientCAFile','GnuTLSPGPKeyringFile',
230
+ 'GnuTLSEnable','GnuTLSDHFile','GnuTLSRSAFile','GnuTLSSRPPasswdFile',
231
+ 'GnuTLSSRPPasswdConfFile','GnuTLSPriorities',
232
+ 'GnuTLSExportCertificates',
233
+
234
+ //mod_headers.c
235
+ 'Header','RequestHeader',
236
+
237
+ //mod_imagemap.c
238
+ 'ImapBase','ImapDefault','ImapMenu',
239
+
240
+ //mod_include.c
241
+ 'SSIAccessEnable','SSIEndTag','SSIErrorMsg','SSIStartTag',
242
+ 'SSITimeFormat','SSIUndefinedEcho','XBitHack',
243
+
244
+ //mod_ident.c
245
+ 'IdentityCheck','IdentityCheckTimeout',
246
+
247
+ //mod_info.c
248
+ 'AddModuleInfo',
249
+
250
+ //mod_isapi.c
251
+ 'ISAPIAppendLogToErrors','ISAPIAppendLogToQuery','ISAPICacheFile',
252
+ 'ISAPIFakeAsync','ISAPILogNotSupported','ISAPIReadAheadBuffer',
253
+
254
+ //mod_log_config.c
255
+ 'BufferedLogs','CookieLog','CustomLog','LogFormat','TransferLog',
256
+
257
+ //mod_log_forensic.c
258
+ 'ForensicLog',
259
+
260
+ //mod_log_rotate.c
261
+ 'RotateInterval','RotateLogs','RotateLogsLocalTime',
262
+
263
+ //mod_logio.c
264
+
265
+ //mod_mem_cache.c
266
+ 'MCacheMaxObjectCount','MCacheMaxObjectSize',
267
+ 'MCacheMaxStreamingBuffer','MCacheMinObjectSize',
268
+ 'MCacheRemovalAlgorithm','MCacheSize',
269
+
270
+ //mod_mime.c
271
+ 'AddCharset','AddEncoding','AddHandler','AddInputFilter',
272
+ 'AddLanguage','AddOutputFilter','AddType','DefaultLanguage',
273
+ 'ModMimeUsePathInfo','MultiviewsMatch','RemoveCharset',
274
+ 'RemoveEncoding','RemoveHandler','RemoveInputFilter',
275
+ 'RemoveLanguage','RemoveOutputFilter','RemoveType','TypesConfig',
276
+
277
+ //mod_mime_magic.c
278
+ 'MimeMagicFile',
279
+
280
+ //mod_negotiation.c
281
+ 'CacheNegotiatedDocs','ForceLanguagePriority','LanguagePriority',
282
+
283
+ //mod_php5.c
284
+ 'php_admin_flag','php_admin_value','php_flag','php_value',
285
+ 'PHPINIDir',
286
+
287
+ //mod_proxy.c
288
+ 'AllowCONNECT','BalancerMember','NoProxy','ProxyBadHeader',
289
+ 'ProxyBlock','ProxyDomain','ProxyErrorOverride',
290
+ 'ProxyFtpDirCharset','ProxyIOBufferSize','ProxyMaxForwards',
291
+ 'ProxyPass','ProxyPassInterpolateEnv','ProxyPassMatch',
292
+ 'ProxyPassReverse','ProxyPassReverseCookieDomain',
293
+ 'ProxyPassReverseCookiePath','ProxyPreserveHost',
294
+ 'ProxyReceiveBufferSize','ProxyRemote','ProxyRemoteMatch',
295
+ 'ProxyRequests','ProxySet','ProxyStatus','ProxyTimeout','ProxyVia',
296
+
297
+ //mod_proxy_ajp.c
298
+
299
+ //mod_proxy_balancer.c
300
+
301
+ //mod_proxy_connect.c
302
+
303
+ //mod_proxy_ftp.c
304
+
305
+ //mod_proxy_http.c
306
+
307
+ //mod_rewrite.c
308
+ 'RewriteBase','RewriteCond','RewriteEngine','RewriteLock',
309
+ 'RewriteLog','RewriteLogLevel','RewriteMap','RewriteOptions',
310
+ 'RewriteRule',
311
+
312
+ //mod_setenvif.c
313
+ 'BrowserMatch','BrowserMatchNoCase','SetEnvIf','SetEnvIfNoCase',
314
+
315
+ //mod_so.c
316
+ 'LoadFile','LoadModule',
317
+
318
+ //mod_speling.c
319
+ 'CheckCaseOnly','CheckSpelling',
320
+
321
+ //mod_ssl.c
322
+ 'SSLCACertificateFile','SSLCACertificatePath','SSLCADNRequestFile',
323
+ 'SSLCADNRequestPath','SSLCARevocationFile','SSLCARevocationPath',
324
+ 'SSLCertificateChainFile','SSLCertificateFile',
325
+ 'SSLCertificateKeyFile','SSLCipherSuite','SSLCryptoDevice',
326
+ 'SSLEngine','SSLHonorCipherOrder','SSLMutex','SSLOptions',
327
+ 'SSLPassPhraseDialog','SSLProtocol','SSLProxyCACertificateFile',
328
+ 'SSLProxyCACertificatePath','SSLProxyCARevocationFile',
329
+ 'SSLProxyCARevocationPath','SSLProxyCipherSuite','SSLProxyEngine',
330
+ 'SSLProxyMachineCertificateFile','SSLProxyMachineCertificatePath',
331
+ 'SSLProxyProtocol','SSLProxyVerify','SSLProxyVerifyDepth',
332
+ 'SSLRandomSeed','SSLRenegBufferSize','SSLRequire','SSLRequireSSL',
333
+ 'SSLSessionCache','SSLSessionCacheTimeout','SSLUserName',
334
+ 'SSLVerifyClient','SSLVerifyDepth',
335
+
336
+ //mod_status.c
337
+ 'ExtendedStatus','SeeRequestTail',
338
+
339
+ //mod_substitute.c
340
+ 'Substitute',
341
+
342
+ //mod_suexec.c
343
+ 'SuexecUserGroup',
344
+
345
+ //mod_unique_id.c
346
+
347
+ //mod_upload_progress
348
+ 'ReportUploads', 'TrackUploads', 'UploadProgressSharedMemorySize',
349
+
350
+ //mod_userdir.c
351
+ 'UserDir',
352
+
353
+ //mod_usertrack.c
354
+ 'CookieDomain','CookieExpires','CookieName','CookieStyle',
355
+ 'CookieTracking',
356
+
357
+ //mod_version.c
358
+
359
+ //mod_vhost_alias.c
360
+ 'VirtualDocumentRoot','VirtualDocumentRootIP',
361
+ 'VirtualScriptAlias','VirtualScriptAliasIP',
362
+
363
+ //mod_view.c
364
+ 'ViewEnable',
365
+
366
+ //mod_win32.c
367
+ 'ScriptInterpreterSource',
368
+
369
+ //mpm_winnt.c
370
+ 'Listen','ListenBacklog','ReceiveBufferSize','SendBufferSize',
371
+ 'ThreadLimit','ThreadsPerChild','Win32DisableAcceptEx',
372
+
373
+ //mpm_common.c
374
+ 'AcceptMutex','AddModule','ClearModuleList','EnableExceptionHook',
375
+ 'Group','LockFile','MaxClients','MaxSpareServers','MaxSpareThreads',
376
+ 'MinSpareServers','MinSpareThreads','ServerLimit','StartServers',
377
+ 'StartThreads','User',
378
+
379
+ //util_ldap.c
380
+ 'LDAPCacheEntries','LDAPCacheTTL','LDAPConnectionTimeout',
381
+ 'LDAPOpCacheEntries','LDAPOpCacheTTL','LDAPSharedCacheFile',
382
+ 'LDAPSharedCacheSize','LDAPTrustedClientCert',
383
+ 'LDAPTrustedGlobalCert','LDAPTrustedMode','LDAPVerifyServerCert',
384
+
385
+ //Unknown Mods ...
386
+ 'AgentLog','BindAddress','bs2000account','CacheForceCompletion',
387
+ 'CacheGCInterval','CacheSize','NoCache','qsc','RefererIgnore',
388
+ 'RefererLog','Resourceconfig','ServerType','SingleListen'
389
+ ),
390
+ /*keywords 2*/
391
+ 2 => array(
392
+ 'all','on','off','standalone','inetd','indexes',
393
+ 'force-response-1.0','downgrade-1.0','nokeepalive',
394
+ 'includes','followsymlinks','none',
395
+ 'x-compress','x-gzip'
396
+ ),
397
+ /*keywords 3*/
398
+ 3 => array(
399
+ //core.c
400
+ 'Directory','DirectoryMatch','Files','FilesMatch','IfDefine',
401
+ 'IfModule','Limit','LimitExcept','Location','LocationMatch',
402
+ 'VirtualHost',
403
+
404
+ //mod_authn_alias.c
405
+ 'AuthnProviderAlias',
406
+
407
+ //mod_proxy.c
408
+ 'Proxy','ProxyMatch',
409
+
410
+ //mod_version.c
411
+ 'IfVersion'
412
+ )
413
+ ),
414
+ 'SYMBOLS' => array(
415
+ '+', '-'
416
+ ),
417
+ 'CASE_SENSITIVE' => array(
418
+ GESHI_COMMENTS => false,
419
+ 1 => false,
420
+ 2 => false,
421
+ 3 => false,
422
+ ),
423
+ 'STYLES' => array(
424
+ 'KEYWORDS' => array(
425
+ 1 => 'color: #00007f;',
426
+ 2 => 'color: #0000ff;',
427
+ 3 => 'color: #000000; font-weight:bold;',
428
+ ),
429
+ 'COMMENTS' => array(
430
+ 1 => 'color: #adadad; font-style: italic;',
431
+ ),
432
+ 'ESCAPE_CHAR' => array(
433
+ 0 => 'color: #000099; font-weight: bold;'
434
+ ),
435
+ 'BRACKETS' => array(
436
+ 0 => 'color: #339933;'
437
+ ),
438
+ 'STRINGS' => array(
439
+ 0 => 'color: #7f007f;'
440
+ ),
441
+ 'NUMBERS' => array(
442
+ 0 => 'color: #ff0000;'
443
+ ),
444
+ 'METHODS' => array(
445
+ ),
446
+ 'SYMBOLS' => array(
447
+ 0 => 'color: #008000;'
448
+ ),
449
+ 'REGEXPS' => array(
450
+ ),
451
+ 'SCRIPT' => array(
452
+ )
453
+ ),
454
+ 'URLS' => array(
455
+ 1 => '',
456
+ 2 => '',
457
+ 3 => ''
458
+ ),
459
+ 'OOLANG' => false,
460
+ 'OBJECT_SPLITTERS' => array(
461
+ ),
462
+ 'REGEXPS' => array(
463
+ ),
464
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
465
+ 'SCRIPT_DELIMITERS' => array(
466
+ ),
467
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
468
+ ),
469
+ 'PARSER_CONTROL' => array(
470
+ 'ENABLE_FLAGS' => array(
471
+ 'BRACKETS' => GESHI_NEVER,
472
+ 'SYMBOLS' => GESHI_NEVER
473
+ ),
474
+ 'KEYWORDS' => array(
475
+ 3 => array(
476
+ 'DISALLOWED_BEFORE' => '(?<=&lt;|&lt;\/)',
477
+ 'DISALLOWED_AFTER' => '(?=\s|\/|&gt;)',
478
+ )
479
+ )
480
+ )
481
+ );
includes/geshi/applescript.php ADDED
@@ -0,0 +1,155 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * applescript.php
4
+ * --------
5
+ * Author: Stephan Klimek (http://www.initware.org)
6
+ * Copyright: Stephan Klimek (http://www.initware.org)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2005/07/20
9
+ *
10
+ * AppleScript language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2008/05/23 (1.0.7.22)
15
+ * - Added description of extra language features (SF#1970248)
16
+ *
17
+ * TODO
18
+ * -------------------------
19
+ * URL settings to references
20
+ *
21
+ **************************************************************************************
22
+ *
23
+ * This file is part of GeSHi.
24
+ *
25
+ * GeSHi is free software; you can redistribute it and/or modify
26
+ * it under the terms of the GNU General Public License as published by
27
+ * the Free Software Foundation; either version 2 of the License, or
28
+ * (at your option) any later version.
29
+ *
30
+ * GeSHi is distributed in the hope that it will be useful,
31
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
32
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33
+ * GNU General Public License for more details.
34
+ *
35
+ * You should have received a copy of the GNU General Public License
36
+ * along with GeSHi; if not, write to the Free Software
37
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
38
+ *
39
+ ************************************************************************************/
40
+
41
+ $language_data = array (
42
+ 'LANG_NAME' => 'AppleScript',
43
+ 'COMMENT_SINGLE' => array(1 => '--'),
44
+ 'COMMENT_MULTI' => array( '(*' => '*)'),
45
+ 'COMMENT_REGEXP' => array(
46
+ 2 => '/(?<=[a-z])\'/i',
47
+ 3 => '/(?<![a-z])\'.*?\'/i',
48
+ ),
49
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
50
+ 'QUOTEMARKS' => array('"'),
51
+ 'ESCAPE_CHAR' => '\\',
52
+ 'KEYWORDS' => array(
53
+ 1 => array(
54
+ 'application','close','count','delete','duplicate','exists','launch','make','move','open',
55
+ 'print','quit','reopen','run','save','saving', 'idle', 'path to', 'number', 'alias', 'list', 'text', 'string',
56
+ 'integer', 'it','me','version','pi','result','space','tab','anything','case','diacriticals','expansion',
57
+ 'hyphens','punctuation','bold','condensed','expanded','hidden','italic','outline','plain',
58
+ 'shadow','strikethrough','subscript','superscript','underline','ask','no','yes','false', 'id',
59
+ 'true','weekday','monday','mon','tuesday','tue','wednesday','wed','thursday','thu','friday',
60
+ 'fri','saturday','sat','sunday','sun','month','january','jan','february','feb','march',
61
+ 'mar','april','apr','may','june','jun','july','jul','august','aug','september', 'quote', 'do JavaScript',
62
+ 'sep','october','oct','november','nov','december','dec','minutes','hours', 'name', 'default answer',
63
+ 'days','weeks', 'folder', 'folders', 'file', 'files', 'window', 'eject', 'disk', 'reveal', 'sleep',
64
+ 'shut down', 'restart', 'display dialog', 'buttons', 'invisibles', 'item', 'items', 'delimiters', 'offset of',
65
+ 'AppleScript\'s', 'choose file', 'choose folder', 'choose from list', 'beep', 'contents', 'do shell script',
66
+ 'paragraph', 'paragraphs', 'missing value', 'quoted form', 'desktop', 'POSIX path', 'POSIX file',
67
+ 'activate', 'document', 'adding', 'receiving', 'content', 'new', 'properties', 'info for', 'bounds',
68
+ 'selection', 'extension', 'into', 'onto', 'by', 'between', 'against', 'set the clipboard to', 'the clipboard'
69
+ ),
70
+ 2 => array(
71
+ 'each','some','every','whose','where','index','first','second','third','fourth',
72
+ 'fifth','sixth','seventh','eighth','ninth','tenth','last','front','back','st','nd',
73
+ 'rd','th','middle','named','through','thru','before','after','beginning','the', 'as',
74
+ 'div','mod','and','not','or','contains','equal','equals','isnt', 'less', 'greater'
75
+ ),
76
+ 3 => array(
77
+ 'script','property','prop','end','to','set','global','local','on','of',
78
+ 'in','given','with','without','return','continue','tell','if','then','else','repeat',
79
+ 'times','while','until','from','exit','try','error','considering','ignoring','timeout',
80
+ 'transaction','my','get','put','is', 'copy'
81
+ )
82
+ ),
83
+ 'SYMBOLS' => array(
84
+ ')','+','-','^','*','/','&','<','>=','<','<=','=','�'
85
+ ),
86
+ 'CASE_SENSITIVE' => array(
87
+ GESHI_COMMENTS => false,
88
+ 1 => false,
89
+ 2 => false,
90
+ 3 => false,
91
+ ),
92
+ 'STYLES' => array(
93
+ 'KEYWORDS' => array(
94
+ 1 => 'color: #0066ff;',
95
+ 2 => 'color: #ff0033;',
96
+ 3 => 'color: #ff0033; font-weight: bold;'
97
+ ),
98
+ 'COMMENTS' => array(
99
+ 1 => 'color: #808080; font-style: italic;',
100
+ 2 => '',
101
+ 3 => 'color: #ff0000;',
102
+ 'MULTI' => 'color: #808080; font-style: italic;'
103
+ ),
104
+ 'ESCAPE_CHAR' => array(
105
+ 0 => 'color: #000000; font-weight: bold;'
106
+ ),
107
+ 'BRACKETS' => array(
108
+ 0 => 'color: #000000;'
109
+ ),
110
+ 'STRINGS' => array(
111
+ 0 => 'color: #009900;'
112
+ ),
113
+ 'NUMBERS' => array(
114
+ 0 => 'color: #000000;'
115
+ ),
116
+ 'METHODS' => array(
117
+ 1 => 'color: #006600;',
118
+ 2 => 'color: #006600;'
119
+ ),
120
+ 'SYMBOLS' => array(
121
+ 0 => 'color: #000000;'
122
+ ),
123
+ 'REGEXPS' => array(
124
+ 0 => 'color: #339933;',
125
+ 4 => 'color: #0066ff;',
126
+ ),
127
+ 'SCRIPT' => array(
128
+ )
129
+ ),
130
+ 'URLS' => array(
131
+ 1 => '',
132
+ 2 => '',
133
+ 3 => ''
134
+ ),
135
+ 'OOLANG' => true,
136
+ 'OBJECT_SPLITTERS' => array(
137
+ 1 => ',+-=&lt;&gt;/?^&amp;*'
138
+ ),
139
+ 'REGEXPS' => array(
140
+ //Variables
141
+ 0 => '[\\$%@]+[a-zA-Z_][a-zA-Z0-9_]*',
142
+ //File descriptors
143
+ 4 => '&lt;[a-zA-Z_][a-zA-Z0-9_]*&gt;',
144
+ ),
145
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
146
+ 'SCRIPT_DELIMITERS' => array(
147
+ ),
148
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
149
+ ),
150
+ 'PARSER_CONTROL' => array(
151
+ 'KEYWORDS' => array(
152
+ 'SPACE_AS_WHITESPACE' => true
153
+ )
154
+ )
155
+ );
includes/geshi/apt_sources.php ADDED
@@ -0,0 +1,153 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * apt_sources.php
4
+ * ----------
5
+ * Author: Milian Wolff (mail@milianw.de)
6
+ * Copyright: (c) 2008 Milian Wolff (http://milianw.de)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2008/06/17
9
+ *
10
+ * Apt sources.list language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2008/06/17 (1.0.8)
15
+ * - Initial import
16
+ *
17
+ *************************************************************************************
18
+ *
19
+ * This file is part of GeSHi.
20
+ *
21
+ * GeSHi is free software; you can redistribute it and/or modify
22
+ * it under the terms of the GNU General Public License as published by
23
+ * the Free Software Foundation; either version 2 of the License, or
24
+ * (at your option) any later version.
25
+ *
26
+ * GeSHi is distributed in the hope that it will be useful,
27
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
28
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29
+ * GNU General Public License for more details.
30
+ *
31
+ * You should have received a copy of the GNU General Public License
32
+ * along with GeSHi; if not, write to the Free Software
33
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
34
+ *
35
+ ************************************************************************************/
36
+
37
+ $language_data = array (
38
+ 'LANG_NAME' => 'Apt sources',
39
+ 'COMMENT_SINGLE' => array(1 => '#'),
40
+ 'COMMENT_MULTI' => array(),
41
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
42
+ 'QUOTEMARKS' => array(),
43
+ 'ESCAPE_CHAR' => '\\',
44
+ 'KEYWORDS' => array(
45
+ /*keywords*/
46
+ 1 => array(
47
+ 'deb-src', 'deb'
48
+ ),
49
+ 2 => array(
50
+ //Generic
51
+ 'stable', 'old-stable', 'testing', 'testing-proposed-updates',
52
+ 'unstable', 'unstable-proposed-updates', 'experimental',
53
+ 'non-US', 'security', 'volatile', 'volatile-sloppy',
54
+ 'apt-build',
55
+ 'stable/updates',
56
+ //Debian
57
+ 'buzz', 'rex', 'bo', 'hamm', 'slink', 'potato', 'woody', 'sarge',
58
+ 'etch', 'lenny', 'wheezy', 'jessie', 'sid',
59
+ //Ubuntu
60
+ 'warty', 'warty-updates', 'warty-security', 'warty-proposed', 'warty-backports',
61
+ 'hoary', 'hoary-updates', 'hoary-security', 'hoary-proposed', 'hoary-backports',
62
+ 'breezy', 'breezy-updates', 'breezy-security', 'breezy-proposed', 'breezy-backports',
63
+ 'dapper', 'dapper-updates', 'dapper-security', 'dapper-proposed', 'dapper-backports',
64
+ 'edgy', 'edgy-updates', 'edgy-security', 'edgy-proposed', 'edgy-backports',
65
+ 'feisty', 'feisty-updates', 'feisty-security', 'feisty-proposed', 'feisty-backports',
66
+ 'gutsy', 'gutsy-updates', 'gutsy-security', 'gutsy-proposed', 'gutsy-backports',
67
+ 'hardy', 'hardy-updates', 'hardy-security', 'hardy-proposed', 'hardy-backports',
68
+ 'intrepid', 'intrepid-updates', 'intrepid-security', 'intrepid-proposed', 'intrepid-backports',
69
+ 'jaunty', 'jaunty-updates', 'jaunty-security', 'jaunty-proposed', 'jaunty-backports',
70
+ 'karmic', 'karmic-updates', 'karmic-security', 'karmic-proposed', 'karmic-backports',
71
+ 'lucid', 'lucid-updates', 'lucid-security', 'lucid-proposed', 'lucid-backports',
72
+ 'maverick', 'maverick-updates', 'maverick-security', 'maverick-proposed', 'maverick-backports',
73
+ 'natty', 'natty-updates', 'natty-security', 'natty-proposed', 'natty-backports',
74
+ 'oneiric', 'oneiric-updates', 'oneiric-security', 'oneiric-proposed', 'oneiric-backports',
75
+ 'precise', 'precise-updates', 'precise-security', 'precise-proposed', 'precise-backports',
76
+ 'quantal', 'quantal-updates', 'quantal-security', 'quantal-proposed', 'quantal-backports',
77
+ 'raring', 'raring-updates', 'raring-security', 'raring-proposed', 'raring-backports',
78
+ 'saucy', 'saucy-updates', 'saucy-security', 'saucy-proposed', 'saucy-backports',
79
+ 'trusty', 'trusty-updates', 'trusty-security', 'trusty-proposed', 'trusty-backports'
80
+ ),
81
+ 3 => array(
82
+ 'main', 'restricted', 'preview', 'contrib', 'non-free',
83
+ 'commercial', 'universe', 'multiverse'
84
+ )
85
+ ),
86
+ 'REGEXPS' => array(
87
+ 0 => "(((http|ftp):\/\/|file:\/)[^\s]+)|(cdrom:\[[^\]]*\][^\s]*)",
88
+ ),
89
+ 'SYMBOLS' => array(
90
+ ),
91
+ 'CASE_SENSITIVE' => array(
92
+ GESHI_COMMENTS => false,
93
+ 1 => false,
94
+ 2 => true,
95
+ 3 => true
96
+ ),
97
+ 'STYLES' => array(
98
+ 'KEYWORDS' => array(
99
+ 1 => 'color: #00007f;',
100
+ 2 => 'color: #b1b100;',
101
+ 3 => 'color: #b16000;'
102
+ ),
103
+ 'COMMENTS' => array(
104
+ 1 => 'color: #adadad; font-style: italic;',
105
+ ),
106
+ 'ESCAPE_CHAR' => array(
107
+ ),
108
+ 'BRACKETS' => array(
109
+ ),
110
+ 'STRINGS' => array(
111
+ ),
112
+ 'NUMBERS' => array(
113
+ ),
114
+ 'METHODS' => array(
115
+ ),
116
+ 'SYMBOLS' => array(
117
+ ),
118
+ 'REGEXPS' => array(
119
+ 0 => 'color: #009900;',
120
+ ),
121
+ 'SCRIPT' => array(
122
+ )
123
+ ),
124
+ 'URLS' => array(
125
+ 1 => '',
126
+ 2 => '',
127
+ 3 => ''
128
+ ),
129
+ 'OOLANG' => false,
130
+ 'OBJECT_SPLITTERS' => array(
131
+ ),
132
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
133
+ 'SCRIPT_DELIMITERS' => array(
134
+ ),
135
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
136
+ ),
137
+ 'PARSER_CONTROL' => array(
138
+ 'ENABLE_FLAGS' => array(
139
+ 'NUMBERS' => GESHI_NEVER,
140
+ 'METHODS' => GESHI_NEVER,
141
+ 'SCRIPT' => GESHI_NEVER,
142
+ 'SYMBOLS' => GESHI_NEVER,
143
+ 'ESCAPE_CHAR' => GESHI_NEVER,
144
+ 'BRACKETS' => GESHI_NEVER,
145
+ 'STRINGS' => GESHI_NEVER,
146
+ ),
147
+ 'KEYWORDS' => array(
148
+ 'DISALLOWED_BEFORE' => '(?<![a-zA-Z0-9\$_\|\#;>|^\/])',
149
+ 'DISALLOWED_AFTER' => '(?![a-zA-Z0-9_\|%\\-&\.])'
150
+ )
151
+ ),
152
+ 'TAB_WIDTH' => 4
153
+ );
includes/geshi/arm.php ADDED
@@ -0,0 +1,3316 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * arm.php
4
+ * -------
5
+ * Author: Marat Dukhan (mdukhan3.at.gatech.dot.edu)
6
+ * Copyright: (c) Marat Dukhan (mdukhan3.at.gatech.dot.edu)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2011/10/06
9
+ *
10
+ * ARM Assembler language file for GeSHi.
11
+ * Based on the following documents:
12
+ * - "ARM Architecture Reference Manual: ARMv7-A and ARMv7-R edition"
13
+ * - "Intel XScale Technology: Intel Wireless MMX2 Coprocessor",
14
+ * Revision 1.5, July 2006
15
+ *
16
+ * CHANGES
17
+ * -------
18
+ * 2011/10/06
19
+ * - First Release (supported UAL syntax for up to ARMv7 A/R, VFPv3, NEON, WMMX/WMMX2)
20
+ *
21
+ * TODO (updated 2011/10/06)
22
+ * -------------------------
23
+ *
24
+ *************************************************************************************
25
+ *
26
+ * This file is part of GeSHi.
27
+ *
28
+ * GeSHi is free software; you can redistribute it and/or modify
29
+ * it under the terms of the GNU General Public License as published by
30
+ * the Free Software Foundation; either version 2 of the License, or
31
+ * (at your option) any later version.
32
+ *
33
+ * GeSHi is distributed in the hope that it will be useful,
34
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
35
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36
+ * GNU General Public License for more details.
37
+ *
38
+ * You should have received a copy of the GNU General Public License
39
+ * along with GeSHi; if not, write to the Free Software
40
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
41
+ *
42
+ ************************************************************************************/
43
+
44
+ $language_data = array (
45
+ 'LANG_NAME' => 'ARM ASSEMBLER',
46
+ 'COMMENT_SINGLE' => array(
47
+ 1 => ';'
48
+ ),
49
+ 'COMMENT_MULTI' => array(),
50
+ //Line address prefix suppression
51
+ 'COMMENT_REGEXP' => array(
52
+ 2 => "/^(?:[0-9a-f]{0,4}:)?[0-9a-f]{4}(?:[0-9a-f]{4})?/mi"
53
+ ),
54
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
55
+ 'QUOTEMARKS' => array("'", '"'),
56
+ 'ESCAPE_CHAR' => '',
57
+ 'KEYWORDS' => array(
58
+ /* Unconditional Data Processing Instructions */
59
+ 1 => array(
60
+ /* Data Processing: Unconditional Addition & Subtraction */
61
+ 'adc.w','adcal.w',
62
+ 'adc','adcal',
63
+ 'add.w','addal.w',
64
+ 'add','addal',
65
+ 'addw','addwal',
66
+ 'rsb.w','rsbal.w',
67
+ 'rsb','rsbal',
68
+ 'rsc','rscal',
69
+ 'sbc.w','sbcal.w',
70
+ 'sbc','sbcal',
71
+ 'sub.w','subal.w',
72
+ 'sub','subal',
73
+ 'neg.w','negal.w',
74
+ 'neg','negal',
75
+ 'adr.w','adral.w',
76
+ 'adr','adral',
77
+ /* Data Processing: Unconditional Logical */
78
+ 'and.w','andal.w',
79
+ 'and','andal',
80
+ 'bic.w','bical.w',
81
+ 'bic','bical',
82
+ 'orr.w','orral.w',
83
+ 'orr','orral',
84
+ 'orn.w','ornal.w',
85
+ 'orn','ornal',
86
+ 'eor.w','eoral.w',
87
+ 'eor','eoral',
88
+ 'mov.w','moval.w',
89
+ 'mov','moval',
90
+ 'movw','movwal',
91
+ 'movt','movtal',
92
+ 'cpy','cpyal',
93
+ 'mvn.w','mvnal.w',
94
+ 'mvn','mvnal',
95
+ /* Data Processing: Unconditional Shifts and Rotates */
96
+ 'asr.w','asral.w',
97
+ 'asr','asral',
98
+ 'lsl.w','lslal.w',
99
+ 'lsl','lslal',
100
+ 'lsr.w','lsral.w',
101
+ 'lsr','lsral',
102
+ 'ror.w','roral.w',
103
+ 'ror','roral',
104
+ 'rrx','rrxal',
105
+ /* Data Processing: Unconditional Word Multiply and Multiply-Add */
106
+ 'mul','mulal',
107
+ 'mla','mlaal',
108
+ 'mls','mlsal',
109
+ 'smull','smullal',
110
+ 'muls','mulsal',
111
+ 'umull','umullal',
112
+ 'smlal','smlalal',
113
+ 'umlal','umlalal',
114
+ /* Data Processing: Unconditional Halfword Multiply and Multiply-Add (ARMv5TE) */
115
+ 'smulbb','smulbbal',
116
+ 'smulbt','smulbtal',
117
+ 'smultb','smultbal',
118
+ 'smultt','smulttal',
119
+ 'smulwb','smulwbal',
120
+ 'smulwt','smulwtal',
121
+ 'smlalbb','smlalbbal',
122
+ 'smlalbt','smlalbtal',
123
+ 'smlaltb','smlaltbal',
124
+ 'smlaltt','smlalttal',
125
+ 'smlabb','smlabbal',
126
+ 'smlabt','smlabtal',
127
+ 'smlatb','smlatbal',
128
+ 'smlatt','smlattal',
129
+ 'smlawb','smlawbal',
130
+ 'smlawt','smlawtal',
131
+ /* Data Processing: Unconditional Bit Operations */
132
+ 'ubfx','ubfxal',
133
+ 'sbfx','sbfxal',
134
+ 'bfc','bfcal',
135
+ 'bfi','bfial',
136
+ 'clz','clzal',
137
+ /* Data Processing: Unconditional Divide (ARMv7-R) */
138
+ 'sdiv','sdival',
139
+ 'udiv','udival'
140
+ ),
141
+ /* Conditional Data Processing Instructions */
142
+ 2 => array(
143
+ /* Data Processing: Conditional Addition & Subtraction */
144
+ 'adceq.w','adcne.w','adccs.w','adchs.w','adccc.w','adclo.w','adcmi.w','adcpl.w','adcvs.w','adcvc.w','adchi.w','adcls.w','adcge.w','adclt.w','adcgt.w','adcle.w',
145
+ 'adceq','adcne','adccs','adchs','adccc','adclo','adcmi','adcpl','adcvs','adcvc','adchi','adcls','adcge','adclt','adcgt','adcle',
146
+ 'addeq.w','addne.w','addcs.w','addhs.w','addcc.w','addlo.w','addmi.w','addpl.w','addvs.w','addvc.w','addhi.w','addls.w','addge.w','addlt.w','addgt.w','addle.w',
147
+ 'addeq','addne','addcs','addhs','addcc','addlo','addmi','addpl','addvs','addvc','addhi','addls','addge','addlt','addgt','addle',
148
+ 'addweq','addwne','addwcs','addwhs','addwcc','addwlo','addwmi','addwpl','addwvs','addwvc','addwhi','addwls','addwge','addwlt','addwgt','addwle',
149
+ 'rsbeq.w','rsbne.w','rsbcs.w','rsbhs.w','rsbcc.w','rsblo.w','rsbmi.w','rsbpl.w','rsbvs.w','rsbvc.w','rsbhi.w','rsbls.w','rsbge.w','rsblt.w','rsbgt.w','rsble.w',
150
+ 'rsbeq','rsbne','rsbcs','rsbhs','rsbcc','rsblo','rsbmi','rsbpl','rsbvs','rsbvc','rsbhi','rsbls','rsbge','rsblt','rsbgt','rsble',
151
+ 'rsceq','rscne','rsccs','rschs','rsccc','rsclo','rscmi','rscpl','rscvs','rscvc','rschi','rscls','rscge','rsclt','rscgt','rscle',
152
+ 'sbceq.w','sbcne.w','sbccs.w','sbchs.w','sbccc.w','sbclo.w','sbcmi.w','sbcpl.w','sbcvs.w','sbcvc.w','sbchi.w','sbcls.w','sbcge.w','sbclt.w','sbcgt.w','sbcle.w',
153
+ 'sbceq','sbcne','sbccs','sbchs','sbccc','sbclo','sbcmi','sbcpl','sbcvs','sbcvc','sbchi','sbcls','sbcge','sbclt','sbcgt','sbcle',
154
+ 'subeq.w','subne.w','subcs.w','subhs.w','subcc.w','sublo.w','submi.w','subpl.w','subvs.w','subvc.w','subhi.w','subls.w','subge.w','sublt.w','subgt.w','suble.w',
155
+ 'subeq','subne','subcs','subhs','subcc','sublo','submi','subpl','subvs','subvc','subhi','subls','subge','sublt','subgt','suble',
156
+ 'negeq.w','negne.w','negcs.w','neghs.w','negcc.w','neglo.w','negmi.w','negpl.w','negvs.w','negvc.w','neghi.w','negls.w','negge.w','neglt.w','neggt.w','negle.w',
157
+ 'negeq','negne','negcs','neghs','negcc','neglo','negmi','negpl','negvs','negvc','neghi','negls','negge','neglt','neggt','negle',
158
+ 'adreq.w','adrne.w','adrcs.w','adrhs.w','adrcc.w','adrlo.w','adrmi.w','adrpl.w','adrvs.w','adrvc.w','adrhi.w','adrls.w','adrge.w','adrlt.w','adrgt.w','adrle.w',
159
+ 'adreq','adrne','adrcs','adrhs','adrcc','adrlo','adrmi','adrpl','adrvs','adrvc','adrhi','adrls','adrge','adrlt','adrgt','adrle',
160
+ /* Data Processing: Conditional Logical */
161
+ 'andeq.w','andne.w','andcs.w','andhs.w','andcc.w','andlo.w','andmi.w','andpl.w','andvs.w','andvc.w','andhi.w','andls.w','andge.w','andlt.w','andgt.w','andle.w',
162
+ 'andeq','andne','andcs','andhs','andcc','andlo','andmi','andpl','andvs','andvc','andhi','andls','andge','andlt','andgt','andle',
163
+ 'biceq.w','bicne.w','biccs.w','bichs.w','biccc.w','biclo.w','bicmi.w','bicpl.w','bicvs.w','bicvc.w','bichi.w','bicls.w','bicge.w','biclt.w','bicgt.w','bicle.w',
164
+ 'biceq','bicne','biccs','bichs','biccc','biclo','bicmi','bicpl','bicvs','bicvc','bichi','bicls','bicge','biclt','bicgt','bicle',
165
+ 'orreq.w','orrne.w','orrcs.w','orrhs.w','orrcc.w','orrlo.w','orrmi.w','orrpl.w','orrvs.w','orrvc.w','orrhi.w','orrls.w','orrge.w','orrlt.w','orrgt.w','orrle.w',
166
+ 'orreq','orrne','orrcs','orrhs','orrcc','orrlo','orrmi','orrpl','orrvs','orrvc','orrhi','orrls','orrge','orrlt','orrgt','orrle',
167
+ 'orneq.w','ornne.w','orncs.w','ornhs.w','orncc.w','ornlo.w','ornmi.w','ornpl.w','ornvs.w','ornvc.w','ornhi.w','ornls.w','ornge.w','ornlt.w','orngt.w','ornle.w',
168
+ 'orneq','ornne','orncs','ornhs','orncc','ornlo','ornmi','ornpl','ornvs','ornvc','ornhi','ornls','ornge','ornlt','orngt','ornle',
169
+ 'eoreq.w','eorne.w','eorcs.w','eorhs.w','eorcc.w','eorlo.w','eormi.w','eorpl.w','eorvs.w','eorvc.w','eorhi.w','eorls.w','eorge.w','eorlt.w','eorgt.w','eorle.w',
170
+ 'eoreq','eorne','eorcs','eorhs','eorcc','eorlo','eormi','eorpl','eorvs','eorvc','eorhi','eorls','eorge','eorlt','eorgt','eorle',
171
+ 'moveq.w','movne.w','movcs.w','movhs.w','movcc.w','movlo.w','movmi.w','movpl.w','movvs.w','movvc.w','movhi.w','movls.w','movge.w','movlt.w','movgt.w','movle.w',
172
+ 'moveq','movne','movcs','movhs','movcc','movlo','movmi','movpl','movvs','movvc','movhi','movls','movge','movlt','movgt','movle',
173
+ 'movweq','movwne','movwcs','movwhs','movwcc','movwlo','movwmi','movwpl','movwvs','movwvc','movwhi','movwls','movwge','movwlt','movwgt','movwle',
174
+ 'movteq','movtne','movtcs','movths','movtcc','movtlo','movtmi','movtpl','movtvs','movtvc','movthi','movtls','movtge','movtlt','movtgt','movtle',
175
+ 'cpyeq','cpyne','cpycs','cpyhs','cpycc','cpylo','cpymi','cpypl','cpyvs','cpyvc','cpyhi','cpyls','cpyge','cpylt','cpygt','cpyle',
176
+ 'mvneq.w','mvnne.w','mvncs.w','mvnhs.w','mvncc.w','mvnlo.w','mvnmi.w','mvnpl.w','mvnvs.w','mvnvc.w','mvnhi.w','mvnls.w','mvnge.w','mvnlt.w','mvngt.w','mvnle.w',
177
+ 'mvneq','mvnne','mvncs','mvnhs','mvncc','mvnlo','mvnmi','mvnpl','mvnvs','mvnvc','mvnhi','mvnls','mvnge','mvnlt','mvngt','mvnle',
178
+ /* Data Processing: Conditional Shifts and Rotates */
179
+ 'asreq.w','asrne.w','asrcs.w','asrhs.w','asrcc.w','asrlo.w','asrmi.w','asrpl.w','asrvs.w','asrvc.w','asrhi.w','asrls.w','asrge.w','asrlt.w','asrgt.w','asrle.w',
180
+ 'asreq','asrne','asrcs','asrhs','asrcc','asrlo','asrmi','asrpl','asrvs','asrvc','asrhi','asrls','asrge','asrlt','asrgt','asrle',
181
+ 'lsleq.w','lslne.w','lslcs.w','lslhs.w','lslcc.w','lsllo.w','lslmi.w','lslpl.w','lslvs.w','lslvc.w','lslhi.w','lslls.w','lslge.w','lsllt.w','lslgt.w','lslle.w',
182
+ 'lsleq','lslne','lslcs','lslhs','lslcc','lsllo','lslmi','lslpl','lslvs','lslvc','lslhi','lslls','lslge','lsllt','lslgt','lslle',
183
+ 'lsreq.w','lsrne.w','lsrcs.w','lsrhs.w','lsrcc.w','lsrlo.w','lsrmi.w','lsrpl.w','lsrvs.w','lsrvc.w','lsrhi.w','lsrls.w','lsrge.w','lsrlt.w','lsrgt.w','lsrle.w',
184
+ 'lsreq','lsrne','lsrcs','lsrhs','lsrcc','lsrlo','lsrmi','lsrpl','lsrvs','lsrvc','lsrhi','lsrls','lsrge','lsrlt','lsrgt','lsrle',
185
+ 'roreq.w','rorne.w','rorcs.w','rorhs.w','rorcc.w','rorlo.w','rormi.w','rorpl.w','rorvs.w','rorvc.w','rorhi.w','rorls.w','rorge.w','rorlt.w','rorgt.w','rorle.w',
186
+ 'roreq','rorne','rorcs','rorhs','rorcc','rorlo','rormi','rorpl','rorvs','rorvc','rorhi','rorls','rorge','rorlt','rorgt','rorle',
187
+ 'rrxeq','rrxne','rrxcs','rrxhs','rrxcc','rrxlo','rrxmi','rrxpl','rrxvs','rrxvc','rrxhi','rrxls','rrxge','rrxlt','rrxgt','rrxle',
188
+ /* Data Processing: Conditional Word Multiply and Multiply-Add */
189
+ 'muleq','mulne','mulcs','mulhs','mulcc','mullo','mulmi','mulpl','mulvs','mulvc','mulhi','mulls','mulge','mullt','mulgt','mulle',
190
+ 'mlaeq','mlane','mlacs','mlahs','mlacc','mlalo','mlami','mlapl','mlavs','mlavc','mlahi','mlals','mlage','mlalt','mlagt','mlale',
191
+ 'mlseq','mlsne','mlscs','mlshs','mlscc','mlslo','mlsmi','mlspl','mlsvs','mlsvc','mlshi','mlsls','mlsge','mlslt','mlsgt','mlsle',
192
+ 'smulleq','smullne','smullcs','smullhs','smullcc','smulllo','smullmi','smullpl','smullvs','smullvc','smullhi','smullls','smullge','smulllt','smullgt','smullle',
193
+ 'mulseq','mulsne','mulscs','mulshs','mulscc','mulslo','mulsmi','mulspl','mulsvs','mulsvc','mulshi','mulsls','mulsge','mulslt','mulsgt','mulsle',
194
+ 'umulleq','umullne','umullcs','umullhs','umullcc','umulllo','umullmi','umullpl','umullvs','umullvc','umullhi','umullls','umullge','umulllt','umullgt','umullle',
195
+ 'smlaleq','smlalne','smlalcs','smlalhs','smlalcc','smlallo','smlalmi','smlalpl','smlalvs','smlalvc','smlalhi','smlalls','smlalge','smlallt','smlalgt','smlalle',
196
+ 'umlaleq','umlalne','umlalcs','umlalhs','umlalcc','umlallo','umlalmi','umlalpl','umlalvs','umlalvc','umlalhi','umlalls','umlalge','umlallt','umlalgt','umlalle',
197
+ /* Data Processing: Conditional Halfword Multiply and Multiply-Add (ARMv5TE) */
198
+ 'smulbbeq','smulbbne','smulbbcs','smulbbhs','smulbbcc','smulbblo','smulbbmi','smulbbpl','smulbbvs','smulbbvc','smulbbhi','smulbbls','smulbbge','smulbblt','smulbbgt','smulbble',
199
+ 'smulbteq','smulbtne','smulbtcs','smulbths','smulbtcc','smulbtlo','smulbtmi','smulbtpl','smulbtvs','smulbtvc','smulbthi','smulbtls','smulbtge','smulbtlt','smulbtgt','smulbtle',
200
+ 'smultbeq','smultbne','smultbcs','smultbhs','smultbcc','smultblo','smultbmi','smultbpl','smultbvs','smultbvc','smultbhi','smultbls','smultbge','smultblt','smultbgt','smultble',
201
+ 'smultteq','smulttne','smulttcs','smultths','smulttcc','smulttlo','smulttmi','smulttpl','smulttvs','smulttvc','smultthi','smulttls','smulttge','smulttlt','smulttgt','smulttle',
202
+ 'smulwbeq','smulwbne','smulwbcs','smulwbhs','smulwbcc','smulwblo','smulwbmi','smulwbpl','smulwbvs','smulwbvc','smulwbhi','smulwbls','smulwbge','smulwblt','smulwbgt','smulwble',
203
+ 'smulwteq','smulwtne','smulwtcs','smulwths','smulwtcc','smulwtlo','smulwtmi','smulwtpl','smulwtvs','smulwtvc','smulwthi','smulwtls','smulwtge','smulwtlt','smulwtgt','smulwtle',
204
+ 'smlalbbeq','smlalbbne','smlalbbcs','smlalbbhs','smlalbbcc','smlalbblo','smlalbbmi','smlalbbpl','smlalbbvs','smlalbbvc','smlalbbhi','smlalbbls','smlalbbge','smlalbblt','smlalbbgt','smlalbble',
205
+ 'smlalbteq','smlalbtne','smlalbtcs','smlalbths','smlalbtcc','smlalbtlo','smlalbtmi','smlalbtpl','smlalbtvs','smlalbtvc','smlalbthi','smlalbtls','smlalbtge','smlalbtlt','smlalbtgt','smlalbtle',
206
+ 'smlaltbeq','smlaltbne','smlaltbcs','smlaltbhs','smlaltbcc','smlaltblo','smlaltbmi','smlaltbpl','smlaltbvs','smlaltbvc','smlaltbhi','smlaltbls','smlaltbge','smlaltblt','smlaltbgt','smlaltble',
207
+ 'smlaltteq','smlalttne','smlalttcs','smlaltths','smlalttcc','smlalttlo','smlalttmi','smlalttpl','smlalttvs','smlalttvc','smlaltthi','smlalttls','smlalttge','smlalttlt','smlalttgt','smlalttle',
208
+ 'smlabbeq','smlabbne','smlabbcs','smlabbhs','smlabbcc','smlabblo','smlabbmi','smlabbpl','smlabbvs','smlabbvc','smlabbhi','smlabbls','smlabbge','smlabblt','smlabbgt','smlabble',
209
+ 'smlabteq','smlabtne','smlabtcs','smlabths','smlabtcc','smlabtlo','smlabtmi','smlabtpl','smlabtvs','smlabtvc','smlabthi','smlabtls','smlabtge','smlabtlt','smlabtgt','smlabtle',
210
+ 'smlatbeq','smlatbne','smlatbcs','smlatbhs','smlatbcc','smlatblo','smlatbmi','smlatbpl','smlatbvs','smlatbvc','smlatbhi','smlatbls','smlatbge','smlatblt','smlatbgt','smlatble',
211
+ 'smlatteq','smlattne','smlattcs','smlatths','smlattcc','smlattlo','smlattmi','smlattpl','smlattvs','smlattvc','smlatthi','smlattls','smlattge','smlattlt','smlattgt','smlattle',
212
+ 'smlawbeq','smlawbne','smlawbcs','smlawbhs','smlawbcc','smlawblo','smlawbmi','smlawbpl','smlawbvs','smlawbvc','smlawbhi','smlawbls','smlawbge','smlawblt','smlawbgt','smlawble',
213
+ 'smlawteq','smlawtne','smlawtcs','smlawths','smlawtcc','smlawtlo','smlawtmi','smlawtpl','smlawtvs','smlawtvc','smlawthi','smlawtls','smlawtge','smlawtlt','smlawtgt','smlawtle',
214
+ /* Data Processing: Conditional Bit Operations */
215
+ 'ubfxeq','ubfxne','ubfxcs','ubfxhs','ubfxcc','ubfxlo','ubfxmi','ubfxpl','ubfxvs','ubfxvc','ubfxhi','ubfxls','ubfxge','ubfxlt','ubfxgt','ubfxle',
216
+ 'sbfxeq','sbfxne','sbfxcs','sbfxhs','sbfxcc','sbfxlo','sbfxmi','sbfxpl','sbfxvs','sbfxvc','sbfxhi','sbfxls','sbfxge','sbfxlt','sbfxgt','sbfxle',
217
+ 'bfceq','bfcne','bfccs','bfchs','bfccc','bfclo','bfcmi','bfcpl','bfcvs','bfcvc','bfchi','bfcls','bfcge','bfclt','bfcgt','bfcle',
218
+ 'bfieq','bfine','bfics','bfihs','bficc','bfilo','bfimi','bfipl','bfivs','bfivc','bfihi','bfils','bfige','bfilt','bfigt','bfile',
219
+ 'clzeq','clzne','clzcs','clzhs','clzcc','clzlo','clzmi','clzpl','clzvs','clzvc','clzhi','clzls','clzge','clzlt','clzgt','clzle',
220
+ /* ARMv7-R: Conditional Divide */
221
+ 'sdiveq','sdivne','sdivcs','sdivhs','sdivcc','sdivlo','sdivmi','sdivpl','sdivvs','sdivvc','sdivhi','sdivls','sdivge','sdivlt','sdivgt','sdivle',
222
+ 'udiveq','udivne','udivcs','udivhs','udivcc','udivlo','udivmi','udivpl','udivvs','udivvc','udivhi','udivls','udivge','udivlt','udivgt','udivle'
223
+ ),
224
+ /* Unconditional Memory Access */
225
+ 3 => array(
226
+ /* Memory Access: Unconditional Memory Loads and Prefetches */
227
+ 'ldm.w','ldmal.w',
228
+ 'ldm','ldmal',
229
+ 'ldmda','ldmdaal',
230
+ 'ldmdb','ldmdbal',
231
+ 'ldmib','ldmibal',
232
+ 'ldmia','ldmiaal',
233
+ 'ldmea','ldmeaal',
234
+ 'ldmed','ldmedal',
235
+ 'ldmfa','ldmfaal',
236
+ 'ldmfd','ldmfdal',
237
+ 'ldrd','ldrdal',
238
+ 'ldr.w','ldral.w',
239
+ 'ldr','ldral',
240
+ 'ldrh.w','ldrhal.w',
241
+ 'ldrh','ldrhal',
242
+ 'ldrb.w','ldrbal.w',
243
+ 'ldrb','ldrbal',
244
+ 'ldrsh.w','ldrshal.w',
245
+ 'ldrsh','ldrshal',
246
+ 'ldrsb.w','ldrsbal.w',
247
+ 'ldrsb','ldrsbal',
248
+ 'ldrt','ldrtal',
249
+ 'ldrht','ldrhtal',
250
+ 'ldrbt','ldrbtal',
251
+ 'ldrsht','ldrshtal',
252
+ 'ldrsbt','ldrsbtal',
253
+ 'pop.w','popal.w',
254
+ 'pop','popal',
255
+ 'pld','pldal',
256
+ 'pldw','pldwal',
257
+ 'pli','plial',
258
+ /* Memory Access: Unconditional Memory Stores */
259
+ 'stm.w','stmal.w',
260
+ 'stm','stmal',
261
+ 'stmda','stmdaal',
262
+ 'stmdb','stmdbal',
263
+ 'stmib','stmibal',
264
+ 'stmia','stmiaal',
265
+ 'stmea','stmeaal',
266
+ 'stmed','stmedal',
267
+ 'stdfa','stdfaal',
268
+ 'stdfd','stdfdal',
269
+ 'strd','strdal',
270
+ 'str.w','stral.w',
271
+ 'str','stral',
272
+ 'strh.w','strhal.w',
273
+ 'strh','strhal',
274
+ 'strb.w','strbal.w',
275
+ 'strb','strbal',
276
+ 'strt','strtal',
277
+ 'strht','strhtal',
278
+ 'strbt','strbtal',
279
+ 'push.w','pushal.w',
280
+ 'push','pushal'
281
+ ),
282
+ /* Conditional Memory Access */
283
+ 4 => array(
284
+ /* Memory Access: Conditional Memory Loads and Prefetches */
285
+ 'ldmeq.w','ldmne.w','ldmcs.w','ldmhs.w','ldmcc.w','ldmlo.w','ldmmi.w','ldmpl.w','ldmvs.w','ldmvc.w','ldmhi.w','ldmls.w','ldmge.w','ldmlt.w','ldmgt.w','ldmle.w',
286
+ 'ldmeq','ldmne','ldmcs','ldmhs','ldmcc','ldmlo','ldmmi','ldmpl','ldmvs','ldmvc','ldmhi','ldmls','ldmge','ldmlt','ldmgt','ldmle',
287
+ 'ldmdaeq','ldmdane','ldmdacs','ldmdahs','ldmdacc','ldmdalo','ldmdami','ldmdapl','ldmdavs','ldmdavc','ldmdahi','ldmdals','ldmdage','ldmdalt','ldmdagt','ldmdale',
288
+ 'ldmdbeq','ldmdbne','ldmdbcs','ldmdbhs','ldmdbcc','ldmdblo','ldmdbmi','ldmdbpl','ldmdbvs','ldmdbvc','ldmdbhi','ldmdbls','ldmdbge','ldmdblt','ldmdbgt','ldmdble',
289
+ 'ldmibeq','ldmibne','ldmibcs','ldmibhs','ldmibcc','ldmiblo','ldmibmi','ldmibpl','ldmibvs','ldmibvc','ldmibhi','ldmibls','ldmibge','ldmiblt','ldmibgt','ldmible',
290
+ 'ldmiaeq','ldmiane','ldmiacs','ldmiahs','ldmiacc','ldmialo','ldmiami','ldmiapl','ldmiavs','ldmiavc','ldmiahi','ldmials','ldmiage','ldmialt','ldmiagt','ldmiale',
291
+ 'ldmeaeq','ldmeane','ldmeacs','ldmeahs','ldmeacc','ldmealo','ldmeami','ldmeapl','ldmeavs','ldmeavc','ldmeahi','ldmeals','ldmeage','ldmealt','ldmeagt','ldmeale',
292
+ 'ldmedeq','ldmedne','ldmedcs','ldmedhs','ldmedcc','ldmedlo','ldmedmi','ldmedpl','ldmedvs','ldmedvc','ldmedhi','ldmedls','ldmedge','ldmedlt','ldmedgt','ldmedle',
293
+ 'ldmfaeq','ldmfane','ldmfacs','ldmfahs','ldmfacc','ldmfalo','ldmfami','ldmfapl','ldmfavs','ldmfavc','ldmfahi','ldmfals','ldmfage','ldmfalt','ldmfagt','ldmfale',
294
+ 'ldmfdeq','ldmfdne','ldmfdcs','ldmfdhs','ldmfdcc','ldmfdlo','ldmfdmi','ldmfdpl','ldmfdvs','ldmfdvc','ldmfdhi','ldmfdls','ldmfdge','ldmfdlt','ldmfdgt','ldmfdle',
295
+ 'ldrdeq','ldrdne','ldrdcs','ldrdhs','ldrdcc','ldrdlo','ldrdmi','ldrdpl','ldrdvs','ldrdvc','ldrdhi','ldrdls','ldrdge','ldrdlt','ldrdgt','ldrdle',
296
+ 'ldreq.w','ldrne.w','ldrcs.w','ldrhs.w','ldrcc.w','ldrlo.w','ldrmi.w','ldrpl.w','ldrvs.w','ldrvc.w','ldrhi.w','ldrls.w','ldrge.w','ldrlt.w','ldrgt.w','ldrle.w',
297
+ 'ldreq','ldrne','ldrcs','ldrhs','ldrcc','ldrlo','ldrmi','ldrpl','ldrvs','ldrvc','ldrhi','ldrls','ldrge','ldrlt','ldrgt','ldrle',
298
+ 'ldrheq.w','ldrhne.w','ldrhcs.w','ldrhhs.w','ldrhcc.w','ldrhlo.w','ldrhmi.w','ldrhpl.w','ldrhvs.w','ldrhvc.w','ldrhhi.w','ldrhls.w','ldrhge.w','ldrhlt.w','ldrhgt.w','ldrhle.w',
299
+ 'ldrheq','ldrhne','ldrhcs','ldrhhs','ldrhcc','ldrhlo','ldrhmi','ldrhpl','ldrhvs','ldrhvc','ldrhhi','ldrhls','ldrhge','ldrhlt','ldrhgt','ldrhle',
300
+ 'ldrbeq.w','ldrbne.w','ldrbcs.w','ldrbhs.w','ldrbcc.w','ldrblo.w','ldrbmi.w','ldrbpl.w','ldrbvs.w','ldrbvc.w','ldrbhi.w','ldrbls.w','ldrbge.w','ldrblt.w','ldrbgt.w','ldrble.w',
301
+ 'ldrbeq','ldrbne','ldrbcs','ldrbhs','ldrbcc','ldrblo','ldrbmi','ldrbpl','ldrbvs','ldrbvc','ldrbhi','ldrbls','ldrbge','ldrblt','ldrbgt','ldrble',
302
+ 'ldrsheq.w','ldrshne.w','ldrshcs.w','ldrshhs.w','ldrshcc.w','ldrshlo.w','ldrshmi.w','ldrshpl.w','ldrshvs.w','ldrshvc.w','ldrshhi.w','ldrshls.w','ldrshge.w','ldrshlt.w','ldrshgt.w','ldrshle.w',
303
+ 'ldrsheq','ldrshne','ldrshcs','ldrshhs','ldrshcc','ldrshlo','ldrshmi','ldrshpl','ldrshvs','ldrshvc','ldrshhi','ldrshls','ldrshge','ldrshlt','ldrshgt','ldrshle',
304
+ 'ldrsbeq.w','ldrsbne.w','ldrsbcs.w','ldrsbhs.w','ldrsbcc.w','ldrsblo.w','ldrsbmi.w','ldrsbpl.w','ldrsbvs.w','ldrsbvc.w','ldrsbhi.w','ldrsbls.w','ldrsbge.w','ldrsblt.w','ldrsbgt.w','ldrsble.w',
305
+ 'ldrsbeq','ldrsbne','ldrsbcs','ldrsbhs','ldrsbcc','ldrsblo','ldrsbmi','ldrsbpl','ldrsbvs','ldrsbvc','ldrsbhi','ldrsbls','ldrsbge','ldrsblt','ldrsbgt','ldrsble',
306
+ 'ldrteq','ldrtne','ldrtcs','ldrths','ldrtcc','ldrtlo','ldrtmi','ldrtpl','ldrtvs','ldrtvc','ldrthi','ldrtls','ldrtge','ldrtlt','ldrtgt','ldrtle',
307
+ 'ldrhteq','ldrhtne','ldrhtcs','ldrhths','ldrhtcc','ldrhtlo','ldrhtmi','ldrhtpl','ldrhtvs','ldrhtvc','ldrhthi','ldrhtls','ldrhtge','ldrhtlt','ldrhtgt','ldrhtle',
308
+ 'ldrbteq','ldrbtne','ldrbtcs','ldrbths','ldrbtcc','ldrbtlo','ldrbtmi','ldrbtpl','ldrbtvs','ldrbtvc','ldrbthi','ldrbtls','ldrbtge','ldrbtlt','ldrbtgt','ldrbtle',
309
+ 'ldrshteq','ldrshtne','ldrshtcs','ldrshths','ldrshtcc','ldrshtlo','ldrshtmi','ldrshtpl','ldrshtvs','ldrshtvc','ldrshthi','ldrshtls','ldrshtge','ldrshtlt','ldrshtgt','ldrshtle',
310
+ 'ldrsbteq','ldrsbtne','ldrsbtcs','ldrsbths','ldrsbtcc','ldrsbtlo','ldrsbtmi','ldrsbtpl','ldrsbtvs','ldrsbtvc','ldrsbthi','ldrsbtls','ldrsbtge','ldrsbtlt','ldrsbtgt','ldrsbtle',
311
+ 'popeq.w','popne.w','popcs.w','pophs.w','popcc.w','poplo.w','popmi.w','poppl.w','popvs.w','popvc.w','pophi.w','popls.w','popge.w','poplt.w','popgt.w','pople.w',
312
+ 'popeq','popne','popcs','pophs','popcc','poplo','popmi','poppl','popvs','popvc','pophi','popls','popge','poplt','popgt','pople',
313
+ 'pldeq','pldne','pldcs','pldhs','pldcc','pldlo','pldmi','pldpl','pldvs','pldvc','pldhi','pldls','pldge','pldlt','pldgt','pldle',
314
+ 'pldweq','pldwne','pldwcs','pldwhs','pldwcc','pldwlo','pldwmi','pldwpl','pldwvs','pldwvc','pldwhi','pldwls','pldwge','pldwlt','pldwgt','pldwle',
315
+ 'plieq','pline','plics','plihs','plicc','plilo','plimi','plipl','plivs','plivc','plihi','plils','plige','plilt','pligt','plile',
316
+ /* Memory Access: Conditional Memory Stores */
317
+ 'stmeq.w','stmne.w','stmcs.w','stmhs.w','stmcc.w','stmlo.w','stmmi.w','stmpl.w','stmvs.w','stmvc.w','stmhi.w','stmls.w','stmge.w','stmlt.w','stmgt.w','stmle.w',
318
+ 'stmeq','stmne','stmcs','stmhs','stmcc','stmlo','stmmi','stmpl','stmvs','stmvc','stmhi','stmls','stmge','stmlt','stmgt','stmle',
319
+ 'stmdaeq','stmdane','stmdacs','stmdahs','stmdacc','stmdalo','stmdami','stmdapl','stmdavs','stmdavc','stmdahi','stmdals','stmdage','stmdalt','stmdagt','stmdale',
320
+ 'stmdbeq','stmdbne','stmdbcs','stmdbhs','stmdbcc','stmdblo','stmdbmi','stmdbpl','stmdbvs','stmdbvc','stmdbhi','stmdbls','stmdbge','stmdblt','stmdbgt','stmdble',
321
+ 'stmibeq','stmibne','stmibcs','stmibhs','stmibcc','stmiblo','stmibmi','stmibpl','stmibvs','stmibvc','stmibhi','stmibls','stmibge','stmiblt','stmibgt','stmible',
322
+ 'stmiaeq','stmiane','stmiacs','stmiahs','stmiacc','stmialo','stmiami','stmiapl','stmiavs','stmiavc','stmiahi','stmials','stmiage','stmialt','stmiagt','stmiale',
323
+ 'stmeaeq','stmeane','stmeacs','stmeahs','stmeacc','stmealo','stmeami','stmeapl','stmeavs','stmeavc','stmeahi','stmeals','stmeage','stmealt','stmeagt','stmeale',
324
+ 'stmedeq','stmedne','stmedcs','stmedhs','stmedcc','stmedlo','stmedmi','stmedpl','stmedvs','stmedvc','stmedhi','stmedls','stmedge','stmedlt','stmedgt','stmedle',
325
+ 'stdfaeq','stdfane','stdfacs','stdfahs','stdfacc','stdfalo','stdfami','stdfapl','stdfavs','stdfavc','stdfahi','stdfals','stdfage','stdfalt','stdfagt','stdfale',
326
+ 'stdfdeq','stdfdne','stdfdcs','stdfdhs','stdfdcc','stdfdlo','stdfdmi','stdfdpl','stdfdvs','stdfdvc','stdfdhi','stdfdls','stdfdge','stdfdlt','stdfdgt','stdfdle',
327
+ 'strdeq','strdne','strdcs','strdhs','strdcc','strdlo','strdmi','strdpl','strdvs','strdvc','strdhi','strdls','strdge','strdlt','strdgt','strdle',
328
+ 'streq.w','strne.w','strcs.w','strhs.w','strcc.w','strlo.w','strmi.w','strpl.w','strvs.w','strvc.w','strhi.w','strls.w','strge.w','strlt.w','strgt.w','strle.w',
329
+ 'streq','strne','strcs','strhs','strcc','strlo','strmi','strpl','strvs','strvc','strhi','strls','strge','strlt','strgt','strle',
330
+ 'strheq.w','strhne.w','strhcs.w','strhhs.w','strhcc.w','strhlo.w','strhmi.w','strhpl.w','strhvs.w','strhvc.w','strhhi.w','strhls.w','strhge.w','strhlt.w','strhgt.w','strhle.w',
331
+ 'strheq','strhne','strhcs','strhhs','strhcc','strhlo','strhmi','strhpl','strhvs','strhvc','strhhi','strhls','strhge','strhlt','strhgt','strhle',
332
+ 'strbeq.w','strbne.w','strbcs.w','strbhs.w','strbcc.w','strblo.w','strbmi.w','strbpl.w','strbvs.w','strbvc.w','strbhi.w','strbls.w','strbge.w','strblt.w','strbgt.w','strble.w',
333
+ 'strbeq','strbne','strbcs','strbhs','strbcc','strblo','strbmi','strbpl','strbvs','strbvc','strbhi','strbls','strbge','strblt','strbgt','strble',
334
+ 'strteq','strtne','strtcs','strths','strtcc','strtlo','strtmi','strtpl','strtvs','strtvc','strthi','strtls','strtge','strtlt','strtgt','strtle',
335
+ 'strhteq','strhtne','strhtcs','strhths','strhtcc','strhtlo','strhtmi','strhtpl','strhtvs','strhtvc','strhthi','strhtls','strhtge','strhtlt','strhtgt','strhtle',
336
+ 'strbteq','strbtne','strbtcs','strbths','strbtcc','strbtlo','strbtmi','strbtpl','strbtvs','strbtvc','strbthi','strbtls','strbtge','strbtlt','strbtgt','strbtle',
337
+ 'pusheq.w','pushne.w','pushcs.w','pushhs.w','pushcc.w','pushlo.w','pushmi.w','pushpl.w','pushvs.w','pushvc.w','pushhi.w','pushls.w','pushge.w','pushlt.w','pushgt.w','pushle.w',
338
+ 'pusheq','pushne','pushcs','pushhs','pushcc','pushlo','pushmi','pushpl','pushvs','pushvc','pushhi','pushls','pushge','pushlt','pushgt','pushle'
339
+ ),
340
+ /* Unconditional Flags-Affecting Instructions */
341
+ 5 => array(
342
+ /* Set Flags: Unconditional Addition and Subtraction */
343
+ 'adds.w','addsal.w',
344
+ 'adds','addsal',
345
+ 'subs.w','subsal.w',
346
+ 'subs','subsal',
347
+ 'rsbs.w','rsbsal.w',
348
+ 'rsbs','rsbsal',
349
+ 'negs.w','negsal.w',
350
+ 'negs','negsal',
351
+ 'adcs.w','adcsal.w',
352
+ 'adcs','adcsal',
353
+ 'sbcs.w','sbcsal.w',
354
+ 'sbcs','sbcsal',
355
+ 'rscs','rscsal',
356
+ 'cmp.w','cmpal.w',
357
+ 'cmp','cmpal',
358
+ 'cmn.w','cmnal.w',
359
+ 'cmn','cmnal',
360
+ /* Set Flags: Unconditional Logical */
361
+ 'ands.w','andsal.w',
362
+ 'ands','andsal',
363
+ 'bics.w','bicsal.w',
364
+ 'bics','bicsal',
365
+ 'orrs.w','orrsal.w',
366
+ 'orrs','orrsal',
367
+ 'orns.w','ornsal.w',
368
+ 'orns','ornsal',
369
+ 'eors.w','eorsal.w',
370
+ 'eors','eorsal',
371
+ 'mvns.w','mvnsal.w',
372
+ 'mvns','mvnsal',
373
+ 'movs.w','movsal.w',
374
+ 'movs','movsal',
375
+ 'teq','teqal',
376
+ 'tst.w','tstal.w',
377
+ 'tst','tstal',
378
+ 'mrs','mrsal',
379
+ 'msr','msral',
380
+ /* Set Flags: Unconditional Shifts and Rotates */
381
+ 'asrs.w','asrsal.w',
382
+ 'asrs','asrsal',
383
+ 'lsls.w','lslsal.w',
384
+ 'lsls','lslsal',
385
+ 'lsrs.w','lsrsal.w',
386
+ 'lsrs','lsrsal',
387
+ 'rors.w','rorsal.w',
388
+ 'rors','rorsal',
389
+ 'rrxs','rrxsal',
390
+ /* Set Flags: Unconditional Multiply and Multiply-Add */
391
+ 'mlas','mlasal',
392
+ 'smulls','smullsal',
393
+ 'umulls','umullsal',
394
+ 'smlals','smlalsal',
395
+ 'umlals','umlalsal'
396
+ ),
397
+ /* Conditional Flags-Affecting Instructions */
398
+ 6 => array(
399
+ /* Set Flags: Conditional Addition and Subtraction */
400
+ 'addseq.w','addsne.w','addscs.w','addshs.w','addscc.w','addslo.w','addsmi.w','addspl.w','addsvs.w','addsvc.w','addshi.w','addsls.w','addsge.w','addslt.w','addsgt.w','addsle.w',
401
+ 'addseq','addsne','addscs','addshs','addscc','addslo','addsmi','addspl','addsvs','addsvc','addshi','addsls','addsge','addslt','addsgt','addsle',
402
+ 'subseq.w','subsne.w','subscs.w','subshs.w','subscc.w','subslo.w','subsmi.w','subspl.w','subsvs.w','subsvc.w','subshi.w','subsls.w','subsge.w','subslt.w','subsgt.w','subsle.w',
403
+ 'subseq','subsne','subscs','subshs','subscc','subslo','subsmi','subspl','subsvs','subsvc','subshi','subsls','subsge','subslt','subsgt','subsle',
404
+ 'rsbseq.w','rsbsne.w','rsbscs.w','rsbshs.w','rsbscc.w','rsbslo.w','rsbsmi.w','rsbspl.w','rsbsvs.w','rsbsvc.w','rsbshi.w','rsbsls.w','rsbsge.w','rsbslt.w','rsbsgt.w','rsbsle.w',
405
+ 'rsbseq','rsbsne','rsbscs','rsbshs','rsbscc','rsbslo','rsbsmi','rsbspl','rsbsvs','rsbsvc','rsbshi','rsbsls','rsbsge','rsbslt','rsbsgt','rsbsle',
406
+ 'negseq.w','negsne.w','negscs.w','negshs.w','negscc.w','negslo.w','negsmi.w','negspl.w','negsvs.w','negsvc.w','negshi.w','negsls.w','negsge.w','negslt.w','negsgt.w','negsle.w',
407
+ 'negseq','negsne','negscs','negshs','negscc','negslo','negsmi','negspl','negsvs','negsvc','negshi','negsls','negsge','negslt','negsgt','negsle',
408
+ 'adcseq.w','adcsne.w','adcscs.w','adcshs.w','adcscc.w','adcslo.w','adcsmi.w','adcspl.w','adcsvs.w','adcsvc.w','adcshi.w','adcsls.w','adcsge.w','adcslt.w','adcsgt.w','adcsle.w',
409
+ 'adcseq','adcsne','adcscs','adcshs','adcscc','adcslo','adcsmi','adcspl','adcsvs','adcsvc','adcshi','adcsls','adcsge','adcslt','adcsgt','adcsle',
410
+ 'sbcseq.w','sbcsne.w','sbcscs.w','sbcshs.w','sbcscc.w','sbcslo.w','sbcsmi.w','sbcspl.w','sbcsvs.w','sbcsvc.w','sbcshi.w','sbcsls.w','sbcsge.w','sbcslt.w','sbcsgt.w','sbcsle.w',
411
+ 'sbcseq','sbcsne','sbcscs','sbcshs','sbcscc','sbcslo','sbcsmi','sbcspl','sbcsvs','sbcsvc','sbcshi','sbcsls','sbcsge','sbcslt','sbcsgt','sbcsle',
412
+ 'rscseq','rscsne','rscscs','rscshs','rscscc','rscslo','rscsmi','rscspl','rscsvs','rscsvc','rscshi','rscsls','rscsge','rscslt','rscsgt','rscsle',
413
+ 'cmpeq.w','cmpne.w','cmpcs.w','cmphs.w','cmpcc.w','cmplo.w','cmpmi.w','cmppl.w','cmpvs.w','cmpvc.w','cmphi.w','cmpls.w','cmpge.w','cmplt.w','cmpgt.w','cmple.w',
414
+ 'cmpeq','cmpne','cmpcs','cmphs','cmpcc','cmplo','cmpmi','cmppl','cmpvs','cmpvc','cmphi','cmpls','cmpge','cmplt','cmpgt','cmple',
415
+ 'cmneq.w','cmnne.w','cmncs.w','cmnhs.w','cmncc.w','cmnlo.w','cmnmi.w','cmnpl.w','cmnvs.w','cmnvc.w','cmnhi.w','cmnls.w','cmnge.w','cmnlt.w','cmngt.w','cmnle.w',
416
+ 'cmneq','cmnne','cmncs','cmnhs','cmncc','cmnlo','cmnmi','cmnpl','cmnvs','cmnvc','cmnhi','cmnls','cmnge','cmnlt','cmngt','cmnle',
417
+ /* Set Flags: Conditional Logical */
418
+ 'andseq.w','andsne.w','andscs.w','andshs.w','andscc.w','andslo.w','andsmi.w','andspl.w','andsvs.w','andsvc.w','andshi.w','andsls.w','andsge.w','andslt.w','andsgt.w','andsle.w',
419
+ 'andseq','andsne','andscs','andshs','andscc','andslo','andsmi','andspl','andsvs','andsvc','andshi','andsls','andsge','andslt','andsgt','andsle',
420
+ 'bicseq.w','bicsne.w','bicscs.w','bicshs.w','bicscc.w','bicslo.w','bicsmi.w','bicspl.w','bicsvs.w','bicsvc.w','bicshi.w','bicsls.w','bicsge.w','bicslt.w','bicsgt.w','bicsle.w',
421
+ 'bicseq','bicsne','bicscs','bicshs','bicscc','bicslo','bicsmi','bicspl','bicsvs','bicsvc','bicshi','bicsls','bicsge','bicslt','bicsgt','bicsle',
422
+ 'orrseq.w','orrsne.w','orrscs.w','orrshs.w','orrscc.w','orrslo.w','orrsmi.w','orrspl.w','orrsvs.w','orrsvc.w','orrshi.w','orrsls.w','orrsge.w','orrslt.w','orrsgt.w','orrsle.w',
423
+ 'orrseq','orrsne','orrscs','orrshs','orrscc','orrslo','orrsmi','orrspl','orrsvs','orrsvc','orrshi','orrsls','orrsge','orrslt','orrsgt','orrsle',
424
+ 'ornseq.w','ornsne.w','ornscs.w','ornshs.w','ornscc.w','ornslo.w','ornsmi.w','ornspl.w','ornsvs.w','ornsvc.w','ornshi.w','ornsls.w','ornsge.w','ornslt.w','ornsgt.w','ornsle.w',
425
+ 'ornseq','ornsne','ornscs','ornshs','ornscc','ornslo','ornsmi','ornspl','ornsvs','ornsvc','ornshi','ornsls','ornsge','ornslt','ornsgt','ornsle',
426
+ 'eorseq.w','eorsne.w','eorscs.w','eorshs.w','eorscc.w','eorslo.w','eorsmi.w','eorspl.w','eorsvs.w','eorsvc.w','eorshi.w','eorsls.w','eorsge.w','eorslt.w','eorsgt.w','eorsle.w',
427
+ 'eorseq','eorsne','eorscs','eorshs','eorscc','eorslo','eorsmi','eorspl','eorsvs','eorsvc','eorshi','eorsls','eorsge','eorslt','eorsgt','eorsle',
428
+ 'mvnseq.w','mvnsne.w','mvnscs.w','mvnshs.w','mvnscc.w','mvnslo.w','mvnsmi.w','mvnspl.w','mvnsvs.w','mvnsvc.w','mvnshi.w','mvnsls.w','mvnsge.w','mvnslt.w','mvnsgt.w','mvnsle.w',
429
+ 'mvnseq','mvnsne','mvnscs','mvnshs','mvnscc','mvnslo','mvnsmi','mvnspl','mvnsvs','mvnsvc','mvnshi','mvnsls','mvnsge','mvnslt','mvnsgt','mvnsle',
430
+ 'movseq.w','movsne.w','movscs.w','movshs.w','movscc.w','movslo.w','movsmi.w','movspl.w','movsvs.w','movsvc.w','movshi.w','movsls.w','movsge.w','movslt.w','movsgt.w','movsle.w',
431
+ 'movseq','movsne','movscs','movshs','movscc','movslo','movsmi','movspl','movsvs','movsvc','movshi','movsls','movsge','movslt','movsgt','movsle',
432
+ 'teqeq','teqne','teqcs','teqhs','teqcc','teqlo','teqmi','teqpl','teqvs','teqvc','teqhi','teqls','teqge','teqlt','teqgt','teqle',
433
+ 'tsteq.w','tstne.w','tstcs.w','tsths.w','tstcc.w','tstlo.w','tstmi.w','tstpl.w','tstvs.w','tstvc.w','tsthi.w','tstls.w','tstge.w','tstlt.w','tstgt.w','tstle.w',
434
+ 'tsteq','tstne','tstcs','tsths','tstcc','tstlo','tstmi','tstpl','tstvs','tstvc','tsthi','tstls','tstge','tstlt','tstgt','tstle',
435
+ 'mrseq','mrsne','mrscs','mrshs','mrscc','mrslo','mrsmi','mrspl','mrsvs','mrsvc','mrshi','mrsls','mrsge','mrslt','mrsgt','mrsle',
436
+ 'msreq','msrne','msrcs','msrhs','msrcc','msrlo','msrmi','msrpl','msrvs','msrvc','msrhi','msrls','msrge','msrlt','msrgt','msrle',
437
+ /* Set Flags: Conditional Shifts and Rotates */
438
+ 'asrseq.w','asrsne.w','asrscs.w','asrshs.w','asrscc.w','asrslo.w','asrsmi.w','asrspl.w','asrsvs.w','asrsvc.w','asrshi.w','asrsls.w','asrsge.w','asrslt.w','asrsgt.w','asrsle.w',
439
+ 'asrseq','asrsne','asrscs','asrshs','asrscc','asrslo','asrsmi','asrspl','asrsvs','asrsvc','asrshi','asrsls','asrsge','asrslt','asrsgt','asrsle',
440
+ 'lslseq.w','lslsne.w','lslscs.w','lslshs.w','lslscc.w','lslslo.w','lslsmi.w','lslspl.w','lslsvs.w','lslsvc.w','lslshi.w','lslsls.w','lslsge.w','lslslt.w','lslsgt.w','lslsle.w',
441
+ 'lslseq','lslsne','lslscs','lslshs','lslscc','lslslo','lslsmi','lslspl','lslsvs','lslsvc','lslshi','lslsls','lslsge','lslslt','lslsgt','lslsle',
442
+ 'lsrseq.w','lsrsne.w','lsrscs.w','lsrshs.w','lsrscc.w','lsrslo.w','lsrsmi.w','lsrspl.w','lsrsvs.w','lsrsvc.w','lsrshi.w','lsrsls.w','lsrsge.w','lsrslt.w','lsrsgt.w','lsrsle.w',
443
+ 'lsrseq','lsrsne','lsrscs','lsrshs','lsrscc','lsrslo','lsrsmi','lsrspl','lsrsvs','lsrsvc','lsrshi','lsrsls','lsrsge','lsrslt','lsrsgt','lsrsle',
444
+ 'rorseq.w','rorsne.w','rorscs.w','rorshs.w','rorscc.w','rorslo.w','rorsmi.w','rorspl.w','rorsvs.w','rorsvc.w','rorshi.w','rorsls.w','rorsge.w','rorslt.w','rorsgt.w','rorsle.w',
445
+ 'rorseq','rorsne','rorscs','rorshs','rorscc','rorslo','rorsmi','rorspl','rorsvs','rorsvc','rorshi','rorsls','rorsge','rorslt','rorsgt','rorsle',
446
+ 'rrxseq','rrxsne','rrxscs','rrxshs','rrxscc','rrxslo','rrxsmi','rrxspl','rrxsvs','rrxsvc','rrxshi','rrxsls','rrxsge','rrxslt','rrxsgt','rrxsle',
447
+ /* Set Flags: Conditional Multiply and Multiply-Add */
448
+ 'mlaseq','mlasne','mlascs','mlashs','mlascc','mlaslo','mlasmi','mlaspl','mlasvs','mlasvc','mlashi','mlasls','mlasge','mlaslt','mlasgt','mlasle',
449
+ 'smullseq','smullsne','smullscs','smullshs','smullscc','smullslo','smullsmi','smullspl','smullsvs','smullsvc','smullshi','smullsls','smullsge','smullslt','smullsgt','smullsle',
450
+ 'umullseq','umullsne','umullscs','umullshs','umullscc','umullslo','umullsmi','umullspl','umullsvs','umullsvc','umullshi','umullsls','umullsge','umullslt','umullsgt','umullsle',
451
+ 'smlalseq','smlalsne','smlalscs','smlalshs','smlalscc','smlalslo','smlalsmi','smlalspl','smlalsvs','smlalsvc','smlalshi','smlalsls','smlalsge','smlalslt','smlalsgt','smlalsle',
452
+ 'umlalseq','umlalsne','umlalscs','umlalshs','umlalscc','umlalslo','umlalsmi','umlalspl','umlalsvs','umlalsvc','umlalshi','umlalsls','umlalsge','umlalslt','umlalsgt','umlalsle'
453
+ ),
454
+ /* Unconditional Flow Control Instructions */
455
+ 7 => array(
456
+ /* Flow Control: Unconditional Branch and If-Then-Else */
457
+ 'b.w','bal.w',
458
+ 'b','bal',
459
+ 'bl','blal',
460
+ 'bx','bxal',
461
+ 'blx','blxal',
462
+ 'bxj','bxjal',
463
+ 'cbnz',
464
+ 'cbz',
465
+ 'tbb','tbbal',
466
+ 'tbh','tbhal',
467
+ 'it',
468
+ 'itt',
469
+ 'ite',
470
+ 'ittt',
471
+ 'itet',
472
+ 'itte',
473
+ 'itee',
474
+ 'itttt',
475
+ 'itett',
476
+ 'ittet',
477
+ 'iteet',
478
+ 'ittte',
479
+ 'itete',
480
+ 'ittee',
481
+ 'iteee'
482
+ ),
483
+ /* Conditional Flow Control Instructions */
484
+ 8 => array(
485
+ /* Flow Control: Conditional Branch and If-Then-Else */
486
+ 'beq.w','bne.w','bcs.w','bhs.w','bcc.w','blo.w','bmi.w','bpl.w','bvs.w','bvc.w','bhi.w','bls.w','bge.w','blt.w','bgt.w','ble.w',
487
+ 'beq','bne','bcs','bhs','bcc','blo','bmi','bpl','bvs','bvc','bhi','bls','bge','blt','bgt','ble',
488
+ 'bleq','blne','blcs','blhs','blcc','bllo','blmi','blpl','blvs','blvc','blhi','blls','blge','bllt','blgt','blle',
489
+ 'bxeq','bxne','bxcs','bxhs','bxcc','bxlo','bxmi','bxpl','bxvs','bxvc','bxhi','bxls','bxge','bxlt','bxgt','bxle',
490
+ 'blxeq','blxne','blxcs','blxhs','blxcc','blxlo','blxmi','blxpl','blxvs','blxvc','blxhi','blxls','blxge','blxlt','blxgt','blxle',
491
+ 'bxjeq','bxjne','bxjcs','bxjhs','bxjcc','bxjlo','bxjmi','bxjpl','bxjvs','bxjvc','bxjhi','bxjls','bxjge','bxjlt','bxjgt','bxjle',
492
+ 'tbbeq','tbbne','tbbcs','tbbhs','tbbcc','tbblo','tbbmi','tbbpl','tbbvs','tbbvc','tbbhi','tbbls','tbbge','tbblt','tbbgt','tbble',
493
+ 'tbheq','tbhne','tbhcs','tbhhs','tbhcc','tbhlo','tbhmi','tbhpl','tbhvs','tbhvc','tbhhi','tbhls','tbhge','tbhlt','tbhgt','tbhle'
494
+ ),
495
+ /* Unconditional Syncronization Instructions */
496
+ 9 => array(
497
+ /* Synchronization: Unconditional Loads, Stores and Barriers */
498
+ 'ldrexd','ldrexdal',
499
+ 'ldrex','ldrexal',
500
+ 'ldrexh','ldrexhal',
501
+ 'ldrexb','ldrexbal',
502
+ 'strexd','strexdal',
503
+ 'strex','strexal',
504
+ 'strexh','strexhal',
505
+ 'strexb','strexbal',
506
+ 'clrex','clrexal',
507
+ 'swp','swpal',
508
+ 'swpb','swpbal',
509
+ 'dbc','dbcal',
510
+ 'dsb','dsbal',
511
+ 'isb','isbal',
512
+ 'yield.w','yieldal.w',
513
+ 'yield','yieldal',
514
+ 'nop.w','nopal.w',
515
+ 'nop','nopal'
516
+ ),
517
+ /* Conditional Syncronization Instructions */
518
+ 10 => array(
519
+ /* Synchronization: Conditional Loads, Stores and Barriers */
520
+ 'ldrexdeq','ldrexdne','ldrexdcs','ldrexdhs','ldrexdcc','ldrexdlo','ldrexdmi','ldrexdpl','ldrexdvs','ldrexdvc','ldrexdhi','ldrexdls','ldrexdge','ldrexdlt','ldrexdgt','ldrexdle',
521
+ 'ldrexeq','ldrexne','ldrexcs','ldrexhs','ldrexcc','ldrexlo','ldrexmi','ldrexpl','ldrexvs','ldrexvc','ldrexhi','ldrexls','ldrexge','ldrexlt','ldrexgt','ldrexle',
522
+ 'ldrexheq','ldrexhne','ldrexhcs','ldrexhhs','ldrexhcc','ldrexhlo','ldrexhmi','ldrexhpl','ldrexhvs','ldrexhvc','ldrexhhi','ldrexhls','ldrexhge','ldrexhlt','ldrexhgt','ldrexhle',
523
+ 'ldrexbeq','ldrexbne','ldrexbcs','ldrexbhs','ldrexbcc','ldrexblo','ldrexbmi','ldrexbpl','ldrexbvs','ldrexbvc','ldrexbhi','ldrexbls','ldrexbge','ldrexblt','ldrexbgt','ldrexble',
524
+ 'strexdeq','strexdne','strexdcs','strexdhs','strexdcc','strexdlo','strexdmi','strexdpl','strexdvs','strexdvc','strexdhi','strexdls','strexdge','strexdlt','strexdgt','strexdle',
525
+ 'strexeq','strexne','strexcs','strexhs','strexcc','strexlo','strexmi','strexpl','strexvs','strexvc','strexhi','strexls','strexge','strexlt','strexgt','strexle',
526
+ 'strexheq','strexhne','strexhcs','strexhhs','strexhcc','strexhlo','strexhmi','strexhpl','strexhvs','strexhvc','strexhhi','strexhls','strexhge','strexhlt','strexhgt','strexhle',
527
+ 'strexbeq','strexbne','strexbcs','strexbhs','strexbcc','strexblo','strexbmi','strexbpl','strexbvs','strexbvc','strexbhi','strexbls','strexbge','strexblt','strexbgt','strexble',
528
+ 'clrexeq','clrexne','clrexcs','clrexhs','clrexcc','clrexlo','clrexmi','clrexpl','clrexvs','clrexvc','clrexhi','clrexls','clrexge','clrexlt','clrexgt','clrexle',
529
+ 'swpeq','swpne','swpcs','swphs','swpcc','swplo','swpmi','swppl','swpvs','swpvc','swphi','swpls','swpge','swplt','swpgt','swple',
530
+ 'swpbeq','swpbne','swpbcs','swpbhs','swpbcc','swpblo','swpbmi','swpbpl','swpbvs','swpbvc','swpbhi','swpbls','swpbge','swpblt','swpbgt','swpble',
531
+ 'dbceq','dbcne','dbccs','dbchs','dbccc','dbclo','dbcmi','dbcpl','dbcvs','dbcvc','dbchi','dbcls','dbcge','dbclt','dbcgt','dbcle',
532
+ 'dsbeq','dsbne','dsbcs','dsbhs','dsbcc','dsblo','dsbmi','dsbpl','dsbvs','dsbvc','dsbhi','dsbls','dsbge','dsblt','dsbgt','dsble',
533
+ 'isbeq','isbne','isbcs','isbhs','isbcc','isblo','isbmi','isbpl','isbvs','isbvc','isbhi','isbls','isbge','isblt','isbgt','isble',
534
+ 'yieldeq.w','yieldne.w','yieldcs.w','yieldhs.w','yieldcc.w','yieldlo.w','yieldmi.w','yieldpl.w','yieldvs.w','yieldvc.w','yieldhi.w','yieldls.w','yieldge.w','yieldlt.w','yieldgt.w','yieldle.w',
535
+ 'yieldeq','yieldne','yieldcs','yieldhs','yieldcc','yieldlo','yieldmi','yieldpl','yieldvs','yieldvc','yieldhi','yieldls','yieldge','yieldlt','yieldgt','yieldle',
536
+ 'nopeq.w','nopne.w','nopcs.w','nophs.w','nopcc.w','noplo.w','nopmi.w','noppl.w','nopvs.w','nopvc.w','nophi.w','nopls.w','nopge.w','noplt.w','nopgt.w','nople.w',
537
+ 'nopeq','nopne','nopcs','nophs','nopcc','noplo','nopmi','noppl','nopvs','nopvc','nophi','nopls','nopge','noplt','nopgt','nople'
538
+ ),
539
+ /* Unconditional ARMv6 SIMD */
540
+ 11 => array(
541
+ /* ARMv6 SIMD: Unconditional Addition, Subtraction & Saturation */
542
+ 'sadd16','sadd16al',
543
+ 'sadd8','sadd8al',
544
+ 'uadd16','uadd16al',
545
+ 'uadd8','uadd8al',
546
+ 'ssub16','ssub16al',
547
+ 'ssub8','ssub8al',
548
+ 'usub16','usub16al',
549
+ 'usub8','usub8al',
550
+ 'sasx','sasxal',
551
+ 'ssax','ssaxal',
552
+ 'uasx','uasxal',
553
+ 'usax','usaxal',
554
+ 'usad8','usad8al',
555
+ 'usada8','usada8al',
556
+ /* ARMv6 SIMD: Unconditional Halving Addition & Subtraction */
557
+ 'shadd16','shadd16al',
558
+ 'shadd8','shadd8al',
559
+ 'uhadd16','uhadd16al',
560
+ 'uhadd8','uhadd8al',
561
+ 'shsub16','shsub16al',
562
+ 'shsub8','shsub8al',
563
+ 'uhsub16','uhsub16al',
564
+ 'uhsub8','uhsub8al',
565
+ 'shasx','shasxal',
566
+ 'shsax','shsaxal',
567
+ 'uhasx','uhasxal',
568
+ 'uhsax','uhsaxal',
569
+ /* ARMv6 SIMD: Unconditional Saturating Operations */
570
+ 'qadd','qaddal',
571
+ 'qadd16','qadd16al',
572
+ 'qadd8','qadd8al',
573
+ 'uqadd16','uqadd16al',
574
+ 'uqadd8','uqadd8al',
575
+ 'qsub','qsubal',
576
+ 'qsub16','qsub16al',
577
+ 'qsub8','qsub8al',
578
+ 'uqsub16','uqsub16al',
579
+ 'uqsub8','uqsub8al',
580
+ 'qasx','qasxal',
581
+ 'qsax','qsaxal',
582
+ 'uqasx','uqasxal',
583
+ 'uqsax','uqsaxal',
584
+ 'qdadd','qdaddal',
585
+ 'qdsub','qdsubal',
586
+ 'ssat','ssatal',
587
+ 'ssat16','ssat16al',
588
+ 'usat','usatal',
589
+ 'usat16','usat16al',
590
+ /* ARMv6 SIMD: Unconditional Permutation and Combine Operations */
591
+ 'sxtah','sxtahal',
592
+ 'sxtab','sxtabal',
593
+ 'sxtab16','sxtab16al',
594
+ 'uxtah','uxtahal',
595
+ 'uxtab','uxtabal',
596
+ 'uxtab16','uxtab16al',
597
+ 'sxth.w','sxthal.w',
598
+ 'sxth','sxthal',
599
+ 'sxtb.w','sxtbal.w',
600
+ 'sxtb','sxtbal',
601
+ 'sxtb16','sxtb16al',
602
+ 'uxth.w','uxthal.w',
603
+ 'uxth','uxthal',
604
+ 'uxtb.w','uxtbal.w',
605
+ 'uxtb','uxtbal',
606
+ 'uxtb16','uxtb16al',
607
+ 'pkhbt','pkhbtal',
608
+ 'pkhtb','pkhtbal',
609
+ 'rbit','rbital',
610
+ 'rev.w','reval.w',
611
+ 'rev','reval',
612
+ 'rev16.w','rev16al.w',
613
+ 'rev16','rev16al',
614
+ 'revsh.w','revshal.w',
615
+ 'revsh','revshal',
616
+ 'sel','selal',
617
+ /* ARMv6 SIMD: Unconditional Multiply and Multiply-Add */
618
+ 'smlad','smladal',
619
+ 'smladx','smladxal',
620
+ 'smlsd','smlsdal',
621
+ 'smlsdx','smlsdxal',
622
+ 'smlald','smlaldal',
623
+ 'smlaldx','smlaldxal',
624
+ 'smlsld','smlsldal',
625
+ 'smlsldx','smlsldxal',
626
+ 'smmul','smmulal',
627
+ 'smmulr','smmulral',
628
+ 'smmla','smmlaal',
629
+ 'smmlar','smmlaral',
630
+ 'smmls','smmlsal',
631
+ 'smmlsr','smmlsral',
632
+ 'smuad','smuadal',
633
+ 'smuadx','smuadxal',
634
+ 'smusd','smusdal',
635
+ 'smusdx','smusdxal',
636
+ 'umaal','umaalal'
637
+ ),
638
+ /* Conditional ARMv6 SIMD */
639
+ 12 => array(
640
+ /* ARMv6 SIMD: Conditional Addition, Subtraction & Saturation */
641
+ 'sadd16eq','sadd16ne','sadd16cs','sadd16hs','sadd16cc','sadd16lo','sadd16mi','sadd16pl','sadd16vs','sadd16vc','sadd16hi','sadd16ls','sadd16ge','sadd16lt','sadd16gt','sadd16le',
642
+ 'sadd8eq','sadd8ne','sadd8cs','sadd8hs','sadd8cc','sadd8lo','sadd8mi','sadd8pl','sadd8vs','sadd8vc','sadd8hi','sadd8ls','sadd8ge','sadd8lt','sadd8gt','sadd8le',
643
+ 'uadd16eq','uadd16ne','uadd16cs','uadd16hs','uadd16cc','uadd16lo','uadd16mi','uadd16pl','uadd16vs','uadd16vc','uadd16hi','uadd16ls','uadd16ge','uadd16lt','uadd16gt','uadd16le',
644
+ 'uadd8eq','uadd8ne','uadd8cs','uadd8hs','uadd8cc','uadd8lo','uadd8mi','uadd8pl','uadd8vs','uadd8vc','uadd8hi','uadd8ls','uadd8ge','uadd8lt','uadd8gt','uadd8le',
645
+ 'ssub16eq','ssub16ne','ssub16cs','ssub16hs','ssub16cc','ssub16lo','ssub16mi','ssub16pl','ssub16vs','ssub16vc','ssub16hi','ssub16ls','ssub16ge','ssub16lt','ssub16gt','ssub16le',
646
+ 'ssub8eq','ssub8ne','ssub8cs','ssub8hs','ssub8cc','ssub8lo','ssub8mi','ssub8pl','ssub8vs','ssub8vc','ssub8hi','ssub8ls','ssub8ge','ssub8lt','ssub8gt','ssub8le',
647
+ 'usub16eq','usub16ne','usub16cs','usub16hs','usub16cc','usub16lo','usub16mi','usub16pl','usub16vs','usub16vc','usub16hi','usub16ls','usub16ge','usub16lt','usub16gt','usub16le',
648
+ 'usub8eq','usub8ne','usub8cs','usub8hs','usub8cc','usub8lo','usub8mi','usub8pl','usub8vs','usub8vc','usub8hi','usub8ls','usub8ge','usub8lt','usub8gt','usub8le',
649
+ 'sasxeq','sasxne','sasxcs','sasxhs','sasxcc','sasxlo','sasxmi','sasxpl','sasxvs','sasxvc','sasxhi','sasxls','sasxge','sasxlt','sasxgt','sasxle',
650
+ 'ssaxeq','ssaxne','ssaxcs','ssaxhs','ssaxcc','ssaxlo','ssaxmi','ssaxpl','ssaxvs','ssaxvc','ssaxhi','ssaxls','ssaxge','ssaxlt','ssaxgt','ssaxle',
651
+ 'uasxeq','uasxne','uasxcs','uasxhs','uasxcc','uasxlo','uasxmi','uasxpl','uasxvs','uasxvc','uasxhi','uasxls','uasxge','uasxlt','uasxgt','uasxle',
652
+ 'usaxeq','usaxne','usaxcs','usaxhs','usaxcc','usaxlo','usaxmi','usaxpl','usaxvs','usaxvc','usaxhi','usaxls','usaxge','usaxlt','usaxgt','usaxle',
653
+ 'usad8eq','usad8ne','usad8cs','usad8hs','usad8cc','usad8lo','usad8mi','usad8pl','usad8vs','usad8vc','usad8hi','usad8ls','usad8ge','usad8lt','usad8gt','usad8le',
654
+ 'usada8eq','usada8ne','usada8cs','usada8hs','usada8cc','usada8lo','usada8mi','usada8pl','usada8vs','usada8vc','usada8hi','usada8ls','usada8ge','usada8lt','usada8gt','usada8le',
655
+ /* ARMv6 SIMD: Conditional Halving Addition & Subtraction */
656
+ 'shadd16eq','shadd16ne','shadd16cs','shadd16hs','shadd16cc','shadd16lo','shadd16mi','shadd16pl','shadd16vs','shadd16vc','shadd16hi','shadd16ls','shadd16ge','shadd16lt','shadd16gt','shadd16le',
657
+ 'shadd8eq','shadd8ne','shadd8cs','shadd8hs','shadd8cc','shadd8lo','shadd8mi','shadd8pl','shadd8vs','shadd8vc','shadd8hi','shadd8ls','shadd8ge','shadd8lt','shadd8gt','shadd8le',
658
+ 'uhadd16eq','uhadd16ne','uhadd16cs','uhadd16hs','uhadd16cc','uhadd16lo','uhadd16mi','uhadd16pl','uhadd16vs','uhadd16vc','uhadd16hi','uhadd16ls','uhadd16ge','uhadd16lt','uhadd16gt','uhadd16le',
659
+ 'uhadd8eq','uhadd8ne','uhadd8cs','uhadd8hs','uhadd8cc','uhadd8lo','uhadd8mi','uhadd8pl','uhadd8vs','uhadd8vc','uhadd8hi','uhadd8ls','uhadd8ge','uhadd8lt','uhadd8gt','uhadd8le',
660
+ 'shsub16eq','shsub16ne','shsub16cs','shsub16hs','shsub16cc','shsub16lo','shsub16mi','shsub16pl','shsub16vs','shsub16vc','shsub16hi','shsub16ls','shsub16ge','shsub16lt','shsub16gt','shsub16le',
661
+ 'shsub8eq','shsub8ne','shsub8cs','shsub8hs','shsub8cc','shsub8lo','shsub8mi','shsub8pl','shsub8vs','shsub8vc','shsub8hi','shsub8ls','shsub8ge','shsub8lt','shsub8gt','shsub8le',
662
+ 'uhsub16eq','uhsub16ne','uhsub16cs','uhsub16hs','uhsub16cc','uhsub16lo','uhsub16mi','uhsub16pl','uhsub16vs','uhsub16vc','uhsub16hi','uhsub16ls','uhsub16ge','uhsub16lt','uhsub16gt','uhsub16le',
663
+ 'uhsub8eq','uhsub8ne','uhsub8cs','uhsub8hs','uhsub8cc','uhsub8lo','uhsub8mi','uhsub8pl','uhsub8vs','uhsub8vc','uhsub8hi','uhsub8ls','uhsub8ge','uhsub8lt','uhsub8gt','uhsub8le',
664
+ 'shasxeq','shasxne','shasxcs','shasxhs','shasxcc','shasxlo','shasxmi','shasxpl','shasxvs','shasxvc','shasxhi','shasxls','shasxge','shasxlt','shasxgt','shasxle',
665
+ 'shsaxeq','shsaxne','shsaxcs','shsaxhs','shsaxcc','shsaxlo','shsaxmi','shsaxpl','shsaxvs','shsaxvc','shsaxhi','shsaxls','shsaxge','shsaxlt','shsaxgt','shsaxle',
666
+ 'uhasxeq','uhasxne','uhasxcs','uhasxhs','uhasxcc','uhasxlo','uhasxmi','uhasxpl','uhasxvs','uhasxvc','uhasxhi','uhasxls','uhasxge','uhasxlt','uhasxgt','uhasxle',
667
+ 'uhsaxeq','uhsaxne','uhsaxcs','uhsaxhs','uhsaxcc','uhsaxlo','uhsaxmi','uhsaxpl','uhsaxvs','uhsaxvc','uhsaxhi','uhsaxls','uhsaxge','uhsaxlt','uhsaxgt','uhsaxle',
668
+ /* ARMv6 SIMD: Conditional Saturating Operations */
669
+ 'qaddeq','qaddne','qaddcs','qaddhs','qaddcc','qaddlo','qaddmi','qaddpl','qaddvs','qaddvc','qaddhi','qaddls','qaddge','qaddlt','qaddgt','qaddle',
670
+ 'qadd16eq','qadd16ne','qadd16cs','qadd16hs','qadd16cc','qadd16lo','qadd16mi','qadd16pl','qadd16vs','qadd16vc','qadd16hi','qadd16ls','qadd16ge','qadd16lt','qadd16gt','qadd16le',
671
+ 'qadd8eq','qadd8ne','qadd8cs','qadd8hs','qadd8cc','qadd8lo','qadd8mi','qadd8pl','qadd8vs','qadd8vc','qadd8hi','qadd8ls','qadd8ge','qadd8lt','qadd8gt','qadd8le',
672
+ 'uqadd16eq','uqadd16ne','uqadd16cs','uqadd16hs','uqadd16cc','uqadd16lo','uqadd16mi','uqadd16pl','uqadd16vs','uqadd16vc','uqadd16hi','uqadd16ls','uqadd16ge','uqadd16lt','uqadd16gt','uqadd16le',
673
+ 'uqadd8eq','uqadd8ne','uqadd8cs','uqadd8hs','uqadd8cc','uqadd8lo','uqadd8mi','uqadd8pl','uqadd8vs','uqadd8vc','uqadd8hi','uqadd8ls','uqadd8ge','uqadd8lt','uqadd8gt','uqadd8le',
674
+ 'qsubeq','qsubne','qsubcs','qsubhs','qsubcc','qsublo','qsubmi','qsubpl','qsubvs','qsubvc','qsubhi','qsubls','qsubge','qsublt','qsubgt','qsuble',
675
+ 'qsub16eq','qsub16ne','qsub16cs','qsub16hs','qsub16cc','qsub16lo','qsub16mi','qsub16pl','qsub16vs','qsub16vc','qsub16hi','qsub16ls','qsub16ge','qsub16lt','qsub16gt','qsub16le',
676
+ 'qsub8eq','qsub8ne','qsub8cs','qsub8hs','qsub8cc','qsub8lo','qsub8mi','qsub8pl','qsub8vs','qsub8vc','qsub8hi','qsub8ls','qsub8ge','qsub8lt','qsub8gt','qsub8le',
677
+ 'uqsub16eq','uqsub16ne','uqsub16cs','uqsub16hs','uqsub16cc','uqsub16lo','uqsub16mi','uqsub16pl','uqsub16vs','uqsub16vc','uqsub16hi','uqsub16ls','uqsub16ge','uqsub16lt','uqsub16gt','uqsub16le',
678
+ 'uqsub8eq','uqsub8ne','uqsub8cs','uqsub8hs','uqsub8cc','uqsub8lo','uqsub8mi','uqsub8pl','uqsub8vs','uqsub8vc','uqsub8hi','uqsub8ls','uqsub8ge','uqsub8lt','uqsub8gt','uqsub8le',
679
+ 'qasxeq','qasxne','qasxcs','qasxhs','qasxcc','qasxlo','qasxmi','qasxpl','qasxvs','qasxvc','qasxhi','qasxls','qasxge','qasxlt','qasxgt','qasxle',
680
+ 'qsaxeq','qsaxne','qsaxcs','qsaxhs','qsaxcc','qsaxlo','qsaxmi','qsaxpl','qsaxvs','qsaxvc','qsaxhi','qsaxls','qsaxge','qsaxlt','qsaxgt','qsaxle',
681
+ 'uqasxeq','uqasxne','uqasxcs','uqasxhs','uqasxcc','uqasxlo','uqasxmi','uqasxpl','uqasxvs','uqasxvc','uqasxhi','uqasxls','uqasxge','uqasxlt','uqasxgt','uqasxle',
682
+ 'uqsaxeq','uqsaxne','uqsaxcs','uqsaxhs','uqsaxcc','uqsaxlo','uqsaxmi','uqsaxpl','uqsaxvs','uqsaxvc','uqsaxhi','uqsaxls','uqsaxge','uqsaxlt','uqsaxgt','uqsaxle',
683
+ 'qdaddeq','qdaddne','qdaddcs','qdaddhs','qdaddcc','qdaddlo','qdaddmi','qdaddpl','qdaddvs','qdaddvc','qdaddhi','qdaddls','qdaddge','qdaddlt','qdaddgt','qdaddle',
684
+ 'qdsubeq','qdsubne','qdsubcs','qdsubhs','qdsubcc','qdsublo','qdsubmi','qdsubpl','qdsubvs','qdsubvc','qdsubhi','qdsubls','qdsubge','qdsublt','qdsubgt','qdsuble',
685
+ 'ssateq','ssatne','ssatcs','ssaths','ssatcc','ssatlo','ssatmi','ssatpl','ssatvs','ssatvc','ssathi','ssatls','ssatge','ssatlt','ssatgt','ssatle',
686
+ 'ssat16eq','ssat16ne','ssat16cs','ssat16hs','ssat16cc','ssat16lo','ssat16mi','ssat16pl','ssat16vs','ssat16vc','ssat16hi','ssat16ls','ssat16ge','ssat16lt','ssat16gt','ssat16le',
687
+ 'usateq','usatne','usatcs','usaths','usatcc','usatlo','usatmi','usatpl','usatvs','usatvc','usathi','usatls','usatge','usatlt','usatgt','usatle',
688
+ 'usat16eq','usat16ne','usat16cs','usat16hs','usat16cc','usat16lo','usat16mi','usat16pl','usat16vs','usat16vc','usat16hi','usat16ls','usat16ge','usat16lt','usat16gt','usat16le',
689
+ /* ARMv6 SIMD: Conditional Permutation and Combine Operations */
690
+ 'sxtaheq','sxtahne','sxtahcs','sxtahhs','sxtahcc','sxtahlo','sxtahmi','sxtahpl','sxtahvs','sxtahvc','sxtahhi','sxtahls','sxtahge','sxtahlt','sxtahgt','sxtahle',
691
+ 'sxtabeq','sxtabne','sxtabcs','sxtabhs','sxtabcc','sxtablo','sxtabmi','sxtabpl','sxtabvs','sxtabvc','sxtabhi','sxtabls','sxtabge','sxtablt','sxtabgt','sxtable',
692
+ 'sxtab16eq','sxtab16ne','sxtab16cs','sxtab16hs','sxtab16cc','sxtab16lo','sxtab16mi','sxtab16pl','sxtab16vs','sxtab16vc','sxtab16hi','sxtab16ls','sxtab16ge','sxtab16lt','sxtab16gt','sxtab16le',
693
+ 'uxtaheq','uxtahne','uxtahcs','uxtahhs','uxtahcc','uxtahlo','uxtahmi','uxtahpl','uxtahvs','uxtahvc','uxtahhi','uxtahls','uxtahge','uxtahlt','uxtahgt','uxtahle',
694
+ 'uxtabeq','uxtabne','uxtabcs','uxtabhs','uxtabcc','uxtablo','uxtabmi','uxtabpl','uxtabvs','uxtabvc','uxtabhi','uxtabls','uxtabge','uxtablt','uxtabgt','uxtable',
695
+ 'uxtab16eq','uxtab16ne','uxtab16cs','uxtab16hs','uxtab16cc','uxtab16lo','uxtab16mi','uxtab16pl','uxtab16vs','uxtab16vc','uxtab16hi','uxtab16ls','uxtab16ge','uxtab16lt','uxtab16gt','uxtab16le',
696
+ 'sxtheq.w','sxthne.w','sxthcs.w','sxthhs.w','sxthcc.w','sxthlo.w','sxthmi.w','sxthpl.w','sxthvs.w','sxthvc.w','sxthhi.w','sxthls.w','sxthge.w','sxthlt.w','sxthgt.w','sxthle.w',
697
+ 'sxtheq','sxthne','sxthcs','sxthhs','sxthcc','sxthlo','sxthmi','sxthpl','sxthvs','sxthvc','sxthhi','sxthls','sxthge','sxthlt','sxthgt','sxthle',
698
+ 'sxtbeq.w','sxtbne.w','sxtbcs.w','sxtbhs.w','sxtbcc.w','sxtblo.w','sxtbmi.w','sxtbpl.w','sxtbvs.w','sxtbvc.w','sxtbhi.w','sxtbls.w','sxtbge.w','sxtblt.w','sxtbgt.w','sxtble.w',
699
+ 'sxtbeq','sxtbne','sxtbcs','sxtbhs','sxtbcc','sxtblo','sxtbmi','sxtbpl','sxtbvs','sxtbvc','sxtbhi','sxtbls','sxtbge','sxtblt','sxtbgt','sxtble',
700
+ 'sxtb16eq','sxtb16ne','sxtb16cs','sxtb16hs','sxtb16cc','sxtb16lo','sxtb16mi','sxtb16pl','sxtb16vs','sxtb16vc','sxtb16hi','sxtb16ls','sxtb16ge','sxtb16lt','sxtb16gt','sxtb16le',
701
+ 'uxtheq.w','uxthne.w','uxthcs.w','uxthhs.w','uxthcc.w','uxthlo.w','uxthmi.w','uxthpl.w','uxthvs.w','uxthvc.w','uxthhi.w','uxthls.w','uxthge.w','uxthlt.w','uxthgt.w','uxthle.w',
702
+ 'uxtheq','uxthne','uxthcs','uxthhs','uxthcc','uxthlo','uxthmi','uxthpl','uxthvs','uxthvc','uxthhi','uxthls','uxthge','uxthlt','uxthgt','uxthle',
703
+ 'uxtbeq.w','uxtbne.w','uxtbcs.w','uxtbhs.w','uxtbcc.w','uxtblo.w','uxtbmi.w','uxtbpl.w','uxtbvs.w','uxtbvc.w','uxtbhi.w','uxtbls.w','uxtbge.w','uxtblt.w','uxtbgt.w','uxtble.w',
704
+ 'uxtbeq','uxtbne','uxtbcs','uxtbhs','uxtbcc','uxtblo','uxtbmi','uxtbpl','uxtbvs','uxtbvc','uxtbhi','uxtbls','uxtbge','uxtblt','uxtbgt','uxtble',
705
+ 'uxtb16eq','uxtb16ne','uxtb16cs','uxtb16hs','uxtb16cc','uxtb16lo','uxtb16mi','uxtb16pl','uxtb16vs','uxtb16vc','uxtb16hi','uxtb16ls','uxtb16ge','uxtb16lt','uxtb16gt','uxtb16le',
706
+ 'pkhbteq','pkhbtne','pkhbtcs','pkhbths','pkhbtcc','pkhbtlo','pkhbtmi','pkhbtpl','pkhbtvs','pkhbtvc','pkhbthi','pkhbtls','pkhbtge','pkhbtlt','pkhbtgt','pkhbtle',
707
+ 'pkhtbeq','pkhtbne','pkhtbcs','pkhtbhs','pkhtbcc','pkhtblo','pkhtbmi','pkhtbpl','pkhtbvs','pkhtbvc','pkhtbhi','pkhtbls','pkhtbge','pkhtblt','pkhtbgt','pkhtble',
708
+ 'rbiteq','rbitne','rbitcs','rbiths','rbitcc','rbitlo','rbitmi','rbitpl','rbitvs','rbitvc','rbithi','rbitls','rbitge','rbitlt','rbitgt','rbitle',
709
+ 'reveq.w','revne.w','revcs.w','revhs.w','revcc.w','revlo.w','revmi.w','revpl.w','revvs.w','revvc.w','revhi.w','revls.w','revge.w','revlt.w','revgt.w','revle.w',
710
+ 'reveq','revne','revcs','revhs','revcc','revlo','revmi','revpl','revvs','revvc','revhi','revls','revge','revlt','revgt','revle',
711
+ 'rev16eq.w','rev16ne.w','rev16cs.w','rev16hs.w','rev16cc.w','rev16lo.w','rev16mi.w','rev16pl.w','rev16vs.w','rev16vc.w','rev16hi.w','rev16ls.w','rev16ge.w','rev16lt.w','rev16gt.w','rev16le.w',
712
+ 'rev16eq','rev16ne','rev16cs','rev16hs','rev16cc','rev16lo','rev16mi','rev16pl','rev16vs','rev16vc','rev16hi','rev16ls','rev16ge','rev16lt','rev16gt','rev16le',
713
+ 'revsheq.w','revshne.w','revshcs.w','revshhs.w','revshcc.w','revshlo.w','revshmi.w','revshpl.w','revshvs.w','revshvc.w','revshhi.w','revshls.w','revshge.w','revshlt.w','revshgt.w','revshle.w',
714
+ 'revsheq','revshne','revshcs','revshhs','revshcc','revshlo','revshmi','revshpl','revshvs','revshvc','revshhi','revshls','revshge','revshlt','revshgt','revshle',
715
+ 'seleq','selne','selcs','selhs','selcc','sello','selmi','selpl','selvs','selvc','selhi','sells','selge','sellt','selgt','selle',
716
+ /* ARMv6 SIMD: Conditional Multiply and Multiply-Add */
717
+ 'smladeq','smladne','smladcs','smladhs','smladcc','smladlo','smladmi','smladpl','smladvs','smladvc','smladhi','smladls','smladge','smladlt','smladgt','smladle',
718
+ 'smladxeq','smladxne','smladxcs','smladxhs','smladxcc','smladxlo','smladxmi','smladxpl','smladxvs','smladxvc','smladxhi','smladxls','smladxge','smladxlt','smladxgt','smladxle',
719
+ 'smlsdeq','smlsdne','smlsdcs','smlsdhs','smlsdcc','smlsdlo','smlsdmi','smlsdpl','smlsdvs','smlsdvc','smlsdhi','smlsdls','smlsdge','smlsdlt','smlsdgt','smlsdle',
720
+ 'smlsdxeq','smlsdxne','smlsdxcs','smlsdxhs','smlsdxcc','smlsdxlo','smlsdxmi','smlsdxpl','smlsdxvs','smlsdxvc','smlsdxhi','smlsdxls','smlsdxge','smlsdxlt','smlsdxgt','smlsdxle',
721
+ 'smlaldeq','smlaldne','smlaldcs','smlaldhs','smlaldcc','smlaldlo','smlaldmi','smlaldpl','smlaldvs','smlaldvc','smlaldhi','smlaldls','smlaldge','smlaldlt','smlaldgt','smlaldle',
722
+ 'smlaldxeq','smlaldxne','smlaldxcs','smlaldxhs','smlaldxcc','smlaldxlo','smlaldxmi','smlaldxpl','smlaldxvs','smlaldxvc','smlaldxhi','smlaldxls','smlaldxge','smlaldxlt','smlaldxgt','smlaldxle',
723
+ 'smlsldeq','smlsldne','smlsldcs','smlsldhs','smlsldcc','smlsldlo','smlsldmi','smlsldpl','smlsldvs','smlsldvc','smlsldhi','smlsldls','smlsldge','smlsldlt','smlsldgt','smlsldle',
724
+ 'smlsldxeq','smlsldxne','smlsldxcs','smlsldxhs','smlsldxcc','smlsldxlo','smlsldxmi','smlsldxpl','smlsldxvs','smlsldxvc','smlsldxhi','smlsldxls','smlsldxge','smlsldxlt','smlsldxgt','smlsldxle',
725
+ 'smmuleq','smmulne','smmulcs','smmulhs','smmulcc','smmullo','smmulmi','smmulpl','smmulvs','smmulvc','smmulhi','smmulls','smmulge','smmullt','smmulgt','smmulle',
726
+ 'smmulreq','smmulrne','smmulrcs','smmulrhs','smmulrcc','smmulrlo','smmulrmi','smmulrpl','smmulrvs','smmulrvc','smmulrhi','smmulrls','smmulrge','smmulrlt','smmulrgt','smmulrle',
727
+ 'smmlaeq','smmlane','smmlacs','smmlahs','smmlacc','smmlalo','smmlami','smmlapl','smmlavs','smmlavc','smmlahi','smmlals','smmlage','smmlalt','smmlagt','smmlale',
728
+ 'smmlareq','smmlarne','smmlarcs','smmlarhs','smmlarcc','smmlarlo','smmlarmi','smmlarpl','smmlarvs','smmlarvc','smmlarhi','smmlarls','smmlarge','smmlarlt','smmlargt','smmlarle',
729
+ 'smmlseq','smmlsne','smmlscs','smmlshs','smmlscc','smmlslo','smmlsmi','smmlspl','smmlsvs','smmlsvc','smmlshi','smmlsls','smmlsge','smmlslt','smmlsgt','smmlsle',
730
+ 'smmlsreq','smmlsrne','smmlsrcs','smmlsrhs','smmlsrcc','smmlsrlo','smmlsrmi','smmlsrpl','smmlsrvs','smmlsrvc','smmlsrhi','smmlsrls','smmlsrge','smmlsrlt','smmlsrgt','smmlsrle',
731
+ 'smuadeq','smuadne','smuadcs','smuadhs','smuadcc','smuadlo','smuadmi','smuadpl','smuadvs','smuadvc','smuadhi','smuadls','smuadge','smuadlt','smuadgt','smuadle',
732
+ 'smuadxeq','smuadxne','smuadxcs','smuadxhs','smuadxcc','smuadxlo','smuadxmi','smuadxpl','smuadxvs','smuadxvc','smuadxhi','smuadxls','smuadxge','smuadxlt','smuadxgt','smuadxle',
733
+ 'smusdeq','smusdne','smusdcs','smusdhs','smusdcc','smusdlo','smusdmi','smusdpl','smusdvs','smusdvc','smusdhi','smusdls','smusdge','smusdlt','smusdgt','smusdle',
734
+ 'smusdxeq','smusdxne','smusdxcs','smusdxhs','smusdxcc','smusdxlo','smusdxmi','smusdxpl','smusdxvs','smusdxvc','smusdxhi','smusdxls','smusdxge','smusdxlt','smusdxgt','smusdxle',
735
+ 'umaaleq','umaalne','umaalcs','umaalhs','umaalcc','umaallo','umaalmi','umaalpl','umaalvs','umaalvc','umaalhi','umaalls','umaalge','umaallt','umaalgt','umaalle'
736
+ ),
737
+ /* Unconditional Coprocessor Instructions */
738
+ 13 => array(
739
+ /* Data Processing: Unconditional Coprocessor Instructions */
740
+ 'cdp','cdpal',
741
+ 'cdp2','cdp2al',
742
+ 'ldc','ldcal',
743
+ 'ldcl','ldclal',
744
+ 'ldc2','ldc2al',
745
+ 'ldc2l','ldc2lal',
746
+ 'stc','stcal',
747
+ 'stcl','stclal',
748
+ 'stc2','stc2al',
749
+ 'stc2l','stc2lal',
750
+ 'mcr','mcral',
751
+ 'mcr2','mcr2al',
752
+ 'mcrr','mcrral',
753
+ 'mcrr2','mcrr2al',
754
+ 'mrc','mrcal',
755
+ 'mrc2','mrc2al',
756
+ 'mrrc','mrrcal',
757
+ 'mrrc2','mrrc2al'
758
+ ),
759
+ /* Conditional Coprocessor Instructions */
760
+ 14 => array(
761
+ /* Data Processing: Conditional Coprocessor Instructions */
762
+ 'cdpeq','cdpne','cdpcs','cdphs','cdpcc','cdplo','cdpmi','cdppl','cdpvs','cdpvc','cdphi','cdpls','cdpge','cdplt','cdpgt','cdple',
763
+ 'cdp2eq','cdp2ne','cdp2cs','cdp2hs','cdp2cc','cdp2lo','cdp2mi','cdp2pl','cdp2vs','cdp2vc','cdp2hi','cdp2ls','cdp2ge','cdp2lt','cdp2gt','cdp2le',
764
+ 'ldceq','ldcne','ldccs','ldchs','ldccc','ldclo','ldcmi','ldcpl','ldcvs','ldcvc','ldchi','ldcls','ldcge','ldclt','ldcgt','ldcle',
765
+ 'ldcleq','ldclne','ldclcs','ldclhs','ldclcc','ldcllo','ldclmi','ldclpl','ldclvs','ldclvc','ldclhi','ldclls','ldclge','ldcllt','ldclgt','ldclle',
766
+ 'ldc2eq','ldc2ne','ldc2cs','ldc2hs','ldc2cc','ldc2lo','ldc2mi','ldc2pl','ldc2vs','ldc2vc','ldc2hi','ldc2ls','ldc2ge','ldc2lt','ldc2gt','ldc2le',
767
+ 'ldc2leq','ldc2lne','ldc2lcs','ldc2lhs','ldc2lcc','ldc2llo','ldc2lmi','ldc2lpl','ldc2lvs','ldc2lvc','ldc2lhi','ldc2lls','ldc2lge','ldc2llt','ldc2lgt','ldc2lle',
768
+ 'stceq','stcne','stccs','stchs','stccc','stclo','stcmi','stcpl','stcvs','stcvc','stchi','stcls','stcge','stclt','stcgt','stcle',
769
+ 'stcleq','stclne','stclcs','stclhs','stclcc','stcllo','stclmi','stclpl','stclvs','stclvc','stclhi','stclls','stclge','stcllt','stclgt','stclle',
770
+ 'stc2eq','stc2ne','stc2cs','stc2hs','stc2cc','stc2lo','stc2mi','stc2pl','stc2vs','stc2vc','stc2hi','stc2ls','stc2ge','stc2lt','stc2gt','stc2le',
771
+ 'stc2leq','stc2lne','stc2lcs','stc2lhs','stc2lcc','stc2llo','stc2lmi','stc2lpl','stc2lvs','stc2lvc','stc2lhi','stc2lls','stc2lge','stc2llt','stc2lgt','stc2lle',
772
+ 'mcreq','mcrne','mcrcs','mcrhs','mcrcc','mcrlo','mcrmi','mcrpl','mcrvs','mcrvc','mcrhi','mcrls','mcrge','mcrlt','mcrgt','mcrle',
773
+ 'mcr2eq','mcr2ne','mcr2cs','mcr2hs','mcr2cc','mcr2lo','mcr2mi','mcr2pl','mcr2vs','mcr2vc','mcr2hi','mcr2ls','mcr2ge','mcr2lt','mcr2gt','mcr2le',
774
+ 'mcrreq','mcrrne','mcrrcs','mcrrhs','mcrrcc','mcrrlo','mcrrmi','mcrrpl','mcrrvs','mcrrvc','mcrrhi','mcrrls','mcrrge','mcrrlt','mcrrgt','mcrrle',
775
+ 'mcrr2eq','mcrr2ne','mcrr2cs','mcrr2hs','mcrr2cc','mcrr2lo','mcrr2mi','mcrr2pl','mcrr2vs','mcrr2vc','mcrr2hi','mcrr2ls','mcrr2ge','mcrr2lt','mcrr2gt','mcrr2le',
776
+ 'mrceq','mrcne','mrccs','mrchs','mrccc','mrclo','mrcmi','mrcpl','mrcvs','mrcvc','mrchi','mrcls','mrcge','mrclt','mrcgt','mrcle',
777
+ 'mrc2eq','mrc2ne','mrc2cs','mrc2hs','mrc2cc','mrc2lo','mrc2mi','mrc2pl','mrc2vs','mrc2vc','mrc2hi','mrc2ls','mrc2ge','mrc2lt','mrc2gt','mrc2le',
778
+ 'mrrceq','mrrcne','mrrccs','mrrchs','mrrccc','mrrclo','mrrcmi','mrrcpl','mrrcvs','mrrcvc','mrrchi','mrrcls','mrrcge','mrrclt','mrrcgt','mrrcle',
779
+ 'mrrc2eq','mrrc2ne','mrrc2cs','mrrc2hs','mrrc2cc','mrrc2lo','mrrc2mi','mrrc2pl','mrrc2vs','mrrc2vc','mrrc2hi','mrrc2ls','mrrc2ge','mrrc2lt','mrrc2gt','mrrc2le'
780
+ ),
781
+ /* Unconditional System Instructions */
782
+ 15 => array(
783
+ /* System: Unconditional Debug and State-Change Instructions */
784
+ 'bkpt',
785
+ 'dbg','dbgal',
786
+ 'setend',
787
+ 'svc','svcal',
788
+ 'sev.w','seval.w',
789
+ 'sev','seval',
790
+ 'wfe.w','wfeal.w',
791
+ 'wfe','wfeal',
792
+ 'wfi.w','wfial.w',
793
+ 'wfi','wfial',
794
+ /* System: Unconditional ThumbEE Instructions */
795
+ 'enterx',
796
+ 'leavex',
797
+ 'chka.n','chkaal.n',
798
+ 'chka','chkaal',
799
+ 'hb.n','hbal.n',
800
+ 'hb','hbal',
801
+ 'hbl.n','hblal.n',
802
+ 'hbl','hblal',
803
+ 'hblp.n','hblpal.n',
804
+ 'hblp','hblpal',
805
+ 'hbp.n','hbpal.n',
806
+ 'hbp','hbpal',
807
+ /* System: Unconditional Privileged Instructions */
808
+ 'cpsie.n',
809
+ 'cpsie.w',
810
+ 'cpsie',
811
+ 'cpsid.n',
812
+ 'cpsid.w',
813
+ 'cpsid',
814
+ 'smc','smcal',
815
+ 'rfeda','rfedaal',
816
+ 'rfedb','rfedbal',
817
+ 'rfeia','rfeiaal',
818
+ 'rfeib','rfeibal',
819
+ 'srsda','srsdaal',
820
+ 'srsdb','srsdbal',
821
+ 'srsia','srsiaal',
822
+ 'srsib','srsibal'
823
+ ),
824
+ /* Conditional System Instructions */
825
+ 16 => array(
826
+ /* System: Conditional Debug and State-Change Instructions */
827
+ 'dbgeq','dbgne','dbgcs','dbghs','dbgcc','dbglo','dbgmi','dbgpl','dbgvs','dbgvc','dbghi','dbgls','dbgge','dbglt','dbggt','dbgle',
828
+ 'svceq','svcne','svccs','svchs','svccc','svclo','svcmi','svcpl','svcvs','svcvc','svchi','svcls','svcge','svclt','svcgt','svcle',
829
+ 'seveq.w','sevne.w','sevcs.w','sevhs.w','sevcc.w','sevlo.w','sevmi.w','sevpl.w','sevvs.w','sevvc.w','sevhi.w','sevls.w','sevge.w','sevlt.w','sevgt.w','sevle.w',
830
+ 'seveq','sevne','sevcs','sevhs','sevcc','sevlo','sevmi','sevpl','sevvs','sevvc','sevhi','sevls','sevge','sevlt','sevgt','sevle',
831
+ 'wfeeq.w','wfene.w','wfecs.w','wfehs.w','wfecc.w','wfelo.w','wfemi.w','wfepl.w','wfevs.w','wfevc.w','wfehi.w','wfels.w','wfege.w','wfelt.w','wfegt.w','wfele.w',
832
+ 'wfeeq','wfene','wfecs','wfehs','wfecc','wfelo','wfemi','wfepl','wfevs','wfevc','wfehi','wfels','wfege','wfelt','wfegt','wfele',
833
+ 'wfieq.w','wfine.w','wfics.w','wfihs.w','wficc.w','wfilo.w','wfimi.w','wfipl.w','wfivs.w','wfivc.w','wfihi.w','wfils.w','wfige.w','wfilt.w','wfigt.w','wfile.w',
834
+ 'wfieq','wfine','wfics','wfihs','wficc','wfilo','wfimi','wfipl','wfivs','wfivc','wfihi','wfils','wfige','wfilt','wfigt','wfile',
835
+ /* System: Conditional ThumbEE Instructions */
836
+ 'chkaeq.n','chkane.n','chkacs.n','chkahs.n','chkacc.n','chkalo.n','chkami.n','chkapl.n','chkavs.n','chkavc.n','chkahi.n','chkals.n','chkage.n','chkalt.n','chkagt.n','chkale.n',
837
+ 'chkaeq','chkane','chkacs','chkahs','chkacc','chkalo','chkami','chkapl','chkavs','chkavc','chkahi','chkals','chkage','chkalt','chkagt','chkale',
838
+ 'hbeq.n','hbne.n','hbcs.n','hbhs.n','hbcc.n','hblo.n','hbmi.n','hbpl.n','hbvs.n','hbvc.n','hbhi.n','hbls.n','hbge.n','hblt.n','hbgt.n','hble.n',
839
+ 'hbeq','hbne','hbcs','hbhs','hbcc','hblo','hbmi','hbpl','hbvs','hbvc','hbhi','hbls','hbge','hblt','hbgt','hble',
840
+ 'hbleq.n','hblne.n','hblcs.n','hblhs.n','hblcc.n','hbllo.n','hblmi.n','hblpl.n','hblvs.n','hblvc.n','hblhi.n','hblls.n','hblge.n','hbllt.n','hblgt.n','hblle.n',
841
+ 'hbleq','hblne','hblcs','hblhs','hblcc','hbllo','hblmi','hblpl','hblvs','hblvc','hblhi','hblls','hblge','hbllt','hblgt','hblle',
842
+ 'hblpeq.n','hblpne.n','hblpcs.n','hblphs.n','hblpcc.n','hblplo.n','hblpmi.n','hblppl.n','hblpvs.n','hblpvc.n','hblphi.n','hblpls.n','hblpge.n','hblplt.n','hblpgt.n','hblple.n',
843
+ 'hblpeq','hblpne','hblpcs','hblphs','hblpcc','hblplo','hblpmi','hblppl','hblpvs','hblpvc','hblphi','hblpls','hblpge','hblplt','hblpgt','hblple',
844
+ 'hbpeq.n','hbpne.n','hbpcs.n','hbphs.n','hbpcc.n','hbplo.n','hbpmi.n','hbppl.n','hbpvs.n','hbpvc.n','hbphi.n','hbpls.n','hbpge.n','hbplt.n','hbpgt.n','hbple.n',
845
+ 'hbpeq','hbpne','hbpcs','hbphs','hbpcc','hbplo','hbpmi','hbppl','hbpvs','hbpvc','hbphi','hbpls','hbpge','hbplt','hbpgt','hbple',
846
+ /* System: Conditional Privileged Instructions */
847
+ 'smceq','smcne','smccs','smchs','smccc','smclo','smcmi','smcpl','smcvs','smcvc','smchi','smcls','smcge','smclt','smcgt','smcle',
848
+ 'rfedaeq','rfedane','rfedacs','rfedahs','rfedacc','rfedalo','rfedami','rfedapl','rfedavs','rfedavc','rfedahi','rfedals','rfedage','rfedalt','rfedagt','rfedale',
849
+ 'rfedbeq','rfedbne','rfedbcs','rfedbhs','rfedbcc','rfedblo','rfedbmi','rfedbpl','rfedbvs','rfedbvc','rfedbhi','rfedbls','rfedbge','rfedblt','rfedbgt','rfedble',
850
+ 'rfeiaeq','rfeiane','rfeiacs','rfeiahs','rfeiacc','rfeialo','rfeiami','rfeiapl','rfeiavs','rfeiavc','rfeiahi','rfeials','rfeiage','rfeialt','rfeiagt','rfeiale',
851
+ 'rfeibeq','rfeibne','rfeibcs','rfeibhs','rfeibcc','rfeiblo','rfeibmi','rfeibpl','rfeibvs','rfeibvc','rfeibhi','rfeibls','rfeibge','rfeiblt','rfeibgt','rfeible',
852
+ 'srsdaeq','srsdane','srsdacs','srsdahs','srsdacc','srsdalo','srsdami','srsdapl','srsdavs','srsdavc','srsdahi','srsdals','srsdage','srsdalt','srsdagt','srsdale',
853
+ 'srsdbeq','srsdbne','srsdbcs','srsdbhs','srsdbcc','srsdblo','srsdbmi','srsdbpl','srsdbvs','srsdbvc','srsdbhi','srsdbls','srsdbge','srsdblt','srsdbgt','srsdble',
854
+ 'srsiaeq','srsiane','srsiacs','srsiahs','srsiacc','srsialo','srsiami','srsiapl','srsiavs','srsiavc','srsiahi','srsials','srsiage','srsialt','srsiagt','srsiale',
855
+ 'srsibeq','srsibne','srsibcs','srsibhs','srsibcc','srsiblo','srsibmi','srsibpl','srsibvs','srsibvc','srsibhi','srsibls','srsibge','srsiblt','srsibgt','srsible'
856
+ ),
857
+ /* Unconditional WMMX/WMMX2 instructions */
858
+ 17 => array(
859
+ /* Unconditional WMMX/WMMX2 SIMD Instructions */
860
+ 'tandcb','tandcbal',
861
+ 'tandch','tandchal',
862
+ 'tandcw','tandcwal',
863
+ 'tbcstb','tbcstbal',
864
+ 'tbcsth','tbcsthal',
865
+ 'tbcstw','tbcstwal',
866
+ 'textrcb','textrcbal',
867
+ 'textrch','textrchal',
868
+ 'textrcw','textrcwal',
869
+ 'textrmsb','textrmsbal',
870
+ 'textrmsh','textrmshal',
871
+ 'textrmsw','textrmswal',
872
+ 'textrmub','textrmubal',
873
+ 'textrmuh','textrmuhal',
874
+ 'textrmuw','textrmuwal',
875
+ 'tinsrb','tinsrbal',
876
+ 'tinsrh','tinsrhal',
877
+ 'tinsrw','tinsrwal',
878
+ 'tmcr','tmcral',
879
+ 'tmcrr','tmcrral',
880
+ 'tmia','tmiaal',
881
+ 'tmiaph','tmiaphal',
882
+ 'tmiabb','tmiabbal',
883
+ 'tmiabt','tmiabtal',
884
+ 'tmiatb','tmiatbal',
885
+ 'tmiatt','tmiattal',
886
+ 'tmovmskb','tmovmskbal',
887
+ 'tmovmskh','tmovmskhal',
888
+ 'tmovmskw','tmovmskwal',
889
+ 'tmrc','tmrcal',
890
+ 'tmrrc','tmrrcal',
891
+ 'torcb','torcbal',
892
+ 'torch','torchal',
893
+ 'torcw','torcwal',
894
+ 'torvscb','torvscbal',
895
+ 'torvsch','torvschal',
896
+ 'torvscw','torvscwal',
897
+ 'wabsb','wabsbal',
898
+ 'wabsh','wabshal',
899
+ 'wabsw','wabswal',
900
+ 'wabsdiffb','wabsdiffbal',
901
+ 'wabsdiffh','wabsdiffhal',
902
+ 'wabsdiffw','wabsdiffwal',
903
+ 'waccb','waccbal',
904
+ 'wacch','wacchal',
905
+ 'waccw','waccwal',
906
+ 'waddb','waddbal',
907
+ 'waddh','waddhal',
908
+ 'waddw','waddwal',
909
+ 'waddbc','waddbcal',
910
+ 'waddhc','waddhcal',
911
+ 'waddwc','waddwcal',
912
+ 'waddbss','waddbssal',
913
+ 'waddhss','waddhssal',
914
+ 'waddwss','waddwssal',
915
+ 'waddbus','waddbusal',
916
+ 'waddhus','waddhusal',
917
+ 'waddwus','waddwusal',
918
+ 'waddsubhx','waddsubhxal',
919
+ 'waligni','walignial',
920
+ 'walignr0','walignr0al',
921
+ 'walignr1','walignr1al',
922
+ 'walignr2','walignr2al',
923
+ 'walignr3','walignr3al',
924
+ 'wand','wandal',
925
+ 'wandn','wandnal',
926
+ 'wavg2b','wavg2bal',
927
+ 'wavg2h','wavg2hal',
928
+ 'wavg2br','wavg2bral',
929
+ 'wavg2hr','wavg2hral',
930
+ 'wavg4','wavg4al',
931
+ 'wavg4r','wavg4ral',
932
+ 'wcmpeqb','wcmpeqbal',
933
+ 'wcmpeqh','wcmpeqhal',
934
+ 'wcmpeqw','wcmpeqwal',
935
+ 'wcmpgtsb','wcmpgtsbal',
936
+ 'wcmpgtsh','wcmpgtshal',
937
+ 'wcmpgtsw','wcmpgtswal',
938
+ 'wcmpgtub','wcmpgtubal',
939
+ 'wcmpgtuh','wcmpgtuhal',
940
+ 'wcmpgtuw','wcmpgtuwal',
941
+ 'wldrb','wldrbal',
942
+ 'wldrh','wldrhal',
943
+ 'wldrw','wldrwal',
944
+ 'wldrd','wldrdal',
945
+ 'wmacs','wmacsal',
946
+ 'wmacu','wmacual',
947
+ 'wmacsz','wmacszal',
948
+ 'wmacuz','wmacuzal',
949
+ 'wmadds','wmaddsal',
950
+ 'wmaddu','wmaddual',
951
+ 'wmaddsx','wmaddsxal',
952
+ 'wmaddux','wmadduxal',
953
+ 'wmaddsn','wmaddsnal',
954
+ 'wmaddun','wmaddunal',
955
+ 'wmaxsb','wmaxsbal',
956
+ 'wmaxsh','wmaxshal',
957
+ 'wmaxsw','wmaxswal',
958
+ 'wmaxub','wmaxubal',
959
+ 'wmaxuh','wmaxuhal',
960
+ 'wmaxuw','wmaxuwal',
961
+ 'wmerge','wmergeal',
962
+ 'wmiabb','wmiabbal',
963
+ 'wmiabt','wmiabtal',
964
+ 'wmiatb','wmiatbal',
965
+ 'wmiatt','wmiattal',
966
+ 'wmiabbn','wmiabbnal',
967
+ 'wmiabtn','wmiabtnal',
968
+ 'wmiatbn','wmiatbnal',
969
+ 'wmiattn','wmiattnal',
970
+ 'wmiawbb','wmiawbbal',
971
+ 'wmiawbt','wmiawbtal',
972
+ 'wmiawtb','wmiawtbal',
973
+ 'wmiawtt','wmiawttal',
974
+ 'wmiawbbn','wmiawbbnal',
975
+ 'wmiawbtn','wmiawbtnal',
976
+ 'wmiawtbn','wmiawtbnal',
977
+ 'wmiawttn','wmiawttnal',
978
+ 'wminsb','wminsbal',
979
+ 'wminsh','wminshal',
980
+ 'wminsw','wminswal',
981
+ 'wminub','wminubal',
982
+ 'wminuh','wminuhal',
983
+ 'wminuw','wminuwal',
984
+ 'wmov','wmoval',
985
+ 'wmulsm','wmulsmal',
986
+ 'wmulsl','wmulslal',
987
+ 'wmulum','wmulumal',
988
+ 'wmulul','wmululal',
989
+ 'wmulsmr','wmulsmral',
990
+ 'wmulslr','wmulslral',
991
+ 'wmulumr','wmulumral',
992
+ 'wmululr','wmululral',
993
+ 'wmulwum','wmulwumal',
994
+ 'wmulwsm','wmulwsmal',
995
+ 'wmulwl','wmulwlal',
996
+ 'wmulwumr','wmulwumral',
997
+ 'wmulwsmr','wmulwsmral',
998
+ 'wor','woral',
999
+ 'wpackhss','wpackhssal',
1000
+ 'wpackwss','wpackwssal',
1001
+ 'wpackdss','wpackdssal',
1002
+ 'wpackhus','wpackhusal',
1003
+ 'wpackwus','wpackwusal',
1004
+ 'wpackdus','wpackdusal',
1005
+ 'wqmiabb','wqmiabbal',
1006
+ 'wqmiabt','wqmiabtal',
1007
+ 'wqmiatb','wqmiatbal',
1008
+ 'wqmiatt','wqmiattal',
1009
+ 'wqmiabbn','wqmiabbnal',
1010
+ 'wqmiabtn','wqmiabtnal',
1011
+ 'wqmiatbn','wqmiatbnal',
1012
+ 'wqmiattn','wqmiattnal',
1013
+ 'wqmulm','wqmulmal',
1014
+ 'wqmulmr','wqmulmral',
1015
+ 'wqmulwm','wqmulwmal',
1016
+ 'wqmulwmr','wqmulwmral',
1017
+ 'wrorh','wrorhal',
1018
+ 'wrorw','wrorwal',
1019
+ 'wrord','wrordal',
1020
+ 'wrorhg','wrorhgal',
1021
+ 'wrorwg','wrorwgal',
1022
+ 'wrordg','wrordgal',
1023
+ 'wsadb','wsadbal',
1024
+ 'wsadh','wsadhal',
1025
+ 'wsadbz','wsadbzal',
1026
+ 'wsadhz','wsadhzal',
1027
+ 'wshufh','wshufhal',
1028
+ 'wsllh','wsllhal',
1029
+ 'wsllw','wsllwal',
1030
+ 'wslld','wslldal',
1031
+ 'wsllhg','wsllhgal',
1032
+ 'wsllwg','wsllwgal',
1033
+ 'wslldg','wslldgal',
1034
+ 'wsrah','wsrahal',
1035
+ 'wsraw','wsrawal',
1036
+ 'wsrad','wsradal',
1037
+ 'wsrahg','wsrahgal',
1038
+ 'wsrawg','wsrawgal',
1039
+ 'wsradg','wsradgal',
1040
+ 'wsrlh','wsrlhal',
1041
+ 'wsrlw','wsrlwal',
1042
+ 'wsrld','wsrldal',
1043
+ 'wsrlhg','wsrlhgal',
1044
+ 'wsrlwg','wsrlwgal',
1045
+ 'wsrldg','wsrldgal',
1046
+ 'wstrb','wstrbal',
1047
+ 'wstrh','wstrhal',
1048
+ 'wstrw','wstrwal',
1049
+ 'wstrd','wstrdal',
1050
+ 'wsubb','wsubbal',
1051
+ 'wsubh','wsubhal',
1052
+ 'wsubw','wsubwal',
1053
+ 'wsubbss','wsubbssal',
1054
+ 'wsubhss','wsubhssal',
1055
+ 'wsubwss','wsubwssal',
1056
+ 'wsubbus','wsubbusal',
1057
+ 'wsubhus','wsubhusal',
1058
+ 'wsubwus','wsubwusal',
1059
+ 'wsubaddhx','wsubaddhxal',
1060
+ 'wunpckehsb','wunpckehsbal',
1061
+ 'wunpckehsh','wunpckehshal',
1062
+ 'wunpckehsw','wunpckehswal',
1063
+ 'wunpckehub','wunpckehubal',
1064
+ 'wunpckehuh','wunpckehuhal',
1065
+ 'wunpckehuw','wunpckehuwal',
1066
+ 'wunpckihb','wunpckihbal',
1067
+ 'wunpckihh','wunpckihhal',
1068
+ 'wunpckihw','wunpckihwal',
1069
+ 'wunpckelsb','wunpckelsbal',
1070
+ 'wunpckelsh','wunpckelshal',
1071
+ 'wunpckelsw','wunpckelswal',
1072
+ 'wunpckelub','wunpckelubal',
1073
+ 'wunpckeluh','wunpckeluhal',
1074
+ 'wunpckeluw','wunpckeluwal',
1075
+ 'wunpckilb','wunpckilbal',
1076
+ 'wunpckilh','wunpckilhal',
1077
+ 'wunpckilw','wunpckilwal',
1078
+ 'wxor','wxoral',
1079
+ 'wzero','wzeroal'
1080
+ ),
1081
+ /* Conditional WMMX/WMMX2 SIMD Instructions */
1082
+ 18 => array(
1083
+ /* Conditional WMMX/WMMX2 SIMD Instructions */
1084
+ 'tandcbeq','tandcbne','tandcbcs','tandcbhs','tandcbcc','tandcblo','tandcbmi','tandcbpl','tandcbvs','tandcbvc','tandcbhi','tandcbls','tandcbge','tandcblt','tandcbgt','tandcble',
1085
+ 'tandcheq','tandchne','tandchcs','tandchhs','tandchcc','tandchlo','tandchmi','tandchpl','tandchvs','tandchvc','tandchhi','tandchls','tandchge','tandchlt','tandchgt','tandchle',
1086
+ 'tandcweq','tandcwne','tandcwcs','tandcwhs','tandcwcc','tandcwlo','tandcwmi','tandcwpl','tandcwvs','tandcwvc','tandcwhi','tandcwls','tandcwge','tandcwlt','tandcwgt','tandcwle',
1087
+ 'tbcstbeq','tbcstbne','tbcstbcs','tbcstbhs','tbcstbcc','tbcstblo','tbcstbmi','tbcstbpl','tbcstbvs','tbcstbvc','tbcstbhi','tbcstbls','tbcstbge','tbcstblt','tbcstbgt','tbcstble',
1088
+ 'tbcstheq','tbcsthne','tbcsthcs','tbcsthhs','tbcsthcc','tbcsthlo','tbcsthmi','tbcsthpl','tbcsthvs','tbcsthvc','tbcsthhi','tbcsthls','tbcsthge','tbcsthlt','tbcsthgt','tbcsthle',
1089
+ 'tbcstweq','tbcstwne','tbcstwcs','tbcstwhs','tbcstwcc','tbcstwlo','tbcstwmi','tbcstwpl','tbcstwvs','tbcstwvc','tbcstwhi','tbcstwls','tbcstwge','tbcstwlt','tbcstwgt','tbcstwle',
1090
+ 'textrcbeq','textrcbne','textrcbcs','textrcbhs','textrcbcc','textrcblo','textrcbmi','textrcbpl','textrcbvs','textrcbvc','textrcbhi','textrcbls','textrcbge','textrcblt','textrcbgt','textrcble',
1091
+ 'textrcheq','textrchne','textrchcs','textrchhs','textrchcc','textrchlo','textrchmi','textrchpl','textrchvs','textrchvc','textrchhi','textrchls','textrchge','textrchlt','textrchgt','textrchle',
1092
+ 'textrcweq','textrcwne','textrcwcs','textrcwhs','textrcwcc','textrcwlo','textrcwmi','textrcwpl','textrcwvs','textrcwvc','textrcwhi','textrcwls','textrcwge','textrcwlt','textrcwgt','textrcwle',
1093
+ 'textrmsbeq','textrmsbne','textrmsbcs','textrmsbhs','textrmsbcc','textrmsblo','textrmsbmi','textrmsbpl','textrmsbvs','textrmsbvc','textrmsbhi','textrmsbls','textrmsbge','textrmsblt','textrmsbgt','textrmsble',
1094
+ 'textrmsheq','textrmshne','textrmshcs','textrmshhs','textrmshcc','textrmshlo','textrmshmi','textrmshpl','textrmshvs','textrmshvc','textrmshhi','textrmshls','textrmshge','textrmshlt','textrmshgt','textrmshle',
1095
+ 'textrmsweq','textrmswne','textrmswcs','textrmswhs','textrmswcc','textrmswlo','textrmswmi','textrmswpl','textrmswvs','textrmswvc','textrmswhi','textrmswls','textrmswge','textrmswlt','textrmswgt','textrmswle',
1096
+ 'textrmubeq','textrmubne','textrmubcs','textrmubhs','textrmubcc','textrmublo','textrmubmi','textrmubpl','textrmubvs','textrmubvc','textrmubhi','textrmubls','textrmubge','textrmublt','textrmubgt','textrmuble',
1097
+ 'textrmuheq','textrmuhne','textrmuhcs','textrmuhhs','textrmuhcc','textrmuhlo','textrmuhmi','textrmuhpl','textrmuhvs','textrmuhvc','textrmuhhi','textrmuhls','textrmuhge','textrmuhlt','textrmuhgt','textrmuhle',
1098
+ 'textrmuweq','textrmuwne','textrmuwcs','textrmuwhs','textrmuwcc','textrmuwlo','textrmuwmi','textrmuwpl','textrmuwvs','textrmuwvc','textrmuwhi','textrmuwls','textrmuwge','textrmuwlt','textrmuwgt','textrmuwle',
1099
+ 'tinsrbeq','tinsrbne','tinsrbcs','tinsrbhs','tinsrbcc','tinsrblo','tinsrbmi','tinsrbpl','tinsrbvs','tinsrbvc','tinsrbhi','tinsrbls','tinsrbge','tinsrblt','tinsrbgt','tinsrble',
1100
+ 'tinsrheq','tinsrhne','tinsrhcs','tinsrhhs','tinsrhcc','tinsrhlo','tinsrhmi','tinsrhpl','tinsrhvs','tinsrhvc','tinsrhhi','tinsrhls','tinsrhge','tinsrhlt','tinsrhgt','tinsrhle',
1101
+ 'tinsrweq','tinsrwne','tinsrwcs','tinsrwhs','tinsrwcc','tinsrwlo','tinsrwmi','tinsrwpl','tinsrwvs','tinsrwvc','tinsrwhi','tinsrwls','tinsrwge','tinsrwlt','tinsrwgt','tinsrwle',
1102
+ 'tmcreq','tmcrne','tmcrcs','tmcrhs','tmcrcc','tmcrlo','tmcrmi','tmcrpl','tmcrvs','tmcrvc','tmcrhi','tmcrls','tmcrge','tmcrlt','tmcrgt','tmcrle',
1103
+ 'tmcrreq','tmcrrne','tmcrrcs','tmcrrhs','tmcrrcc','tmcrrlo','tmcrrmi','tmcrrpl','tmcrrvs','tmcrrvc','tmcrrhi','tmcrrls','tmcrrge','tmcrrlt','tmcrrgt','tmcrrle',
1104
+ 'tmiaeq','tmiane','tmiacs','tmiahs','tmiacc','tmialo','tmiami','tmiapl','tmiavs','tmiavc','tmiahi','tmials','tmiage','tmialt','tmiagt','tmiale',
1105
+ 'tmiapheq','tmiaphne','tmiaphcs','tmiaphhs','tmiaphcc','tmiaphlo','tmiaphmi','tmiaphpl','tmiaphvs','tmiaphvc','tmiaphhi','tmiaphls','tmiaphge','tmiaphlt','tmiaphgt','tmiaphle',
1106
+ 'tmiabbeq','tmiabbne','tmiabbcs','tmiabbhs','tmiabbcc','tmiabblo','tmiabbmi','tmiabbpl','tmiabbvs','tmiabbvc','tmiabbhi','tmiabbls','tmiabbge','tmiabblt','tmiabbgt','tmiabble',
1107
+ 'tmiabteq','tmiabtne','tmiabtcs','tmiabths','tmiabtcc','tmiabtlo','tmiabtmi','tmiabtpl','tmiabtvs','tmiabtvc','tmiabthi','tmiabtls','tmiabtge','tmiabtlt','tmiabtgt','tmiabtle',
1108
+ 'tmiatbeq','tmiatbne','tmiatbcs','tmiatbhs','tmiatbcc','tmiatblo','tmiatbmi','tmiatbpl','tmiatbvs','tmiatbvc','tmiatbhi','tmiatbls','tmiatbge','tmiatblt','tmiatbgt','tmiatble',
1109
+ 'tmiatteq','tmiattne','tmiattcs','tmiatths','tmiattcc','tmiattlo','tmiattmi','tmiattpl','tmiattvs','tmiattvc','tmiatthi','tmiattls','tmiattge','tmiattlt','tmiattgt','tmiattle',
1110
+ 'tmovmskbeq','tmovmskbne','tmovmskbcs','tmovmskbhs','tmovmskbcc','tmovmskblo','tmovmskbmi','tmovmskbpl','tmovmskbvs','tmovmskbvc','tmovmskbhi','tmovmskbls','tmovmskbge','tmovmskblt','tmovmskbgt','tmovmskble',
1111
+ 'tmovmskheq','tmovmskhne','tmovmskhcs','tmovmskhhs','tmovmskhcc','tmovmskhlo','tmovmskhmi','tmovmskhpl','tmovmskhvs','tmovmskhvc','tmovmskhhi','tmovmskhls','tmovmskhge','tmovmskhlt','tmovmskhgt','tmovmskhle',
1112
+ 'tmovmskweq','tmovmskwne','tmovmskwcs','tmovmskwhs','tmovmskwcc','tmovmskwlo','tmovmskwmi','tmovmskwpl','tmovmskwvs','tmovmskwvc','tmovmskwhi','tmovmskwls','tmovmskwge','tmovmskwlt','tmovmskwgt','tmovmskwle',
1113
+ 'tmrceq','tmrcne','tmrccs','tmrchs','tmrccc','tmrclo','tmrcmi','tmrcpl','tmrcvs','tmrcvc','tmrchi','tmrcls','tmrcge','tmrclt','tmrcgt','tmrcle',
1114
+ 'tmrrceq','tmrrcne','tmrrccs','tmrrchs','tmrrccc','tmrrclo','tmrrcmi','tmrrcpl','tmrrcvs','tmrrcvc','tmrrchi','tmrrcls','tmrrcge','tmrrclt','tmrrcgt','tmrrcle',
1115
+ 'torcbeq','torcbne','torcbcs','torcbhs','torcbcc','torcblo','torcbmi','torcbpl','torcbvs','torcbvc','torcbhi','torcbls','torcbge','torcblt','torcbgt','torcble',
1116
+ 'torcheq','torchne','torchcs','torchhs','torchcc','torchlo','torchmi','torchpl','torchvs','torchvc','torchhi','torchls','torchge','torchlt','torchgt','torchle',
1117
+ 'torcweq','torcwne','torcwcs','torcwhs','torcwcc','torcwlo','torcwmi','torcwpl','torcwvs','torcwvc','torcwhi','torcwls','torcwge','torcwlt','torcwgt','torcwle',
1118
+ 'torvscbeq','torvscbne','torvscbcs','torvscbhs','torvscbcc','torvscblo','torvscbmi','torvscbpl','torvscbvs','torvscbvc','torvscbhi','torvscbls','torvscbge','torvscblt','torvscbgt','torvscble',
1119
+ 'torvscheq','torvschne','torvschcs','torvschhs','torvschcc','torvschlo','torvschmi','torvschpl','torvschvs','torvschvc','torvschhi','torvschls','torvschge','torvschlt','torvschgt','torvschle',
1120
+ 'torvscweq','torvscwne','torvscwcs','torvscwhs','torvscwcc','torvscwlo','torvscwmi','torvscwpl','torvscwvs','torvscwvc','torvscwhi','torvscwls','torvscwge','torvscwlt','torvscwgt','torvscwle',
1121
+ 'wabsbeq','wabsbne','wabsbcs','wabsbhs','wabsbcc','wabsblo','wabsbmi','wabsbpl','wabsbvs','wabsbvc','wabsbhi','wabsbls','wabsbge','wabsblt','wabsbgt','wabsble',
1122
+ 'wabsheq','wabshne','wabshcs','wabshhs','wabshcc','wabshlo','wabshmi','wabshpl','wabshvs','wabshvc','wabshhi','wabshls','wabshge','wabshlt','wabshgt','wabshle',
1123
+ 'wabsweq','wabswne','wabswcs','wabswhs','wabswcc','wabswlo','wabswmi','wabswpl','wabswvs','wabswvc','wabswhi','wabswls','wabswge','wabswlt','wabswgt','wabswle',
1124
+ 'wabsdiffbeq','wabsdiffbne','wabsdiffbcs','wabsdiffbhs','wabsdiffbcc','wabsdiffblo','wabsdiffbmi','wabsdiffbpl','wabsdiffbvs','wabsdiffbvc','wabsdiffbhi','wabsdiffbls','wabsdiffbge','wabsdiffblt','wabsdiffbgt','wabsdiffble',
1125
+ 'wabsdiffheq','wabsdiffhne','wabsdiffhcs','wabsdiffhhs','wabsdiffhcc','wabsdiffhlo','wabsdiffhmi','wabsdiffhpl','wabsdiffhvs','wabsdiffhvc','wabsdiffhhi','wabsdiffhls','wabsdiffhge','wabsdiffhlt','wabsdiffhgt','wabsdiffhle',
1126
+ 'wabsdiffweq','wabsdiffwne','wabsdiffwcs','wabsdiffwhs','wabsdiffwcc','wabsdiffwlo','wabsdiffwmi','wabsdiffwpl','wabsdiffwvs','wabsdiffwvc','wabsdiffwhi','wabsdiffwls','wabsdiffwge','wabsdiffwlt','wabsdiffwgt','wabsdiffwle',
1127
+ 'waccbeq','waccbne','waccbcs','waccbhs','waccbcc','waccblo','waccbmi','waccbpl','waccbvs','waccbvc','waccbhi','waccbls','waccbge','waccblt','waccbgt','waccble',
1128
+ 'waccheq','wacchne','wacchcs','wacchhs','wacchcc','wacchlo','wacchmi','wacchpl','wacchvs','wacchvc','wacchhi','wacchls','wacchge','wacchlt','wacchgt','wacchle',
1129
+ 'waccweq','waccwne','waccwcs','waccwhs','waccwcc','waccwlo','waccwmi','waccwpl','waccwvs','waccwvc','waccwhi','waccwls','waccwge','waccwlt','waccwgt','waccwle',
1130
+ 'waddbeq','waddbne','waddbcs','waddbhs','waddbcc','waddblo','waddbmi','waddbpl','waddbvs','waddbvc','waddbhi','waddbls','waddbge','waddblt','waddbgt','waddble',
1131
+ 'waddheq','waddhne','waddhcs','waddhhs','waddhcc','waddhlo','waddhmi','waddhpl','waddhvs','waddhvc','waddhhi','waddhls','waddhge','waddhlt','waddhgt','waddhle',
1132
+ 'waddweq','waddwne','waddwcs','waddwhs','waddwcc','waddwlo','waddwmi','waddwpl','waddwvs','waddwvc','waddwhi','waddwls','waddwge','waddwlt','waddwgt','waddwle',
1133
+ 'waddbceq','waddbcne','waddbccs','waddbchs','waddbccc','waddbclo','waddbcmi','waddbcpl','waddbcvs','waddbcvc','waddbchi','waddbcls','waddbcge','waddbclt','waddbcgt','waddbcle',
1134
+ 'waddhceq','waddhcne','waddhccs','waddhchs','waddhccc','waddhclo','waddhcmi','waddhcpl','waddhcvs','waddhcvc','waddhchi','waddhcls','waddhcge','waddhclt','waddhcgt','waddhcle',
1135
+ 'waddwceq','waddwcne','waddwccs','waddwchs','waddwccc','waddwclo','waddwcmi','waddwcpl','waddwcvs','waddwcvc','waddwchi','waddwcls','waddwcge','waddwclt','waddwcgt','waddwcle',
1136
+ 'waddbsseq','waddbssne','waddbsscs','waddbsshs','waddbsscc','waddbsslo','waddbssmi','waddbsspl','waddbssvs','waddbssvc','waddbsshi','waddbssls','waddbssge','waddbsslt','waddbssgt','waddbssle',
1137
+ 'waddhsseq','waddhssne','waddhsscs','waddhsshs','waddhsscc','waddhsslo','waddhssmi','waddhsspl','waddhssvs','waddhssvc','waddhsshi','waddhssls','waddhssge','waddhsslt','waddhssgt','waddhssle',
1138
+ 'waddwsseq','waddwssne','waddwsscs','waddwsshs','waddwsscc','waddwsslo','waddwssmi','waddwsspl','waddwssvs','waddwssvc','waddwsshi','waddwssls','waddwssge','waddwsslt','waddwssgt','waddwssle',
1139
+ 'waddbuseq','waddbusne','waddbuscs','waddbushs','waddbuscc','waddbuslo','waddbusmi','waddbuspl','waddbusvs','waddbusvc','waddbushi','waddbusls','waddbusge','waddbuslt','waddbusgt','waddbusle',
1140
+ 'waddhuseq','waddhusne','waddhuscs','waddhushs','waddhuscc','waddhuslo','waddhusmi','waddhuspl','waddhusvs','waddhusvc','waddhushi','waddhusls','waddhusge','waddhuslt','waddhusgt','waddhusle',
1141
+ 'waddwuseq','waddwusne','waddwuscs','waddwushs','waddwuscc','waddwuslo','waddwusmi','waddwuspl','waddwusvs','waddwusvc','waddwushi','waddwusls','waddwusge','waddwuslt','waddwusgt','waddwusle',
1142
+ 'waddsubhxeq','waddsubhxne','waddsubhxcs','waddsubhxhs','waddsubhxcc','waddsubhxlo','waddsubhxmi','waddsubhxpl','waddsubhxvs','waddsubhxvc','waddsubhxhi','waddsubhxls','waddsubhxge','waddsubhxlt','waddsubhxgt','waddsubhxle',
1143
+ 'walignieq','walignine','walignics','walignihs','walignicc','walignilo','walignimi','walignipl','walignivs','walignivc','walignihi','walignils','walignige','walignilt','walignigt','walignile',
1144
+ 'walignr0eq','walignr0ne','walignr0cs','walignr0hs','walignr0cc','walignr0lo','walignr0mi','walignr0pl','walignr0vs','walignr0vc','walignr0hi','walignr0ls','walignr0ge','walignr0lt','walignr0gt','walignr0le',
1145
+ 'walignr1eq','walignr1ne','walignr1cs','walignr1hs','walignr1cc','walignr1lo','walignr1mi','walignr1pl','walignr1vs','walignr1vc','walignr1hi','walignr1ls','walignr1ge','walignr1lt','walignr1gt','walignr1le',
1146
+ 'walignr2eq','walignr2ne','walignr2cs','walignr2hs','walignr2cc','walignr2lo','walignr2mi','walignr2pl','walignr2vs','walignr2vc','walignr2hi','walignr2ls','walignr2ge','walignr2lt','walignr2gt','walignr2le',
1147
+ 'walignr3eq','walignr3ne','walignr3cs','walignr3hs','walignr3cc','walignr3lo','walignr3mi','walignr3pl','walignr3vs','walignr3vc','walignr3hi','walignr3ls','walignr3ge','walignr3lt','walignr3gt','walignr3le',
1148
+ 'wandeq','wandne','wandcs','wandhs','wandcc','wandlo','wandmi','wandpl','wandvs','wandvc','wandhi','wandls','wandge','wandlt','wandgt','wandle',
1149
+ 'wandneq','wandnne','wandncs','wandnhs','wandncc','wandnlo','wandnmi','wandnpl','wandnvs','wandnvc','wandnhi','wandnls','wandnge','wandnlt','wandngt','wandnle',
1150
+ 'wavg2beq','wavg2bne','wavg2bcs','wavg2bhs','wavg2bcc','wavg2blo','wavg2bmi','wavg2bpl','wavg2bvs','wavg2bvc','wavg2bhi','wavg2bls','wavg2bge','wavg2blt','wavg2bgt','wavg2ble',
1151
+ 'wavg2heq','wavg2hne','wavg2hcs','wavg2hhs','wavg2hcc','wavg2hlo','wavg2hmi','wavg2hpl','wavg2hvs','wavg2hvc','wavg2hhi','wavg2hls','wavg2hge','wavg2hlt','wavg2hgt','wavg2hle',
1152
+ 'wavg2breq','wavg2brne','wavg2brcs','wavg2brhs','wavg2brcc','wavg2brlo','wavg2brmi','wavg2brpl','wavg2brvs','wavg2brvc','wavg2brhi','wavg2brls','wavg2brge','wavg2brlt','wavg2brgt','wavg2brle',
1153
+ 'wavg2hreq','wavg2hrne','wavg2hrcs','wavg2hrhs','wavg2hrcc','wavg2hrlo','wavg2hrmi','wavg2hrpl','wavg2hrvs','wavg2hrvc','wavg2hrhi','wavg2hrls','wavg2hrge','wavg2hrlt','wavg2hrgt','wavg2hrle',
1154
+ 'wavg4eq','wavg4ne','wavg4cs','wavg4hs','wavg4cc','wavg4lo','wavg4mi','wavg4pl','wavg4vs','wavg4vc','wavg4hi','wavg4ls','wavg4ge','wavg4lt','wavg4gt','wavg4le',
1155
+ 'wavg4req','wavg4rne','wavg4rcs','wavg4rhs','wavg4rcc','wavg4rlo','wavg4rmi','wavg4rpl','wavg4rvs','wavg4rvc','wavg4rhi','wavg4rls','wavg4rge','wavg4rlt','wavg4rgt','wavg4rle',
1156
+ 'wcmpeqbeq','wcmpeqbne','wcmpeqbcs','wcmpeqbhs','wcmpeqbcc','wcmpeqblo','wcmpeqbmi','wcmpeqbpl','wcmpeqbvs','wcmpeqbvc','wcmpeqbhi','wcmpeqbls','wcmpeqbge','wcmpeqblt','wcmpeqbgt','wcmpeqble',
1157
+ 'wcmpeqheq','wcmpeqhne','wcmpeqhcs','wcmpeqhhs','wcmpeqhcc','wcmpeqhlo','wcmpeqhmi','wcmpeqhpl','wcmpeqhvs','wcmpeqhvc','wcmpeqhhi','wcmpeqhls','wcmpeqhge','wcmpeqhlt','wcmpeqhgt','wcmpeqhle',
1158
+ 'wcmpeqweq','wcmpeqwne','wcmpeqwcs','wcmpeqwhs','wcmpeqwcc','wcmpeqwlo','wcmpeqwmi','wcmpeqwpl','wcmpeqwvs','wcmpeqwvc','wcmpeqwhi','wcmpeqwls','wcmpeqwge','wcmpeqwlt','wcmpeqwgt','wcmpeqwle',
1159
+ 'wcmpgtsbeq','wcmpgtsbne','wcmpgtsbcs','wcmpgtsbhs','wcmpgtsbcc','wcmpgtsblo','wcmpgtsbmi','wcmpgtsbpl','wcmpgtsbvs','wcmpgtsbvc','wcmpgtsbhi','wcmpgtsbls','wcmpgtsbge','wcmpgtsblt','wcmpgtsbgt','wcmpgtsble',
1160
+ 'wcmpgtsheq','wcmpgtshne','wcmpgtshcs','wcmpgtshhs','wcmpgtshcc','wcmpgtshlo','wcmpgtshmi','wcmpgtshpl','wcmpgtshvs','wcmpgtshvc','wcmpgtshhi','wcmpgtshls','wcmpgtshge','wcmpgtshlt','wcmpgtshgt','wcmpgtshle',
1161
+ 'wcmpgtsweq','wcmpgtswne','wcmpgtswcs','wcmpgtswhs','wcmpgtswcc','wcmpgtswlo','wcmpgtswmi','wcmpgtswpl','wcmpgtswvs','wcmpgtswvc','wcmpgtswhi','wcmpgtswls','wcmpgtswge','wcmpgtswlt','wcmpgtswgt','wcmpgtswle',
1162
+ 'wcmpgtubeq','wcmpgtubne','wcmpgtubcs','wcmpgtubhs','wcmpgtubcc','wcmpgtublo','wcmpgtubmi','wcmpgtubpl','wcmpgtubvs','wcmpgtubvc','wcmpgtubhi','wcmpgtubls','wcmpgtubge','wcmpgtublt','wcmpgtubgt','wcmpgtuble',
1163
+ 'wcmpgtuheq','wcmpgtuhne','wcmpgtuhcs','wcmpgtuhhs','wcmpgtuhcc','wcmpgtuhlo','wcmpgtuhmi','wcmpgtuhpl','wcmpgtuhvs','wcmpgtuhvc','wcmpgtuhhi','wcmpgtuhls','wcmpgtuhge','wcmpgtuhlt','wcmpgtuhgt','wcmpgtuhle',
1164
+ 'wcmpgtuweq','wcmpgtuwne','wcmpgtuwcs','wcmpgtuwhs','wcmpgtuwcc','wcmpgtuwlo','wcmpgtuwmi','wcmpgtuwpl','wcmpgtuwvs','wcmpgtuwvc','wcmpgtuwhi','wcmpgtuwls','wcmpgtuwge','wcmpgtuwlt','wcmpgtuwgt','wcmpgtuwle',
1165
+ 'wldrbeq','wldrbne','wldrbcs','wldrbhs','wldrbcc','wldrblo','wldrbmi','wldrbpl','wldrbvs','wldrbvc','wldrbhi','wldrbls','wldrbge','wldrblt','wldrbgt','wldrble',
1166
+ 'wldrheq','wldrhne','wldrhcs','wldrhhs','wldrhcc','wldrhlo','wldrhmi','wldrhpl','wldrhvs','wldrhvc','wldrhhi','wldrhls','wldrhge','wldrhlt','wldrhgt','wldrhle',
1167
+ 'wldrweq','wldrwne','wldrwcs','wldrwhs','wldrwcc','wldrwlo','wldrwmi','wldrwpl','wldrwvs','wldrwvc','wldrwhi','wldrwls','wldrwge','wldrwlt','wldrwgt','wldrwle',
1168
+ 'wldrdeq','wldrdne','wldrdcs','wldrdhs','wldrdcc','wldrdlo','wldrdmi','wldrdpl','wldrdvs','wldrdvc','wldrdhi','wldrdls','wldrdge','wldrdlt','wldrdgt','wldrdle',
1169
+ 'wmacseq','wmacsne','wmacscs','wmacshs','wmacscc','wmacslo','wmacsmi','wmacspl','wmacsvs','wmacsvc','wmacshi','wmacsls','wmacsge','wmacslt','wmacsgt','wmacsle',
1170
+ 'wmacueq','wmacune','wmacucs','wmacuhs','wmacucc','wmaculo','wmacumi','wmacupl','wmacuvs','wmacuvc','wmacuhi','wmaculs','wmacuge','wmacult','wmacugt','wmacule',
1171
+ 'wmacszeq','wmacszne','wmacszcs','wmacszhs','wmacszcc','wmacszlo','wmacszmi','wmacszpl','wmacszvs','wmacszvc','wmacszhi','wmacszls','wmacszge','wmacszlt','wmacszgt','wmacszle',
1172
+ 'wmacuzeq','wmacuzne','wmacuzcs','wmacuzhs','wmacuzcc','wmacuzlo','wmacuzmi','wmacuzpl','wmacuzvs','wmacuzvc','wmacuzhi','wmacuzls','wmacuzge','wmacuzlt','wmacuzgt','wmacuzle',
1173
+ 'wmaddseq','wmaddsne','wmaddscs','wmaddshs','wmaddscc','wmaddslo','wmaddsmi','wmaddspl','wmaddsvs','wmaddsvc','wmaddshi','wmaddsls','wmaddsge','wmaddslt','wmaddsgt','wmaddsle',
1174
+ 'wmaddueq','wmaddune','wmadducs','wmadduhs','wmadducc','wmaddulo','wmaddumi','wmaddupl','wmadduvs','wmadduvc','wmadduhi','wmadduls','wmadduge','wmaddult','wmaddugt','wmaddule',
1175
+ 'wmaddsxeq','wmaddsxne','wmaddsxcs','wmaddsxhs','wmaddsxcc','wmaddsxlo','wmaddsxmi','wmaddsxpl','wmaddsxvs','wmaddsxvc','wmaddsxhi','wmaddsxls','wmaddsxge','wmaddsxlt','wmaddsxgt','wmaddsxle',
1176
+ 'wmadduxeq','wmadduxne','wmadduxcs','wmadduxhs','wmadduxcc','wmadduxlo','wmadduxmi','wmadduxpl','wmadduxvs','wmadduxvc','wmadduxhi','wmadduxls','wmadduxge','wmadduxlt','wmadduxgt','wmadduxle',
1177
+ 'wmaddsneq','wmaddsnne','wmaddsncs','wmaddsnhs','wmaddsncc','wmaddsnlo','wmaddsnmi','wmaddsnpl','wmaddsnvs','wmaddsnvc','wmaddsnhi','wmaddsnls','wmaddsnge','wmaddsnlt','wmaddsngt','wmaddsnle',
1178
+ 'wmadduneq','wmaddunne','wmadduncs','wmaddunhs','wmadduncc','wmaddunlo','wmaddunmi','wmaddunpl','wmaddunvs','wmaddunvc','wmaddunhi','wmaddunls','wmaddunge','wmaddunlt','wmaddungt','wmaddunle',
1179
+ 'wmaxsbeq','wmaxsbne','wmaxsbcs','wmaxsbhs','wmaxsbcc','wmaxsblo','wmaxsbmi','wmaxsbpl','wmaxsbvs','wmaxsbvc','wmaxsbhi','wmaxsbls','wmaxsbge','wmaxsblt','wmaxsbgt','wmaxsble',
1180
+ 'wmaxsheq','wmaxshne','wmaxshcs','wmaxshhs','wmaxshcc','wmaxshlo','wmaxshmi','wmaxshpl','wmaxshvs','wmaxshvc','wmaxshhi','wmaxshls','wmaxshge','wmaxshlt','wmaxshgt','wmaxshle',
1181
+ 'wmaxsweq','wmaxswne','wmaxswcs','wmaxswhs','wmaxswcc','wmaxswlo','wmaxswmi','wmaxswpl','wmaxswvs','wmaxswvc','wmaxswhi','wmaxswls','wmaxswge','wmaxswlt','wmaxswgt','wmaxswle',
1182
+ 'wmaxubeq','wmaxubne','wmaxubcs','wmaxubhs','wmaxubcc','wmaxublo','wmaxubmi','wmaxubpl','wmaxubvs','wmaxubvc','wmaxubhi','wmaxubls','wmaxubge','wmaxublt','wmaxubgt','wmaxuble',
1183
+ 'wmaxuheq','wmaxuhne','wmaxuhcs','wmaxuhhs','wmaxuhcc','wmaxuhlo','wmaxuhmi','wmaxuhpl','wmaxuhvs','wmaxuhvc','wmaxuhhi','wmaxuhls','wmaxuhge','wmaxuhlt','wmaxuhgt','wmaxuhle',
1184
+ 'wmaxuweq','wmaxuwne','wmaxuwcs','wmaxuwhs','wmaxuwcc','wmaxuwlo','wmaxuwmi','wmaxuwpl','wmaxuwvs','wmaxuwvc','wmaxuwhi','wmaxuwls','wmaxuwge','wmaxuwlt','wmaxuwgt','wmaxuwle',
1185
+ 'wmergeeq','wmergene','wmergecs','wmergehs','wmergecc','wmergelo','wmergemi','wmergepl','wmergevs','wmergevc','wmergehi','wmergels','wmergege','wmergelt','wmergegt','wmergele',
1186
+ 'wmiabbeq','wmiabbne','wmiabbcs','wmiabbhs','wmiabbcc','wmiabblo','wmiabbmi','wmiabbpl','wmiabbvs','wmiabbvc','wmiabbhi','wmiabbls','wmiabbge','wmiabblt','wmiabbgt','wmiabble',
1187
+ 'wmiabteq','wmiabtne','wmiabtcs','wmiabths','wmiabtcc','wmiabtlo','wmiabtmi','wmiabtpl','wmiabtvs','wmiabtvc','wmiabthi','wmiabtls','wmiabtge','wmiabtlt','wmiabtgt','wmiabtle',
1188
+ 'wmiatbeq','wmiatbne','wmiatbcs','wmiatbhs','wmiatbcc','wmiatblo','wmiatbmi','wmiatbpl','wmiatbvs','wmiatbvc','wmiatbhi','wmiatbls','wmiatbge','wmiatblt','wmiatbgt','wmiatble',
1189
+ 'wmiatteq','wmiattne','wmiattcs','wmiatths','wmiattcc','wmiattlo','wmiattmi','wmiattpl','wmiattvs','wmiattvc','wmiatthi','wmiattls','wmiattge','wmiattlt','wmiattgt','wmiattle',
1190
+ 'wmiabbneq','wmiabbnne','wmiabbncs','wmiabbnhs','wmiabbncc','wmiabbnlo','wmiabbnmi','wmiabbnpl','wmiabbnvs','wmiabbnvc','wmiabbnhi','wmiabbnls','wmiabbnge','wmiabbnlt','wmiabbngt','wmiabbnle',
1191
+ 'wmiabtneq','wmiabtnne','wmiabtncs','wmiabtnhs','wmiabtncc','wmiabtnlo','wmiabtnmi','wmiabtnpl','wmiabtnvs','wmiabtnvc','wmiabtnhi','wmiabtnls','wmiabtnge','wmiabtnlt','wmiabtngt','wmiabtnle',
1192
+ 'wmiatbneq','wmiatbnne','wmiatbncs','wmiatbnhs','wmiatbncc','wmiatbnlo','wmiatbnmi','wmiatbnpl','wmiatbnvs','wmiatbnvc','wmiatbnhi','wmiatbnls','wmiatbnge','wmiatbnlt','wmiatbngt','wmiatbnle',
1193
+ 'wmiattneq','wmiattnne','wmiattncs','wmiattnhs','wmiattncc','wmiattnlo','wmiattnmi','wmiattnpl','wmiattnvs','wmiattnvc','wmiattnhi','wmiattnls','wmiattnge','wmiattnlt','wmiattngt','wmiattnle',
1194
+ 'wmiawbbeq','wmiawbbne','wmiawbbcs','wmiawbbhs','wmiawbbcc','wmiawbblo','wmiawbbmi','wmiawbbpl','wmiawbbvs','wmiawbbvc','wmiawbbhi','wmiawbbls','wmiawbbge','wmiawbblt','wmiawbbgt','wmiawbble',
1195
+ 'wmiawbteq','wmiawbtne','wmiawbtcs','wmiawbths','wmiawbtcc','wmiawbtlo','wmiawbtmi','wmiawbtpl','wmiawbtvs','wmiawbtvc','wmiawbthi','wmiawbtls','wmiawbtge','wmiawbtlt','wmiawbtgt','wmiawbtle',
1196
+ 'wmiawtbeq','wmiawtbne','wmiawtbcs','wmiawtbhs','wmiawtbcc','wmiawtblo','wmiawtbmi','wmiawtbpl','wmiawtbvs','wmiawtbvc','wmiawtbhi','wmiawtbls','wmiawtbge','wmiawtblt','wmiawtbgt','wmiawtble',
1197
+ 'wmiawtteq','wmiawttne','wmiawttcs','wmiawtths','wmiawttcc','wmiawttlo','wmiawttmi','wmiawttpl','wmiawttvs','wmiawttvc','wmiawtthi','wmiawttls','wmiawttge','wmiawttlt','wmiawttgt','wmiawttle',
1198
+ 'wmiawbbneq','wmiawbbnne','wmiawbbncs','wmiawbbnhs','wmiawbbncc','wmiawbbnlo','wmiawbbnmi','wmiawbbnpl','wmiawbbnvs','wmiawbbnvc','wmiawbbnhi','wmiawbbnls','wmiawbbnge','wmiawbbnlt','wmiawbbngt','wmiawbbnle',
1199
+ 'wmiawbtneq','wmiawbtnne','wmiawbtncs','wmiawbtnhs','wmiawbtncc','wmiawbtnlo','wmiawbtnmi','wmiawbtnpl','wmiawbtnvs','wmiawbtnvc','wmiawbtnhi','wmiawbtnls','wmiawbtnge','wmiawbtnlt','wmiawbtngt','wmiawbtnle',
1200
+ 'wmiawtbneq','wmiawtbnne','wmiawtbncs','wmiawtbnhs','wmiawtbncc','wmiawtbnlo','wmiawtbnmi','wmiawtbnpl','wmiawtbnvs','wmiawtbnvc','wmiawtbnhi','wmiawtbnls','wmiawtbnge','wmiawtbnlt','wmiawtbngt','wmiawtbnle',
1201
+ 'wmiawttneq','wmiawttnne','wmiawttncs','wmiawttnhs','wmiawttncc','wmiawttnlo','wmiawttnmi','wmiawttnpl','wmiawttnvs','wmiawttnvc','wmiawttnhi','wmiawttnls','wmiawttnge','wmiawttnlt','wmiawttngt','wmiawttnle',
1202
+ 'wminsbeq','wminsbne','wminsbcs','wminsbhs','wminsbcc','wminsblo','wminsbmi','wminsbpl','wminsbvs','wminsbvc','wminsbhi','wminsbls','wminsbge','wminsblt','wminsbgt','wminsble',
1203
+ 'wminsheq','wminshne','wminshcs','wminshhs','wminshcc','wminshlo','wminshmi','wminshpl','wminshvs','wminshvc','wminshhi','wminshls','wminshge','wminshlt','wminshgt','wminshle',
1204
+ 'wminsweq','wminswne','wminswcs','wminswhs','wminswcc','wminswlo','wminswmi','wminswpl','wminswvs','wminswvc','wminswhi','wminswls','wminswge','wminswlt','wminswgt','wminswle',
1205
+ 'wminubeq','wminubne','wminubcs','wminubhs','wminubcc','wminublo','wminubmi','wminubpl','wminubvs','wminubvc','wminubhi','wminubls','wminubge','wminublt','wminubgt','wminuble',
1206
+ 'wminuheq','wminuhne','wminuhcs','wminuhhs','wminuhcc','wminuhlo','wminuhmi','wminuhpl','wminuhvs','wminuhvc','wminuhhi','wminuhls','wminuhge','wminuhlt','wminuhgt','wminuhle',
1207
+ 'wminuweq','wminuwne','wminuwcs','wminuwhs','wminuwcc','wminuwlo','wminuwmi','wminuwpl','wminuwvs','wminuwvc','wminuwhi','wminuwls','wminuwge','wminuwlt','wminuwgt','wminuwle',
1208
+ 'wmoveq','wmovne','wmovcs','wmovhs','wmovcc','wmovlo','wmovmi','wmovpl','wmovvs','wmovvc','wmovhi','wmovls','wmovge','wmovlt','wmovgt','wmovle',
1209
+ 'wmulsmeq','wmulsmne','wmulsmcs','wmulsmhs','wmulsmcc','wmulsmlo','wmulsmmi','wmulsmpl','wmulsmvs','wmulsmvc','wmulsmhi','wmulsmls','wmulsmge','wmulsmlt','wmulsmgt','wmulsmle',
1210
+ 'wmulsleq','wmulslne','wmulslcs','wmulslhs','wmulslcc','wmulsllo','wmulslmi','wmulslpl','wmulslvs','wmulslvc','wmulslhi','wmulslls','wmulslge','wmulsllt','wmulslgt','wmulslle',
1211
+ 'wmulumeq','wmulumne','wmulumcs','wmulumhs','wmulumcc','wmulumlo','wmulummi','wmulumpl','wmulumvs','wmulumvc','wmulumhi','wmulumls','wmulumge','wmulumlt','wmulumgt','wmulumle',
1212
+ 'wmululeq','wmululne','wmululcs','wmululhs','wmululcc','wmulullo','wmululmi','wmululpl','wmululvs','wmululvc','wmululhi','wmululls','wmululge','wmulullt','wmululgt','wmululle',
1213
+ 'wmulsmreq','wmulsmrne','wmulsmrcs','wmulsmrhs','wmulsmrcc','wmulsmrlo','wmulsmrmi','wmulsmrpl','wmulsmrvs','wmulsmrvc','wmulsmrhi','wmulsmrls','wmulsmrge','wmulsmrlt','wmulsmrgt','wmulsmrle',
1214
+ 'wmulslreq','wmulslrne','wmulslrcs','wmulslrhs','wmulslrcc','wmulslrlo','wmulslrmi','wmulslrpl','wmulslrvs','wmulslrvc','wmulslrhi','wmulslrls','wmulslrge','wmulslrlt','wmulslrgt','wmulslrle',
1215
+ 'wmulumreq','wmulumrne','wmulumrcs','wmulumrhs','wmulumrcc','wmulumrlo','wmulumrmi','wmulumrpl','wmulumrvs','wmulumrvc','wmulumrhi','wmulumrls','wmulumrge','wmulumrlt','wmulumrgt','wmulumrle',
1216
+ 'wmululreq','wmululrne','wmululrcs','wmululrhs','wmululrcc','wmululrlo','wmululrmi','wmululrpl','wmululrvs','wmululrvc','wmululrhi','wmululrls','wmululrge','wmululrlt','wmululrgt','wmululrle',
1217
+ 'wmulwumeq','wmulwumne','wmulwumcs','wmulwumhs','wmulwumcc','wmulwumlo','wmulwummi','wmulwumpl','wmulwumvs','wmulwumvc','wmulwumhi','wmulwumls','wmulwumge','wmulwumlt','wmulwumgt','wmulwumle',
1218
+ 'wmulwsmeq','wmulwsmne','wmulwsmcs','wmulwsmhs','wmulwsmcc','wmulwsmlo','wmulwsmmi','wmulwsmpl','wmulwsmvs','wmulwsmvc','wmulwsmhi','wmulwsmls','wmulwsmge','wmulwsmlt','wmulwsmgt','wmulwsmle',
1219
+ 'wmulwleq','wmulwlne','wmulwlcs','wmulwlhs','wmulwlcc','wmulwllo','wmulwlmi','wmulwlpl','wmulwlvs','wmulwlvc','wmulwlhi','wmulwlls','wmulwlge','wmulwllt','wmulwlgt','wmulwlle',
1220
+ 'wmulwumreq','wmulwumrne','wmulwumrcs','wmulwumrhs','wmulwumrcc','wmulwumrlo','wmulwumrmi','wmulwumrpl','wmulwumrvs','wmulwumrvc','wmulwumrhi','wmulwumrls','wmulwumrge','wmulwumrlt','wmulwumrgt','wmulwumrle',
1221
+ 'wmulwsmreq','wmulwsmrne','wmulwsmrcs','wmulwsmrhs','wmulwsmrcc','wmulwsmrlo','wmulwsmrmi','wmulwsmrpl','wmulwsmrvs','wmulwsmrvc','wmulwsmrhi','wmulwsmrls','wmulwsmrge','wmulwsmrlt','wmulwsmrgt','wmulwsmrle',
1222
+ 'woreq','worne','worcs','worhs','worcc','worlo','wormi','worpl','worvs','worvc','worhi','worls','worge','worlt','worgt','worle',
1223
+ 'wpackhsseq','wpackhssne','wpackhsscs','wpackhsshs','wpackhsscc','wpackhsslo','wpackhssmi','wpackhsspl','wpackhssvs','wpackhssvc','wpackhsshi','wpackhssls','wpackhssge','wpackhsslt','wpackhssgt','wpackhssle',
1224
+ 'wpackwsseq','wpackwssne','wpackwsscs','wpackwsshs','wpackwsscc','wpackwsslo','wpackwssmi','wpackwsspl','wpackwssvs','wpackwssvc','wpackwsshi','wpackwssls','wpackwssge','wpackwsslt','wpackwssgt','wpackwssle',
1225
+ 'wpackdsseq','wpackdssne','wpackdsscs','wpackdsshs','wpackdsscc','wpackdsslo','wpackdssmi','wpackdsspl','wpackdssvs','wpackdssvc','wpackdsshi','wpackdssls','wpackdssge','wpackdsslt','wpackdssgt','wpackdssle',
1226
+ 'wpackhuseq','wpackhusne','wpackhuscs','wpackhushs','wpackhuscc','wpackhuslo','wpackhusmi','wpackhuspl','wpackhusvs','wpackhusvc','wpackhushi','wpackhusls','wpackhusge','wpackhuslt','wpackhusgt','wpackhusle',
1227
+ 'wpackwuseq','wpackwusne','wpackwuscs','wpackwushs','wpackwuscc','wpackwuslo','wpackwusmi','wpackwuspl','wpackwusvs','wpackwusvc','wpackwushi','wpackwusls','wpackwusge','wpackwuslt','wpackwusgt','wpackwusle',
1228
+ 'wpackduseq','wpackdusne','wpackduscs','wpackdushs','wpackduscc','wpackduslo','wpackdusmi','wpackduspl','wpackdusvs','wpackdusvc','wpackdushi','wpackdusls','wpackdusge','wpackduslt','wpackdusgt','wpackdusle',
1229
+ 'wqmiabbeq','wqmiabbne','wqmiabbcs','wqmiabbhs','wqmiabbcc','wqmiabblo','wqmiabbmi','wqmiabbpl','wqmiabbvs','wqmiabbvc','wqmiabbhi','wqmiabbls','wqmiabbge','wqmiabblt','wqmiabbgt','wqmiabble',
1230
+ 'wqmiabteq','wqmiabtne','wqmiabtcs','wqmiabths','wqmiabtcc','wqmiabtlo','wqmiabtmi','wqmiabtpl','wqmiabtvs','wqmiabtvc','wqmiabthi','wqmiabtls','wqmiabtge','wqmiabtlt','wqmiabtgt','wqmiabtle',
1231
+ 'wqmiatbeq','wqmiatbne','wqmiatbcs','wqmiatbhs','wqmiatbcc','wqmiatblo','wqmiatbmi','wqmiatbpl','wqmiatbvs','wqmiatbvc','wqmiatbhi','wqmiatbls','wqmiatbge','wqmiatblt','wqmiatbgt','wqmiatble',
1232
+ 'wqmiatteq','wqmiattne','wqmiattcs','wqmiatths','wqmiattcc','wqmiattlo','wqmiattmi','wqmiattpl','wqmiattvs','wqmiattvc','wqmiatthi','wqmiattls','wqmiattge','wqmiattlt','wqmiattgt','wqmiattle',
1233
+ 'wqmiabbneq','wqmiabbnne','wqmiabbncs','wqmiabbnhs','wqmiabbncc','wqmiabbnlo','wqmiabbnmi','wqmiabbnpl','wqmiabbnvs','wqmiabbnvc','wqmiabbnhi','wqmiabbnls','wqmiabbnge','wqmiabbnlt','wqmiabbngt','wqmiabbnle',
1234
+ 'wqmiabtneq','wqmiabtnne','wqmiabtncs','wqmiabtnhs','wqmiabtncc','wqmiabtnlo','wqmiabtnmi','wqmiabtnpl','wqmiabtnvs','wqmiabtnvc','wqmiabtnhi','wqmiabtnls','wqmiabtnge','wqmiabtnlt','wqmiabtngt','wqmiabtnle',
1235
+ 'wqmiatbneq','wqmiatbnne','wqmiatbncs','wqmiatbnhs','wqmiatbncc','wqmiatbnlo','wqmiatbnmi','wqmiatbnpl','wqmiatbnvs','wqmiatbnvc','wqmiatbnhi','wqmiatbnls','wqmiatbnge','wqmiatbnlt','wqmiatbngt','wqmiatbnle',
1236
+ 'wqmiattneq','wqmiattnne','wqmiattncs','wqmiattnhs','wqmiattncc','wqmiattnlo','wqmiattnmi','wqmiattnpl','wqmiattnvs','wqmiattnvc','wqmiattnhi','wqmiattnls','wqmiattnge','wqmiattnlt','wqmiattngt','wqmiattnle',
1237
+ 'wqmulmeq','wqmulmne','wqmulmcs','wqmulmhs','wqmulmcc','wqmulmlo','wqmulmmi','wqmulmpl','wqmulmvs','wqmulmvc','wqmulmhi','wqmulmls','wqmulmge','wqmulmlt','wqmulmgt','wqmulmle',
1238
+ 'wqmulmreq','wqmulmrne','wqmulmrcs','wqmulmrhs','wqmulmrcc','wqmulmrlo','wqmulmrmi','wqmulmrpl','wqmulmrvs','wqmulmrvc','wqmulmrhi','wqmulmrls','wqmulmrge','wqmulmrlt','wqmulmrgt','wqmulmrle',
1239
+ 'wqmulwmeq','wqmulwmne','wqmulwmcs','wqmulwmhs','wqmulwmcc','wqmulwmlo','wqmulwmmi','wqmulwmpl','wqmulwmvs','wqmulwmvc','wqmulwmhi','wqmulwmls','wqmulwmge','wqmulwmlt','wqmulwmgt','wqmulwmle',
1240
+ 'wqmulwmreq','wqmulwmrne','wqmulwmrcs','wqmulwmrhs','wqmulwmrcc','wqmulwmrlo','wqmulwmrmi','wqmulwmrpl','wqmulwmrvs','wqmulwmrvc','wqmulwmrhi','wqmulwmrls','wqmulwmrge','wqmulwmrlt','wqmulwmrgt','wqmulwmrle',
1241
+ 'wrorheq','wrorhne','wrorhcs','wrorhhs','wrorhcc','wrorhlo','wrorhmi','wrorhpl','wrorhvs','wrorhvc','wrorhhi','wrorhls','wrorhge','wrorhlt','wrorhgt','wrorhle',
1242
+ 'wrorweq','wrorwne','wrorwcs','wrorwhs','wrorwcc','wrorwlo','wrorwmi','wrorwpl','wrorwvs','wrorwvc','wrorwhi','wrorwls','wrorwge','wrorwlt','wrorwgt','wrorwle',
1243
+ 'wrordeq','wrordne','wrordcs','wrordhs','wrordcc','wrordlo','wrordmi','wrordpl','wrordvs','wrordvc','wrordhi','wrordls','wrordge','wrordlt','wrordgt','wrordle',
1244
+ 'wrorhgeq','wrorhgne','wrorhgcs','wrorhghs','wrorhgcc','wrorhglo','wrorhgmi','wrorhgpl','wrorhgvs','wrorhgvc','wrorhghi','wrorhgls','wrorhgge','wrorhglt','wrorhggt','wrorhgle',
1245
+ 'wrorwgeq','wrorwgne','wrorwgcs','wrorwghs','wrorwgcc','wrorwglo','wrorwgmi','wrorwgpl','wrorwgvs','wrorwgvc','wrorwghi','wrorwgls','wrorwgge','wrorwglt','wrorwggt','wrorwgle',
1246
+ 'wrordgeq','wrordgne','wrordgcs','wrordghs','wrordgcc','wrordglo','wrordgmi','wrordgpl','wrordgvs','wrordgvc','wrordghi','wrordgls','wrordgge','wrordglt','wrordggt','wrordgle',
1247
+ 'wsadbeq','wsadbne','wsadbcs','wsadbhs','wsadbcc','wsadblo','wsadbmi','wsadbpl','wsadbvs','wsadbvc','wsadbhi','wsadbls','wsadbge','wsadblt','wsadbgt','wsadble',
1248
+ 'wsadheq','wsadhne','wsadhcs','wsadhhs','wsadhcc','wsadhlo','wsadhmi','wsadhpl','wsadhvs','wsadhvc','wsadhhi','wsadhls','wsadhge','wsadhlt','wsadhgt','wsadhle',
1249
+ 'wsadbzeq','wsadbzne','wsadbzcs','wsadbzhs','wsadbzcc','wsadbzlo','wsadbzmi','wsadbzpl','wsadbzvs','wsadbzvc','wsadbzhi','wsadbzls','wsadbzge','wsadbzlt','wsadbzgt','wsadbzle',
1250
+ 'wsadhzeq','wsadhzne','wsadhzcs','wsadhzhs','wsadhzcc','wsadhzlo','wsadhzmi','wsadhzpl','wsadhzvs','wsadhzvc','wsadhzhi','wsadhzls','wsadhzge','wsadhzlt','wsadhzgt','wsadhzle',
1251
+ 'wshufheq','wshufhne','wshufhcs','wshufhhs','wshufhcc','wshufhlo','wshufhmi','wshufhpl','wshufhvs','wshufhvc','wshufhhi','wshufhls','wshufhge','wshufhlt','wshufhgt','wshufhle',
1252
+ 'wsllheq','wsllhne','wsllhcs','wsllhhs','wsllhcc','wsllhlo','wsllhmi','wsllhpl','wsllhvs','wsllhvc','wsllhhi','wsllhls','wsllhge','wsllhlt','wsllhgt','wsllhle',
1253
+ 'wsllweq','wsllwne','wsllwcs','wsllwhs','wsllwcc','wsllwlo','wsllwmi','wsllwpl','wsllwvs','wsllwvc','wsllwhi','wsllwls','wsllwge','wsllwlt','wsllwgt','wsllwle',
1254
+ 'wslldeq','wslldne','wslldcs','wslldhs','wslldcc','wslldlo','wslldmi','wslldpl','wslldvs','wslldvc','wslldhi','wslldls','wslldge','wslldlt','wslldgt','wslldle',
1255
+ 'wsllhgeq','wsllhgne','wsllhgcs','wsllhghs','wsllhgcc','wsllhglo','wsllhgmi','wsllhgpl','wsllhgvs','wsllhgvc','wsllhghi','wsllhgls','wsllhgge','wsllhglt','wsllhggt','wsllhgle',
1256
+ 'wsllwgeq','wsllwgne','wsllwgcs','wsllwghs','wsllwgcc','wsllwglo','wsllwgmi','wsllwgpl','wsllwgvs','wsllwgvc','wsllwghi','wsllwgls','wsllwgge','wsllwglt','wsllwggt','wsllwgle',
1257
+ 'wslldgeq','wslldgne','wslldgcs','wslldghs','wslldgcc','wslldglo','wslldgmi','wslldgpl','wslldgvs','wslldgvc','wslldghi','wslldgls','wslldgge','wslldglt','wslldggt','wslldgle',
1258
+ 'wsraheq','wsrahne','wsrahcs','wsrahhs','wsrahcc','wsrahlo','wsrahmi','wsrahpl','wsrahvs','wsrahvc','wsrahhi','wsrahls','wsrahge','wsrahlt','wsrahgt','wsrahle',
1259
+ 'wsraweq','wsrawne','wsrawcs','wsrawhs','wsrawcc','wsrawlo','wsrawmi','wsrawpl','wsrawvs','wsrawvc','wsrawhi','wsrawls','wsrawge','wsrawlt','wsrawgt','wsrawle',
1260
+ 'wsradeq','wsradne','wsradcs','wsradhs','wsradcc','wsradlo','wsradmi','wsradpl','wsradvs','wsradvc','wsradhi','wsradls','wsradge','wsradlt','wsradgt','wsradle',
1261
+ 'wsrahgeq','wsrahgne','wsrahgcs','wsrahghs','wsrahgcc','wsrahglo','wsrahgmi','wsrahgpl','wsrahgvs','wsrahgvc','wsrahghi','wsrahgls','wsrahgge','wsrahglt','wsrahggt','wsrahgle',
1262
+ 'wsrawgeq','wsrawgne','wsrawgcs','wsrawghs','wsrawgcc','wsrawglo','wsrawgmi','wsrawgpl','wsrawgvs','wsrawgvc','wsrawghi','wsrawgls','wsrawgge','wsrawglt','wsrawggt','wsrawgle',
1263
+ 'wsradgeq','wsradgne','wsradgcs','wsradghs','wsradgcc','wsradglo','wsradgmi','wsradgpl','wsradgvs','wsradgvc','wsradghi','wsradgls','wsradgge','wsradglt','wsradggt','wsradgle',
1264
+ 'wsrlheq','wsrlhne','wsrlhcs','wsrlhhs','wsrlhcc','wsrlhlo','wsrlhmi','wsrlhpl','wsrlhvs','wsrlhvc','wsrlhhi','wsrlhls','wsrlhge','wsrlhlt','wsrlhgt','wsrlhle',
1265
+ 'wsrlweq','wsrlwne','wsrlwcs','wsrlwhs','wsrlwcc','wsrlwlo','wsrlwmi','wsrlwpl','wsrlwvs','wsrlwvc','wsrlwhi','wsrlwls','wsrlwge','wsrlwlt','wsrlwgt','wsrlwle',
1266
+ 'wsrldeq','wsrldne','wsrldcs','wsrldhs','wsrldcc','wsrldlo','wsrldmi','wsrldpl','wsrldvs','wsrldvc','wsrldhi','wsrldls','wsrldge','wsrldlt','wsrldgt','wsrldle',
1267
+ 'wsrlhgeq','wsrlhgne','wsrlhgcs','wsrlhghs','wsrlhgcc','wsrlhglo','wsrlhgmi','wsrlhgpl','wsrlhgvs','wsrlhgvc','wsrlhghi','wsrlhgls','wsrlhgge','wsrlhglt','wsrlhggt','wsrlhgle',
1268
+ 'wsrlwgeq','wsrlwgne','wsrlwgcs','wsrlwghs','wsrlwgcc','wsrlwglo','wsrlwgmi','wsrlwgpl','wsrlwgvs','wsrlwgvc','wsrlwghi','wsrlwgls','wsrlwgge','wsrlwglt','wsrlwggt','wsrlwgle',
1269
+ 'wsrldgeq','wsrldgne','wsrldgcs','wsrldghs','wsrldgcc','wsrldglo','wsrldgmi','wsrldgpl','wsrldgvs','wsrldgvc','wsrldghi','wsrldgls','wsrldgge','wsrldglt','wsrldggt','wsrldgle',
1270
+ 'wstrbeq','wstrbne','wstrbcs','wstrbhs','wstrbcc','wstrblo','wstrbmi','wstrbpl','wstrbvs','wstrbvc','wstrbhi','wstrbls','wstrbge','wstrblt','wstrbgt','wstrble',
1271
+ 'wstrheq','wstrhne','wstrhcs','wstrhhs','wstrhcc','wstrhlo','wstrhmi','wstrhpl','wstrhvs','wstrhvc','wstrhhi','wstrhls','wstrhge','wstrhlt','wstrhgt','wstrhle',
1272
+ 'wstrweq','wstrwne','wstrwcs','wstrwhs','wstrwcc','wstrwlo','wstrwmi','wstrwpl','wstrwvs','wstrwvc','wstrwhi','wstrwls','wstrwge','wstrwlt','wstrwgt','wstrwle',
1273
+ 'wstrdeq','wstrdne','wstrdcs','wstrdhs','wstrdcc','wstrdlo','wstrdmi','wstrdpl','wstrdvs','wstrdvc','wstrdhi','wstrdls','wstrdge','wstrdlt','wstrdgt','wstrdle',
1274
+ 'wsubbeq','wsubbne','wsubbcs','wsubbhs','wsubbcc','wsubblo','wsubbmi','wsubbpl','wsubbvs','wsubbvc','wsubbhi','wsubbls','wsubbge','wsubblt','wsubbgt','wsubble',
1275
+ 'wsubheq','wsubhne','wsubhcs','wsubhhs','wsubhcc','wsubhlo','wsubhmi','wsubhpl','wsubhvs','wsubhvc','wsubhhi','wsubhls','wsubhge','wsubhlt','wsubhgt','wsubhle',
1276
+ 'wsubweq','wsubwne','wsubwcs','wsubwhs','wsubwcc','wsubwlo','wsubwmi','wsubwpl','wsubwvs','wsubwvc','wsubwhi','wsubwls','wsubwge','wsubwlt','wsubwgt','wsubwle',
1277
+ 'wsubbsseq','wsubbssne','wsubbsscs','wsubbsshs','wsubbsscc','wsubbsslo','wsubbssmi','wsubbsspl','wsubbssvs','wsubbssvc','wsubbsshi','wsubbssls','wsubbssge','wsubbsslt','wsubbssgt','wsubbssle',
1278
+ 'wsubhsseq','wsubhssne','wsubhsscs','wsubhsshs','wsubhsscc','wsubhsslo','wsubhssmi','wsubhsspl','wsubhssvs','wsubhssvc','wsubhsshi','wsubhssls','wsubhssge','wsubhsslt','wsubhssgt','wsubhssle',
1279
+ 'wsubwsseq','wsubwssne','wsubwsscs','wsubwsshs','wsubwsscc','wsubwsslo','wsubwssmi','wsubwsspl','wsubwssvs','wsubwssvc','wsubwsshi','wsubwssls','wsubwssge','wsubwsslt','wsubwssgt','wsubwssle',
1280
+ 'wsubbuseq','wsubbusne','wsubbuscs','wsubbushs','wsubbuscc','wsubbuslo','wsubbusmi','wsubbuspl','wsubbusvs','wsubbusvc','wsubbushi','wsubbusls','wsubbusge','wsubbuslt','wsubbusgt','wsubbusle',
1281
+ 'wsubhuseq','wsubhusne','wsubhuscs','wsubhushs','wsubhuscc','wsubhuslo','wsubhusmi','wsubhuspl','wsubhusvs','wsubhusvc','wsubhushi','wsubhusls','wsubhusge','wsubhuslt','wsubhusgt','wsubhusle',
1282
+ 'wsubwuseq','wsubwusne','wsubwuscs','wsubwushs','wsubwuscc','wsubwuslo','wsubwusmi','wsubwuspl','wsubwusvs','wsubwusvc','wsubwushi','wsubwusls','wsubwusge','wsubwuslt','wsubwusgt','wsubwusle',
1283
+ 'wsubaddhxeq','wsubaddhxne','wsubaddhxcs','wsubaddhxhs','wsubaddhxcc','wsubaddhxlo','wsubaddhxmi','wsubaddhxpl','wsubaddhxvs','wsubaddhxvc','wsubaddhxhi','wsubaddhxls','wsubaddhxge','wsubaddhxlt','wsubaddhxgt','wsubaddhxle',
1284
+ 'wunpckehsbeq','wunpckehsbne','wunpckehsbcs','wunpckehsbhs','wunpckehsbcc','wunpckehsblo','wunpckehsbmi','wunpckehsbpl','wunpckehsbvs','wunpckehsbvc','wunpckehsbhi','wunpckehsbls','wunpckehsbge','wunpckehsblt','wunpckehsbgt','wunpckehsble',
1285
+ 'wunpckehsheq','wunpckehshne','wunpckehshcs','wunpckehshhs','wunpckehshcc','wunpckehshlo','wunpckehshmi','wunpckehshpl','wunpckehshvs','wunpckehshvc','wunpckehshhi','wunpckehshls','wunpckehshge','wunpckehshlt','wunpckehshgt','wunpckehshle',
1286
+ 'wunpckehsweq','wunpckehswne','wunpckehswcs','wunpckehswhs','wunpckehswcc','wunpckehswlo','wunpckehswmi','wunpckehswpl','wunpckehswvs','wunpckehswvc','wunpckehswhi','wunpckehswls','wunpckehswge','wunpckehswlt','wunpckehswgt','wunpckehswle',
1287
+ 'wunpckehubeq','wunpckehubne','wunpckehubcs','wunpckehubhs','wunpckehubcc','wunpckehublo','wunpckehubmi','wunpckehubpl','wunpckehubvs','wunpckehubvc','wunpckehubhi','wunpckehubls','wunpckehubge','wunpckehublt','wunpckehubgt','wunpckehuble',
1288
+ 'wunpckehuheq','wunpckehuhne','wunpckehuhcs','wunpckehuhhs','wunpckehuhcc','wunpckehuhlo','wunpckehuhmi','wunpckehuhpl','wunpckehuhvs','wunpckehuhvc','wunpckehuhhi','wunpckehuhls','wunpckehuhge','wunpckehuhlt','wunpckehuhgt','wunpckehuhle',
1289
+ 'wunpckehuweq','wunpckehuwne','wunpckehuwcs','wunpckehuwhs','wunpckehuwcc','wunpckehuwlo','wunpckehuwmi','wunpckehuwpl','wunpckehuwvs','wunpckehuwvc','wunpckehuwhi','wunpckehuwls','wunpckehuwge','wunpckehuwlt','wunpckehuwgt','wunpckehuwle',
1290
+ 'wunpckihbeq','wunpckihbne','wunpckihbcs','wunpckihbhs','wunpckihbcc','wunpckihblo','wunpckihbmi','wunpckihbpl','wunpckihbvs','wunpckihbvc','wunpckihbhi','wunpckihbls','wunpckihbge','wunpckihblt','wunpckihbgt','wunpckihble',
1291
+ 'wunpckihheq','wunpckihhne','wunpckihhcs','wunpckihhhs','wunpckihhcc','wunpckihhlo','wunpckihhmi','wunpckihhpl','wunpckihhvs','wunpckihhvc','wunpckihhhi','wunpckihhls','wunpckihhge','wunpckihhlt','wunpckihhgt','wunpckihhle',
1292
+ 'wunpckihweq','wunpckihwne','wunpckihwcs','wunpckihwhs','wunpckihwcc','wunpckihwlo','wunpckihwmi','wunpckihwpl','wunpckihwvs','wunpckihwvc','wunpckihwhi','wunpckihwls','wunpckihwge','wunpckihwlt','wunpckihwgt','wunpckihwle',
1293
+ 'wunpckelsbeq','wunpckelsbne','wunpckelsbcs','wunpckelsbhs','wunpckelsbcc','wunpckelsblo','wunpckelsbmi','wunpckelsbpl','wunpckelsbvs','wunpckelsbvc','wunpckelsbhi','wunpckelsbls','wunpckelsbge','wunpckelsblt','wunpckelsbgt','wunpckelsble',
1294
+ 'wunpckelsheq','wunpckelshne','wunpckelshcs','wunpckelshhs','wunpckelshcc','wunpckelshlo','wunpckelshmi','wunpckelshpl','wunpckelshvs','wunpckelshvc','wunpckelshhi','wunpckelshls','wunpckelshge','wunpckelshlt','wunpckelshgt','wunpckelshle',
1295
+ 'wunpckelsweq','wunpckelswne','wunpckelswcs','wunpckelswhs','wunpckelswcc','wunpckelswlo','wunpckelswmi','wunpckelswpl','wunpckelswvs','wunpckelswvc','wunpckelswhi','wunpckelswls','wunpckelswge','wunpckelswlt','wunpckelswgt','wunpckelswle',
1296
+ 'wunpckelubeq','wunpckelubne','wunpckelubcs','wunpckelubhs','wunpckelubcc','wunpckelublo','wunpckelubmi','wunpckelubpl','wunpckelubvs','wunpckelubvc','wunpckelubhi','wunpckelubls','wunpckelubge','wunpckelublt','wunpckelubgt','wunpckeluble',
1297
+ 'wunpckeluheq','wunpckeluhne','wunpckeluhcs','wunpckeluhhs','wunpckeluhcc','wunpckeluhlo','wunpckeluhmi','wunpckeluhpl','wunpckeluhvs','wunpckeluhvc','wunpckeluhhi','wunpckeluhls','wunpckeluhge','wunpckeluhlt','wunpckeluhgt','wunpckeluhle',
1298
+ 'wunpckeluweq','wunpckeluwne','wunpckeluwcs','wunpckeluwhs','wunpckeluwcc','wunpckeluwlo','wunpckeluwmi','wunpckeluwpl','wunpckeluwvs','wunpckeluwvc','wunpckeluwhi','wunpckeluwls','wunpckeluwge','wunpckeluwlt','wunpckeluwgt','wunpckeluwle',
1299
+ 'wunpckilbeq','wunpckilbne','wunpckilbcs','wunpckilbhs','wunpckilbcc','wunpckilblo','wunpckilbmi','wunpckilbpl','wunpckilbvs','wunpckilbvc','wunpckilbhi','wunpckilbls','wunpckilbge','wunpckilblt','wunpckilbgt','wunpckilble',
1300
+ 'wunpckilheq','wunpckilhne','wunpckilhcs','wunpckilhhs','wunpckilhcc','wunpckilhlo','wunpckilhmi','wunpckilhpl','wunpckilhvs','wunpckilhvc','wunpckilhhi','wunpckilhls','wunpckilhge','wunpckilhlt','wunpckilhgt','wunpckilhle',
1301
+ 'wunpckilweq','wunpckilwne','wunpckilwcs','wunpckilwhs','wunpckilwcc','wunpckilwlo','wunpckilwmi','wunpckilwpl','wunpckilwvs','wunpckilwvc','wunpckilwhi','wunpckilwls','wunpckilwge','wunpckilwlt','wunpckilwgt','wunpckilwle',
1302
+ 'wxoreq','wxorne','wxorcs','wxorhs','wxorcc','wxorlo','wxormi','wxorpl','wxorvs','wxorvc','wxorhi','wxorls','wxorge','wxorlt','wxorgt','wxorle',
1303
+ 'wzeroeq','wzerone','wzerocs','wzerohs','wzerocc','wzerolo','wzeromi','wzeropl','wzerovs','wzerovc','wzerohi','wzerols','wzeroge','wzerolt','wzerogt','wzerole'
1304
+ ),
1305
+ /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */
1306
+ 19 => array(
1307
+ /* Unconditional VFPv3 & NEON SIMD Memory Access: Loads */
1308
+ 'vld.8','vldal.8',
1309
+ 'vld.16','vldal.16',
1310
+ 'vld.32','vldal.32',
1311
+ 'vld.64','vldal.64',
1312
+
1313
+ 'vld1.8','vld1al.8',
1314
+ 'vld1.16','vld1al.16',
1315
+ 'vld1.32','vld1al.32',
1316
+
1317
+ 'vld2.8','vld2al.8',
1318
+ 'vld2.16','vld2al.16',
1319
+ 'vld2.32','vld2al.32',
1320
+
1321
+ 'vld3.8','vld3al.8',
1322
+ 'vld3.16','vld3al.16',
1323
+ 'vld3.32','vld3al.32',
1324
+
1325
+ 'vld4.8','vld4al.8',
1326
+ 'vld4.16','vld4al.16',
1327
+ 'vld4.32','vld4al.32',
1328
+
1329
+ 'vldm','vldmal',
1330
+ 'vldm.32','vldmal.32',
1331
+ 'vldm.64','vldmal.64',
1332
+
1333
+ 'vldmia','vldmiaal',
1334
+ 'vldmia.32','vldmiaal.32',
1335
+ 'vldmia.64','vldmiaal.64',
1336
+
1337
+ 'vldmdb','vldmdbal',
1338
+ 'vldmdb.32','vldmdbal.32',
1339
+ 'vldmdb.64','vldmdbal.64',
1340
+
1341
+ 'vldr','vldral',
1342
+ 'vldr.32','vldral.32',
1343
+ 'vldr.64','vldral.64',
1344
+
1345
+ 'vpop','vpopal',
1346
+ 'vpop.32','vpopal.32',
1347
+ 'vpop.64','vpopal.64',
1348
+
1349
+ /* Unconditional VFPv3 & NEON SIMD Memory Access: Stores */
1350
+ 'vst1.8','vst1al.8',
1351
+ 'vst1.16','vst1al.16',
1352
+ 'vst1.32','vst1al.32',
1353
+ 'vst1.64','vst1al.64',
1354
+
1355
+ 'vst2.8','vst2al.8',
1356
+ 'vst2.16','vst2al.16',
1357
+ 'vst2.32','vst2al.32',
1358
+
1359
+ 'vst3.8','vst3al.8',
1360
+ 'vst3.16','vst3al.16',
1361
+ 'vst3.32','vst3al.32',
1362
+
1363
+ 'vst4.8','vst4al.8',
1364
+ 'vst4.16','vst4al.16',
1365
+ 'vst4.32','vst4al.32',
1366
+
1367
+ 'vstm','vstmal',
1368
+ 'vstm.32','vstmal.32',
1369
+ 'vstm.64','vstmal.64',
1370
+
1371
+ 'vstmia','vstmiaal',
1372
+ 'vstmia.32','vstmiaal.32',
1373
+ 'vstmia.64','vstmiaal.64',
1374
+
1375
+ 'vstmdb','vstmdbal',
1376
+ 'vstmdb.32','vstmdbal.32',
1377
+ 'vstmdb.64','vstmdbal.64',
1378
+
1379
+ 'vstr','vstral',
1380
+ 'vstr.32','vstral.32',
1381
+ 'vstr.64','vstral.64',
1382
+
1383
+ 'vpush','vpushal',
1384
+ 'vpush.32','vpushal.32',
1385
+ 'vpush.64','vpushal.64'
1386
+ ),
1387
+ /* Unconditional NEON SIMD Logical Instructions */
1388
+ 20 => array(
1389
+ 'vand','vandal',
1390
+ 'vand.i8','vandal.i8',
1391
+ 'vand.i16','vandal.i16',
1392
+ 'vand.i32','vandal.i32',
1393
+ 'vand.i64','vandal.i64',
1394
+ 'vand.s8','vandal.s8',
1395
+ 'vand.s16','vandal.s16',
1396
+ 'vand.s32','vandal.s32',
1397
+ 'vand.s64','vandal.s64',
1398
+ 'vand.u8','vandal.u8',
1399
+ 'vand.u16','vandal.u16',
1400
+ 'vand.u32','vandal.u32',
1401
+ 'vand.u64','vandal.u64',
1402
+ 'vand.f32','vandal.f32',
1403
+ 'vand.f64','vandal.f64',
1404
+
1405
+ 'vbic','vbical',
1406
+ 'vbic.i8','vbical.i8',
1407
+ 'vbic.i16','vbical.i16',
1408
+ 'vbic.i32','vbical.i32',
1409
+ 'vbic.i64','vbical.i64',
1410
+ 'vbic.s8','vbical.s8',
1411
+ 'vbic.s16','vbical.s16',
1412
+ 'vbic.s32','vbical.s32',
1413
+ 'vbic.s64','vbical.s64',
1414
+ 'vbic.u8','vbical.u8',
1415
+ 'vbic.u16','vbical.u16',
1416
+ 'vbic.u32','vbical.u32',
1417
+ 'vbic.u64','vbical.u64',
1418
+ 'vbic.f32','vbical.f32',
1419
+ 'vbic.f64','vbical.f64',
1420
+
1421
+ 'vbif','vbifal',
1422
+ 'vbif.i8','vbifal.i8',
1423
+ 'vbif.i16','vbifal.i16',
1424
+ 'vbif.i32','vbifal.i32',
1425
+ 'vbif.i64','vbifal.i64',
1426
+ 'vbif.s8','vbifal.s8',
1427
+ 'vbif.s16','vbifal.s16',
1428
+ 'vbif.s32','vbifal.s32',
1429
+ 'vbif.s64','vbifal.s64',
1430
+ 'vbif.u8','vbifal.u8',
1431
+ 'vbif.u16','vbifal.u16',
1432
+ 'vbif.u32','vbifal.u32',
1433
+ 'vbif.u64','vbifal.u64',
1434
+ 'vbif.f32','vbifal.f32',
1435
+ 'vbif.f64','vbifal.f64',
1436
+
1437
+ 'vbit','vbital',
1438
+ 'vbit.i8','vbital.i8',
1439
+ 'vbit.i16','vbital.i16',
1440
+ 'vbit.i32','vbital.i32',
1441
+ 'vbit.i64','vbital.i64',
1442
+ 'vbit.s8','vbital.s8',
1443
+ 'vbit.s16','vbital.s16',
1444
+ 'vbit.s32','vbital.s32',
1445
+ 'vbit.s64','vbital.s64',
1446
+ 'vbit.u8','vbital.u8',
1447
+ 'vbit.u16','vbital.u16',
1448
+ 'vbit.u32','vbital.u32',
1449
+ 'vbit.u64','vbital.u64',
1450
+ 'vbit.f32','vbital.f32',
1451
+ 'vbit.f64','vbital.f64',
1452
+
1453
+ 'vbsl','vbslal',
1454
+ 'vbsl.i8','vbslal.i8',
1455
+ 'vbsl.i16','vbslal.i16',
1456
+ 'vbsl.i32','vbslal.i32',
1457
+ 'vbsl.i64','vbslal.i64',
1458
+ 'vbsl.s8','vbslal.s8',
1459
+ 'vbsl.s16','vbslal.s16',
1460
+ 'vbsl.s32','vbslal.s32',
1461
+ 'vbsl.s64','vbslal.s64',
1462
+ 'vbsl.u8','vbslal.u8',
1463
+ 'vbsl.u16','vbslal.u16',
1464
+ 'vbsl.u32','vbslal.u32',
1465
+ 'vbsl.u64','vbslal.u64',
1466
+ 'vbsl.f32','vbslal.f32',
1467
+ 'vbsl.f64','vbslal.f64',
1468
+
1469
+ 'veor','veoral',
1470
+ 'veor.i8','veoral.i8',
1471
+ 'veor.i16','veoral.i16',
1472
+ 'veor.i32','veoral.i32',
1473
+ 'veor.i64','veoral.i64',
1474
+ 'veor.s8','veoral.s8',
1475
+ 'veor.s16','veoral.s16',
1476
+ 'veor.s32','veoral.s32',
1477
+ 'veor.s64','veoral.s64',
1478
+ 'veor.u8','veoral.u8',
1479
+ 'veor.u16','veoral.u16',
1480
+ 'veor.u32','veoral.u32',
1481
+ 'veor.u64','veoral.u64',
1482
+ 'veor.f32','veoral.f32',
1483
+ 'veor.f64','veoral.f64',
1484
+
1485
+ 'vmov','vmoval',
1486
+ 'vmov.8','vmoval.8',
1487
+ 'vmov.16','vmoval.16',
1488
+ 'vmov.32','vmoval.32',
1489
+ 'vmov.i8','vmoval.i8',
1490
+ 'vmov.i16','vmoval.i16',
1491
+ 'vmov.i32','vmoval.i32',
1492
+ 'vmov.i64','vmoval.i64',
1493
+ 'vmov.f32','vmoval.f32',
1494
+ 'vmov.f64','vmoval.f64',
1495
+
1496
+ 'vmvn','vmvnal',
1497
+ 'vmvn.s8','vmvnal.s8',
1498
+ 'vmvn.s16','vmvnal.s16',
1499
+ 'vmvn.s32','vmvnal.s32',
1500
+ 'vmvn.s64','vmvnal.s64',
1501
+ 'vmvn.u8','vmvnal.u8',
1502
+ 'vmvn.u16','vmvnal.u16',
1503
+ 'vmvn.u32','vmvnal.u32',
1504
+ 'vmvn.u64','vmvnal.u64',
1505
+ 'vmvn.i8','vmvnal.i8',
1506
+ 'vmvn.i16','vmvnal.i16',
1507
+ 'vmvn.i32','vmvnal.i32',
1508
+ 'vmvn.i64','vmvnal.i64',
1509
+ 'vmvn.f32','vmvnal.f32',
1510
+ 'vmvn.f64','vmvnal.f64',
1511
+
1512
+ 'vorn','vornal',
1513
+ 'vorn.s8','vornal.s8',
1514
+ 'vorn.s16','vornal.s16',
1515
+ 'vorn.s32','vornal.s32',
1516
+ 'vorn.s64','vornal.s64',
1517
+ 'vorn.u8','vornal.u8',
1518
+ 'vorn.u16','vornal.u16',
1519
+ 'vorn.u32','vornal.u32',
1520
+ 'vorn.u64','vornal.u64',
1521
+ 'vorn.i8','vornal.i8',
1522
+ 'vorn.i16','vornal.i16',
1523
+ 'vorn.i32','vornal.i32',
1524
+ 'vorn.i64','vornal.i64',
1525
+ 'vorn.f32','vornal.f32',
1526
+ 'vorn.f64','vornal.f64',
1527
+
1528
+ 'vorr','vorral',
1529
+ 'vorr.s8','vorral.s8',
1530
+ 'vorr.s16','vorral.s16',
1531
+ 'vorr.s32','vorral.s32',
1532
+ 'vorr.s64','vorral.s64',
1533
+ 'vorr.u8','vorral.u8',
1534
+ 'vorr.u16','vorral.u16',
1535
+ 'vorr.u32','vorral.u32',
1536
+ 'vorr.u64','vorral.u64',
1537
+ 'vorr.i8','vorral.i8',
1538
+ 'vorr.i16','vorral.i16',
1539
+ 'vorr.i32','vorral.i32',
1540
+ 'vorr.i64','vorral.i64',
1541
+ 'vorr.f32','vorral.f32',
1542
+ 'vorr.f64','vorral.f64',
1543
+
1544
+ 'vswp','vswpal',
1545
+ 'vswp.s8','vswpal.s8',
1546
+ 'vswp.s16','vswpal.s16',
1547
+ 'vswp.s32','vswpal.s32',
1548
+ 'vswp.s64','vswpal.s64',
1549
+ 'vswp.u8','vswpal.u8',
1550
+ 'vswp.u16','vswpal.u16',
1551
+ 'vswp.u32','vswpal.u32',
1552
+ 'vswp.u64','vswpal.u64',
1553
+ 'vswp.i8','vswpal.i8',
1554
+ 'vswp.i16','vswpal.i16',
1555
+ 'vswp.i32','vswpal.i32',
1556
+ 'vswp.i64','vswpal.i64',
1557
+ 'vswp.f32','vswpal.f32',
1558
+ 'vswp.f64','vswpal.f64'
1559
+ ),
1560
+ /* Unconditional NEON SIMD ARM Registers Interop Instructions */
1561
+ 21 => array(
1562
+ 'vmrs','vmrsal',
1563
+ 'vmsr','vmsral'
1564
+ ),
1565
+ /* Unconditional NEON SIMD Bit/Byte-Level Instructions */
1566
+ 22 => array(
1567
+ 'vcnt.8','vcntal.8',
1568
+ 'vdup.8','vdupal.8',
1569
+
1570
+ 'vdup.16','vdupal.16',
1571
+ 'vdup.32','vdupal.32',
1572
+
1573
+ 'vext.8','vextal.8',
1574
+ 'vext.16','vextal.16',
1575
+
1576
+ 'vext.32','vextal.32',
1577
+ 'vext.64','vextal.64',
1578
+
1579
+ 'vrev16.8','vrev16al.8',
1580
+ 'vrev32.8','vrev32al.8',
1581
+ 'vrev32.16','vrev32al.16',
1582
+ 'vrev64.8','vrev64al.8',
1583
+ 'vrev64.16','vrev64al.16',
1584
+ 'vrev64.32','vrev64al.32',
1585
+
1586
+ 'vsli.8','vslial.8',
1587
+ 'vsli.16','vslial.16',
1588
+ 'vsli.32','vslial.32',
1589
+ 'vsli.64','vslial.64',
1590
+
1591
+ 'vsri.8','vsrial.8',
1592
+ 'vsri.16','vsrial.16',
1593
+ 'vsri.32','vsrial.32',
1594
+ 'vsri.64','vsrial.64',
1595
+
1596
+ 'vtbl.8','vtblal.8',
1597
+
1598
+ 'vtbx','vtbxal',
1599
+
1600
+ 'vtrn.8','vtrnal.8',
1601
+ 'vtrn.16','vtrnal.16',
1602
+ 'vtrn.32','vtrnal.32',
1603
+
1604
+ 'vtst.8','vtstal.8',
1605
+ 'vtst.16','vtstal.16',
1606
+ 'vtst.32','vtstal.32',
1607
+
1608
+ 'vuzp.8','vuzpal.8',
1609
+ 'vuzp.16','vuzpal.16',
1610
+ 'vuzp.32','vuzpal.32',
1611
+
1612
+ 'vzip.8','vzipal.8',
1613
+ 'vzip.16','vzipal.16',
1614
+ 'vzip.32','vzipal.32',
1615
+
1616
+ 'vmull.p8','vmullal.p8'
1617
+ ),
1618
+ /* Unconditional NEON SIMD Universal Integer Instructions */
1619
+ 23 => array(
1620
+ 'vadd.i8','vaddal.i8',
1621
+ 'vadd.i16','vaddal.i16',
1622
+ 'vadd.i32','vaddal.i32',
1623
+ 'vadd.i64','vaddal.i64',
1624
+
1625
+ 'vsub.i8','vsubal.i8',
1626
+ 'vsub.i16','vsubal.i16',
1627
+ 'vsub.i32','vsubal.i32',
1628
+ 'vsub.i64','vsubal.i64',
1629
+
1630
+ 'vaddhn.i16','vaddhnal.i16',
1631
+ 'vaddhn.i32','vaddhnal.i32',
1632
+ 'vaddhn.i64','vaddhnal.i64',
1633
+
1634
+ 'vsubhn.i16','vsubhnal.i16',
1635
+ 'vsubhn.i32','vsubhnal.i32',
1636
+ 'vsubhn.i64','vsubhnal.i64',
1637
+
1638
+ 'vraddhn.i16','vraddhnal.i16',
1639
+ 'vraddhn.i32','vraddhnal.i32',
1640
+ 'vraddhn.i64','vraddhnal.i64',
1641
+
1642
+ 'vrsubhn.i16','vrsubhnal.i16',
1643
+ 'vrsubhn.i32','vrsubhnal.i32',
1644
+ 'vrsubhn.i64','vrsubhnal.i64',
1645
+
1646
+ 'vpadd.i8','vpaddal.i8',
1647
+ 'vpadd.i16','vpaddal.i16',
1648
+ 'vpadd.i32','vpaddal.i32',
1649
+
1650
+ 'vceq.i8','vceqal.i8',
1651
+ 'vceq.i16','vceqal.i16',
1652
+ 'vceq.i32','vceqal.i32',
1653
+
1654
+ 'vclz.i8','vclzal.i8',
1655
+ 'vclz.i16','vclzal.i16',
1656
+ 'vclz.i32','vclzal.i32',
1657
+
1658
+ 'vmovn.i16','vmovnal.i16',
1659
+ 'vmovn.i32','vmovnal.i32',
1660
+ 'vmovn.i64','vmovnal.i64',
1661
+
1662
+ 'vmla.s8','vmlaal.s8',
1663
+ 'vmla.s16','vmlaal.s16',
1664
+ 'vmla.s32','vmlaal.s32',
1665
+ 'vmla.u8','vmlaal.u8',
1666
+ 'vmla.u16','vmlaal.u16',
1667
+ 'vmla.u32','vmlaal.u32',
1668
+ 'vmla.i8','vmlaal.i8',
1669
+ 'vmla.i16','vmlaal.i16',
1670
+ 'vmla.i32','vmlaal.i32',
1671
+
1672
+ 'vmls.s8','vmlsal.s8',
1673
+ 'vmls.s16','vmlsal.s16',
1674
+ 'vmls.s32','vmlsal.s32',
1675
+ 'vmls.u8','vmlsal.u8',
1676
+ 'vmls.u16','vmlsal.u16',
1677
+ 'vmls.u32','vmlsal.u32',
1678
+ 'vmls.i8','vmlsal.i8',
1679
+ 'vmls.i16','vmlsal.i16',
1680
+ 'vmls.i32','vmlsal.i32',
1681
+
1682
+ 'vmul.s8','vmulal.s8',
1683
+ 'vmul.s16','vmulal.s16',
1684
+ 'vmul.s32','vmulal.s32',
1685
+ 'vmul.u8','vmulal.u8',
1686
+ 'vmul.u16','vmulal.u16',
1687
+ 'vmul.u32','vmulal.u32',
1688
+ 'vmul.i8','vmulal.i8',
1689
+ 'vmul.i16','vmulal.i16',
1690
+ 'vmul.i32','vmulal.i32',
1691
+ 'vmul.p8','vmulal.p8',
1692
+
1693
+ 'vrshrn.i16','vrshrnal.i16',
1694
+ 'vrshrn.i32','vrshrnal.i32',
1695
+ 'vrshrn.i64','vrshrnal.i64',
1696
+
1697
+ 'vshrn.i16','vshrnal.i16',
1698
+ 'vshrn.i32','vshrnal.i32',
1699
+ 'vshrn.i64','vshrnal.i64',
1700
+
1701
+ 'vshl.i8','vshlal.i8',
1702
+ 'vshl.i16','vshlal.i16',
1703
+ 'vshl.i32','vshlal.i32',
1704
+ 'vshl.i64','vshlal.i64',
1705
+
1706
+ 'vshll.i8','vshllal.i8',
1707
+ 'vshll.i16','vshllal.i16',
1708
+ 'vshll.i32','vshllal.i32'
1709
+ ),
1710
+ /* Unconditional NEON SIMD Signed Integer Instructions */
1711
+ 24 => array(
1712
+ 'vaba.s8','vabaal.s8',
1713
+ 'vaba.s16','vabaal.s16',
1714
+ 'vaba.s32','vabaal.s32',
1715
+
1716
+ 'vabal.s8','vabalal.s8',
1717
+ 'vabal.s16','vabalal.s16',
1718
+ 'vabal.s32','vabalal.s32',
1719
+
1720
+ 'vabd.s8','vabdal.s8',
1721
+ 'vabd.s16','vabdal.s16',
1722
+ 'vabd.s32','vabdal.s32',
1723
+
1724
+ 'vabs.s8','vabsal.s8',
1725
+ 'vabs.s16','vabsal.s16',
1726
+ 'vabs.s32','vabsal.s32',
1727
+
1728
+ 'vaddl.s8','vaddlal.s8',
1729
+ 'vaddl.s16','vaddlal.s16',
1730
+ 'vaddl.s32','vaddlal.s32',
1731
+
1732
+ 'vcge.s8','vcgeal.s8',
1733
+ 'vcge.s16','vcgeal.s16',
1734
+ 'vcge.s32','vcgeal.s32',
1735
+
1736
+ 'vcle.s8','vcleal.s8',
1737
+ 'vcle.s16','vcleal.s16',
1738
+ 'vcle.s32','vcleal.s32',
1739
+
1740
+ 'vcgt.s8','vcgtal.s8',
1741
+ 'vcgt.s16','vcgtal.s16',
1742
+ 'vcgt.s32','vcgtal.s32',
1743
+
1744
+ 'vclt.s8','vcltal.s8',
1745
+ 'vclt.s16','vcltal.s16',
1746
+ 'vclt.s32','vcltal.s32',
1747
+
1748
+ 'vcls.s8','vclsal.s8',
1749
+ 'vcls.s16','vclsal.s16',
1750
+ 'vcls.s32','vclsal.s32',
1751
+
1752
+ 'vaddw.s8','vaddwal.s8',
1753
+ 'vaddw.s16','vaddwal.s16',
1754
+ 'vaddw.s32','vaddwal.s32',
1755
+
1756
+ 'vhadd.s8','vhaddal.s8',
1757
+ 'vhadd.s16','vhaddal.s16',
1758
+ 'vhadd.s32','vhaddal.s32',
1759
+
1760
+ 'vhsub.s8','vhsubal.s8',
1761
+ 'vhsub.s16','vhsubal.s16',
1762
+ 'vhsub.s32','vhsubal.s32',
1763
+
1764
+ 'vmax.s8','vmaxal.s8',
1765
+ 'vmax.s16','vmaxal.s16',
1766
+ 'vmax.s32','vmaxal.s32',
1767
+
1768
+ 'vmin.s8','vminal.s8',
1769
+ 'vmin.s16','vminal.s16',
1770
+ 'vmin.s32','vminal.s32',
1771
+
1772
+ 'vmlal.s8','vmlalal.s8',
1773
+ 'vmlal.s16','vmlalal.s16',
1774
+ 'vmlal.s32','vmlalal.s32',
1775
+
1776
+ 'vmlsl.s8','vmlslal.s8',
1777
+ 'vmlsl.s16','vmlslal.s16',
1778
+ 'vmlsl.s32','vmlslal.s32',
1779
+
1780
+ 'vneg.s8','vnegal.s8',
1781
+ 'vneg.s16','vnegal.s16',
1782
+ 'vneg.s32','vnegal.s32',
1783
+
1784
+ 'vpadal.s8','vpadalal.s8',
1785
+ 'vpadal.s16','vpadalal.s16',
1786
+ 'vpadal.s32','vpadalal.s32',
1787
+
1788
+ 'vmovl.s8','vmovlal.s8',
1789
+ 'vmovl.s16','vmovlal.s16',
1790
+ 'vmovl.s32','vmovlal.s32',
1791
+
1792
+ 'vmull.s8','vmullal.s8',
1793
+ 'vmull.s16','vmullal.s16',
1794
+ 'vmull.s32','vmullal.s32',
1795
+
1796
+ 'vpaddl.s8','vpaddlal.s8',
1797
+ 'vpaddl.s16','vpaddlal.s16',
1798
+ 'vpaddl.s32','vpaddlal.s32',
1799
+
1800
+ 'vpmax.s8','vpmaxal.s8',
1801
+ 'vpmax.s16','vpmaxal.s16',
1802
+ 'vpmax.s32','vpmaxal.s32',
1803
+
1804
+ 'vpmin.s8','vpminal.s8',
1805
+ 'vpmin.s16','vpminal.s16',
1806
+ 'vpmin.s32','vpminal.s32',
1807
+
1808
+ 'vqabs.s8','vqabsal.s8',
1809
+ 'vqabs.s16','vqabsal.s16',
1810
+ 'vqabs.s32','vqabsal.s32',
1811
+
1812
+ 'vqadd.s8','vqaddal.s8',
1813
+ 'vqadd.s16','vqaddal.s16',
1814
+ 'vqadd.s32','vqaddal.s32',
1815
+ 'vqadd.s64','vqaddal.s64',
1816
+
1817
+ 'vqdmlal.s16','vqdmlalal.s16',
1818
+ 'vqdmlal.s32','vqdmlalal.s32',
1819
+
1820
+ 'vqdmlsl.s16','vqdmlslal.s16',
1821
+ 'vqdmlsl.s32','vqdmlslal.s32',
1822
+
1823
+ 'vqdmulh.s16','vqdmulhal.s16',
1824
+ 'vqdmulh.s32','vqdmulhal.s32',
1825
+
1826
+ 'vqdmull.s16','vqdmullal.s16',
1827
+ 'vqdmull.s32','vqdmullal.s32',
1828
+
1829
+ 'vqmovn.s16','vqmovnal.s16',
1830
+ 'vqmovn.s32','vqmovnal.s32',
1831
+ 'vqmovn.s64','vqmovnal.s64',
1832
+
1833
+ 'vqmovun.s16','vqmovunal.s16',
1834
+ 'vqmovun.s32','vqmovunal.s32',
1835
+ 'vqmovun.s64','vqmovunal.s64',
1836
+
1837
+ 'vqneg.s8','vqnegal.s8',
1838
+ 'vqneg.s16','vqnegal.s16',
1839
+ 'vqneg.s32','vqnegal.s32',
1840
+
1841
+ 'vqrdmulh.s16','vqrdmulhal.s16',
1842
+ 'vqrdmulh.s32','vqrdmulhal.s32',
1843
+
1844
+ 'vqrshl.s8','vqrshlal.s8',
1845
+ 'vqrshl.s16','vqrshlal.s16',
1846
+ 'vqrshl.s32','vqrshlal.s32',
1847
+ 'vqrshl.s64','vqrshlal.s64',
1848
+
1849
+ 'vqrshrn.s16','vqrshrnal.s16',
1850
+ 'vqrshrn.s32','vqrshrnal.s32',
1851
+ 'vqrshrn.s64','vqrshrnal.s64',
1852
+
1853
+ 'vqrshrun.s16','vqrshrunal.s16',
1854
+ 'vqrshrun.s32','vqrshrunal.s32',
1855
+ 'vqrshrun.s64','vqrshrunal.s64',
1856
+
1857
+ 'vqshl.s8','vqshlal.s8',
1858
+ 'vqshl.s16','vqshlal.s16',
1859
+ 'vqshl.s32','vqshlal.s32',
1860
+ 'vqshl.s64','vqshlal.s64',
1861
+
1862
+ 'vqshlu.s8','vqshlual.s8',
1863
+ 'vqshlu.s16','vqshlual.s16',
1864
+ 'vqshlu.s32','vqshlual.s32',
1865
+ 'vqshlu.s64','vqshlual.s64',
1866
+
1867
+ 'vqshrn.s16','vqshrnal.s16',
1868
+ 'vqshrn.s32','vqshrnal.s32',
1869
+ 'vqshrn.s64','vqshrnal.s64',
1870
+
1871
+ 'vqshrun.s16','vqshrunal.s16',
1872
+ 'vqshrun.s32','vqshrunal.s32',
1873
+ 'vqshrun.s64','vqshrunal.s64',
1874
+
1875
+ 'vqsub.s8','vqsubal.s8',
1876
+ 'vqsub.s16','vqsubal.s16',
1877
+ 'vqsub.s32','vqsubal.s32',
1878
+ 'vqsub.s64','vqsubal.s64',
1879
+
1880
+ 'vrhadd.s8','vrhaddal.s8',
1881
+ 'vrhadd.s16','vrhaddal.s16',
1882
+ 'vrhadd.s32','vrhaddal.s32',
1883
+
1884
+ 'vrshl.s8','vrshlal.s8',
1885
+ 'vrshl.s16','vrshlal.s16',
1886
+ 'vrshl.s32','vrshlal.s32',
1887
+ 'vrshl.s64','vrshlal.s64',
1888
+
1889
+ 'vrshr.s8','vrshral.s8',
1890
+ 'vrshr.s16','vrshral.s16',
1891
+ 'vrshr.s32','vrshral.s32',
1892
+ 'vrshr.s64','vrshral.s64',
1893
+
1894
+ 'vrsra.s8','vrsraal.s8',
1895
+ 'vrsra.s16','vrsraal.s16',
1896
+ 'vrsra.s32','vrsraal.s32',
1897
+ 'vrsra.s64','vrsraal.s64',
1898
+
1899
+ 'vshl.s8','vshlal.s8',
1900
+ 'vshl.s16','vshlal.s16',
1901
+ 'vshl.s32','vshlal.s32',
1902
+ 'vshl.s64','vshlal.s64',
1903
+
1904
+ 'vshll.s8','vshllal.s8',
1905
+ 'vshll.s16','vshllal.s16',
1906
+ 'vshll.s32','vshllal.s32',
1907
+
1908
+ 'vshr.s8','vshral.s8',
1909
+ 'vshr.s16','vshral.s16',
1910
+ 'vshr.s32','vshral.s32',
1911
+ 'vshr.s64','vshral.s64',
1912
+
1913
+ 'vsra.s8','vsraal.s8',
1914
+ 'vsra.s16','vsraal.s16',
1915
+ 'vsra.s32','vsraal.s32',
1916
+ 'vsra.s64','vsraal.s64',
1917
+
1918
+ 'vsubl.s8','vsublal.s8',
1919
+ 'vsubl.s16','vsublal.s16',
1920
+ 'vsubl.s32','vsublal.s32',
1921
+
1922
+ 'vsubh.s8','vsubhal.s8',
1923
+ 'vsubh.s16','vsubhal.s16',
1924
+ 'vsubh.s32','vsubhal.s32'
1925
+ ),
1926
+ /* Unconditional NEON SIMD Unsigned Integer Instructions */
1927
+ 25 => array(
1928
+ 'vaba.u8','vabaal.u8',
1929
+ 'vaba.u16','vabaal.u16',
1930
+ 'vaba.u32','vabaal.u32',
1931
+
1932
+ 'vabal.u8','vabalal.u8',
1933
+ 'vabal.u16','vabalal.u16',
1934
+ 'vabal.u32','vabalal.u32',
1935
+
1936
+ 'vabd.u8','vabdal.u8',
1937
+ 'vabd.u16','vabdal.u16',
1938
+ 'vabd.u32','vabdal.u32',
1939
+
1940
+ 'vaddl.u8','vaddlal.u8',
1941
+ 'vaddl.u16','vaddlal.u16',
1942
+ 'vaddl.u32','vaddlal.u32',
1943
+
1944
+ 'vsubl.u8','vsublal.u8',
1945
+ 'vsubl.u16','vsublal.u16',
1946
+ 'vsubl.u32','vsublal.u32',
1947
+
1948
+ 'vaddw.u8','vaddwal.u8',
1949
+ 'vaddw.u16','vaddwal.u16',
1950
+ 'vaddw.u32','vaddwal.u32',
1951
+
1952
+ 'vsubh.u8','vsubhal.u8',
1953
+ 'vsubh.u16','vsubhal.u16',
1954
+ 'vsubh.u32','vsubhal.u32',
1955
+
1956
+ 'vhadd.u8','vhaddal.u8',
1957
+ 'vhadd.u16','vhaddal.u16',
1958
+ 'vhadd.u32','vhaddal.u32',
1959
+
1960
+ 'vhsub.u8','vhsubal.u8',
1961
+ 'vhsub.u16','vhsubal.u16',
1962
+ 'vhsub.u32','vhsubal.u32',
1963
+
1964
+ 'vpadal.u8','vpadalal.u8',
1965
+ 'vpadal.u16','vpadalal.u16',
1966
+ 'vpadal.u32','vpadalal.u32',
1967
+
1968
+ 'vpaddl.u8','vpaddlal.u8',
1969
+ 'vpaddl.u16','vpaddlal.u16',
1970
+ 'vpaddl.u32','vpaddlal.u32',
1971
+
1972
+ 'vcge.u8','vcgeal.u8',
1973
+ 'vcge.u16','vcgeal.u16',
1974
+ 'vcge.u32','vcgeal.u32',
1975
+
1976
+ 'vcle.u8','vcleal.u8',
1977
+ 'vcle.u16','vcleal.u16',
1978
+ 'vcle.u32','vcleal.u32',
1979
+
1980
+ 'vcgt.u8','vcgtal.u8',
1981
+ 'vcgt.u16','vcgtal.u16',
1982
+ 'vcgt.u32','vcgtal.u32',
1983
+
1984
+ 'vclt.u8','vcltal.u8',
1985
+ 'vclt.u16','vcltal.u16',
1986
+ 'vclt.u32','vcltal.u32',
1987
+
1988
+ 'vmax.u8','vmaxal.u8',
1989
+ 'vmax.u16','vmaxal.u16',
1990
+ 'vmax.u32','vmaxal.u32',
1991
+
1992
+ 'vmin.u8','vminal.u8',
1993
+ 'vmin.u16','vminal.u16',
1994
+ 'vmin.u32','vminal.u32',
1995
+
1996
+ 'vmlal.u8','vmlalal.u8',
1997
+ 'vmlal.u16','vmlalal.u16',
1998
+ 'vmlal.u32','vmlalal.u32',
1999
+
2000
+ 'vmlsl.u8','vmlslal.u8',
2001
+ 'vmlsl.u16','vmlslal.u16',
2002
+ 'vmlsl.u32','vmlslal.u32',
2003
+
2004
+ 'vmull.u8','vmullal.u8',
2005
+ 'vmull.u16','vmullal.u16',
2006
+ 'vmull.u32','vmullal.u32',
2007
+
2008
+ 'vmovl.u8','vmovlal.u8',
2009
+ 'vmovl.u16','vmovlal.u16',
2010
+ 'vmovl.u32','vmovlal.u32',
2011
+
2012
+ 'vshl.u8','vshlal.u8',
2013
+ 'vshl.u16','vshlal.u16',
2014
+ 'vshl.u32','vshlal.u32',
2015
+ 'vshl.u64','vshlal.u64',
2016
+
2017
+ 'vshll.u8','vshllal.u8',
2018
+ 'vshll.u16','vshllal.u16',
2019
+ 'vshll.u32','vshllal.u32',
2020
+
2021
+ 'vshr.u8','vshral.u8',
2022
+ 'vshr.u16','vshral.u16',
2023
+ 'vshr.u32','vshral.u32',
2024
+ 'vshr.u64','vshral.u64',
2025
+
2026
+ 'vsra.u8','vsraal.u8',
2027
+ 'vsra.u16','vsraal.u16',
2028
+ 'vsra.u32','vsraal.u32',
2029
+ 'vsra.u64','vsraal.u64',
2030
+
2031
+ 'vpmax.u8','vpmaxal.u8',
2032
+ 'vpmax.u16','vpmaxal.u16',
2033
+ 'vpmax.u32','vpmaxal.u32',
2034
+
2035
+ 'vpmin.u8','vpminal.u8',
2036
+ 'vpmin.u16','vpminal.u16',
2037
+ 'vpmin.u32','vpminal.u32',
2038
+
2039
+ 'vqadd.u8','vqaddal.u8',
2040
+ 'vqadd.u16','vqaddal.u16',
2041
+ 'vqadd.u32','vqaddal.u32',
2042
+ 'vqadd.u64','vqaddal.u64',
2043
+
2044
+ 'vqsub.u8','vqsubal.u8',
2045
+ 'vqsub.u16','vqsubal.u16',
2046
+ 'vqsub.u32','vqsubal.u32',
2047
+ 'vqsub.u64','vqsubal.u64',
2048
+
2049
+ 'vqmovn.u16','vqmovnal.u16',
2050
+ 'vqmovn.u32','vqmovnal.u32',
2051
+ 'vqmovn.u64','vqmovnal.u64',
2052
+
2053
+ 'vqshl.u8','vqshlal.u8',
2054
+ 'vqshl.u16','vqshlal.u16',
2055
+ 'vqshl.u32','vqshlal.u32',
2056
+ 'vqshl.u64','vqshlal.u64',
2057
+
2058
+ 'vqshrn.u16','vqshrnal.u16',
2059
+ 'vqshrn.u32','vqshrnal.u32',
2060
+ 'vqshrn.u64','vqshrnal.u64',
2061
+
2062
+ 'vqrshl.u8','vqrshlal.u8',
2063
+ 'vqrshl.u16','vqrshlal.u16',
2064
+ 'vqrshl.u32','vqrshlal.u32',
2065
+ 'vqrshl.u64','vqrshlal.u64',
2066
+
2067
+ 'vqrshrn.u16','vqrshrnal.u16',
2068
+ 'vqrshrn.u32','vqrshrnal.u32',
2069
+ 'vqrshrn.u64','vqrshrnal.u64',
2070
+
2071
+ 'vrhadd.u8','vrhaddal.u8',
2072
+ 'vrhadd.u16','vrhaddal.u16',
2073
+ 'vrhadd.u32','vrhaddal.u32',
2074
+
2075
+ 'vrshl.u8','vrshlal.u8',
2076
+ 'vrshl.u16','vrshlal.u16',
2077
+ 'vrshl.u32','vrshlal.u32',
2078
+ 'vrshl.u64','vrshlal.u64',
2079
+
2080
+ 'vrshr.u8','vrshral.u8',
2081
+ 'vrshr.u16','vrshral.u16',
2082
+ 'vrshr.u32','vrshral.u32',
2083
+ 'vrshr.u64','vrshral.u64',
2084
+
2085
+ 'vrsra.u8','vrsraal.u8',
2086
+ 'vrsra.u16','vrsraal.u16',
2087
+ 'vrsra.u32','vrsraal.u32',
2088
+ 'vrsra.u64','vrsraal.u64'
2089
+ ),
2090
+ /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */
2091
+ 26 => array(
2092
+ 'vabd.f32','vabdal.f32',
2093
+
2094
+ 'vabs.f32','vabsal.f32',
2095
+ 'vabs.f64','vabsal.f64',
2096
+
2097
+ 'vacge.f32','vacgeal.f32',
2098
+ 'vacgt.f32','vacgtal.f32',
2099
+ 'vacle.f32','vacleal.f32',
2100
+ 'vaclt.f32','vacltal.f32',
2101
+
2102
+ 'vadd.f32','vaddal.f32',
2103
+ 'vadd.f64','vaddal.f64',
2104
+
2105
+ 'vceq.f32','vceqal.f32',
2106
+ 'vcge.f32','vcgeal.f32',
2107
+ 'vcle.f32','vcleal.f32',
2108
+ 'vcgt.f32','vcgtal.f32',
2109
+ 'vclt.f32','vcltal.f32',
2110
+
2111
+ 'vcmp.f32','vcmpal.f32',
2112
+ 'vcmp.f64','vcmpal.f64',
2113
+
2114
+ 'vcmpe.f32','vcmpeal.f32',
2115
+ 'vcmpe.f64','vcmpeal.f64',
2116
+
2117
+ 'vcvt.s16.f32','vcvtal.s16.f32',
2118
+ 'vcvt.s16.f64','vcvtal.s16.f64',
2119
+ 'vcvt.s32.f32','vcvtal.s32.f32',
2120
+ 'vcvt.s32.f64','vcvtal.s32.f64',
2121
+ 'vcvt.u16.f32','vcvtal.u16.f32',
2122
+ 'vcvt.u16.f64','vcvtal.u16.f64',
2123
+ 'vcvt.u32.f32','vcvtal.u32.f32',
2124
+ 'vcvt.u32.f64','vcvtal.u32.f64',
2125
+ 'vcvt.f16.f32','vcvtal.f16.f32',
2126
+ 'vcvt.f32.s32','vcvtal.f32.s32',
2127
+ 'vcvt.f32.u32','vcvtal.f32.u32',
2128
+ 'vcvt.f32.f16','vcvtal.f32.f16',
2129
+ 'vcvt.f32.f64','vcvtal.f32.f64',
2130
+ 'vcvt.f64.s32','vcvtal.f64.s32',
2131
+ 'vcvt.f64.u32','vcvtal.f64.u32',
2132
+ 'vcvt.f64.f32','vcvtal.f64.f32',
2133
+
2134
+ 'vcvtr.s32.f32','vcvtral.s32.f32',
2135
+ 'vcvtr.s32.f64','vcvtral.s32.f64',
2136
+ 'vcvtr.u32.f32','vcvtral.u32.f32',
2137
+ 'vcvtr.u32.f64','vcvtral.u32.f64',
2138
+
2139
+ 'vcvtb.f16.f32','vcvtbal.f16.f32',
2140
+ 'vcvtb.f32.f16','vcvtbal.f32.f16',
2141
+
2142
+ 'vcvtt.f16.f32','vcvttal.f16.f32',
2143
+ 'vcvtt.f32.f16','vcvttal.f32.f16',
2144
+
2145
+ 'vdiv.f32','vdival.f32',
2146
+ 'vdiv.f64','vdival.f64',
2147
+
2148
+ 'vmax.f32','vmaxal.f32',
2149
+ 'vmin.f32','vminal.f32',
2150
+
2151
+ 'vmla.f32','vmlaal.f32',
2152
+ 'vmla.f64','vmlaal.f64',
2153
+
2154
+ 'vmls.f32','vmlsal.f32',
2155
+ 'vmls.f64','vmlsal.f64',
2156
+
2157
+ 'vmul.f32','vmulal.f32',
2158
+ 'vmul.f64','vmulal.f64',
2159
+
2160
+ 'vneg.f32','vnegal.f32',
2161
+ 'vneg.f64','vnegal.f64',
2162
+
2163
+ 'vnmla.f32','vnmlaal.f32',
2164
+ 'vnmla.f64','vnmlaal.f64',
2165
+
2166
+ 'vnmls.f32','vnmlsal.f32',
2167
+ 'vnmls.f64','vnmlsal.f64',
2168
+
2169
+ 'vnmul.f64','vnmulal.f64',
2170
+ 'vnmul.f32','vnmulal.f32',
2171
+
2172
+ 'vpadd.f32','vpaddal.f32',
2173
+
2174
+ 'vpmax.f32','vpmaxal.f32',
2175
+ 'vpmin.f32','vpminal.f32',
2176
+
2177
+ 'vrecpe.u32','vrecpeal.u32',
2178
+ 'vrecpe.f32','vrecpeal.f32',
2179
+ 'vrecps.f32','vrecpsal.f32',
2180
+
2181
+ 'vrsqrte.u32','vrsqrteal.u32',
2182
+ 'vrsqrte.f32','vrsqrteal.f32',
2183
+ 'vrsqrts.f32','vrsqrtsal.f32',
2184
+
2185
+ 'vsqrt.f32','vsqrtal.f32',
2186
+ 'vsqrt.f64','vsqrtal.f64',
2187
+
2188
+ 'vsub.f32','vsubal.f32',
2189
+ 'vsub.f64','vsubal.f64'
2190
+ ),
2191
+ /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */
2192
+ 27 => array(
2193
+ /* Conditional VFPv3 & NEON SIMD Memory Access: Loads */
2194
+ 'vldeq.8','vldne.8','vldcs.8','vldhs.8','vldcc.8','vldlo.8','vldmi.8','vldpl.8','vldvs.8','vldvc.8','vldhi.8','vldls.8','vldge.8','vldlt.8','vldgt.8','vldle.8',
2195
+ 'vldeq.16','vldne.16','vldcs.16','vldhs.16','vldcc.16','vldlo.16','vldmi.16','vldpl.16','vldvs.16','vldvc.16','vldhi.16','vldls.16','vldge.16','vldlt.16','vldgt.16','vldle.16',
2196
+ 'vldeq.32','vldne.32','vldcs.32','vldhs.32','vldcc.32','vldlo.32','vldmi.32','vldpl.32','vldvs.32','vldvc.32','vldhi.32','vldls.32','vldge.32','vldlt.32','vldgt.32','vldle.32',
2197
+ 'vldeq.64','vldne.64','vldcs.64','vldhs.64','vldcc.64','vldlo.64','vldmi.64','vldpl.64','vldvs.64','vldvc.64','vldhi.64','vldls.64','vldge.64','vldlt.64','vldgt.64','vldle.64',
2198
+
2199
+ 'vld1eq.8','vld1ne.8','vld1cs.8','vld1hs.8','vld1cc.8','vld1lo.8','vld1mi.8','vld1pl.8','vld1vs.8','vld1vc.8','vld1hi.8','vld1ls.8','vld1ge.8','vld1lt.8','vld1gt.8','vld1le.8',
2200
+ 'vld1eq.16','vld1ne.16','vld1cs.16','vld1hs.16','vld1cc.16','vld1lo.16','vld1mi.16','vld1pl.16','vld1vs.16','vld1vc.16','vld1hi.16','vld1ls.16','vld1ge.16','vld1lt.16','vld1gt.16','vld1le.16',
2201
+ 'vld1eq.32','vld1ne.32','vld1cs.32','vld1hs.32','vld1cc.32','vld1lo.32','vld1mi.32','vld1pl.32','vld1vs.32','vld1vc.32','vld1hi.32','vld1ls.32','vld1ge.32','vld1lt.32','vld1gt.32','vld1le.32',
2202
+
2203
+ 'vld2eq.8','vld2ne.8','vld2cs.8','vld2hs.8','vld2cc.8','vld2lo.8','vld2mi.8','vld2pl.8','vld2vs.8','vld2vc.8','vld2hi.8','vld2ls.8','vld2ge.8','vld2lt.8','vld2gt.8','vld2le.8',
2204
+ 'vld2eq.16','vld2ne.16','vld2cs.16','vld2hs.16','vld2cc.16','vld2lo.16','vld2mi.16','vld2pl.16','vld2vs.16','vld2vc.16','vld2hi.16','vld2ls.16','vld2ge.16','vld2lt.16','vld2gt.16','vld2le.16',
2205
+ 'vld2eq.32','vld2ne.32','vld2cs.32','vld2hs.32','vld2cc.32','vld2lo.32','vld2mi.32','vld2pl.32','vld2vs.32','vld2vc.32','vld2hi.32','vld2ls.32','vld2ge.32','vld2lt.32','vld2gt.32','vld2le.32',
2206
+
2207
+ 'vld3eq.8','vld3ne.8','vld3cs.8','vld3hs.8','vld3cc.8','vld3lo.8','vld3mi.8','vld3pl.8','vld3vs.8','vld3vc.8','vld3hi.8','vld3ls.8','vld3ge.8','vld3lt.8','vld3gt.8','vld3le.8',
2208
+ 'vld3eq.16','vld3ne.16','vld3cs.16','vld3hs.16','vld3cc.16','vld3lo.16','vld3mi.16','vld3pl.16','vld3vs.16','vld3vc.16','vld3hi.16','vld3ls.16','vld3ge.16','vld3lt.16','vld3gt.16','vld3le.16',
2209
+ 'vld3eq.32','vld3ne.32','vld3cs.32','vld3hs.32','vld3cc.32','vld3lo.32','vld3mi.32','vld3pl.32','vld3vs.32','vld3vc.32','vld3hi.32','vld3ls.32','vld3ge.32','vld3lt.32','vld3gt.32','vld3le.32',
2210
+
2211
+ 'vld4eq.8','vld4ne.8','vld4cs.8','vld4hs.8','vld4cc.8','vld4lo.8','vld4mi.8','vld4pl.8','vld4vs.8','vld4vc.8','vld4hi.8','vld4ls.8','vld4ge.8','vld4lt.8','vld4gt.8','vld4le.8',
2212
+ 'vld4eq.16','vld4ne.16','vld4cs.16','vld4hs.16','vld4cc.16','vld4lo.16','vld4mi.16','vld4pl.16','vld4vs.16','vld4vc.16','vld4hi.16','vld4ls.16','vld4ge.16','vld4lt.16','vld4gt.16','vld4le.16',
2213
+ 'vld4eq.32','vld4ne.32','vld4cs.32','vld4hs.32','vld4cc.32','vld4lo.32','vld4mi.32','vld4pl.32','vld4vs.32','vld4vc.32','vld4hi.32','vld4ls.32','vld4ge.32','vld4lt.32','vld4gt.32','vld4le.32',
2214
+
2215
+ 'vldmeq','vldmne','vldmcs','vldmhs','vldmcc','vldmlo','vldmmi','vldmpl','vldmvs','vldmvc','vldmhi','vldmls','vldmge','vldmlt','vldmgt','vldmle',
2216
+ 'vldmeq.32','vldmne.32','vldmcs.32','vldmhs.32','vldmcc.32','vldmlo.32','vldmmi.32','vldmpl.32','vldmvs.32','vldmvc.32','vldmhi.32','vldmls.32','vldmge.32','vldmlt.32','vldmgt.32','vldmle.32',
2217
+ 'vldmeq.64','vldmne.64','vldmcs.64','vldmhs.64','vldmcc.64','vldmlo.64','vldmmi.64','vldmpl.64','vldmvs.64','vldmvc.64','vldmhi.64','vldmls.64','vldmge.64','vldmlt.64','vldmgt.64','vldmle.64',
2218
+
2219
+ 'vldmiaeq','vldmiane','vldmiacs','vldmiahs','vldmiacc','vldmialo','vldmiami','vldmiapl','vldmiavs','vldmiavc','vldmiahi','vldmials','vldmiage','vldmialt','vldmiagt','vldmiale',
2220
+ 'vldmiaeq.32','vldmiane.32','vldmiacs.32','vldmiahs.32','vldmiacc.32','vldmialo.32','vldmiami.32','vldmiapl.32','vldmiavs.32','vldmiavc.32','vldmiahi.32','vldmials.32','vldmiage.32','vldmialt.32','vldmiagt.32','vldmiale.32',
2221
+ 'vldmiaeq.64','vldmiane.64','vldmiacs.64','vldmiahs.64','vldmiacc.64','vldmialo.64','vldmiami.64','vldmiapl.64','vldmiavs.64','vldmiavc.64','vldmiahi.64','vldmials.64','vldmiage.64','vldmialt.64','vldmiagt.64','vldmiale.64',
2222
+
2223
+ 'vldmdbeq','vldmdbne','vldmdbcs','vldmdbhs','vldmdbcc','vldmdblo','vldmdbmi','vldmdbpl','vldmdbvs','vldmdbvc','vldmdbhi','vldmdbls','vldmdbge','vldmdblt','vldmdbgt','vldmdble',
2224
+ 'vldmdbeq.32','vldmdbne.32','vldmdbcs.32','vldmdbhs.32','vldmdbcc.32','vldmdblo.32','vldmdbmi.32','vldmdbpl.32','vldmdbvs.32','vldmdbvc.32','vldmdbhi.32','vldmdbls.32','vldmdbge.32','vldmdblt.32','vldmdbgt.32','vldmdble.32',
2225
+ 'vldmdbeq.64','vldmdbne.64','vldmdbcs.64','vldmdbhs.64','vldmdbcc.64','vldmdblo.64','vldmdbmi.64','vldmdbpl.64','vldmdbvs.64','vldmdbvc.64','vldmdbhi.64','vldmdbls.64','vldmdbge.64','vldmdblt.64','vldmdbgt.64','vldmdble.64',
2226
+
2227
+ 'vldreq','vldrne','vldrcs','vldrhs','vldrcc','vldrlo','vldrmi','vldrpl','vldrvs','vldrvc','vldrhi','vldrls','vldrge','vldrlt','vldrgt','vldrle',
2228
+ 'vldreq.32','vldrne.32','vldrcs.32','vldrhs.32','vldrcc.32','vldrlo.32','vldrmi.32','vldrpl.32','vldrvs.32','vldrvc.32','vldrhi.32','vldrls.32','vldrge.32','vldrlt.32','vldrgt.32','vldrle.32',
2229
+ 'vldreq.64','vldrne.64','vldrcs.64','vldrhs.64','vldrcc.64','vldrlo.64','vldrmi.64','vldrpl.64','vldrvs.64','vldrvc.64','vldrhi.64','vldrls.64','vldrge.64','vldrlt.64','vldrgt.64','vldrle.64',
2230
+
2231
+ 'vpopeq','vpopne','vpopcs','vpophs','vpopcc','vpoplo','vpopmi','vpoppl','vpopvs','vpopvc','vpophi','vpopls','vpopge','vpoplt','vpopgt','vpople',
2232
+ 'vpopeq.32','vpopne.32','vpopcs.32','vpophs.32','vpopcc.32','vpoplo.32','vpopmi.32','vpoppl.32','vpopvs.32','vpopvc.32','vpophi.32','vpopls.32','vpopge.32','vpoplt.32','vpopgt.32','vpople.32',
2233
+ 'vpopeq.64','vpopne.64','vpopcs.64','vpophs.64','vpopcc.64','vpoplo.64','vpopmi.64','vpoppl.64','vpopvs.64','vpopvc.64','vpophi.64','vpopls.64','vpopge.64','vpoplt.64','vpopgt.64','vpople.64',
2234
+
2235
+ /* Conditional VFPv3 & NEON SIMD Memory Access: Stores */
2236
+ 'vst1eq.8','vst1ne.8','vst1cs.8','vst1hs.8','vst1cc.8','vst1lo.8','vst1mi.8','vst1pl.8','vst1vs.8','vst1vc.8','vst1hi.8','vst1ls.8','vst1ge.8','vst1lt.8','vst1gt.8','vst1le.8',
2237
+ 'vst1eq.16','vst1ne.16','vst1cs.16','vst1hs.16','vst1cc.16','vst1lo.16','vst1mi.16','vst1pl.16','vst1vs.16','vst1vc.16','vst1hi.16','vst1ls.16','vst1ge.16','vst1lt.16','vst1gt.16','vst1le.16',
2238
+ 'vst1eq.32','vst1ne.32','vst1cs.32','vst1hs.32','vst1cc.32','vst1lo.32','vst1mi.32','vst1pl.32','vst1vs.32','vst1vc.32','vst1hi.32','vst1ls.32','vst1ge.32','vst1lt.32','vst1gt.32','vst1le.32',
2239
+ 'vst1eq.64','vst1ne.64','vst1cs.64','vst1hs.64','vst1cc.64','vst1lo.64','vst1mi.64','vst1pl.64','vst1vs.64','vst1vc.64','vst1hi.64','vst1ls.64','vst1ge.64','vst1lt.64','vst1gt.64','vst1le.64',
2240
+
2241
+ 'vst2eq.8','vst2ne.8','vst2cs.8','vst2hs.8','vst2cc.8','vst2lo.8','vst2mi.8','vst2pl.8','vst2vs.8','vst2vc.8','vst2hi.8','vst2ls.8','vst2ge.8','vst2lt.8','vst2gt.8','vst2le.8',
2242
+ 'vst2eq.16','vst2ne.16','vst2cs.16','vst2hs.16','vst2cc.16','vst2lo.16','vst2mi.16','vst2pl.16','vst2vs.16','vst2vc.16','vst2hi.16','vst2ls.16','vst2ge.16','vst2lt.16','vst2gt.16','vst2le.16',
2243
+ 'vst2eq.32','vst2ne.32','vst2cs.32','vst2hs.32','vst2cc.32','vst2lo.32','vst2mi.32','vst2pl.32','vst2vs.32','vst2vc.32','vst2hi.32','vst2ls.32','vst2ge.32','vst2lt.32','vst2gt.32','vst2le.32',
2244
+
2245
+ 'vst3eq.8','vst3ne.8','vst3cs.8','vst3hs.8','vst3cc.8','vst3lo.8','vst3mi.8','vst3pl.8','vst3vs.8','vst3vc.8','vst3hi.8','vst3ls.8','vst3ge.8','vst3lt.8','vst3gt.8','vst3le.8',
2246
+ 'vst3eq.16','vst3ne.16','vst3cs.16','vst3hs.16','vst3cc.16','vst3lo.16','vst3mi.16','vst3pl.16','vst3vs.16','vst3vc.16','vst3hi.16','vst3ls.16','vst3ge.16','vst3lt.16','vst3gt.16','vst3le.16',
2247
+ 'vst3eq.32','vst3ne.32','vst3cs.32','vst3hs.32','vst3cc.32','vst3lo.32','vst3mi.32','vst3pl.32','vst3vs.32','vst3vc.32','vst3hi.32','vst3ls.32','vst3ge.32','vst3lt.32','vst3gt.32','vst3le.32',
2248
+
2249
+ 'vst4eq.8','vst4ne.8','vst4cs.8','vst4hs.8','vst4cc.8','vst4lo.8','vst4mi.8','vst4pl.8','vst4vs.8','vst4vc.8','vst4hi.8','vst4ls.8','vst4ge.8','vst4lt.8','vst4gt.8','vst4le.8',
2250
+ 'vst4eq.16','vst4ne.16','vst4cs.16','vst4hs.16','vst4cc.16','vst4lo.16','vst4mi.16','vst4pl.16','vst4vs.16','vst4vc.16','vst4hi.16','vst4ls.16','vst4ge.16','vst4lt.16','vst4gt.16','vst4le.16',
2251
+ 'vst4eq.32','vst4ne.32','vst4cs.32','vst4hs.32','vst4cc.32','vst4lo.32','vst4mi.32','vst4pl.32','vst4vs.32','vst4vc.32','vst4hi.32','vst4ls.32','vst4ge.32','vst4lt.32','vst4gt.32','vst4le.32',
2252
+
2253
+ 'vstmeq','vstmne','vstmcs','vstmhs','vstmcc','vstmlo','vstmmi','vstmpl','vstmvs','vstmvc','vstmhi','vstmls','vstmge','vstmlt','vstmgt','vstmle',
2254
+ 'vstmeq.32','vstmne.32','vstmcs.32','vstmhs.32','vstmcc.32','vstmlo.32','vstmmi.32','vstmpl.32','vstmvs.32','vstmvc.32','vstmhi.32','vstmls.32','vstmge.32','vstmlt.32','vstmgt.32','vstmle.32',
2255
+ 'vstmeq.64','vstmne.64','vstmcs.64','vstmhs.64','vstmcc.64','vstmlo.64','vstmmi.64','vstmpl.64','vstmvs.64','vstmvc.64','vstmhi.64','vstmls.64','vstmge.64','vstmlt.64','vstmgt.64','vstmle.64',
2256
+
2257
+ 'vstmiaeq','vstmiane','vstmiacs','vstmiahs','vstmiacc','vstmialo','vstmiami','vstmiapl','vstmiavs','vstmiavc','vstmiahi','vstmials','vstmiage','vstmialt','vstmiagt','vstmiale',
2258
+ 'vstmiaeq.32','vstmiane.32','vstmiacs.32','vstmiahs.32','vstmiacc.32','vstmialo.32','vstmiami.32','vstmiapl.32','vstmiavs.32','vstmiavc.32','vstmiahi.32','vstmials.32','vstmiage.32','vstmialt.32','vstmiagt.32','vstmiale.32',
2259
+ 'vstmiaeq.64','vstmiane.64','vstmiacs.64','vstmiahs.64','vstmiacc.64','vstmialo.64','vstmiami.64','vstmiapl.64','vstmiavs.64','vstmiavc.64','vstmiahi.64','vstmials.64','vstmiage.64','vstmialt.64','vstmiagt.64','vstmiale.64',
2260
+
2261
+ 'vstmdbeq','vstmdbne','vstmdbcs','vstmdbhs','vstmdbcc','vstmdblo','vstmdbmi','vstmdbpl','vstmdbvs','vstmdbvc','vstmdbhi','vstmdbls','vstmdbge','vstmdblt','vstmdbgt','vstmdble',
2262
+ 'vstmdbeq.32','vstmdbne.32','vstmdbcs.32','vstmdbhs.32','vstmdbcc.32','vstmdblo.32','vstmdbmi.32','vstmdbpl.32','vstmdbvs.32','vstmdbvc.32','vstmdbhi.32','vstmdbls.32','vstmdbge.32','vstmdblt.32','vstmdbgt.32','vstmdble.32',
2263
+ 'vstmdbeq.64','vstmdbne.64','vstmdbcs.64','vstmdbhs.64','vstmdbcc.64','vstmdblo.64','vstmdbmi.64','vstmdbpl.64','vstmdbvs.64','vstmdbvc.64','vstmdbhi.64','vstmdbls.64','vstmdbge.64','vstmdblt.64','vstmdbgt.64','vstmdble.64',
2264
+
2265
+ 'vstreq','vstrne','vstrcs','vstrhs','vstrcc','vstrlo','vstrmi','vstrpl','vstrvs','vstrvc','vstrhi','vstrls','vstrge','vstrlt','vstrgt','vstrle',
2266
+ 'vstreq.32','vstrne.32','vstrcs.32','vstrhs.32','vstrcc.32','vstrlo.32','vstrmi.32','vstrpl.32','vstrvs.32','vstrvc.32','vstrhi.32','vstrls.32','vstrge.32','vstrlt.32','vstrgt.32','vstrle.32',
2267
+ 'vstreq.64','vstrne.64','vstrcs.64','vstrhs.64','vstrcc.64','vstrlo.64','vstrmi.64','vstrpl.64','vstrvs.64','vstrvc.64','vstrhi.64','vstrls.64','vstrge.64','vstrlt.64','vstrgt.64','vstrle.64',
2268
+
2269
+ 'vpusheq','vpushne','vpushcs','vpushhs','vpushcc','vpushlo','vpushmi','vpushpl','vpushvs','vpushvc','vpushhi','vpushls','vpushge','vpushlt','vpushgt','vpushle',
2270
+ 'vpusheq.32','vpushne.32','vpushcs.32','vpushhs.32','vpushcc.32','vpushlo.32','vpushmi.32','vpushpl.32','vpushvs.32','vpushvc.32','vpushhi.32','vpushls.32','vpushge.32','vpushlt.32','vpushgt.32','vpushle.32',
2271
+ 'vpusheq.64','vpushne.64','vpushcs.64','vpushhs.64','vpushcc.64','vpushlo.64','vpushmi.64','vpushpl.64','vpushvs.64','vpushvc.64','vpushhi.64','vpushls.64','vpushge.64','vpushlt.64','vpushgt.64','vpushle.64'
2272
+ ),
2273
+ /* Conditional NEON SIMD Logical Instructions */
2274
+ 28 => array(
2275
+ 'vandeq','vandne','vandcs','vandhs','vandcc','vandlo','vandmi','vandpl','vandvs','vandvc','vandhi','vandls','vandge','vandlt','vandgt','vandle',
2276
+ 'vandeq.i8','vandne.i8','vandcs.i8','vandhs.i8','vandcc.i8','vandlo.i8','vandmi.i8','vandpl.i8','vandvs.i8','vandvc.i8','vandhi.i8','vandls.i8','vandge.i8','vandlt.i8','vandgt.i8','vandle.i8',
2277
+ 'vandeq.i16','vandne.i16','vandcs.i16','vandhs.i16','vandcc.i16','vandlo.i16','vandmi.i16','vandpl.i16','vandvs.i16','vandvc.i16','vandhi.i16','vandls.i16','vandge.i16','vandlt.i16','vandgt.i16','vandle.i16',
2278
+ 'vandeq.i32','vandne.i32','vandcs.i32','vandhs.i32','vandcc.i32','vandlo.i32','vandmi.i32','vandpl.i32','vandvs.i32','vandvc.i32','vandhi.i32','vandls.i32','vandge.i32','vandlt.i32','vandgt.i32','vandle.i32',
2279
+ 'vandeq.i64','vandne.i64','vandcs.i64','vandhs.i64','vandcc.i64','vandlo.i64','vandmi.i64','vandpl.i64','vandvs.i64','vandvc.i64','vandhi.i64','vandls.i64','vandge.i64','vandlt.i64','vandgt.i64','vandle.i64',
2280
+ 'vandeq.s8','vandne.s8','vandcs.s8','vandhs.s8','vandcc.s8','vandlo.s8','vandmi.s8','vandpl.s8','vandvs.s8','vandvc.s8','vandhi.s8','vandls.s8','vandge.s8','vandlt.s8','vandgt.s8','vandle.s8',
2281
+ 'vandeq.s16','vandne.s16','vandcs.s16','vandhs.s16','vandcc.s16','vandlo.s16','vandmi.s16','vandpl.s16','vandvs.s16','vandvc.s16','vandhi.s16','vandls.s16','vandge.s16','vandlt.s16','vandgt.s16','vandle.s16',
2282
+ 'vandeq.s32','vandne.s32','vandcs.s32','vandhs.s32','vandcc.s32','vandlo.s32','vandmi.s32','vandpl.s32','vandvs.s32','vandvc.s32','vandhi.s32','vandls.s32','vandge.s32','vandlt.s32','vandgt.s32','vandle.s32',
2283
+ 'vandeq.s64','vandne.s64','vandcs.s64','vandhs.s64','vandcc.s64','vandlo.s64','vandmi.s64','vandpl.s64','vandvs.s64','vandvc.s64','vandhi.s64','vandls.s64','vandge.s64','vandlt.s64','vandgt.s64','vandle.s64',
2284
+ 'vandeq.u8','vandne.u8','vandcs.u8','vandhs.u8','vandcc.u8','vandlo.u8','vandmi.u8','vandpl.u8','vandvs.u8','vandvc.u8','vandhi.u8','vandls.u8','vandge.u8','vandlt.u8','vandgt.u8','vandle.u8',
2285
+ 'vandeq.u16','vandne.u16','vandcs.u16','vandhs.u16','vandcc.u16','vandlo.u16','vandmi.u16','vandpl.u16','vandvs.u16','vandvc.u16','vandhi.u16','vandls.u16','vandge.u16','vandlt.u16','vandgt.u16','vandle.u16',
2286
+ 'vandeq.u32','vandne.u32','vandcs.u32','vandhs.u32','vandcc.u32','vandlo.u32','vandmi.u32','vandpl.u32','vandvs.u32','vandvc.u32','vandhi.u32','vandls.u32','vandge.u32','vandlt.u32','vandgt.u32','vandle.u32',
2287
+ 'vandeq.u64','vandne.u64','vandcs.u64','vandhs.u64','vandcc.u64','vandlo.u64','vandmi.u64','vandpl.u64','vandvs.u64','vandvc.u64','vandhi.u64','vandls.u64','vandge.u64','vandlt.u64','vandgt.u64','vandle.u64',
2288
+ 'vandeq.f32','vandne.f32','vandcs.f32','vandhs.f32','vandcc.f32','vandlo.f32','vandmi.f32','vandpl.f32','vandvs.f32','vandvc.f32','vandhi.f32','vandls.f32','vandge.f32','vandlt.f32','vandgt.f32','vandle.f32',
2289
+ 'vandeq.f64','vandne.f64','vandcs.f64','vandhs.f64','vandcc.f64','vandlo.f64','vandmi.f64','vandpl.f64','vandvs.f64','vandvc.f64','vandhi.f64','vandls.f64','vandge.f64','vandlt.f64','vandgt.f64','vandle.f64',
2290
+
2291
+ 'vbiceq','vbicne','vbiccs','vbichs','vbiccc','vbiclo','vbicmi','vbicpl','vbicvs','vbicvc','vbichi','vbicls','vbicge','vbiclt','vbicgt','vbicle',
2292
+ 'vbiceq.i8','vbicne.i8','vbiccs.i8','vbichs.i8','vbiccc.i8','vbiclo.i8','vbicmi.i8','vbicpl.i8','vbicvs.i8','vbicvc.i8','vbichi.i8','vbicls.i8','vbicge.i8','vbiclt.i8','vbicgt.i8','vbicle.i8',
2293
+ 'vbiceq.i16','vbicne.i16','vbiccs.i16','vbichs.i16','vbiccc.i16','vbiclo.i16','vbicmi.i16','vbicpl.i16','vbicvs.i16','vbicvc.i16','vbichi.i16','vbicls.i16','vbicge.i16','vbiclt.i16','vbicgt.i16','vbicle.i16',
2294
+ 'vbiceq.i32','vbicne.i32','vbiccs.i32','vbichs.i32','vbiccc.i32','vbiclo.i32','vbicmi.i32','vbicpl.i32','vbicvs.i32','vbicvc.i32','vbichi.i32','vbicls.i32','vbicge.i32','vbiclt.i32','vbicgt.i32','vbicle.i32',
2295
+ 'vbiceq.i64','vbicne.i64','vbiccs.i64','vbichs.i64','vbiccc.i64','vbiclo.i64','vbicmi.i64','vbicpl.i64','vbicvs.i64','vbicvc.i64','vbichi.i64','vbicls.i64','vbicge.i64','vbiclt.i64','vbicgt.i64','vbicle.i64',
2296
+ 'vbiceq.s8','vbicne.s8','vbiccs.s8','vbichs.s8','vbiccc.s8','vbiclo.s8','vbicmi.s8','vbicpl.s8','vbicvs.s8','vbicvc.s8','vbichi.s8','vbicls.s8','vbicge.s8','vbiclt.s8','vbicgt.s8','vbicle.s8',
2297
+ 'vbiceq.s16','vbicne.s16','vbiccs.s16','vbichs.s16','vbiccc.s16','vbiclo.s16','vbicmi.s16','vbicpl.s16','vbicvs.s16','vbicvc.s16','vbichi.s16','vbicls.s16','vbicge.s16','vbiclt.s16','vbicgt.s16','vbicle.s16',
2298
+ 'vbiceq.s32','vbicne.s32','vbiccs.s32','vbichs.s32','vbiccc.s32','vbiclo.s32','vbicmi.s32','vbicpl.s32','vbicvs.s32','vbicvc.s32','vbichi.s32','vbicls.s32','vbicge.s32','vbiclt.s32','vbicgt.s32','vbicle.s32',
2299
+ 'vbiceq.s64','vbicne.s64','vbiccs.s64','vbichs.s64','vbiccc.s64','vbiclo.s64','vbicmi.s64','vbicpl.s64','vbicvs.s64','vbicvc.s64','vbichi.s64','vbicls.s64','vbicge.s64','vbiclt.s64','vbicgt.s64','vbicle.s64',
2300
+ 'vbiceq.u8','vbicne.u8','vbiccs.u8','vbichs.u8','vbiccc.u8','vbiclo.u8','vbicmi.u8','vbicpl.u8','vbicvs.u8','vbicvc.u8','vbichi.u8','vbicls.u8','vbicge.u8','vbiclt.u8','vbicgt.u8','vbicle.u8',
2301
+ 'vbiceq.u16','vbicne.u16','vbiccs.u16','vbichs.u16','vbiccc.u16','vbiclo.u16','vbicmi.u16','vbicpl.u16','vbicvs.u16','vbicvc.u16','vbichi.u16','vbicls.u16','vbicge.u16','vbiclt.u16','vbicgt.u16','vbicle.u16',
2302
+ 'vbiceq.u32','vbicne.u32','vbiccs.u32','vbichs.u32','vbiccc.u32','vbiclo.u32','vbicmi.u32','vbicpl.u32','vbicvs.u32','vbicvc.u32','vbichi.u32','vbicls.u32','vbicge.u32','vbiclt.u32','vbicgt.u32','vbicle.u32',
2303
+ 'vbiceq.u64','vbicne.u64','vbiccs.u64','vbichs.u64','vbiccc.u64','vbiclo.u64','vbicmi.u64','vbicpl.u64','vbicvs.u64','vbicvc.u64','vbichi.u64','vbicls.u64','vbicge.u64','vbiclt.u64','vbicgt.u64','vbicle.u64',
2304
+ 'vbiceq.f32','vbicne.f32','vbiccs.f32','vbichs.f32','vbiccc.f32','vbiclo.f32','vbicmi.f32','vbicpl.f32','vbicvs.f32','vbicvc.f32','vbichi.f32','vbicls.f32','vbicge.f32','vbiclt.f32','vbicgt.f32','vbicle.f32',
2305
+ 'vbiceq.f64','vbicne.f64','vbiccs.f64','vbichs.f64','vbiccc.f64','vbiclo.f64','vbicmi.f64','vbicpl.f64','vbicvs.f64','vbicvc.f64','vbichi.f64','vbicls.f64','vbicge.f64','vbiclt.f64','vbicgt.f64','vbicle.f64',
2306
+
2307
+ 'vbifeq','vbifne','vbifcs','vbifhs','vbifcc','vbiflo','vbifmi','vbifpl','vbifvs','vbifvc','vbifhi','vbifls','vbifge','vbiflt','vbifgt','vbifle',
2308
+ 'vbifeq.i8','vbifne.i8','vbifcs.i8','vbifhs.i8','vbifcc.i8','vbiflo.i8','vbifmi.i8','vbifpl.i8','vbifvs.i8','vbifvc.i8','vbifhi.i8','vbifls.i8','vbifge.i8','vbiflt.i8','vbifgt.i8','vbifle.i8',
2309
+ 'vbifeq.i16','vbifne.i16','vbifcs.i16','vbifhs.i16','vbifcc.i16','vbiflo.i16','vbifmi.i16','vbifpl.i16','vbifvs.i16','vbifvc.i16','vbifhi.i16','vbifls.i16','vbifge.i16','vbiflt.i16','vbifgt.i16','vbifle.i16',
2310
+ 'vbifeq.i32','vbifne.i32','vbifcs.i32','vbifhs.i32','vbifcc.i32','vbiflo.i32','vbifmi.i32','vbifpl.i32','vbifvs.i32','vbifvc.i32','vbifhi.i32','vbifls.i32','vbifge.i32','vbiflt.i32','vbifgt.i32','vbifle.i32',
2311
+ 'vbifeq.i64','vbifne.i64','vbifcs.i64','vbifhs.i64','vbifcc.i64','vbiflo.i64','vbifmi.i64','vbifpl.i64','vbifvs.i64','vbifvc.i64','vbifhi.i64','vbifls.i64','vbifge.i64','vbiflt.i64','vbifgt.i64','vbifle.i64',
2312
+ 'vbifeq.s8','vbifne.s8','vbifcs.s8','vbifhs.s8','vbifcc.s8','vbiflo.s8','vbifmi.s8','vbifpl.s8','vbifvs.s8','vbifvc.s8','vbifhi.s8','vbifls.s8','vbifge.s8','vbiflt.s8','vbifgt.s8','vbifle.s8',
2313
+ 'vbifeq.s16','vbifne.s16','vbifcs.s16','vbifhs.s16','vbifcc.s16','vbiflo.s16','vbifmi.s16','vbifpl.s16','vbifvs.s16','vbifvc.s16','vbifhi.s16','vbifls.s16','vbifge.s16','vbiflt.s16','vbifgt.s16','vbifle.s16',
2314
+ 'vbifeq.s32','vbifne.s32','vbifcs.s32','vbifhs.s32','vbifcc.s32','vbiflo.s32','vbifmi.s32','vbifpl.s32','vbifvs.s32','vbifvc.s32','vbifhi.s32','vbifls.s32','vbifge.s32','vbiflt.s32','vbifgt.s32','vbifle.s32',
2315
+ 'vbifeq.s64','vbifne.s64','vbifcs.s64','vbifhs.s64','vbifcc.s64','vbiflo.s64','vbifmi.s64','vbifpl.s64','vbifvs.s64','vbifvc.s64','vbifhi.s64','vbifls.s64','vbifge.s64','vbiflt.s64','vbifgt.s64','vbifle.s64',
2316
+ 'vbifeq.u8','vbifne.u8','vbifcs.u8','vbifhs.u8','vbifcc.u8','vbiflo.u8','vbifmi.u8','vbifpl.u8','vbifvs.u8','vbifvc.u8','vbifhi.u8','vbifls.u8','vbifge.u8','vbiflt.u8','vbifgt.u8','vbifle.u8',
2317
+ 'vbifeq.u16','vbifne.u16','vbifcs.u16','vbifhs.u16','vbifcc.u16','vbiflo.u16','vbifmi.u16','vbifpl.u16','vbifvs.u16','vbifvc.u16','vbifhi.u16','vbifls.u16','vbifge.u16','vbiflt.u16','vbifgt.u16','vbifle.u16',
2318
+ 'vbifeq.u32','vbifne.u32','vbifcs.u32','vbifhs.u32','vbifcc.u32','vbiflo.u32','vbifmi.u32','vbifpl.u32','vbifvs.u32','vbifvc.u32','vbifhi.u32','vbifls.u32','vbifge.u32','vbiflt.u32','vbifgt.u32','vbifle.u32',
2319
+ 'vbifeq.u64','vbifne.u64','vbifcs.u64','vbifhs.u64','vbifcc.u64','vbiflo.u64','vbifmi.u64','vbifpl.u64','vbifvs.u64','vbifvc.u64','vbifhi.u64','vbifls.u64','vbifge.u64','vbiflt.u64','vbifgt.u64','vbifle.u64',
2320
+ 'vbifeq.f32','vbifne.f32','vbifcs.f32','vbifhs.f32','vbifcc.f32','vbiflo.f32','vbifmi.f32','vbifpl.f32','vbifvs.f32','vbifvc.f32','vbifhi.f32','vbifls.f32','vbifge.f32','vbiflt.f32','vbifgt.f32','vbifle.f32',
2321
+ 'vbifeq.f64','vbifne.f64','vbifcs.f64','vbifhs.f64','vbifcc.f64','vbiflo.f64','vbifmi.f64','vbifpl.f64','vbifvs.f64','vbifvc.f64','vbifhi.f64','vbifls.f64','vbifge.f64','vbiflt.f64','vbifgt.f64','vbifle.f64',
2322
+
2323
+ 'vbiteq','vbitne','vbitcs','vbiths','vbitcc','vbitlo','vbitmi','vbitpl','vbitvs','vbitvc','vbithi','vbitls','vbitge','vbitlt','vbitgt','vbitle',
2324
+ 'vbiteq.i8','vbitne.i8','vbitcs.i8','vbiths.i8','vbitcc.i8','vbitlo.i8','vbitmi.i8','vbitpl.i8','vbitvs.i8','vbitvc.i8','vbithi.i8','vbitls.i8','vbitge.i8','vbitlt.i8','vbitgt.i8','vbitle.i8',
2325
+ 'vbiteq.i16','vbitne.i16','vbitcs.i16','vbiths.i16','vbitcc.i16','vbitlo.i16','vbitmi.i16','vbitpl.i16','vbitvs.i16','vbitvc.i16','vbithi.i16','vbitls.i16','vbitge.i16','vbitlt.i16','vbitgt.i16','vbitle.i16',
2326
+ 'vbiteq.i32','vbitne.i32','vbitcs.i32','vbiths.i32','vbitcc.i32','vbitlo.i32','vbitmi.i32','vbitpl.i32','vbitvs.i32','vbitvc.i32','vbithi.i32','vbitls.i32','vbitge.i32','vbitlt.i32','vbitgt.i32','vbitle.i32',
2327
+ 'vbiteq.i64','vbitne.i64','vbitcs.i64','vbiths.i64','vbitcc.i64','vbitlo.i64','vbitmi.i64','vbitpl.i64','vbitvs.i64','vbitvc.i64','vbithi.i64','vbitls.i64','vbitge.i64','vbitlt.i64','vbitgt.i64','vbitle.i64',
2328
+ 'vbiteq.s8','vbitne.s8','vbitcs.s8','vbiths.s8','vbitcc.s8','vbitlo.s8','vbitmi.s8','vbitpl.s8','vbitvs.s8','vbitvc.s8','vbithi.s8','vbitls.s8','vbitge.s8','vbitlt.s8','vbitgt.s8','vbitle.s8',
2329
+ 'vbiteq.s16','vbitne.s16','vbitcs.s16','vbiths.s16','vbitcc.s16','vbitlo.s16','vbitmi.s16','vbitpl.s16','vbitvs.s16','vbitvc.s16','vbithi.s16','vbitls.s16','vbitge.s16','vbitlt.s16','vbitgt.s16','vbitle.s16',
2330
+ 'vbiteq.s32','vbitne.s32','vbitcs.s32','vbiths.s32','vbitcc.s32','vbitlo.s32','vbitmi.s32','vbitpl.s32','vbitvs.s32','vbitvc.s32','vbithi.s32','vbitls.s32','vbitge.s32','vbitlt.s32','vbitgt.s32','vbitle.s32',
2331
+ 'vbiteq.s64','vbitne.s64','vbitcs.s64','vbiths.s64','vbitcc.s64','vbitlo.s64','vbitmi.s64','vbitpl.s64','vbitvs.s64','vbitvc.s64','vbithi.s64','vbitls.s64','vbitge.s64','vbitlt.s64','vbitgt.s64','vbitle.s64',
2332
+ 'vbiteq.u8','vbitne.u8','vbitcs.u8','vbiths.u8','vbitcc.u8','vbitlo.u8','vbitmi.u8','vbitpl.u8','vbitvs.u8','vbitvc.u8','vbithi.u8','vbitls.u8','vbitge.u8','vbitlt.u8','vbitgt.u8','vbitle.u8',
2333
+ 'vbiteq.u16','vbitne.u16','vbitcs.u16','vbiths.u16','vbitcc.u16','vbitlo.u16','vbitmi.u16','vbitpl.u16','vbitvs.u16','vbitvc.u16','vbithi.u16','vbitls.u16','vbitge.u16','vbitlt.u16','vbitgt.u16','vbitle.u16',
2334
+ 'vbiteq.u32','vbitne.u32','vbitcs.u32','vbiths.u32','vbitcc.u32','vbitlo.u32','vbitmi.u32','vbitpl.u32','vbitvs.u32','vbitvc.u32','vbithi.u32','vbitls.u32','vbitge.u32','vbitlt.u32','vbitgt.u32','vbitle.u32',
2335
+ 'vbiteq.u64','vbitne.u64','vbitcs.u64','vbiths.u64','vbitcc.u64','vbitlo.u64','vbitmi.u64','vbitpl.u64','vbitvs.u64','vbitvc.u64','vbithi.u64','vbitls.u64','vbitge.u64','vbitlt.u64','vbitgt.u64','vbitle.u64',
2336
+ 'vbiteq.f32','vbitne.f32','vbitcs.f32','vbiths.f32','vbitcc.f32','vbitlo.f32','vbitmi.f32','vbitpl.f32','vbitvs.f32','vbitvc.f32','vbithi.f32','vbitls.f32','vbitge.f32','vbitlt.f32','vbitgt.f32','vbitle.f32',
2337
+ 'vbiteq.f64','vbitne.f64','vbitcs.f64','vbiths.f64','vbitcc.f64','vbitlo.f64','vbitmi.f64','vbitpl.f64','vbitvs.f64','vbitvc.f64','vbithi.f64','vbitls.f64','vbitge.f64','vbitlt.f64','vbitgt.f64','vbitle.f64',
2338
+
2339
+ 'vbsleq','vbslne','vbslcs','vbslhs','vbslcc','vbsllo','vbslmi','vbslpl','vbslvs','vbslvc','vbslhi','vbslls','vbslge','vbsllt','vbslgt','vbslle',
2340
+ 'vbsleq.i8','vbslne.i8','vbslcs.i8','vbslhs.i8','vbslcc.i8','vbsllo.i8','vbslmi.i8','vbslpl.i8','vbslvs.i8','vbslvc.i8','vbslhi.i8','vbslls.i8','vbslge.i8','vbsllt.i8','vbslgt.i8','vbslle.i8',
2341
+ 'vbsleq.i16','vbslne.i16','vbslcs.i16','vbslhs.i16','vbslcc.i16','vbsllo.i16','vbslmi.i16','vbslpl.i16','vbslvs.i16','vbslvc.i16','vbslhi.i16','vbslls.i16','vbslge.i16','vbsllt.i16','vbslgt.i16','vbslle.i16',
2342
+ 'vbsleq.i32','vbslne.i32','vbslcs.i32','vbslhs.i32','vbslcc.i32','vbsllo.i32','vbslmi.i32','vbslpl.i32','vbslvs.i32','vbslvc.i32','vbslhi.i32','vbslls.i32','vbslge.i32','vbsllt.i32','vbslgt.i32','vbslle.i32',
2343
+ 'vbsleq.i64','vbslne.i64','vbslcs.i64','vbslhs.i64','vbslcc.i64','vbsllo.i64','vbslmi.i64','vbslpl.i64','vbslvs.i64','vbslvc.i64','vbslhi.i64','vbslls.i64','vbslge.i64','vbsllt.i64','vbslgt.i64','vbslle.i64',
2344
+ 'vbsleq.s8','vbslne.s8','vbslcs.s8','vbslhs.s8','vbslcc.s8','vbsllo.s8','vbslmi.s8','vbslpl.s8','vbslvs.s8','vbslvc.s8','vbslhi.s8','vbslls.s8','vbslge.s8','vbsllt.s8','vbslgt.s8','vbslle.s8',
2345
+ 'vbsleq.s16','vbslne.s16','vbslcs.s16','vbslhs.s16','vbslcc.s16','vbsllo.s16','vbslmi.s16','vbslpl.s16','vbslvs.s16','vbslvc.s16','vbslhi.s16','vbslls.s16','vbslge.s16','vbsllt.s16','vbslgt.s16','vbslle.s16',
2346
+ 'vbsleq.s32','vbslne.s32','vbslcs.s32','vbslhs.s32','vbslcc.s32','vbsllo.s32','vbslmi.s32','vbslpl.s32','vbslvs.s32','vbslvc.s32','vbslhi.s32','vbslls.s32','vbslge.s32','vbsllt.s32','vbslgt.s32','vbslle.s32',
2347
+ 'vbsleq.s64','vbslne.s64','vbslcs.s64','vbslhs.s64','vbslcc.s64','vbsllo.s64','vbslmi.s64','vbslpl.s64','vbslvs.s64','vbslvc.s64','vbslhi.s64','vbslls.s64','vbslge.s64','vbsllt.s64','vbslgt.s64','vbslle.s64',
2348
+ 'vbsleq.u8','vbslne.u8','vbslcs.u8','vbslhs.u8','vbslcc.u8','vbsllo.u8','vbslmi.u8','vbslpl.u8','vbslvs.u8','vbslvc.u8','vbslhi.u8','vbslls.u8','vbslge.u8','vbsllt.u8','vbslgt.u8','vbslle.u8',
2349
+ 'vbsleq.u16','vbslne.u16','vbslcs.u16','vbslhs.u16','vbslcc.u16','vbsllo.u16','vbslmi.u16','vbslpl.u16','vbslvs.u16','vbslvc.u16','vbslhi.u16','vbslls.u16','vbslge.u16','vbsllt.u16','vbslgt.u16','vbslle.u16',
2350
+ 'vbsleq.u32','vbslne.u32','vbslcs.u32','vbslhs.u32','vbslcc.u32','vbsllo.u32','vbslmi.u32','vbslpl.u32','vbslvs.u32','vbslvc.u32','vbslhi.u32','vbslls.u32','vbslge.u32','vbsllt.u32','vbslgt.u32','vbslle.u32',
2351
+ 'vbsleq.u64','vbslne.u64','vbslcs.u64','vbslhs.u64','vbslcc.u64','vbsllo.u64','vbslmi.u64','vbslpl.u64','vbslvs.u64','vbslvc.u64','vbslhi.u64','vbslls.u64','vbslge.u64','vbsllt.u64','vbslgt.u64','vbslle.u64',
2352
+ 'vbsleq.f32','vbslne.f32','vbslcs.f32','vbslhs.f32','vbslcc.f32','vbsllo.f32','vbslmi.f32','vbslpl.f32','vbslvs.f32','vbslvc.f32','vbslhi.f32','vbslls.f32','vbslge.f32','vbsllt.f32','vbslgt.f32','vbslle.f32',
2353
+ 'vbsleq.f64','vbslne.f64','vbslcs.f64','vbslhs.f64','vbslcc.f64','vbsllo.f64','vbslmi.f64','vbslpl.f64','vbslvs.f64','vbslvc.f64','vbslhi.f64','vbslls.f64','vbslge.f64','vbsllt.f64','vbslgt.f64','vbslle.f64',
2354
+
2355
+ 'veoreq','veorne','veorcs','veorhs','veorcc','veorlo','veormi','veorpl','veorvs','veorvc','veorhi','veorls','veorge','veorlt','veorgt','veorle',
2356
+ 'veoreq.i8','veorne.i8','veorcs.i8','veorhs.i8','veorcc.i8','veorlo.i8','veormi.i8','veorpl.i8','veorvs.i8','veorvc.i8','veorhi.i8','veorls.i8','veorge.i8','veorlt.i8','veorgt.i8','veorle.i8',
2357
+ 'veoreq.i16','veorne.i16','veorcs.i16','veorhs.i16','veorcc.i16','veorlo.i16','veormi.i16','veorpl.i16','veorvs.i16','veorvc.i16','veorhi.i16','veorls.i16','veorge.i16','veorlt.i16','veorgt.i16','veorle.i16',
2358
+ 'veoreq.i32','veorne.i32','veorcs.i32','veorhs.i32','veorcc.i32','veorlo.i32','veormi.i32','veorpl.i32','veorvs.i32','veorvc.i32','veorhi.i32','veorls.i32','veorge.i32','veorlt.i32','veorgt.i32','veorle.i32',
2359
+ 'veoreq.i64','veorne.i64','veorcs.i64','veorhs.i64','veorcc.i64','veorlo.i64','veormi.i64','veorpl.i64','veorvs.i64','veorvc.i64','veorhi.i64','veorls.i64','veorge.i64','veorlt.i64','veorgt.i64','veorle.i64',
2360
+ 'veoreq.s8','veorne.s8','veorcs.s8','veorhs.s8','veorcc.s8','veorlo.s8','veormi.s8','veorpl.s8','veorvs.s8','veorvc.s8','veorhi.s8','veorls.s8','veorge.s8','veorlt.s8','veorgt.s8','veorle.s8',
2361
+ 'veoreq.s16','veorne.s16','veorcs.s16','veorhs.s16','veorcc.s16','veorlo.s16','veormi.s16','veorpl.s16','veorvs.s16','veorvc.s16','veorhi.s16','veorls.s16','veorge.s16','veorlt.s16','veorgt.s16','veorle.s16',
2362
+ 'veoreq.s32','veorne.s32','veorcs.s32','veorhs.s32','veorcc.s32','veorlo.s32','veormi.s32','veorpl.s32','veorvs.s32','veorvc.s32','veorhi.s32','veorls.s32','veorge.s32','veorlt.s32','veorgt.s32','veorle.s32',
2363
+ 'veoreq.s64','veorne.s64','veorcs.s64','veorhs.s64','veorcc.s64','veorlo.s64','veormi.s64','veorpl.s64','veorvs.s64','veorvc.s64','veorhi.s64','veorls.s64','veorge.s64','veorlt.s64','veorgt.s64','veorle.s64',
2364
+ 'veoreq.u8','veorne.u8','veorcs.u8','veorhs.u8','veorcc.u8','veorlo.u8','veormi.u8','veorpl.u8','veorvs.u8','veorvc.u8','veorhi.u8','veorls.u8','veorge.u8','veorlt.u8','veorgt.u8','veorle.u8',
2365
+ 'veoreq.u16','veorne.u16','veorcs.u16','veorhs.u16','veorcc.u16','veorlo.u16','veormi.u16','veorpl.u16','veorvs.u16','veorvc.u16','veorhi.u16','veorls.u16','veorge.u16','veorlt.u16','veorgt.u16','veorle.u16',
2366
+ 'veoreq.u32','veorne.u32','veorcs.u32','veorhs.u32','veorcc.u32','veorlo.u32','veormi.u32','veorpl.u32','veorvs.u32','veorvc.u32','veorhi.u32','veorls.u32','veorge.u32','veorlt.u32','veorgt.u32','veorle.u32',
2367
+ 'veoreq.u64','veorne.u64','veorcs.u64','veorhs.u64','veorcc.u64','veorlo.u64','veormi.u64','veorpl.u64','veorvs.u64','veorvc.u64','veorhi.u64','veorls.u64','veorge.u64','veorlt.u64','veorgt.u64','veorle.u64',
2368
+ 'veoreq.f32','veorne.f32','veorcs.f32','veorhs.f32','veorcc.f32','veorlo.f32','veormi.f32','veorpl.f32','veorvs.f32','veorvc.f32','veorhi.f32','veorls.f32','veorge.f32','veorlt.f32','veorgt.f32','veorle.f32',
2369
+ 'veoreq.f64','veorne.f64','veorcs.f64','veorhs.f64','veorcc.f64','veorlo.f64','veormi.f64','veorpl.f64','veorvs.f64','veorvc.f64','veorhi.f64','veorls.f64','veorge.f64','veorlt.f64','veorgt.f64','veorle.f64',
2370
+
2371
+ 'vmoveq','vmovne','vmovcs','vmovhs','vmovcc','vmovlo','vmovmi','vmovpl','vmovvs','vmovvc','vmovhi','vmovls','vmovge','vmovlt','vmovgt','vmovle',
2372
+ 'vmoveq.8','vmovne.8','vmovcs.8','vmovhs.8','vmovcc.8','vmovlo.8','vmovmi.8','vmovpl.8','vmovvs.8','vmovvc.8','vmovhi.8','vmovls.8','vmovge.8','vmovlt.8','vmovgt.8','vmovle.8',
2373
+ 'vmoveq.16','vmovne.16','vmovcs.16','vmovhs.16','vmovcc.16','vmovlo.16','vmovmi.16','vmovpl.16','vmovvs.16','vmovvc.16','vmovhi.16','vmovls.16','vmovge.16','vmovlt.16','vmovgt.16','vmovle.16',
2374
+ 'vmoveq.32','vmovne.32','vmovcs.32','vmovhs.32','vmovcc.32','vmovlo.32','vmovmi.32','vmovpl.32','vmovvs.32','vmovvc.32','vmovhi.32','vmovls.32','vmovge.32','vmovlt.32','vmovgt.32','vmovle.32',
2375
+ 'vmoveq.i8','vmovne.i8','vmovcs.i8','vmovhs.i8','vmovcc.i8','vmovlo.i8','vmovmi.i8','vmovpl.i8','vmovvs.i8','vmovvc.i8','vmovhi.i8','vmovls.i8','vmovge.i8','vmovlt.i8','vmovgt.i8','vmovle.i8',
2376
+ 'vmoveq.i16','vmovne.i16','vmovcs.i16','vmovhs.i16','vmovcc.i16','vmovlo.i16','vmovmi.i16','vmovpl.i16','vmovvs.i16','vmovvc.i16','vmovhi.i16','vmovls.i16','vmovge.i16','vmovlt.i16','vmovgt.i16','vmovle.i16',
2377
+ 'vmoveq.i32','vmovne.i32','vmovcs.i32','vmovhs.i32','vmovcc.i32','vmovlo.i32','vmovmi.i32','vmovpl.i32','vmovvs.i32','vmovvc.i32','vmovhi.i32','vmovls.i32','vmovge.i32','vmovlt.i32','vmovgt.i32','vmovle.i32',
2378
+ 'vmoveq.i64','vmovne.i64','vmovcs.i64','vmovhs.i64','vmovcc.i64','vmovlo.i64','vmovmi.i64','vmovpl.i64','vmovvs.i64','vmovvc.i64','vmovhi.i64','vmovls.i64','vmovge.i64','vmovlt.i64','vmovgt.i64','vmovle.i64',
2379
+ 'vmoveq.f32','vmovne.f32','vmovcs.f32','vmovhs.f32','vmovcc.f32','vmovlo.f32','vmovmi.f32','vmovpl.f32','vmovvs.f32','vmovvc.f32','vmovhi.f32','vmovls.f32','vmovge.f32','vmovlt.f32','vmovgt.f32','vmovle.f32',
2380
+ 'vmoveq.f64','vmovne.f64','vmovcs.f64','vmovhs.f64','vmovcc.f64','vmovlo.f64','vmovmi.f64','vmovpl.f64','vmovvs.f64','vmovvc.f64','vmovhi.f64','vmovls.f64','vmovge.f64','vmovlt.f64','vmovgt.f64','vmovle.f64',
2381
+
2382
+ 'vmvneq','vmvnne','vmvncs','vmvnhs','vmvncc','vmvnlo','vmvnmi','vmvnpl','vmvnvs','vmvnvc','vmvnhi','vmvnls','vmvnge','vmvnlt','vmvngt','vmvnle',
2383
+ 'vmvneq.s8','vmvnne.s8','vmvncs.s8','vmvnhs.s8','vmvncc.s8','vmvnlo.s8','vmvnmi.s8','vmvnpl.s8','vmvnvs.s8','vmvnvc.s8','vmvnhi.s8','vmvnls.s8','vmvnge.s8','vmvnlt.s8','vmvngt.s8','vmvnle.s8',
2384
+ 'vmvneq.s16','vmvnne.s16','vmvncs.s16','vmvnhs.s16','vmvncc.s16','vmvnlo.s16','vmvnmi.s16','vmvnpl.s16','vmvnvs.s16','vmvnvc.s16','vmvnhi.s16','vmvnls.s16','vmvnge.s16','vmvnlt.s16','vmvngt.s16','vmvnle.s16',
2385
+ 'vmvneq.s32','vmvnne.s32','vmvncs.s32','vmvnhs.s32','vmvncc.s32','vmvnlo.s32','vmvnmi.s32','vmvnpl.s32','vmvnvs.s32','vmvnvc.s32','vmvnhi.s32','vmvnls.s32','vmvnge.s32','vmvnlt.s32','vmvngt.s32','vmvnle.s32',
2386
+ 'vmvneq.s64','vmvnne.s64','vmvncs.s64','vmvnhs.s64','vmvncc.s64','vmvnlo.s64','vmvnmi.s64','vmvnpl.s64','vmvnvs.s64','vmvnvc.s64','vmvnhi.s64','vmvnls.s64','vmvnge.s64','vmvnlt.s64','vmvngt.s64','vmvnle.s64',
2387
+ 'vmvneq.u8','vmvnne.u8','vmvncs.u8','vmvnhs.u8','vmvncc.u8','vmvnlo.u8','vmvnmi.u8','vmvnpl.u8','vmvnvs.u8','vmvnvc.u8','vmvnhi.u8','vmvnls.u8','vmvnge.u8','vmvnlt.u8','vmvngt.u8','vmvnle.u8',
2388
+ 'vmvneq.u16','vmvnne.u16','vmvncs.u16','vmvnhs.u16','vmvncc.u16','vmvnlo.u16','vmvnmi.u16','vmvnpl.u16','vmvnvs.u16','vmvnvc.u16','vmvnhi.u16','vmvnls.u16','vmvnge.u16','vmvnlt.u16','vmvngt.u16','vmvnle.u16',
2389
+ 'vmvneq.u32','vmvnne.u32','vmvncs.u32','vmvnhs.u32','vmvncc.u32','vmvnlo.u32','vmvnmi.u32','vmvnpl.u32','vmvnvs.u32','vmvnvc.u32','vmvnhi.u32','vmvnls.u32','vmvnge.u32','vmvnlt.u32','vmvngt.u32','vmvnle.u32',
2390
+ 'vmvneq.u64','vmvnne.u64','vmvncs.u64','vmvnhs.u64','vmvncc.u64','vmvnlo.u64','vmvnmi.u64','vmvnpl.u64','vmvnvs.u64','vmvnvc.u64','vmvnhi.u64','vmvnls.u64','vmvnge.u64','vmvnlt.u64','vmvngt.u64','vmvnle.u64',
2391
+ 'vmvneq.i8','vmvnne.i8','vmvncs.i8','vmvnhs.i8','vmvncc.i8','vmvnlo.i8','vmvnmi.i8','vmvnpl.i8','vmvnvs.i8','vmvnvc.i8','vmvnhi.i8','vmvnls.i8','vmvnge.i8','vmvnlt.i8','vmvngt.i8','vmvnle.i8',
2392
+ 'vmvneq.i16','vmvnne.i16','vmvncs.i16','vmvnhs.i16','vmvncc.i16','vmvnlo.i16','vmvnmi.i16','vmvnpl.i16','vmvnvs.i16','vmvnvc.i16','vmvnhi.i16','vmvnls.i16','vmvnge.i16','vmvnlt.i16','vmvngt.i16','vmvnle.i16',
2393
+ 'vmvneq.i32','vmvnne.i32','vmvncs.i32','vmvnhs.i32','vmvncc.i32','vmvnlo.i32','vmvnmi.i32','vmvnpl.i32','vmvnvs.i32','vmvnvc.i32','vmvnhi.i32','vmvnls.i32','vmvnge.i32','vmvnlt.i32','vmvngt.i32','vmvnle.i32',
2394
+ 'vmvneq.i64','vmvnne.i64','vmvncs.i64','vmvnhs.i64','vmvncc.i64','vmvnlo.i64','vmvnmi.i64','vmvnpl.i64','vmvnvs.i64','vmvnvc.i64','vmvnhi.i64','vmvnls.i64','vmvnge.i64','vmvnlt.i64','vmvngt.i64','vmvnle.i64',
2395
+ 'vmvneq.f32','vmvnne.f32','vmvncs.f32','vmvnhs.f32','vmvncc.f32','vmvnlo.f32','vmvnmi.f32','vmvnpl.f32','vmvnvs.f32','vmvnvc.f32','vmvnhi.f32','vmvnls.f32','vmvnge.f32','vmvnlt.f32','vmvngt.f32','vmvnle.f32',
2396
+ 'vmvneq.f64','vmvnne.f64','vmvncs.f64','vmvnhs.f64','vmvncc.f64','vmvnlo.f64','vmvnmi.f64','vmvnpl.f64','vmvnvs.f64','vmvnvc.f64','vmvnhi.f64','vmvnls.f64','vmvnge.f64','vmvnlt.f64','vmvngt.f64','vmvnle.f64',
2397
+
2398
+ 'vorneq','vornne','vorncs','vornhs','vorncc','vornlo','vornmi','vornpl','vornvs','vornvc','vornhi','vornls','vornge','vornlt','vorngt','vornle',
2399
+ 'vorneq.s8','vornne.s8','vorncs.s8','vornhs.s8','vorncc.s8','vornlo.s8','vornmi.s8','vornpl.s8','vornvs.s8','vornvc.s8','vornhi.s8','vornls.s8','vornge.s8','vornlt.s8','vorngt.s8','vornle.s8',
2400
+ 'vorneq.s16','vornne.s16','vorncs.s16','vornhs.s16','vorncc.s16','vornlo.s16','vornmi.s16','vornpl.s16','vornvs.s16','vornvc.s16','vornhi.s16','vornls.s16','vornge.s16','vornlt.s16','vorngt.s16','vornle.s16',
2401
+ 'vorneq.s32','vornne.s32','vorncs.s32','vornhs.s32','vorncc.s32','vornlo.s32','vornmi.s32','vornpl.s32','vornvs.s32','vornvc.s32','vornhi.s32','vornls.s32','vornge.s32','vornlt.s32','vorngt.s32','vornle.s32',
2402
+ 'vorneq.s64','vornne.s64','vorncs.s64','vornhs.s64','vorncc.s64','vornlo.s64','vornmi.s64','vornpl.s64','vornvs.s64','vornvc.s64','vornhi.s64','vornls.s64','vornge.s64','vornlt.s64','vorngt.s64','vornle.s64',
2403
+ 'vorneq.u8','vornne.u8','vorncs.u8','vornhs.u8','vorncc.u8','vornlo.u8','vornmi.u8','vornpl.u8','vornvs.u8','vornvc.u8','vornhi.u8','vornls.u8','vornge.u8','vornlt.u8','vorngt.u8','vornle.u8',
2404
+ 'vorneq.u16','vornne.u16','vorncs.u16','vornhs.u16','vorncc.u16','vornlo.u16','vornmi.u16','vornpl.u16','vornvs.u16','vornvc.u16','vornhi.u16','vornls.u16','vornge.u16','vornlt.u16','vorngt.u16','vornle.u16',
2405
+ 'vorneq.u32','vornne.u32','vorncs.u32','vornhs.u32','vorncc.u32','vornlo.u32','vornmi.u32','vornpl.u32','vornvs.u32','vornvc.u32','vornhi.u32','vornls.u32','vornge.u32','vornlt.u32','vorngt.u32','vornle.u32',
2406
+ 'vorneq.u64','vornne.u64','vorncs.u64','vornhs.u64','vorncc.u64','vornlo.u64','vornmi.u64','vornpl.u64','vornvs.u64','vornvc.u64','vornhi.u64','vornls.u64','vornge.u64','vornlt.u64','vorngt.u64','vornle.u64',
2407
+ 'vorneq.i8','vornne.i8','vorncs.i8','vornhs.i8','vorncc.i8','vornlo.i8','vornmi.i8','vornpl.i8','vornvs.i8','vornvc.i8','vornhi.i8','vornls.i8','vornge.i8','vornlt.i8','vorngt.i8','vornle.i8',
2408
+ 'vorneq.i16','vornne.i16','vorncs.i16','vornhs.i16','vorncc.i16','vornlo.i16','vornmi.i16','vornpl.i16','vornvs.i16','vornvc.i16','vornhi.i16','vornls.i16','vornge.i16','vornlt.i16','vorngt.i16','vornle.i16',
2409
+ 'vorneq.i32','vornne.i32','vorncs.i32','vornhs.i32','vorncc.i32','vornlo.i32','vornmi.i32','vornpl.i32','vornvs.i32','vornvc.i32','vornhi.i32','vornls.i32','vornge.i32','vornlt.i32','vorngt.i32','vornle.i32',
2410
+ 'vorneq.i64','vornne.i64','vorncs.i64','vornhs.i64','vorncc.i64','vornlo.i64','vornmi.i64','vornpl.i64','vornvs.i64','vornvc.i64','vornhi.i64','vornls.i64','vornge.i64','vornlt.i64','vorngt.i64','vornle.i64',
2411
+ 'vorneq.f32','vornne.f32','vorncs.f32','vornhs.f32','vorncc.f32','vornlo.f32','vornmi.f32','vornpl.f32','vornvs.f32','vornvc.f32','vornhi.f32','vornls.f32','vornge.f32','vornlt.f32','vorngt.f32','vornle.f32',
2412
+ 'vorneq.f64','vornne.f64','vorncs.f64','vornhs.f64','vorncc.f64','vornlo.f64','vornmi.f64','vornpl.f64','vornvs.f64','vornvc.f64','vornhi.f64','vornls.f64','vornge.f64','vornlt.f64','vorngt.f64','vornle.f64',
2413
+
2414
+ 'vorreq','vorrne','vorrcs','vorrhs','vorrcc','vorrlo','vorrmi','vorrpl','vorrvs','vorrvc','vorrhi','vorrls','vorrge','vorrlt','vorrgt','vorrle',
2415
+ 'vorreq.s8','vorrne.s8','vorrcs.s8','vorrhs.s8','vorrcc.s8','vorrlo.s8','vorrmi.s8','vorrpl.s8','vorrvs.s8','vorrvc.s8','vorrhi.s8','vorrls.s8','vorrge.s8','vorrlt.s8','vorrgt.s8','vorrle.s8',
2416
+ 'vorreq.s16','vorrne.s16','vorrcs.s16','vorrhs.s16','vorrcc.s16','vorrlo.s16','vorrmi.s16','vorrpl.s16','vorrvs.s16','vorrvc.s16','vorrhi.s16','vorrls.s16','vorrge.s16','vorrlt.s16','vorrgt.s16','vorrle.s16',
2417
+ 'vorreq.s32','vorrne.s32','vorrcs.s32','vorrhs.s32','vorrcc.s32','vorrlo.s32','vorrmi.s32','vorrpl.s32','vorrvs.s32','vorrvc.s32','vorrhi.s32','vorrls.s32','vorrge.s32','vorrlt.s32','vorrgt.s32','vorrle.s32',
2418
+ 'vorreq.s64','vorrne.s64','vorrcs.s64','vorrhs.s64','vorrcc.s64','vorrlo.s64','vorrmi.s64','vorrpl.s64','vorrvs.s64','vorrvc.s64','vorrhi.s64','vorrls.s64','vorrge.s64','vorrlt.s64','vorrgt.s64','vorrle.s64',
2419
+ 'vorreq.u8','vorrne.u8','vorrcs.u8','vorrhs.u8','vorrcc.u8','vorrlo.u8','vorrmi.u8','vorrpl.u8','vorrvs.u8','vorrvc.u8','vorrhi.u8','vorrls.u8','vorrge.u8','vorrlt.u8','vorrgt.u8','vorrle.u8',
2420
+ 'vorreq.u16','vorrne.u16','vorrcs.u16','vorrhs.u16','vorrcc.u16','vorrlo.u16','vorrmi.u16','vorrpl.u16','vorrvs.u16','vorrvc.u16','vorrhi.u16','vorrls.u16','vorrge.u16','vorrlt.u16','vorrgt.u16','vorrle.u16',
2421
+ 'vorreq.u32','vorrne.u32','vorrcs.u32','vorrhs.u32','vorrcc.u32','vorrlo.u32','vorrmi.u32','vorrpl.u32','vorrvs.u32','vorrvc.u32','vorrhi.u32','vorrls.u32','vorrge.u32','vorrlt.u32','vorrgt.u32','vorrle.u32',
2422
+ 'vorreq.u64','vorrne.u64','vorrcs.u64','vorrhs.u64','vorrcc.u64','vorrlo.u64','vorrmi.u64','vorrpl.u64','vorrvs.u64','vorrvc.u64','vorrhi.u64','vorrls.u64','vorrge.u64','vorrlt.u64','vorrgt.u64','vorrle.u64',
2423
+ 'vorreq.i8','vorrne.i8','vorrcs.i8','vorrhs.i8','vorrcc.i8','vorrlo.i8','vorrmi.i8','vorrpl.i8','vorrvs.i8','vorrvc.i8','vorrhi.i8','vorrls.i8','vorrge.i8','vorrlt.i8','vorrgt.i8','vorrle.i8',
2424
+ 'vorreq.i16','vorrne.i16','vorrcs.i16','vorrhs.i16','vorrcc.i16','vorrlo.i16','vorrmi.i16','vorrpl.i16','vorrvs.i16','vorrvc.i16','vorrhi.i16','vorrls.i16','vorrge.i16','vorrlt.i16','vorrgt.i16','vorrle.i16',
2425
+ 'vorreq.i32','vorrne.i32','vorrcs.i32','vorrhs.i32','vorrcc.i32','vorrlo.i32','vorrmi.i32','vorrpl.i32','vorrvs.i32','vorrvc.i32','vorrhi.i32','vorrls.i32','vorrge.i32','vorrlt.i32','vorrgt.i32','vorrle.i32',
2426
+ 'vorreq.i64','vorrne.i64','vorrcs.i64','vorrhs.i64','vorrcc.i64','vorrlo.i64','vorrmi.i64','vorrpl.i64','vorrvs.i64','vorrvc.i64','vorrhi.i64','vorrls.i64','vorrge.i64','vorrlt.i64','vorrgt.i64','vorrle.i64',
2427
+ 'vorreq.f32','vorrne.f32','vorrcs.f32','vorrhs.f32','vorrcc.f32','vorrlo.f32','vorrmi.f32','vorrpl.f32','vorrvs.f32','vorrvc.f32','vorrhi.f32','vorrls.f32','vorrge.f32','vorrlt.f32','vorrgt.f32','vorrle.f32',
2428
+ 'vorreq.f64','vorrne.f64','vorrcs.f64','vorrhs.f64','vorrcc.f64','vorrlo.f64','vorrmi.f64','vorrpl.f64','vorrvs.f64','vorrvc.f64','vorrhi.f64','vorrls.f64','vorrge.f64','vorrlt.f64','vorrgt.f64','vorrle.f64',
2429
+
2430
+ 'vswpeq','vswpne','vswpcs','vswphs','vswpcc','vswplo','vswpmi','vswppl','vswpvs','vswpvc','vswphi','vswpls','vswpge','vswplt','vswpgt','vswple',
2431
+ 'vswpeq.s8','vswpne.s8','vswpcs.s8','vswphs.s8','vswpcc.s8','vswplo.s8','vswpmi.s8','vswppl.s8','vswpvs.s8','vswpvc.s8','vswphi.s8','vswpls.s8','vswpge.s8','vswplt.s8','vswpgt.s8','vswple.s8',
2432
+ 'vswpeq.s16','vswpne.s16','vswpcs.s16','vswphs.s16','vswpcc.s16','vswplo.s16','vswpmi.s16','vswppl.s16','vswpvs.s16','vswpvc.s16','vswphi.s16','vswpls.s16','vswpge.s16','vswplt.s16','vswpgt.s16','vswple.s16',
2433
+ 'vswpeq.s32','vswpne.s32','vswpcs.s32','vswphs.s32','vswpcc.s32','vswplo.s32','vswpmi.s32','vswppl.s32','vswpvs.s32','vswpvc.s32','vswphi.s32','vswpls.s32','vswpge.s32','vswplt.s32','vswpgt.s32','vswple.s32',
2434
+ 'vswpeq.s64','vswpne.s64','vswpcs.s64','vswphs.s64','vswpcc.s64','vswplo.s64','vswpmi.s64','vswppl.s64','vswpvs.s64','vswpvc.s64','vswphi.s64','vswpls.s64','vswpge.s64','vswplt.s64','vswpgt.s64','vswple.s64',
2435
+ 'vswpeq.u8','vswpne.u8','vswpcs.u8','vswphs.u8','vswpcc.u8','vswplo.u8','vswpmi.u8','vswppl.u8','vswpvs.u8','vswpvc.u8','vswphi.u8','vswpls.u8','vswpge.u8','vswplt.u8','vswpgt.u8','vswple.u8',
2436
+ 'vswpeq.u16','vswpne.u16','vswpcs.u16','vswphs.u16','vswpcc.u16','vswplo.u16','vswpmi.u16','vswppl.u16','vswpvs.u16','vswpvc.u16','vswphi.u16','vswpls.u16','vswpge.u16','vswplt.u16','vswpgt.u16','vswple.u16',
2437
+ 'vswpeq.u32','vswpne.u32','vswpcs.u32','vswphs.u32','vswpcc.u32','vswplo.u32','vswpmi.u32','vswppl.u32','vswpvs.u32','vswpvc.u32','vswphi.u32','vswpls.u32','vswpge.u32','vswplt.u32','vswpgt.u32','vswple.u32',
2438
+ 'vswpeq.u64','vswpne.u64','vswpcs.u64','vswphs.u64','vswpcc.u64','vswplo.u64','vswpmi.u64','vswppl.u64','vswpvs.u64','vswpvc.u64','vswphi.u64','vswpls.u64','vswpge.u64','vswplt.u64','vswpgt.u64','vswple.u64',
2439
+ 'vswpeq.i8','vswpne.i8','vswpcs.i8','vswphs.i8','vswpcc.i8','vswplo.i8','vswpmi.i8','vswppl.i8','vswpvs.i8','vswpvc.i8','vswphi.i8','vswpls.i8','vswpge.i8','vswplt.i8','vswpgt.i8','vswple.i8',
2440
+ 'vswpeq.i16','vswpne.i16','vswpcs.i16','vswphs.i16','vswpcc.i16','vswplo.i16','vswpmi.i16','vswppl.i16','vswpvs.i16','vswpvc.i16','vswphi.i16','vswpls.i16','vswpge.i16','vswplt.i16','vswpgt.i16','vswple.i16',
2441
+ 'vswpeq.i32','vswpne.i32','vswpcs.i32','vswphs.i32','vswpcc.i32','vswplo.i32','vswpmi.i32','vswppl.i32','vswpvs.i32','vswpvc.i32','vswphi.i32','vswpls.i32','vswpge.i32','vswplt.i32','vswpgt.i32','vswple.i32',
2442
+ 'vswpeq.i64','vswpne.i64','vswpcs.i64','vswphs.i64','vswpcc.i64','vswplo.i64','vswpmi.i64','vswppl.i64','vswpvs.i64','vswpvc.i64','vswphi.i64','vswpls.i64','vswpge.i64','vswplt.i64','vswpgt.i64','vswple.i64',
2443
+ 'vswpeq.f32','vswpne.f32','vswpcs.f32','vswphs.f32','vswpcc.f32','vswplo.f32','vswpmi.f32','vswppl.f32','vswpvs.f32','vswpvc.f32','vswphi.f32','vswpls.f32','vswpge.f32','vswplt.f32','vswpgt.f32','vswple.f32',
2444
+ 'vswpeq.f64','vswpne.f64','vswpcs.f64','vswphs.f64','vswpcc.f64','vswplo.f64','vswpmi.f64','vswppl.f64','vswpvs.f64','vswpvc.f64','vswphi.f64','vswpls.f64','vswpge.f64','vswplt.f64','vswpgt.f64','vswple.f64'
2445
+ ),
2446
+ /* Conditional NEON SIMD ARM Registers Interop Instructions */
2447
+ 29 => array(
2448
+ 'vmrseq','vmrsne','vmrscs','vmrshs','vmrscc','vmrslo','vmrsmi','vmrspl','vmrsvs','vmrsvc','vmrshi','vmrsls','vmrsge','vmrslt','vmrsgt','vmrsle',
2449
+ 'vmsreq','vmsrne','vmsrcs','vmsrhs','vmsrcc','vmsrlo','vmsrmi','vmsrpl','vmsrvs','vmsrvc','vmsrhi','vmsrls','vmsrge','vmsrlt','vmsrgt','vmsrle'
2450
+ ),
2451
+ /* Conditional NEON SIMD Bit/Byte-Level Instructions */
2452
+ 30 => array(
2453
+ 'vcnteq.8','vcntne.8','vcntcs.8','vcnths.8','vcntcc.8','vcntlo.8','vcntmi.8','vcntpl.8','vcntvs.8','vcntvc.8','vcnthi.8','vcntls.8','vcntge.8','vcntlt.8','vcntgt.8','vcntle.8',
2454
+ 'vdupeq.8','vdupne.8','vdupcs.8','vduphs.8','vdupcc.8','vduplo.8','vdupmi.8','vduppl.8','vdupvs.8','vdupvc.8','vduphi.8','vdupls.8','vdupge.8','vduplt.8','vdupgt.8','vduple.8',
2455
+
2456
+ 'vdupeq.16','vdupne.16','vdupcs.16','vduphs.16','vdupcc.16','vduplo.16','vdupmi.16','vduppl.16','vdupvs.16','vdupvc.16','vduphi.16','vdupls.16','vdupge.16','vduplt.16','vdupgt.16','vduple.16',
2457
+ 'vdupeq.32','vdupne.32','vdupcs.32','vduphs.32','vdupcc.32','vduplo.32','vdupmi.32','vduppl.32','vdupvs.32','vdupvc.32','vduphi.32','vdupls.32','vdupge.32','vduplt.32','vdupgt.32','vduple.32',
2458
+
2459
+ 'vexteq.8','vextne.8','vextcs.8','vexths.8','vextcc.8','vextlo.8','vextmi.8','vextpl.8','vextvs.8','vextvc.8','vexthi.8','vextls.8','vextge.8','vextlt.8','vextgt.8','vextle.8',
2460
+ 'vexteq.16','vextne.16','vextcs.16','vexths.16','vextcc.16','vextlo.16','vextmi.16','vextpl.16','vextvs.16','vextvc.16','vexthi.16','vextls.16','vextge.16','vextlt.16','vextgt.16','vextle.16',
2461
+
2462
+ 'vexteq.32','vextne.32','vextcs.32','vexths.32','vextcc.32','vextlo.32','vextmi.32','vextpl.32','vextvs.32','vextvc.32','vexthi.32','vextls.32','vextge.32','vextlt.32','vextgt.32','vextle.32',
2463
+ 'vexteq.64','vextne.64','vextcs.64','vexths.64','vextcc.64','vextlo.64','vextmi.64','vextpl.64','vextvs.64','vextvc.64','vexthi.64','vextls.64','vextge.64','vextlt.64','vextgt.64','vextle.64',
2464
+
2465
+ 'vrev16eq.8','vrev16ne.8','vrev16cs.8','vrev16hs.8','vrev16cc.8','vrev16lo.8','vrev16mi.8','vrev16pl.8','vrev16vs.8','vrev16vc.8','vrev16hi.8','vrev16ls.8','vrev16ge.8','vrev16lt.8','vrev16gt.8','vrev16le.8',
2466
+ 'vrev32eq.8','vrev32ne.8','vrev32cs.8','vrev32hs.8','vrev32cc.8','vrev32lo.8','vrev32mi.8','vrev32pl.8','vrev32vs.8','vrev32vc.8','vrev32hi.8','vrev32ls.8','vrev32ge.8','vrev32lt.8','vrev32gt.8','vrev32le.8',
2467
+ 'vrev32eq.16','vrev32ne.16','vrev32cs.16','vrev32hs.16','vrev32cc.16','vrev32lo.16','vrev32mi.16','vrev32pl.16','vrev32vs.16','vrev32vc.16','vrev32hi.16','vrev32ls.16','vrev32ge.16','vrev32lt.16','vrev32gt.16','vrev32le.16',
2468
+ 'vrev64eq.8','vrev64ne.8','vrev64cs.8','vrev64hs.8','vrev64cc.8','vrev64lo.8','vrev64mi.8','vrev64pl.8','vrev64vs.8','vrev64vc.8','vrev64hi.8','vrev64ls.8','vrev64ge.8','vrev64lt.8','vrev64gt.8','vrev64le.8',
2469
+ 'vrev64eq.16','vrev64ne.16','vrev64cs.16','vrev64hs.16','vrev64cc.16','vrev64lo.16','vrev64mi.16','vrev64pl.16','vrev64vs.16','vrev64vc.16','vrev64hi.16','vrev64ls.16','vrev64ge.16','vrev64lt.16','vrev64gt.16','vrev64le.16',
2470
+ 'vrev64eq.32','vrev64ne.32','vrev64cs.32','vrev64hs.32','vrev64cc.32','vrev64lo.32','vrev64mi.32','vrev64pl.32','vrev64vs.32','vrev64vc.32','vrev64hi.32','vrev64ls.32','vrev64ge.32','vrev64lt.32','vrev64gt.32','vrev64le.32',
2471
+
2472
+ 'vslieq.8','vsline.8','vslics.8','vslihs.8','vslicc.8','vslilo.8','vslimi.8','vslipl.8','vslivs.8','vslivc.8','vslihi.8','vslils.8','vslige.8','vslilt.8','vsligt.8','vslile.8',
2473
+ 'vslieq.16','vsline.16','vslics.16','vslihs.16','vslicc.16','vslilo.16','vslimi.16','vslipl.16','vslivs.16','vslivc.16','vslihi.16','vslils.16','vslige.16','vslilt.16','vsligt.16','vslile.16',
2474
+ 'vslieq.32','vsline.32','vslics.32','vslihs.32','vslicc.32','vslilo.32','vslimi.32','vslipl.32','vslivs.32','vslivc.32','vslihi.32','vslils.32','vslige.32','vslilt.32','vsligt.32','vslile.32',
2475
+ 'vslieq.64','vsline.64','vslics.64','vslihs.64','vslicc.64','vslilo.64','vslimi.64','vslipl.64','vslivs.64','vslivc.64','vslihi.64','vslils.64','vslige.64','vslilt.64','vsligt.64','vslile.64',
2476
+
2477
+ 'vsrieq.8','vsrine.8','vsrics.8','vsrihs.8','vsricc.8','vsrilo.8','vsrimi.8','vsripl.8','vsrivs.8','vsrivc.8','vsrihi.8','vsrils.8','vsrige.8','vsrilt.8','vsrigt.8','vsrile.8',
2478
+ 'vsrieq.16','vsrine.16','vsrics.16','vsrihs.16','vsricc.16','vsrilo.16','vsrimi.16','vsripl.16','vsrivs.16','vsrivc.16','vsrihi.16','vsrils.16','vsrige.16','vsrilt.16','vsrigt.16','vsrile.16',
2479
+ 'vsrieq.32','vsrine.32','vsrics.32','vsrihs.32','vsricc.32','vsrilo.32','vsrimi.32','vsripl.32','vsrivs.32','vsrivc.32','vsrihi.32','vsrils.32','vsrige.32','vsrilt.32','vsrigt.32','vsrile.32',
2480
+ 'vsrieq.64','vsrine.64','vsrics.64','vsrihs.64','vsricc.64','vsrilo.64','vsrimi.64','vsripl.64','vsrivs.64','vsrivc.64','vsrihi.64','vsrils.64','vsrige.64','vsrilt.64','vsrigt.64','vsrile.64',
2481
+
2482
+ 'vtbleq.8','vtblne.8','vtblcs.8','vtblhs.8','vtblcc.8','vtbllo.8','vtblmi.8','vtblpl.8','vtblvs.8','vtblvc.8','vtblhi.8','vtblls.8','vtblge.8','vtbllt.8','vtblgt.8','vtblle.8',
2483
+
2484
+ 'vtbxeq','vtbxne','vtbxcs','vtbxhs','vtbxcc','vtbxlo','vtbxmi','vtbxpl','vtbxvs','vtbxvc','vtbxhi','vtbxls','vtbxge','vtbxlt','vtbxgt','vtbxle',
2485
+
2486
+ 'vtrneq.8','vtrnne.8','vtrncs.8','vtrnhs.8','vtrncc.8','vtrnlo.8','vtrnmi.8','vtrnpl.8','vtrnvs.8','vtrnvc.8','vtrnhi.8','vtrnls.8','vtrnge.8','vtrnlt.8','vtrngt.8','vtrnle.8',
2487
+ 'vtrneq.16','vtrnne.16','vtrncs.16','vtrnhs.16','vtrncc.16','vtrnlo.16','vtrnmi.16','vtrnpl.16','vtrnvs.16','vtrnvc.16','vtrnhi.16','vtrnls.16','vtrnge.16','vtrnlt.16','vtrngt.16','vtrnle.16',
2488
+ 'vtrneq.32','vtrnne.32','vtrncs.32','vtrnhs.32','vtrncc.32','vtrnlo.32','vtrnmi.32','vtrnpl.32','vtrnvs.32','vtrnvc.32','vtrnhi.32','vtrnls.32','vtrnge.32','vtrnlt.32','vtrngt.32','vtrnle.32',
2489
+
2490
+ 'vtsteq.8','vtstne.8','vtstcs.8','vtsths.8','vtstcc.8','vtstlo.8','vtstmi.8','vtstpl.8','vtstvs.8','vtstvc.8','vtsthi.8','vtstls.8','vtstge.8','vtstlt.8','vtstgt.8','vtstle.8',
2491
+ 'vtsteq.16','vtstne.16','vtstcs.16','vtsths.16','vtstcc.16','vtstlo.16','vtstmi.16','vtstpl.16','vtstvs.16','vtstvc.16','vtsthi.16','vtstls.16','vtstge.16','vtstlt.16','vtstgt.16','vtstle.16',
2492
+ 'vtsteq.32','vtstne.32','vtstcs.32','vtsths.32','vtstcc.32','vtstlo.32','vtstmi.32','vtstpl.32','vtstvs.32','vtstvc.32','vtsthi.32','vtstls.32','vtstge.32','vtstlt.32','vtstgt.32','vtstle.32',
2493
+
2494
+ 'vuzpeq.8','vuzpne.8','vuzpcs.8','vuzphs.8','vuzpcc.8','vuzplo.8','vuzpmi.8','vuzppl.8','vuzpvs.8','vuzpvc.8','vuzphi.8','vuzpls.8','vuzpge.8','vuzplt.8','vuzpgt.8','vuzple.8',
2495
+ 'vuzpeq.16','vuzpne.16','vuzpcs.16','vuzphs.16','vuzpcc.16','vuzplo.16','vuzpmi.16','vuzppl.16','vuzpvs.16','vuzpvc.16','vuzphi.16','vuzpls.16','vuzpge.16','vuzplt.16','vuzpgt.16','vuzple.16',
2496
+ 'vuzpeq.32','vuzpne.32','vuzpcs.32','vuzphs.32','vuzpcc.32','vuzplo.32','vuzpmi.32','vuzppl.32','vuzpvs.32','vuzpvc.32','vuzphi.32','vuzpls.32','vuzpge.32','vuzplt.32','vuzpgt.32','vuzple.32',
2497
+
2498
+ 'vzipeq.8','vzipne.8','vzipcs.8','vziphs.8','vzipcc.8','vziplo.8','vzipmi.8','vzippl.8','vzipvs.8','vzipvc.8','vziphi.8','vzipls.8','vzipge.8','vziplt.8','vzipgt.8','vziple.8',
2499
+ 'vzipeq.16','vzipne.16','vzipcs.16','vziphs.16','vzipcc.16','vziplo.16','vzipmi.16','vzippl.16','vzipvs.16','vzipvc.16','vziphi.16','vzipls.16','vzipge.16','vziplt.16','vzipgt.16','vziple.16',
2500
+ 'vzipeq.32','vzipne.32','vzipcs.32','vziphs.32','vzipcc.32','vziplo.32','vzipmi.32','vzippl.32','vzipvs.32','vzipvc.32','vziphi.32','vzipls.32','vzipge.32','vziplt.32','vzipgt.32','vziple.32',
2501
+
2502
+ 'vmulleq.p8','vmullne.p8','vmullcs.p8','vmullhs.p8','vmullcc.p8','vmulllo.p8','vmullmi.p8','vmullpl.p8','vmullvs.p8','vmullvc.p8','vmullhi.p8','vmullls.p8','vmullge.p8','vmulllt.p8','vmullgt.p8','vmullle.p8'
2503
+ ),
2504
+ /* Conditional NEON SIMD Universal Integer Instructions */
2505
+ 31 => array(
2506
+ 'vaddeq.i8','vaddne.i8','vaddcs.i8','vaddhs.i8','vaddcc.i8','vaddlo.i8','vaddmi.i8','vaddpl.i8','vaddvs.i8','vaddvc.i8','vaddhi.i8','vaddls.i8','vaddge.i8','vaddlt.i8','vaddgt.i8','vaddle.i8',
2507
+ 'vaddeq.i16','vaddne.i16','vaddcs.i16','vaddhs.i16','vaddcc.i16','vaddlo.i16','vaddmi.i16','vaddpl.i16','vaddvs.i16','vaddvc.i16','vaddhi.i16','vaddls.i16','vaddge.i16','vaddlt.i16','vaddgt.i16','vaddle.i16',
2508
+ 'vaddeq.i32','vaddne.i32','vaddcs.i32','vaddhs.i32','vaddcc.i32','vaddlo.i32','vaddmi.i32','vaddpl.i32','vaddvs.i32','vaddvc.i32','vaddhi.i32','vaddls.i32','vaddge.i32','vaddlt.i32','vaddgt.i32','vaddle.i32',
2509
+ 'vaddeq.i64','vaddne.i64','vaddcs.i64','vaddhs.i64','vaddcc.i64','vaddlo.i64','vaddmi.i64','vaddpl.i64','vaddvs.i64','vaddvc.i64','vaddhi.i64','vaddls.i64','vaddge.i64','vaddlt.i64','vaddgt.i64','vaddle.i64',
2510
+
2511
+ 'vsubeq.i8','vsubne.i8','vsubcs.i8','vsubhs.i8','vsubcc.i8','vsublo.i8','vsubmi.i8','vsubpl.i8','vsubvs.i8','vsubvc.i8','vsubhi.i8','vsubls.i8','vsubge.i8','vsublt.i8','vsubgt.i8','vsuble.i8',
2512
+ 'vsubeq.i16','vsubne.i16','vsubcs.i16','vsubhs.i16','vsubcc.i16','vsublo.i16','vsubmi.i16','vsubpl.i16','vsubvs.i16','vsubvc.i16','vsubhi.i16','vsubls.i16','vsubge.i16','vsublt.i16','vsubgt.i16','vsuble.i16',
2513
+ 'vsubeq.i32','vsubne.i32','vsubcs.i32','vsubhs.i32','vsubcc.i32','vsublo.i32','vsubmi.i32','vsubpl.i32','vsubvs.i32','vsubvc.i32','vsubhi.i32','vsubls.i32','vsubge.i32','vsublt.i32','vsubgt.i32','vsuble.i32',
2514
+ 'vsubeq.i64','vsubne.i64','vsubcs.i64','vsubhs.i64','vsubcc.i64','vsublo.i64','vsubmi.i64','vsubpl.i64','vsubvs.i64','vsubvc.i64','vsubhi.i64','vsubls.i64','vsubge.i64','vsublt.i64','vsubgt.i64','vsuble.i64',
2515
+
2516
+ 'vaddhneq.i16','vaddhnne.i16','vaddhncs.i16','vaddhnhs.i16','vaddhncc.i16','vaddhnlo.i16','vaddhnmi.i16','vaddhnpl.i16','vaddhnvs.i16','vaddhnvc.i16','vaddhnhi.i16','vaddhnls.i16','vaddhnge.i16','vaddhnlt.i16','vaddhngt.i16','vaddhnle.i16',
2517
+ 'vaddhneq.i32','vaddhnne.i32','vaddhncs.i32','vaddhnhs.i32','vaddhncc.i32','vaddhnlo.i32','vaddhnmi.i32','vaddhnpl.i32','vaddhnvs.i32','vaddhnvc.i32','vaddhnhi.i32','vaddhnls.i32','vaddhnge.i32','vaddhnlt.i32','vaddhngt.i32','vaddhnle.i32',
2518
+ 'vaddhneq.i64','vaddhnne.i64','vaddhncs.i64','vaddhnhs.i64','vaddhncc.i64','vaddhnlo.i64','vaddhnmi.i64','vaddhnpl.i64','vaddhnvs.i64','vaddhnvc.i64','vaddhnhi.i64','vaddhnls.i64','vaddhnge.i64','vaddhnlt.i64','vaddhngt.i64','vaddhnle.i64',
2519
+
2520
+ 'vsubhneq.i16','vsubhnne.i16','vsubhncs.i16','vsubhnhs.i16','vsubhncc.i16','vsubhnlo.i16','vsubhnmi.i16','vsubhnpl.i16','vsubhnvs.i16','vsubhnvc.i16','vsubhnhi.i16','vsubhnls.i16','vsubhnge.i16','vsubhnlt.i16','vsubhngt.i16','vsubhnle.i16',
2521
+ 'vsubhneq.i32','vsubhnne.i32','vsubhncs.i32','vsubhnhs.i32','vsubhncc.i32','vsubhnlo.i32','vsubhnmi.i32','vsubhnpl.i32','vsubhnvs.i32','vsubhnvc.i32','vsubhnhi.i32','vsubhnls.i32','vsubhnge.i32','vsubhnlt.i32','vsubhngt.i32','vsubhnle.i32',
2522
+ 'vsubhneq.i64','vsubhnne.i64','vsubhncs.i64','vsubhnhs.i64','vsubhncc.i64','vsubhnlo.i64','vsubhnmi.i64','vsubhnpl.i64','vsubhnvs.i64','vsubhnvc.i64','vsubhnhi.i64','vsubhnls.i64','vsubhnge.i64','vsubhnlt.i64','vsubhngt.i64','vsubhnle.i64',
2523
+
2524
+ 'vraddhneq.i16','vraddhnne.i16','vraddhncs.i16','vraddhnhs.i16','vraddhncc.i16','vraddhnlo.i16','vraddhnmi.i16','vraddhnpl.i16','vraddhnvs.i16','vraddhnvc.i16','vraddhnhi.i16','vraddhnls.i16','vraddhnge.i16','vraddhnlt.i16','vraddhngt.i16','vraddhnle.i16',
2525
+ 'vraddhneq.i32','vraddhnne.i32','vraddhncs.i32','vraddhnhs.i32','vraddhncc.i32','vraddhnlo.i32','vraddhnmi.i32','vraddhnpl.i32','vraddhnvs.i32','vraddhnvc.i32','vraddhnhi.i32','vraddhnls.i32','vraddhnge.i32','vraddhnlt.i32','vraddhngt.i32','vraddhnle.i32',
2526
+ 'vraddhneq.i64','vraddhnne.i64','vraddhncs.i64','vraddhnhs.i64','vraddhncc.i64','vraddhnlo.i64','vraddhnmi.i64','vraddhnpl.i64','vraddhnvs.i64','vraddhnvc.i64','vraddhnhi.i64','vraddhnls.i64','vraddhnge.i64','vraddhnlt.i64','vraddhngt.i64','vraddhnle.i64',
2527
+
2528
+ 'vrsubhneq.i16','vrsubhnne.i16','vrsubhncs.i16','vrsubhnhs.i16','vrsubhncc.i16','vrsubhnlo.i16','vrsubhnmi.i16','vrsubhnpl.i16','vrsubhnvs.i16','vrsubhnvc.i16','vrsubhnhi.i16','vrsubhnls.i16','vrsubhnge.i16','vrsubhnlt.i16','vrsubhngt.i16','vrsubhnle.i16',
2529
+ 'vrsubhneq.i32','vrsubhnne.i32','vrsubhncs.i32','vrsubhnhs.i32','vrsubhncc.i32','vrsubhnlo.i32','vrsubhnmi.i32','vrsubhnpl.i32','vrsubhnvs.i32','vrsubhnvc.i32','vrsubhnhi.i32','vrsubhnls.i32','vrsubhnge.i32','vrsubhnlt.i32','vrsubhngt.i32','vrsubhnle.i32',
2530
+ 'vrsubhneq.i64','vrsubhnne.i64','vrsubhncs.i64','vrsubhnhs.i64','vrsubhncc.i64','vrsubhnlo.i64','vrsubhnmi.i64','vrsubhnpl.i64','vrsubhnvs.i64','vrsubhnvc.i64','vrsubhnhi.i64','vrsubhnls.i64','vrsubhnge.i64','vrsubhnlt.i64','vrsubhngt.i64','vrsubhnle.i64',
2531
+
2532
+ 'vpaddeq.i8','vpaddne.i8','vpaddcs.i8','vpaddhs.i8','vpaddcc.i8','vpaddlo.i8','vpaddmi.i8','vpaddpl.i8','vpaddvs.i8','vpaddvc.i8','vpaddhi.i8','vpaddls.i8','vpaddge.i8','vpaddlt.i8','vpaddgt.i8','vpaddle.i8',
2533
+ 'vpaddeq.i16','vpaddne.i16','vpaddcs.i16','vpaddhs.i16','vpaddcc.i16','vpaddlo.i16','vpaddmi.i16','vpaddpl.i16','vpaddvs.i16','vpaddvc.i16','vpaddhi.i16','vpaddls.i16','vpaddge.i16','vpaddlt.i16','vpaddgt.i16','vpaddle.i16',
2534
+ 'vpaddeq.i32','vpaddne.i32','vpaddcs.i32','vpaddhs.i32','vpaddcc.i32','vpaddlo.i32','vpaddmi.i32','vpaddpl.i32','vpaddvs.i32','vpaddvc.i32','vpaddhi.i32','vpaddls.i32','vpaddge.i32','vpaddlt.i32','vpaddgt.i32','vpaddle.i32',
2535
+
2536
+ 'vceqeq.i8','vceqne.i8','vceqcs.i8','vceqhs.i8','vceqcc.i8','vceqlo.i8','vceqmi.i8','vceqpl.i8','vceqvs.i8','vceqvc.i8','vceqhi.i8','vceqls.i8','vceqge.i8','vceqlt.i8','vceqgt.i8','vceqle.i8',
2537
+ 'vceqeq.i16','vceqne.i16','vceqcs.i16','vceqhs.i16','vceqcc.i16','vceqlo.i16','vceqmi.i16','vceqpl.i16','vceqvs.i16','vceqvc.i16','vceqhi.i16','vceqls.i16','vceqge.i16','vceqlt.i16','vceqgt.i16','vceqle.i16',
2538
+ 'vceqeq.i32','vceqne.i32','vceqcs.i32','vceqhs.i32','vceqcc.i32','vceqlo.i32','vceqmi.i32','vceqpl.i32','vceqvs.i32','vceqvc.i32','vceqhi.i32','vceqls.i32','vceqge.i32','vceqlt.i32','vceqgt.i32','vceqle.i32',
2539
+
2540
+ 'vclzeq.i8','vclzne.i8','vclzcs.i8','vclzhs.i8','vclzcc.i8','vclzlo.i8','vclzmi.i8','vclzpl.i8','vclzvs.i8','vclzvc.i8','vclzhi.i8','vclzls.i8','vclzge.i8','vclzlt.i8','vclzgt.i8','vclzle.i8',
2541
+ 'vclzeq.i16','vclzne.i16','vclzcs.i16','vclzhs.i16','vclzcc.i16','vclzlo.i16','vclzmi.i16','vclzpl.i16','vclzvs.i16','vclzvc.i16','vclzhi.i16','vclzls.i16','vclzge.i16','vclzlt.i16','vclzgt.i16','vclzle.i16',
2542
+ 'vclzeq.i32','vclzne.i32','vclzcs.i32','vclzhs.i32','vclzcc.i32','vclzlo.i32','vclzmi.i32','vclzpl.i32','vclzvs.i32','vclzvc.i32','vclzhi.i32','vclzls.i32','vclzge.i32','vclzlt.i32','vclzgt.i32','vclzle.i32',
2543
+
2544
+ 'vmovneq.i16','vmovnne.i16','vmovncs.i16','vmovnhs.i16','vmovncc.i16','vmovnlo.i16','vmovnmi.i16','vmovnpl.i16','vmovnvs.i16','vmovnvc.i16','vmovnhi.i16','vmovnls.i16','vmovnge.i16','vmovnlt.i16','vmovngt.i16','vmovnle.i16',
2545
+ 'vmovneq.i32','vmovnne.i32','vmovncs.i32','vmovnhs.i32','vmovncc.i32','vmovnlo.i32','vmovnmi.i32','vmovnpl.i32','vmovnvs.i32','vmovnvc.i32','vmovnhi.i32','vmovnls.i32','vmovnge.i32','vmovnlt.i32','vmovngt.i32','vmovnle.i32',
2546
+ 'vmovneq.i64','vmovnne.i64','vmovncs.i64','vmovnhs.i64','vmovncc.i64','vmovnlo.i64','vmovnmi.i64','vmovnpl.i64','vmovnvs.i64','vmovnvc.i64','vmovnhi.i64','vmovnls.i64','vmovnge.i64','vmovnlt.i64','vmovngt.i64','vmovnle.i64',
2547
+
2548
+ 'vmlaeq.s8','vmlane.s8','vmlacs.s8','vmlahs.s8','vmlacc.s8','vmlalo.s8','vmlami.s8','vmlapl.s8','vmlavs.s8','vmlavc.s8','vmlahi.s8','vmlals.s8','vmlage.s8','vmlalt.s8','vmlagt.s8','vmlale.s8',
2549
+ 'vmlaeq.s16','vmlane.s16','vmlacs.s16','vmlahs.s16','vmlacc.s16','vmlalo.s16','vmlami.s16','vmlapl.s16','vmlavs.s16','vmlavc.s16','vmlahi.s16','vmlals.s16','vmlage.s16','vmlalt.s16','vmlagt.s16','vmlale.s16',
2550
+ 'vmlaeq.s32','vmlane.s32','vmlacs.s32','vmlahs.s32','vmlacc.s32','vmlalo.s32','vmlami.s32','vmlapl.s32','vmlavs.s32','vmlavc.s32','vmlahi.s32','vmlals.s32','vmlage.s32','vmlalt.s32','vmlagt.s32','vmlale.s32',
2551
+ 'vmlaeq.u8','vmlane.u8','vmlacs.u8','vmlahs.u8','vmlacc.u8','vmlalo.u8','vmlami.u8','vmlapl.u8','vmlavs.u8','vmlavc.u8','vmlahi.u8','vmlals.u8','vmlage.u8','vmlalt.u8','vmlagt.u8','vmlale.u8',
2552
+ 'vmlaeq.u16','vmlane.u16','vmlacs.u16','vmlahs.u16','vmlacc.u16','vmlalo.u16','vmlami.u16','vmlapl.u16','vmlavs.u16','vmlavc.u16','vmlahi.u16','vmlals.u16','vmlage.u16','vmlalt.u16','vmlagt.u16','vmlale.u16',
2553
+ 'vmlaeq.u32','vmlane.u32','vmlacs.u32','vmlahs.u32','vmlacc.u32','vmlalo.u32','vmlami.u32','vmlapl.u32','vmlavs.u32','vmlavc.u32','vmlahi.u32','vmlals.u32','vmlage.u32','vmlalt.u32','vmlagt.u32','vmlale.u32',
2554
+ 'vmlaeq.i8','vmlane.i8','vmlacs.i8','vmlahs.i8','vmlacc.i8','vmlalo.i8','vmlami.i8','vmlapl.i8','vmlavs.i8','vmlavc.i8','vmlahi.i8','vmlals.i8','vmlage.i8','vmlalt.i8','vmlagt.i8','vmlale.i8',
2555
+ 'vmlaeq.i16','vmlane.i16','vmlacs.i16','vmlahs.i16','vmlacc.i16','vmlalo.i16','vmlami.i16','vmlapl.i16','vmlavs.i16','vmlavc.i16','vmlahi.i16','vmlals.i16','vmlage.i16','vmlalt.i16','vmlagt.i16','vmlale.i16',
2556
+ 'vmlaeq.i32','vmlane.i32','vmlacs.i32','vmlahs.i32','vmlacc.i32','vmlalo.i32','vmlami.i32','vmlapl.i32','vmlavs.i32','vmlavc.i32','vmlahi.i32','vmlals.i32','vmlage.i32','vmlalt.i32','vmlagt.i32','vmlale.i32',
2557
+
2558
+ 'vmlseq.s8','vmlsne.s8','vmlscs.s8','vmlshs.s8','vmlscc.s8','vmlslo.s8','vmlsmi.s8','vmlspl.s8','vmlsvs.s8','vmlsvc.s8','vmlshi.s8','vmlsls.s8','vmlsge.s8','vmlslt.s8','vmlsgt.s8','vmlsle.s8',
2559
+ 'vmlseq.s16','vmlsne.s16','vmlscs.s16','vmlshs.s16','vmlscc.s16','vmlslo.s16','vmlsmi.s16','vmlspl.s16','vmlsvs.s16','vmlsvc.s16','vmlshi.s16','vmlsls.s16','vmlsge.s16','vmlslt.s16','vmlsgt.s16','vmlsle.s16',
2560
+ 'vmlseq.s32','vmlsne.s32','vmlscs.s32','vmlshs.s32','vmlscc.s32','vmlslo.s32','vmlsmi.s32','vmlspl.s32','vmlsvs.s32','vmlsvc.s32','vmlshi.s32','vmlsls.s32','vmlsge.s32','vmlslt.s32','vmlsgt.s32','vmlsle.s32',
2561
+ 'vmlseq.u8','vmlsne.u8','vmlscs.u8','vmlshs.u8','vmlscc.u8','vmlslo.u8','vmlsmi.u8','vmlspl.u8','vmlsvs.u8','vmlsvc.u8','vmlshi.u8','vmlsls.u8','vmlsge.u8','vmlslt.u8','vmlsgt.u8','vmlsle.u8',
2562
+ 'vmlseq.u16','vmlsne.u16','vmlscs.u16','vmlshs.u16','vmlscc.u16','vmlslo.u16','vmlsmi.u16','vmlspl.u16','vmlsvs.u16','vmlsvc.u16','vmlshi.u16','vmlsls.u16','vmlsge.u16','vmlslt.u16','vmlsgt.u16','vmlsle.u16',
2563
+ 'vmlseq.u32','vmlsne.u32','vmlscs.u32','vmlshs.u32','vmlscc.u32','vmlslo.u32','vmlsmi.u32','vmlspl.u32','vmlsvs.u32','vmlsvc.u32','vmlshi.u32','vmlsls.u32','vmlsge.u32','vmlslt.u32','vmlsgt.u32','vmlsle.u32',
2564
+ 'vmlseq.i8','vmlsne.i8','vmlscs.i8','vmlshs.i8','vmlscc.i8','vmlslo.i8','vmlsmi.i8','vmlspl.i8','vmlsvs.i8','vmlsvc.i8','vmlshi.i8','vmlsls.i8','vmlsge.i8','vmlslt.i8','vmlsgt.i8','vmlsle.i8',
2565
+ 'vmlseq.i16','vmlsne.i16','vmlscs.i16','vmlshs.i16','vmlscc.i16','vmlslo.i16','vmlsmi.i16','vmlspl.i16','vmlsvs.i16','vmlsvc.i16','vmlshi.i16','vmlsls.i16','vmlsge.i16','vmlslt.i16','vmlsgt.i16','vmlsle.i16',
2566
+ 'vmlseq.i32','vmlsne.i32','vmlscs.i32','vmlshs.i32','vmlscc.i32','vmlslo.i32','vmlsmi.i32','vmlspl.i32','vmlsvs.i32','vmlsvc.i32','vmlshi.i32','vmlsls.i32','vmlsge.i32','vmlslt.i32','vmlsgt.i32','vmlsle.i32',
2567
+
2568
+ 'vmuleq.s8','vmulne.s8','vmulcs.s8','vmulhs.s8','vmulcc.s8','vmullo.s8','vmulmi.s8','vmulpl.s8','vmulvs.s8','vmulvc.s8','vmulhi.s8','vmulls.s8','vmulge.s8','vmullt.s8','vmulgt.s8','vmulle.s8',
2569
+ 'vmuleq.s16','vmulne.s16','vmulcs.s16','vmulhs.s16','vmulcc.s16','vmullo.s16','vmulmi.s16','vmulpl.s16','vmulvs.s16','vmulvc.s16','vmulhi.s16','vmulls.s16','vmulge.s16','vmullt.s16','vmulgt.s16','vmulle.s16',
2570
+ 'vmuleq.s32','vmulne.s32','vmulcs.s32','vmulhs.s32','vmulcc.s32','vmullo.s32','vmulmi.s32','vmulpl.s32','vmulvs.s32','vmulvc.s32','vmulhi.s32','vmulls.s32','vmulge.s32','vmullt.s32','vmulgt.s32','vmulle.s32',
2571
+ 'vmuleq.u8','vmulne.u8','vmulcs.u8','vmulhs.u8','vmulcc.u8','vmullo.u8','vmulmi.u8','vmulpl.u8','vmulvs.u8','vmulvc.u8','vmulhi.u8','vmulls.u8','vmulge.u8','vmullt.u8','vmulgt.u8','vmulle.u8',
2572
+ 'vmuleq.u16','vmulne.u16','vmulcs.u16','vmulhs.u16','vmulcc.u16','vmullo.u16','vmulmi.u16','vmulpl.u16','vmulvs.u16','vmulvc.u16','vmulhi.u16','vmulls.u16','vmulge.u16','vmullt.u16','vmulgt.u16','vmulle.u16',
2573
+ 'vmuleq.u32','vmulne.u32','vmulcs.u32','vmulhs.u32','vmulcc.u32','vmullo.u32','vmulmi.u32','vmulpl.u32','vmulvs.u32','vmulvc.u32','vmulhi.u32','vmulls.u32','vmulge.u32','vmullt.u32','vmulgt.u32','vmulle.u32',
2574
+ 'vmuleq.i8','vmulne.i8','vmulcs.i8','vmulhs.i8','vmulcc.i8','vmullo.i8','vmulmi.i8','vmulpl.i8','vmulvs.i8','vmulvc.i8','vmulhi.i8','vmulls.i8','vmulge.i8','vmullt.i8','vmulgt.i8','vmulle.i8',
2575
+ 'vmuleq.i16','vmulne.i16','vmulcs.i16','vmulhs.i16','vmulcc.i16','vmullo.i16','vmulmi.i16','vmulpl.i16','vmulvs.i16','vmulvc.i16','vmulhi.i16','vmulls.i16','vmulge.i16','vmullt.i16','vmulgt.i16','vmulle.i16',
2576
+ 'vmuleq.i32','vmulne.i32','vmulcs.i32','vmulhs.i32','vmulcc.i32','vmullo.i32','vmulmi.i32','vmulpl.i32','vmulvs.i32','vmulvc.i32','vmulhi.i32','vmulls.i32','vmulge.i32','vmullt.i32','vmulgt.i32','vmulle.i32',
2577
+ 'vmuleq.p8','vmulne.p8','vmulcs.p8','vmulhs.p8','vmulcc.p8','vmullo.p8','vmulmi.p8','vmulpl.p8','vmulvs.p8','vmulvc.p8','vmulhi.p8','vmulls.p8','vmulge.p8','vmullt.p8','vmulgt.p8','vmulle.p8',
2578
+
2579
+ 'vrshrneq.i16','vrshrnne.i16','vrshrncs.i16','vrshrnhs.i16','vrshrncc.i16','vrshrnlo.i16','vrshrnmi.i16','vrshrnpl.i16','vrshrnvs.i16','vrshrnvc.i16','vrshrnhi.i16','vrshrnls.i16','vrshrnge.i16','vrshrnlt.i16','vrshrngt.i16','vrshrnle.i16',
2580
+ 'vrshrneq.i32','vrshrnne.i32','vrshrncs.i32','vrshrnhs.i32','vrshrncc.i32','vrshrnlo.i32','vrshrnmi.i32','vrshrnpl.i32','vrshrnvs.i32','vrshrnvc.i32','vrshrnhi.i32','vrshrnls.i32','vrshrnge.i32','vrshrnlt.i32','vrshrngt.i32','vrshrnle.i32',
2581
+ 'vrshrneq.i64','vrshrnne.i64','vrshrncs.i64','vrshrnhs.i64','vrshrncc.i64','vrshrnlo.i64','vrshrnmi.i64','vrshrnpl.i64','vrshrnvs.i64','vrshrnvc.i64','vrshrnhi.i64','vrshrnls.i64','vrshrnge.i64','vrshrnlt.i64','vrshrngt.i64','vrshrnle.i64',
2582
+
2583
+ 'vshrneq.i16','vshrnne.i16','vshrncs.i16','vshrnhs.i16','vshrncc.i16','vshrnlo.i16','vshrnmi.i16','vshrnpl.i16','vshrnvs.i16','vshrnvc.i16','vshrnhi.i16','vshrnls.i16','vshrnge.i16','vshrnlt.i16','vshrngt.i16','vshrnle.i16',
2584
+ 'vshrneq.i32','vshrnne.i32','vshrncs.i32','vshrnhs.i32','vshrncc.i32','vshrnlo.i32','vshrnmi.i32','vshrnpl.i32','vshrnvs.i32','vshrnvc.i32','vshrnhi.i32','vshrnls.i32','vshrnge.i32','vshrnlt.i32','vshrngt.i32','vshrnle.i32',
2585
+ 'vshrneq.i64','vshrnne.i64','vshrncs.i64','vshrnhs.i64','vshrncc.i64','vshrnlo.i64','vshrnmi.i64','vshrnpl.i64','vshrnvs.i64','vshrnvc.i64','vshrnhi.i64','vshrnls.i64','vshrnge.i64','vshrnlt.i64','vshrngt.i64','vshrnle.i64',
2586
+
2587
+ 'vshleq.i8','vshlne.i8','vshlcs.i8','vshlhs.i8','vshlcc.i8','vshllo.i8','vshlmi.i8','vshlpl.i8','vshlvs.i8','vshlvc.i8','vshlhi.i8','vshlls.i8','vshlge.i8','vshllt.i8','vshlgt.i8','vshlle.i8',
2588
+ 'vshleq.i16','vshlne.i16','vshlcs.i16','vshlhs.i16','vshlcc.i16','vshllo.i16','vshlmi.i16','vshlpl.i16','vshlvs.i16','vshlvc.i16','vshlhi.i16','vshlls.i16','vshlge.i16','vshllt.i16','vshlgt.i16','vshlle.i16',
2589
+ 'vshleq.i32','vshlne.i32','vshlcs.i32','vshlhs.i32','vshlcc.i32','vshllo.i32','vshlmi.i32','vshlpl.i32','vshlvs.i32','vshlvc.i32','vshlhi.i32','vshlls.i32','vshlge.i32','vshllt.i32','vshlgt.i32','vshlle.i32',
2590
+ 'vshleq.i64','vshlne.i64','vshlcs.i64','vshlhs.i64','vshlcc.i64','vshllo.i64','vshlmi.i64','vshlpl.i64','vshlvs.i64','vshlvc.i64','vshlhi.i64','vshlls.i64','vshlge.i64','vshllt.i64','vshlgt.i64','vshlle.i64',
2591
+
2592
+ 'vshlleq.i8','vshllne.i8','vshllcs.i8','vshllhs.i8','vshllcc.i8','vshlllo.i8','vshllmi.i8','vshllpl.i8','vshllvs.i8','vshllvc.i8','vshllhi.i8','vshllls.i8','vshllge.i8','vshlllt.i8','vshllgt.i8','vshllle.i8',
2593
+ 'vshlleq.i16','vshllne.i16','vshllcs.i16','vshllhs.i16','vshllcc.i16','vshlllo.i16','vshllmi.i16','vshllpl.i16','vshllvs.i16','vshllvc.i16','vshllhi.i16','vshllls.i16','vshllge.i16','vshlllt.i16','vshllgt.i16','vshllle.i16',
2594
+ 'vshlleq.i32','vshllne.i32','vshllcs.i32','vshllhs.i32','vshllcc.i32','vshlllo.i32','vshllmi.i32','vshllpl.i32','vshllvs.i32','vshllvc.i32','vshllhi.i32','vshllls.i32','vshllge.i32','vshlllt.i32','vshllgt.i32','vshllle.i32'
2595
+ ),
2596
+ /* Conditional NEON SIMD Signed Integer Instructions */
2597
+ 32 => array(
2598
+ 'vabaeq.s8','vabane.s8','vabacs.s8','vabahs.s8','vabacc.s8','vabalo.s8','vabami.s8','vabapl.s8','vabavs.s8','vabavc.s8','vabahi.s8','vabals.s8','vabage.s8','vabalt.s8','vabagt.s8','vabale.s8',
2599
+ 'vabaeq.s16','vabane.s16','vabacs.s16','vabahs.s16','vabacc.s16','vabalo.s16','vabami.s16','vabapl.s16','vabavs.s16','vabavc.s16','vabahi.s16','vabals.s16','vabage.s16','vabalt.s16','vabagt.s16','vabale.s16',
2600
+ 'vabaeq.s32','vabane.s32','vabacs.s32','vabahs.s32','vabacc.s32','vabalo.s32','vabami.s32','vabapl.s32','vabavs.s32','vabavc.s32','vabahi.s32','vabals.s32','vabage.s32','vabalt.s32','vabagt.s32','vabale.s32',
2601
+
2602
+ 'vabaleq.s8','vabalne.s8','vabalcs.s8','vabalhs.s8','vabalcc.s8','vaballo.s8','vabalmi.s8','vabalpl.s8','vabalvs.s8','vabalvc.s8','vabalhi.s8','vaballs.s8','vabalge.s8','vaballt.s8','vabalgt.s8','vaballe.s8',
2603
+ 'vabaleq.s16','vabalne.s16','vabalcs.s16','vabalhs.s16','vabalcc.s16','vaballo.s16','vabalmi.s16','vabalpl.s16','vabalvs.s16','vabalvc.s16','vabalhi.s16','vaballs.s16','vabalge.s16','vaballt.s16','vabalgt.s16','vaballe.s16',
2604
+ 'vabaleq.s32','vabalne.s32','vabalcs.s32','vabalhs.s32','vabalcc.s32','vaballo.s32','vabalmi.s32','vabalpl.s32','vabalvs.s32','vabalvc.s32','vabalhi.s32','vaballs.s32','vabalge.s32','vaballt.s32','vabalgt.s32','vaballe.s32',
2605
+
2606
+ 'vabdeq.s8','vabdne.s8','vabdcs.s8','vabdhs.s8','vabdcc.s8','vabdlo.s8','vabdmi.s8','vabdpl.s8','vabdvs.s8','vabdvc.s8','vabdhi.s8','vabdls.s8','vabdge.s8','vabdlt.s8','vabdgt.s8','vabdle.s8',
2607
+ 'vabdeq.s16','vabdne.s16','vabdcs.s16','vabdhs.s16','vabdcc.s16','vabdlo.s16','vabdmi.s16','vabdpl.s16','vabdvs.s16','vabdvc.s16','vabdhi.s16','vabdls.s16','vabdge.s16','vabdlt.s16','vabdgt.s16','vabdle.s16',
2608
+ 'vabdeq.s32','vabdne.s32','vabdcs.s32','vabdhs.s32','vabdcc.s32','vabdlo.s32','vabdmi.s32','vabdpl.s32','vabdvs.s32','vabdvc.s32','vabdhi.s32','vabdls.s32','vabdge.s32','vabdlt.s32','vabdgt.s32','vabdle.s32',
2609
+
2610
+ 'vabseq.s8','vabsne.s8','vabscs.s8','vabshs.s8','vabscc.s8','vabslo.s8','vabsmi.s8','vabspl.s8','vabsvs.s8','vabsvc.s8','vabshi.s8','vabsls.s8','vabsge.s8','vabslt.s8','vabsgt.s8','vabsle.s8',
2611
+ 'vabseq.s16','vabsne.s16','vabscs.s16','vabshs.s16','vabscc.s16','vabslo.s16','vabsmi.s16','vabspl.s16','vabsvs.s16','vabsvc.s16','vabshi.s16','vabsls.s16','vabsge.s16','vabslt.s16','vabsgt.s16','vabsle.s16',
2612
+ 'vabseq.s32','vabsne.s32','vabscs.s32','vabshs.s32','vabscc.s32','vabslo.s32','vabsmi.s32','vabspl.s32','vabsvs.s32','vabsvc.s32','vabshi.s32','vabsls.s32','vabsge.s32','vabslt.s32','vabsgt.s32','vabsle.s32',
2613
+
2614
+ 'vaddleq.s8','vaddlne.s8','vaddlcs.s8','vaddlhs.s8','vaddlcc.s8','vaddllo.s8','vaddlmi.s8','vaddlpl.s8','vaddlvs.s8','vaddlvc.s8','vaddlhi.s8','vaddlls.s8','vaddlge.s8','vaddllt.s8','vaddlgt.s8','vaddlle.s8',
2615
+ 'vaddleq.s16','vaddlne.s16','vaddlcs.s16','vaddlhs.s16','vaddlcc.s16','vaddllo.s16','vaddlmi.s16','vaddlpl.s16','vaddlvs.s16','vaddlvc.s16','vaddlhi.s16','vaddlls.s16','vaddlge.s16','vaddllt.s16','vaddlgt.s16','vaddlle.s16',
2616
+ 'vaddleq.s32','vaddlne.s32','vaddlcs.s32','vaddlhs.s32','vaddlcc.s32','vaddllo.s32','vaddlmi.s32','vaddlpl.s32','vaddlvs.s32','vaddlvc.s32','vaddlhi.s32','vaddlls.s32','vaddlge.s32','vaddllt.s32','vaddlgt.s32','vaddlle.s32',
2617
+
2618
+ 'vcgeeq.s8','vcgene.s8','vcgecs.s8','vcgehs.s8','vcgecc.s8','vcgelo.s8','vcgemi.s8','vcgepl.s8','vcgevs.s8','vcgevc.s8','vcgehi.s8','vcgels.s8','vcgege.s8','vcgelt.s8','vcgegt.s8','vcgele.s8',
2619
+ 'vcgeeq.s16','vcgene.s16','vcgecs.s16','vcgehs.s16','vcgecc.s16','vcgelo.s16','vcgemi.s16','vcgepl.s16','vcgevs.s16','vcgevc.s16','vcgehi.s16','vcgels.s16','vcgege.s16','vcgelt.s16','vcgegt.s16','vcgele.s16',
2620
+ 'vcgeeq.s32','vcgene.s32','vcgecs.s32','vcgehs.s32','vcgecc.s32','vcgelo.s32','vcgemi.s32','vcgepl.s32','vcgevs.s32','vcgevc.s32','vcgehi.s32','vcgels.s32','vcgege.s32','vcgelt.s32','vcgegt.s32','vcgele.s32',
2621
+
2622
+ 'vcleeq.s8','vclene.s8','vclecs.s8','vclehs.s8','vclecc.s8','vclelo.s8','vclemi.s8','vclepl.s8','vclevs.s8','vclevc.s8','vclehi.s8','vclels.s8','vclege.s8','vclelt.s8','vclegt.s8','vclele.s8',
2623
+ 'vcleeq.s16','vclene.s16','vclecs.s16','vclehs.s16','vclecc.s16','vclelo.s16','vclemi.s16','vclepl.s16','vclevs.s16','vclevc.s16','vclehi.s16','vclels.s16','vclege.s16','vclelt.s16','vclegt.s16','vclele.s16',
2624
+ 'vcleeq.s32','vclene.s32','vclecs.s32','vclehs.s32','vclecc.s32','vclelo.s32','vclemi.s32','vclepl.s32','vclevs.s32','vclevc.s32','vclehi.s32','vclels.s32','vclege.s32','vclelt.s32','vclegt.s32','vclele.s32',
2625
+
2626
+ 'vcgteq.s8','vcgtne.s8','vcgtcs.s8','vcgths.s8','vcgtcc.s8','vcgtlo.s8','vcgtmi.s8','vcgtpl.s8','vcgtvs.s8','vcgtvc.s8','vcgthi.s8','vcgtls.s8','vcgtge.s8','vcgtlt.s8','vcgtgt.s8','vcgtle.s8',
2627
+ 'vcgteq.s16','vcgtne.s16','vcgtcs.s16','vcgths.s16','vcgtcc.s16','vcgtlo.s16','vcgtmi.s16','vcgtpl.s16','vcgtvs.s16','vcgtvc.s16','vcgthi.s16','vcgtls.s16','vcgtge.s16','vcgtlt.s16','vcgtgt.s16','vcgtle.s16',
2628
+ 'vcgteq.s32','vcgtne.s32','vcgtcs.s32','vcgths.s32','vcgtcc.s32','vcgtlo.s32','vcgtmi.s32','vcgtpl.s32','vcgtvs.s32','vcgtvc.s32','vcgthi.s32','vcgtls.s32','vcgtge.s32','vcgtlt.s32','vcgtgt.s32','vcgtle.s32',
2629
+
2630
+ 'vclteq.s8','vcltne.s8','vcltcs.s8','vclths.s8','vcltcc.s8','vcltlo.s8','vcltmi.s8','vcltpl.s8','vcltvs.s8','vcltvc.s8','vclthi.s8','vcltls.s8','vcltge.s8','vcltlt.s8','vcltgt.s8','vcltle.s8',
2631
+ 'vclteq.s16','vcltne.s16','vcltcs.s16','vclths.s16','vcltcc.s16','vcltlo.s16','vcltmi.s16','vcltpl.s16','vcltvs.s16','vcltvc.s16','vclthi.s16','vcltls.s16','vcltge.s16','vcltlt.s16','vcltgt.s16','vcltle.s16',
2632
+ 'vclteq.s32','vcltne.s32','vcltcs.s32','vclths.s32','vcltcc.s32','vcltlo.s32','vcltmi.s32','vcltpl.s32','vcltvs.s32','vcltvc.s32','vclthi.s32','vcltls.s32','vcltge.s32','vcltlt.s32','vcltgt.s32','vcltle.s32',
2633
+
2634
+ 'vclseq.s8','vclsne.s8','vclscs.s8','vclshs.s8','vclscc.s8','vclslo.s8','vclsmi.s8','vclspl.s8','vclsvs.s8','vclsvc.s8','vclshi.s8','vclsls.s8','vclsge.s8','vclslt.s8','vclsgt.s8','vclsle.s8',
2635
+ 'vclseq.s16','vclsne.s16','vclscs.s16','vclshs.s16','vclscc.s16','vclslo.s16','vclsmi.s16','vclspl.s16','vclsvs.s16','vclsvc.s16','vclshi.s16','vclsls.s16','vclsge.s16','vclslt.s16','vclsgt.s16','vclsle.s16',
2636
+ 'vclseq.s32','vclsne.s32','vclscs.s32','vclshs.s32','vclscc.s32','vclslo.s32','vclsmi.s32','vclspl.s32','vclsvs.s32','vclsvc.s32','vclshi.s32','vclsls.s32','vclsge.s32','vclslt.s32','vclsgt.s32','vclsle.s32',
2637
+
2638
+ 'vaddweq.s8','vaddwne.s8','vaddwcs.s8','vaddwhs.s8','vaddwcc.s8','vaddwlo.s8','vaddwmi.s8','vaddwpl.s8','vaddwvs.s8','vaddwvc.s8','vaddwhi.s8','vaddwls.s8','vaddwge.s8','vaddwlt.s8','vaddwgt.s8','vaddwle.s8',
2639
+ 'vaddweq.s16','vaddwne.s16','vaddwcs.s16','vaddwhs.s16','vaddwcc.s16','vaddwlo.s16','vaddwmi.s16','vaddwpl.s16','vaddwvs.s16','vaddwvc.s16','vaddwhi.s16','vaddwls.s16','vaddwge.s16','vaddwlt.s16','vaddwgt.s16','vaddwle.s16',
2640
+ 'vaddweq.s32','vaddwne.s32','vaddwcs.s32','vaddwhs.s32','vaddwcc.s32','vaddwlo.s32','vaddwmi.s32','vaddwpl.s32','vaddwvs.s32','vaddwvc.s32','vaddwhi.s32','vaddwls.s32','vaddwge.s32','vaddwlt.s32','vaddwgt.s32','vaddwle.s32',
2641
+
2642
+ 'vhaddeq.s8','vhaddne.s8','vhaddcs.s8','vhaddhs.s8','vhaddcc.s8','vhaddlo.s8','vhaddmi.s8','vhaddpl.s8','vhaddvs.s8','vhaddvc.s8','vhaddhi.s8','vhaddls.s8','vhaddge.s8','vhaddlt.s8','vhaddgt.s8','vhaddle.s8',
2643
+ 'vhaddeq.s16','vhaddne.s16','vhaddcs.s16','vhaddhs.s16','vhaddcc.s16','vhaddlo.s16','vhaddmi.s16','vhaddpl.s16','vhaddvs.s16','vhaddvc.s16','vhaddhi.s16','vhaddls.s16','vhaddge.s16','vhaddlt.s16','vhaddgt.s16','vhaddle.s16',
2644
+ 'vhaddeq.s32','vhaddne.s32','vhaddcs.s32','vhaddhs.s32','vhaddcc.s32','vhaddlo.s32','vhaddmi.s32','vhaddpl.s32','vhaddvs.s32','vhaddvc.s32','vhaddhi.s32','vhaddls.s32','vhaddge.s32','vhaddlt.s32','vhaddgt.s32','vhaddle.s32',
2645
+
2646
+ 'vhsubeq.s8','vhsubne.s8','vhsubcs.s8','vhsubhs.s8','vhsubcc.s8','vhsublo.s8','vhsubmi.s8','vhsubpl.s8','vhsubvs.s8','vhsubvc.s8','vhsubhi.s8','vhsubls.s8','vhsubge.s8','vhsublt.s8','vhsubgt.s8','vhsuble.s8',
2647
+ 'vhsubeq.s16','vhsubne.s16','vhsubcs.s16','vhsubhs.s16','vhsubcc.s16','vhsublo.s16','vhsubmi.s16','vhsubpl.s16','vhsubvs.s16','vhsubvc.s16','vhsubhi.s16','vhsubls.s16','vhsubge.s16','vhsublt.s16','vhsubgt.s16','vhsuble.s16',
2648
+ 'vhsubeq.s32','vhsubne.s32','vhsubcs.s32','vhsubhs.s32','vhsubcc.s32','vhsublo.s32','vhsubmi.s32','vhsubpl.s32','vhsubvs.s32','vhsubvc.s32','vhsubhi.s32','vhsubls.s32','vhsubge.s32','vhsublt.s32','vhsubgt.s32','vhsuble.s32',
2649
+
2650
+ 'vmaxeq.s8','vmaxne.s8','vmaxcs.s8','vmaxhs.s8','vmaxcc.s8','vmaxlo.s8','vmaxmi.s8','vmaxpl.s8','vmaxvs.s8','vmaxvc.s8','vmaxhi.s8','vmaxls.s8','vmaxge.s8','vmaxlt.s8','vmaxgt.s8','vmaxle.s8',
2651
+ 'vmaxeq.s16','vmaxne.s16','vmaxcs.s16','vmaxhs.s16','vmaxcc.s16','vmaxlo.s16','vmaxmi.s16','vmaxpl.s16','vmaxvs.s16','vmaxvc.s16','vmaxhi.s16','vmaxls.s16','vmaxge.s16','vmaxlt.s16','vmaxgt.s16','vmaxle.s16',
2652
+ 'vmaxeq.s32','vmaxne.s32','vmaxcs.s32','vmaxhs.s32','vmaxcc.s32','vmaxlo.s32','vmaxmi.s32','vmaxpl.s32','vmaxvs.s32','vmaxvc.s32','vmaxhi.s32','vmaxls.s32','vmaxge.s32','vmaxlt.s32','vmaxgt.s32','vmaxle.s32',
2653
+
2654
+ 'vmineq.s8','vminne.s8','vmincs.s8','vminhs.s8','vmincc.s8','vminlo.s8','vminmi.s8','vminpl.s8','vminvs.s8','vminvc.s8','vminhi.s8','vminls.s8','vminge.s8','vminlt.s8','vmingt.s8','vminle.s8',
2655
+ 'vmineq.s16','vminne.s16','vmincs.s16','vminhs.s16','vmincc.s16','vminlo.s16','vminmi.s16','vminpl.s16','vminvs.s16','vminvc.s16','vminhi.s16','vminls.s16','vminge.s16','vminlt.s16','vmingt.s16','vminle.s16',
2656
+ 'vmineq.s32','vminne.s32','vmincs.s32','vminhs.s32','vmincc.s32','vminlo.s32','vminmi.s32','vminpl.s32','vminvs.s32','vminvc.s32','vminhi.s32','vminls.s32','vminge.s32','vminlt.s32','vmingt.s32','vminle.s32',
2657
+
2658
+ 'vmlaleq.s8','vmlalne.s8','vmlalcs.s8','vmlalhs.s8','vmlalcc.s8','vmlallo.s8','vmlalmi.s8','vmlalpl.s8','vmlalvs.s8','vmlalvc.s8','vmlalhi.s8','vmlalls.s8','vmlalge.s8','vmlallt.s8','vmlalgt.s8','vmlalle.s8',
2659
+ 'vmlaleq.s16','vmlalne.s16','vmlalcs.s16','vmlalhs.s16','vmlalcc.s16','vmlallo.s16','vmlalmi.s16','vmlalpl.s16','vmlalvs.s16','vmlalvc.s16','vmlalhi.s16','vmlalls.s16','vmlalge.s16','vmlallt.s16','vmlalgt.s16','vmlalle.s16',
2660
+ 'vmlaleq.s32','vmlalne.s32','vmlalcs.s32','vmlalhs.s32','vmlalcc.s32','vmlallo.s32','vmlalmi.s32','vmlalpl.s32','vmlalvs.s32','vmlalvc.s32','vmlalhi.s32','vmlalls.s32','vmlalge.s32','vmlallt.s32','vmlalgt.s32','vmlalle.s32',
2661
+
2662
+ 'vmlsleq.s8','vmlslne.s8','vmlslcs.s8','vmlslhs.s8','vmlslcc.s8','vmlsllo.s8','vmlslmi.s8','vmlslpl.s8','vmlslvs.s8','vmlslvc.s8','vmlslhi.s8','vmlslls.s8','vmlslge.s8','vmlsllt.s8','vmlslgt.s8','vmlslle.s8',
2663
+ 'vmlsleq.s16','vmlslne.s16','vmlslcs.s16','vmlslhs.s16','vmlslcc.s16','vmlsllo.s16','vmlslmi.s16','vmlslpl.s16','vmlslvs.s16','vmlslvc.s16','vmlslhi.s16','vmlslls.s16','vmlslge.s16','vmlsllt.s16','vmlslgt.s16','vmlslle.s16',
2664
+ 'vmlsleq.s32','vmlslne.s32','vmlslcs.s32','vmlslhs.s32','vmlslcc.s32','vmlsllo.s32','vmlslmi.s32','vmlslpl.s32','vmlslvs.s32','vmlslvc.s32','vmlslhi.s32','vmlslls.s32','vmlslge.s32','vmlsllt.s32','vmlslgt.s32','vmlslle.s32',
2665
+
2666
+ 'vnegeq.s8','vnegne.s8','vnegcs.s8','vneghs.s8','vnegcc.s8','vneglo.s8','vnegmi.s8','vnegpl.s8','vnegvs.s8','vnegvc.s8','vneghi.s8','vnegls.s8','vnegge.s8','vneglt.s8','vneggt.s8','vnegle.s8',
2667
+ 'vnegeq.s16','vnegne.s16','vnegcs.s16','vneghs.s16','vnegcc.s16','vneglo.s16','vnegmi.s16','vnegpl.s16','vnegvs.s16','vnegvc.s16','vneghi.s16','vnegls.s16','vnegge.s16','vneglt.s16','vneggt.s16','vnegle.s16',
2668
+ 'vnegeq.s32','vnegne.s32','vnegcs.s32','vneghs.s32','vnegcc.s32','vneglo.s32','vnegmi.s32','vnegpl.s32','vnegvs.s32','vnegvc.s32','vneghi.s32','vnegls.s32','vnegge.s32','vneglt.s32','vneggt.s32','vnegle.s32',
2669
+
2670
+ 'vpadaleq.s8','vpadalne.s8','vpadalcs.s8','vpadalhs.s8','vpadalcc.s8','vpadallo.s8','vpadalmi.s8','vpadalpl.s8','vpadalvs.s8','vpadalvc.s8','vpadalhi.s8','vpadalls.s8','vpadalge.s8','vpadallt.s8','vpadalgt.s8','vpadalle.s8',
2671
+ 'vpadaleq.s16','vpadalne.s16','vpadalcs.s16','vpadalhs.s16','vpadalcc.s16','vpadallo.s16','vpadalmi.s16','vpadalpl.s16','vpadalvs.s16','vpadalvc.s16','vpadalhi.s16','vpadalls.s16','vpadalge.s16','vpadallt.s16','vpadalgt.s16','vpadalle.s16',
2672
+ 'vpadaleq.s32','vpadalne.s32','vpadalcs.s32','vpadalhs.s32','vpadalcc.s32','vpadallo.s32','vpadalmi.s32','vpadalpl.s32','vpadalvs.s32','vpadalvc.s32','vpadalhi.s32','vpadalls.s32','vpadalge.s32','vpadallt.s32','vpadalgt.s32','vpadalle.s32',
2673
+
2674
+ 'vmovleq.s8','vmovlne.s8','vmovlcs.s8','vmovlhs.s8','vmovlcc.s8','vmovllo.s8','vmovlmi.s8','vmovlpl.s8','vmovlvs.s8','vmovlvc.s8','vmovlhi.s8','vmovlls.s8','vmovlge.s8','vmovllt.s8','vmovlgt.s8','vmovlle.s8',
2675
+ 'vmovleq.s16','vmovlne.s16','vmovlcs.s16','vmovlhs.s16','vmovlcc.s16','vmovllo.s16','vmovlmi.s16','vmovlpl.s16','vmovlvs.s16','vmovlvc.s16','vmovlhi.s16','vmovlls.s16','vmovlge.s16','vmovllt.s16','vmovlgt.s16','vmovlle.s16',
2676
+ 'vmovleq.s32','vmovlne.s32','vmovlcs.s32','vmovlhs.s32','vmovlcc.s32','vmovllo.s32','vmovlmi.s32','vmovlpl.s32','vmovlvs.s32','vmovlvc.s32','vmovlhi.s32','vmovlls.s32','vmovlge.s32','vmovllt.s32','vmovlgt.s32','vmovlle.s32',
2677
+
2678
+ 'vmulleq.s8','vmullne.s8','vmullcs.s8','vmullhs.s8','vmullcc.s8','vmulllo.s8','vmullmi.s8','vmullpl.s8','vmullvs.s8','vmullvc.s8','vmullhi.s8','vmullls.s8','vmullge.s8','vmulllt.s8','vmullgt.s8','vmullle.s8',
2679
+ 'vmulleq.s16','vmullne.s16','vmullcs.s16','vmullhs.s16','vmullcc.s16','vmulllo.s16','vmullmi.s16','vmullpl.s16','vmullvs.s16','vmullvc.s16','vmullhi.s16','vmullls.s16','vmullge.s16','vmulllt.s16','vmullgt.s16','vmullle.s16',
2680
+ 'vmulleq.s32','vmullne.s32','vmullcs.s32','vmullhs.s32','vmullcc.s32','vmulllo.s32','vmullmi.s32','vmullpl.s32','vmullvs.s32','vmullvc.s32','vmullhi.s32','vmullls.s32','vmullge.s32','vmulllt.s32','vmullgt.s32','vmullle.s32',
2681
+
2682
+ 'vpaddleq.s8','vpaddlne.s8','vpaddlcs.s8','vpaddlhs.s8','vpaddlcc.s8','vpaddllo.s8','vpaddlmi.s8','vpaddlpl.s8','vpaddlvs.s8','vpaddlvc.s8','vpaddlhi.s8','vpaddlls.s8','vpaddlge.s8','vpaddllt.s8','vpaddlgt.s8','vpaddlle.s8',
2683
+ 'vpaddleq.s16','vpaddlne.s16','vpaddlcs.s16','vpaddlhs.s16','vpaddlcc.s16','vpaddllo.s16','vpaddlmi.s16','vpaddlpl.s16','vpaddlvs.s16','vpaddlvc.s16','vpaddlhi.s16','vpaddlls.s16','vpaddlge.s16','vpaddllt.s16','vpaddlgt.s16','vpaddlle.s16',
2684
+ 'vpaddleq.s32','vpaddlne.s32','vpaddlcs.s32','vpaddlhs.s32','vpaddlcc.s32','vpaddllo.s32','vpaddlmi.s32','vpaddlpl.s32','vpaddlvs.s32','vpaddlvc.s32','vpaddlhi.s32','vpaddlls.s32','vpaddlge.s32','vpaddllt.s32','vpaddlgt.s32','vpaddlle.s32',
2685
+
2686
+ 'vpmaxeq.s8','vpmaxne.s8','vpmaxcs.s8','vpmaxhs.s8','vpmaxcc.s8','vpmaxlo.s8','vpmaxmi.s8','vpmaxpl.s8','vpmaxvs.s8','vpmaxvc.s8','vpmaxhi.s8','vpmaxls.s8','vpmaxge.s8','vpmaxlt.s8','vpmaxgt.s8','vpmaxle.s8',
2687
+ 'vpmaxeq.s16','vpmaxne.s16','vpmaxcs.s16','vpmaxhs.s16','vpmaxcc.s16','vpmaxlo.s16','vpmaxmi.s16','vpmaxpl.s16','vpmaxvs.s16','vpmaxvc.s16','vpmaxhi.s16','vpmaxls.s16','vpmaxge.s16','vpmaxlt.s16','vpmaxgt.s16','vpmaxle.s16',
2688
+ 'vpmaxeq.s32','vpmaxne.s32','vpmaxcs.s32','vpmaxhs.s32','vpmaxcc.s32','vpmaxlo.s32','vpmaxmi.s32','vpmaxpl.s32','vpmaxvs.s32','vpmaxvc.s32','vpmaxhi.s32','vpmaxls.s32','vpmaxge.s32','vpmaxlt.s32','vpmaxgt.s32','vpmaxle.s32',
2689
+
2690
+ 'vpmineq.s8','vpminne.s8','vpmincs.s8','vpminhs.s8','vpmincc.s8','vpminlo.s8','vpminmi.s8','vpminpl.s8','vpminvs.s8','vpminvc.s8','vpminhi.s8','vpminls.s8','vpminge.s8','vpminlt.s8','vpmingt.s8','vpminle.s8',
2691
+ 'vpmineq.s16','vpminne.s16','vpmincs.s16','vpminhs.s16','vpmincc.s16','vpminlo.s16','vpminmi.s16','vpminpl.s16','vpminvs.s16','vpminvc.s16','vpminhi.s16','vpminls.s16','vpminge.s16','vpminlt.s16','vpmingt.s16','vpminle.s16',
2692
+ 'vpmineq.s32','vpminne.s32','vpmincs.s32','vpminhs.s32','vpmincc.s32','vpminlo.s32','vpminmi.s32','vpminpl.s32','vpminvs.s32','vpminvc.s32','vpminhi.s32','vpminls.s32','vpminge.s32','vpminlt.s32','vpmingt.s32','vpminle.s32',
2693
+
2694
+ 'vqabseq.s8','vqabsne.s8','vqabscs.s8','vqabshs.s8','vqabscc.s8','vqabslo.s8','vqabsmi.s8','vqabspl.s8','vqabsvs.s8','vqabsvc.s8','vqabshi.s8','vqabsls.s8','vqabsge.s8','vqabslt.s8','vqabsgt.s8','vqabsle.s8',
2695
+ 'vqabseq.s16','vqabsne.s16','vqabscs.s16','vqabshs.s16','vqabscc.s16','vqabslo.s16','vqabsmi.s16','vqabspl.s16','vqabsvs.s16','vqabsvc.s16','vqabshi.s16','vqabsls.s16','vqabsge.s16','vqabslt.s16','vqabsgt.s16','vqabsle.s16',
2696
+ 'vqabseq.s32','vqabsne.s32','vqabscs.s32','vqabshs.s32','vqabscc.s32','vqabslo.s32','vqabsmi.s32','vqabspl.s32','vqabsvs.s32','vqabsvc.s32','vqabshi.s32','vqabsls.s32','vqabsge.s32','vqabslt.s32','vqabsgt.s32','vqabsle.s32',
2697
+
2698
+ 'vqaddeq.s8','vqaddne.s8','vqaddcs.s8','vqaddhs.s8','vqaddcc.s8','vqaddlo.s8','vqaddmi.s8','vqaddpl.s8','vqaddvs.s8','vqaddvc.s8','vqaddhi.s8','vqaddls.s8','vqaddge.s8','vqaddlt.s8','vqaddgt.s8','vqaddle.s8',
2699
+ 'vqaddeq.s16','vqaddne.s16','vqaddcs.s16','vqaddhs.s16','vqaddcc.s16','vqaddlo.s16','vqaddmi.s16','vqaddpl.s16','vqaddvs.s16','vqaddvc.s16','vqaddhi.s16','vqaddls.s16','vqaddge.s16','vqaddlt.s16','vqaddgt.s16','vqaddle.s16',
2700
+ 'vqaddeq.s32','vqaddne.s32','vqaddcs.s32','vqaddhs.s32','vqaddcc.s32','vqaddlo.s32','vqaddmi.s32','vqaddpl.s32','vqaddvs.s32','vqaddvc.s32','vqaddhi.s32','vqaddls.s32','vqaddge.s32','vqaddlt.s32','vqaddgt.s32','vqaddle.s32',
2701
+ 'vqaddeq.s64','vqaddne.s64','vqaddcs.s64','vqaddhs.s64','vqaddcc.s64','vqaddlo.s64','vqaddmi.s64','vqaddpl.s64','vqaddvs.s64','vqaddvc.s64','vqaddhi.s64','vqaddls.s64','vqaddge.s64','vqaddlt.s64','vqaddgt.s64','vqaddle.s64',
2702
+
2703
+ 'vqdmlaleq.s16','vqdmlalne.s16','vqdmlalcs.s16','vqdmlalhs.s16','vqdmlalcc.s16','vqdmlallo.s16','vqdmlalmi.s16','vqdmlalpl.s16','vqdmlalvs.s16','vqdmlalvc.s16','vqdmlalhi.s16','vqdmlalls.s16','vqdmlalge.s16','vqdmlallt.s16','vqdmlalgt.s16','vqdmlalle.s16',
2704
+ 'vqdmlaleq.s32','vqdmlalne.s32','vqdmlalcs.s32','vqdmlalhs.s32','vqdmlalcc.s32','vqdmlallo.s32','vqdmlalmi.s32','vqdmlalpl.s32','vqdmlalvs.s32','vqdmlalvc.s32','vqdmlalhi.s32','vqdmlalls.s32','vqdmlalge.s32','vqdmlallt.s32','vqdmlalgt.s32','vqdmlalle.s32',
2705
+
2706
+ 'vqdmlsleq.s16','vqdmlslne.s16','vqdmlslcs.s16','vqdmlslhs.s16','vqdmlslcc.s16','vqdmlsllo.s16','vqdmlslmi.s16','vqdmlslpl.s16','vqdmlslvs.s16','vqdmlslvc.s16','vqdmlslhi.s16','vqdmlslls.s16','vqdmlslge.s16','vqdmlsllt.s16','vqdmlslgt.s16','vqdmlslle.s16',
2707
+ 'vqdmlsleq.s32','vqdmlslne.s32','vqdmlslcs.s32','vqdmlslhs.s32','vqdmlslcc.s32','vqdmlsllo.s32','vqdmlslmi.s32','vqdmlslpl.s32','vqdmlslvs.s32','vqdmlslvc.s32','vqdmlslhi.s32','vqdmlslls.s32','vqdmlslge.s32','vqdmlsllt.s32','vqdmlslgt.s32','vqdmlslle.s32',
2708
+
2709
+ 'vqdmulheq.s16','vqdmulhne.s16','vqdmulhcs.s16','vqdmulhhs.s16','vqdmulhcc.s16','vqdmulhlo.s16','vqdmulhmi.s16','vqdmulhpl.s16','vqdmulhvs.s16','vqdmulhvc.s16','vqdmulhhi.s16','vqdmulhls.s16','vqdmulhge.s16','vqdmulhlt.s16','vqdmulhgt.s16','vqdmulhle.s16',
2710
+ 'vqdmulheq.s32','vqdmulhne.s32','vqdmulhcs.s32','vqdmulhhs.s32','vqdmulhcc.s32','vqdmulhlo.s32','vqdmulhmi.s32','vqdmulhpl.s32','vqdmulhvs.s32','vqdmulhvc.s32','vqdmulhhi.s32','vqdmulhls.s32','vqdmulhge.s32','vqdmulhlt.s32','vqdmulhgt.s32','vqdmulhle.s32',
2711
+
2712
+ 'vqdmulleq.s16','vqdmullne.s16','vqdmullcs.s16','vqdmullhs.s16','vqdmullcc.s16','vqdmulllo.s16','vqdmullmi.s16','vqdmullpl.s16','vqdmullvs.s16','vqdmullvc.s16','vqdmullhi.s16','vqdmullls.s16','vqdmullge.s16','vqdmulllt.s16','vqdmullgt.s16','vqdmullle.s16',
2713
+ 'vqdmulleq.s32','vqdmullne.s32','vqdmullcs.s32','vqdmullhs.s32','vqdmullcc.s32','vqdmulllo.s32','vqdmullmi.s32','vqdmullpl.s32','vqdmullvs.s32','vqdmullvc.s32','vqdmullhi.s32','vqdmullls.s32','vqdmullge.s32','vqdmulllt.s32','vqdmullgt.s32','vqdmullle.s32',
2714
+
2715
+ 'vqmovneq.s16','vqmovnne.s16','vqmovncs.s16','vqmovnhs.s16','vqmovncc.s16','vqmovnlo.s16','vqmovnmi.s16','vqmovnpl.s16','vqmovnvs.s16','vqmovnvc.s16','vqmovnhi.s16','vqmovnls.s16','vqmovnge.s16','vqmovnlt.s16','vqmovngt.s16','vqmovnle.s16',
2716
+ 'vqmovneq.s32','vqmovnne.s32','vqmovncs.s32','vqmovnhs.s32','vqmovncc.s32','vqmovnlo.s32','vqmovnmi.s32','vqmovnpl.s32','vqmovnvs.s32','vqmovnvc.s32','vqmovnhi.s32','vqmovnls.s32','vqmovnge.s32','vqmovnlt.s32','vqmovngt.s32','vqmovnle.s32',
2717
+ 'vqmovneq.s64','vqmovnne.s64','vqmovncs.s64','vqmovnhs.s64','vqmovncc.s64','vqmovnlo.s64','vqmovnmi.s64','vqmovnpl.s64','vqmovnvs.s64','vqmovnvc.s64','vqmovnhi.s64','vqmovnls.s64','vqmovnge.s64','vqmovnlt.s64','vqmovngt.s64','vqmovnle.s64',
2718
+
2719
+ 'vqmovuneq.s16','vqmovunne.s16','vqmovuncs.s16','vqmovunhs.s16','vqmovuncc.s16','vqmovunlo.s16','vqmovunmi.s16','vqmovunpl.s16','vqmovunvs.s16','vqmovunvc.s16','vqmovunhi.s16','vqmovunls.s16','vqmovunge.s16','vqmovunlt.s16','vqmovungt.s16','vqmovunle.s16',
2720
+ 'vqmovuneq.s32','vqmovunne.s32','vqmovuncs.s32','vqmovunhs.s32','vqmovuncc.s32','vqmovunlo.s32','vqmovunmi.s32','vqmovunpl.s32','vqmovunvs.s32','vqmovunvc.s32','vqmovunhi.s32','vqmovunls.s32','vqmovunge.s32','vqmovunlt.s32','vqmovungt.s32','vqmovunle.s32',
2721
+ 'vqmovuneq.s64','vqmovunne.s64','vqmovuncs.s64','vqmovunhs.s64','vqmovuncc.s64','vqmovunlo.s64','vqmovunmi.s64','vqmovunpl.s64','vqmovunvs.s64','vqmovunvc.s64','vqmovunhi.s64','vqmovunls.s64','vqmovunge.s64','vqmovunlt.s64','vqmovungt.s64','vqmovunle.s64',
2722
+
2723
+ 'vqnegeq.s8','vqnegne.s8','vqnegcs.s8','vqneghs.s8','vqnegcc.s8','vqneglo.s8','vqnegmi.s8','vqnegpl.s8','vqnegvs.s8','vqnegvc.s8','vqneghi.s8','vqnegls.s8','vqnegge.s8','vqneglt.s8','vqneggt.s8','vqnegle.s8',
2724
+ 'vqnegeq.s16','vqnegne.s16','vqnegcs.s16','vqneghs.s16','vqnegcc.s16','vqneglo.s16','vqnegmi.s16','vqnegpl.s16','vqnegvs.s16','vqnegvc.s16','vqneghi.s16','vqnegls.s16','vqnegge.s16','vqneglt.s16','vqneggt.s16','vqnegle.s16',
2725
+ 'vqnegeq.s32','vqnegne.s32','vqnegcs.s32','vqneghs.s32','vqnegcc.s32','vqneglo.s32','vqnegmi.s32','vqnegpl.s32','vqnegvs.s32','vqnegvc.s32','vqneghi.s32','vqnegls.s32','vqnegge.s32','vqneglt.s32','vqneggt.s32','vqnegle.s32',
2726
+
2727
+ 'vqrdmulheq.s16','vqrdmulhne.s16','vqrdmulhcs.s16','vqrdmulhhs.s16','vqrdmulhcc.s16','vqrdmulhlo.s16','vqrdmulhmi.s16','vqrdmulhpl.s16','vqrdmulhvs.s16','vqrdmulhvc.s16','vqrdmulhhi.s16','vqrdmulhls.s16','vqrdmulhge.s16','vqrdmulhlt.s16','vqrdmulhgt.s16','vqrdmulhle.s16',
2728
+ 'vqrdmulheq.s32','vqrdmulhne.s32','vqrdmulhcs.s32','vqrdmulhhs.s32','vqrdmulhcc.s32','vqrdmulhlo.s32','vqrdmulhmi.s32','vqrdmulhpl.s32','vqrdmulhvs.s32','vqrdmulhvc.s32','vqrdmulhhi.s32','vqrdmulhls.s32','vqrdmulhge.s32','vqrdmulhlt.s32','vqrdmulhgt.s32','vqrdmulhle.s32',
2729
+
2730
+ 'vqrshleq.s8','vqrshlne.s8','vqrshlcs.s8','vqrshlhs.s8','vqrshlcc.s8','vqrshllo.s8','vqrshlmi.s8','vqrshlpl.s8','vqrshlvs.s8','vqrshlvc.s8','vqrshlhi.s8','vqrshlls.s8','vqrshlge.s8','vqrshllt.s8','vqrshlgt.s8','vqrshlle.s8',
2731
+ 'vqrshleq.s16','vqrshlne.s16','vqrshlcs.s16','vqrshlhs.s16','vqrshlcc.s16','vqrshllo.s16','vqrshlmi.s16','vqrshlpl.s16','vqrshlvs.s16','vqrshlvc.s16','vqrshlhi.s16','vqrshlls.s16','vqrshlge.s16','vqrshllt.s16','vqrshlgt.s16','vqrshlle.s16',
2732
+ 'vqrshleq.s32','vqrshlne.s32','vqrshlcs.s32','vqrshlhs.s32','vqrshlcc.s32','vqrshllo.s32','vqrshlmi.s32','vqrshlpl.s32','vqrshlvs.s32','vqrshlvc.s32','vqrshlhi.s32','vqrshlls.s32','vqrshlge.s32','vqrshllt.s32','vqrshlgt.s32','vqrshlle.s32',
2733
+ 'vqrshleq.s64','vqrshlne.s64','vqrshlcs.s64','vqrshlhs.s64','vqrshlcc.s64','vqrshllo.s64','vqrshlmi.s64','vqrshlpl.s64','vqrshlvs.s64','vqrshlvc.s64','vqrshlhi.s64','vqrshlls.s64','vqrshlge.s64','vqrshllt.s64','vqrshlgt.s64','vqrshlle.s64',
2734
+
2735
+ 'vqrshrneq.s16','vqrshrnne.s16','vqrshrncs.s16','vqrshrnhs.s16','vqrshrncc.s16','vqrshrnlo.s16','vqrshrnmi.s16','vqrshrnpl.s16','vqrshrnvs.s16','vqrshrnvc.s16','vqrshrnhi.s16','vqrshrnls.s16','vqrshrnge.s16','vqrshrnlt.s16','vqrshrngt.s16','vqrshrnle.s16',
2736
+ 'vqrshrneq.s32','vqrshrnne.s32','vqrshrncs.s32','vqrshrnhs.s32','vqrshrncc.s32','vqrshrnlo.s32','vqrshrnmi.s32','vqrshrnpl.s32','vqrshrnvs.s32','vqrshrnvc.s32','vqrshrnhi.s32','vqrshrnls.s32','vqrshrnge.s32','vqrshrnlt.s32','vqrshrngt.s32','vqrshrnle.s32',
2737
+ 'vqrshrneq.s64','vqrshrnne.s64','vqrshrncs.s64','vqrshrnhs.s64','vqrshrncc.s64','vqrshrnlo.s64','vqrshrnmi.s64','vqrshrnpl.s64','vqrshrnvs.s64','vqrshrnvc.s64','vqrshrnhi.s64','vqrshrnls.s64','vqrshrnge.s64','vqrshrnlt.s64','vqrshrngt.s64','vqrshrnle.s64',
2738
+
2739
+ 'vqrshruneq.s16','vqrshrunne.s16','vqrshruncs.s16','vqrshrunhs.s16','vqrshruncc.s16','vqrshrunlo.s16','vqrshrunmi.s16','vqrshrunpl.s16','vqrshrunvs.s16','vqrshrunvc.s16','vqrshrunhi.s16','vqrshrunls.s16','vqrshrunge.s16','vqrshrunlt.s16','vqrshrungt.s16','vqrshrunle.s16',
2740
+ 'vqrshruneq.s32','vqrshrunne.s32','vqrshruncs.s32','vqrshrunhs.s32','vqrshruncc.s32','vqrshrunlo.s32','vqrshrunmi.s32','vqrshrunpl.s32','vqrshrunvs.s32','vqrshrunvc.s32','vqrshrunhi.s32','vqrshrunls.s32','vqrshrunge.s32','vqrshrunlt.s32','vqrshrungt.s32','vqrshrunle.s32',
2741
+ 'vqrshruneq.s64','vqrshrunne.s64','vqrshruncs.s64','vqrshrunhs.s64','vqrshruncc.s64','vqrshrunlo.s64','vqrshrunmi.s64','vqrshrunpl.s64','vqrshrunvs.s64','vqrshrunvc.s64','vqrshrunhi.s64','vqrshrunls.s64','vqrshrunge.s64','vqrshrunlt.s64','vqrshrungt.s64','vqrshrunle.s64',
2742
+
2743
+ 'vqshleq.s8','vqshlne.s8','vqshlcs.s8','vqshlhs.s8','vqshlcc.s8','vqshllo.s8','vqshlmi.s8','vqshlpl.s8','vqshlvs.s8','vqshlvc.s8','vqshlhi.s8','vqshlls.s8','vqshlge.s8','vqshllt.s8','vqshlgt.s8','vqshlle.s8',
2744
+ 'vqshleq.s16','vqshlne.s16','vqshlcs.s16','vqshlhs.s16','vqshlcc.s16','vqshllo.s16','vqshlmi.s16','vqshlpl.s16','vqshlvs.s16','vqshlvc.s16','vqshlhi.s16','vqshlls.s16','vqshlge.s16','vqshllt.s16','vqshlgt.s16','vqshlle.s16',
2745
+ 'vqshleq.s32','vqshlne.s32','vqshlcs.s32','vqshlhs.s32','vqshlcc.s32','vqshllo.s32','vqshlmi.s32','vqshlpl.s32','vqshlvs.s32','vqshlvc.s32','vqshlhi.s32','vqshlls.s32','vqshlge.s32','vqshllt.s32','vqshlgt.s32','vqshlle.s32',
2746
+ 'vqshleq.s64','vqshlne.s64','vqshlcs.s64','vqshlhs.s64','vqshlcc.s64','vqshllo.s64','vqshlmi.s64','vqshlpl.s64','vqshlvs.s64','vqshlvc.s64','vqshlhi.s64','vqshlls.s64','vqshlge.s64','vqshllt.s64','vqshlgt.s64','vqshlle.s64',
2747
+
2748
+ 'vqshlueq.s8','vqshlune.s8','vqshlucs.s8','vqshluhs.s8','vqshlucc.s8','vqshlulo.s8','vqshlumi.s8','vqshlupl.s8','vqshluvs.s8','vqshluvc.s8','vqshluhi.s8','vqshluls.s8','vqshluge.s8','vqshlult.s8','vqshlugt.s8','vqshlule.s8',
2749
+ 'vqshlueq.s16','vqshlune.s16','vqshlucs.s16','vqshluhs.s16','vqshlucc.s16','vqshlulo.s16','vqshlumi.s16','vqshlupl.s16','vqshluvs.s16','vqshluvc.s16','vqshluhi.s16','vqshluls.s16','vqshluge.s16','vqshlult.s16','vqshlugt.s16','vqshlule.s16',
2750
+ 'vqshlueq.s32','vqshlune.s32','vqshlucs.s32','vqshluhs.s32','vqshlucc.s32','vqshlulo.s32','vqshlumi.s32','vqshlupl.s32','vqshluvs.s32','vqshluvc.s32','vqshluhi.s32','vqshluls.s32','vqshluge.s32','vqshlult.s32','vqshlugt.s32','vqshlule.s32',
2751
+ 'vqshlueq.s64','vqshlune.s64','vqshlucs.s64','vqshluhs.s64','vqshlucc.s64','vqshlulo.s64','vqshlumi.s64','vqshlupl.s64','vqshluvs.s64','vqshluvc.s64','vqshluhi.s64','vqshluls.s64','vqshluge.s64','vqshlult.s64','vqshlugt.s64','vqshlule.s64',
2752
+
2753
+ 'vqshrneq.s16','vqshrnne.s16','vqshrncs.s16','vqshrnhs.s16','vqshrncc.s16','vqshrnlo.s16','vqshrnmi.s16','vqshrnpl.s16','vqshrnvs.s16','vqshrnvc.s16','vqshrnhi.s16','vqshrnls.s16','vqshrnge.s16','vqshrnlt.s16','vqshrngt.s16','vqshrnle.s16',
2754
+ 'vqshrneq.s32','vqshrnne.s32','vqshrncs.s32','vqshrnhs.s32','vqshrncc.s32','vqshrnlo.s32','vqshrnmi.s32','vqshrnpl.s32','vqshrnvs.s32','vqshrnvc.s32','vqshrnhi.s32','vqshrnls.s32','vqshrnge.s32','vqshrnlt.s32','vqshrngt.s32','vqshrnle.s32',
2755
+ 'vqshrneq.s64','vqshrnne.s64','vqshrncs.s64','vqshrnhs.s64','vqshrncc.s64','vqshrnlo.s64','vqshrnmi.s64','vqshrnpl.s64','vqshrnvs.s64','vqshrnvc.s64','vqshrnhi.s64','vqshrnls.s64','vqshrnge.s64','vqshrnlt.s64','vqshrngt.s64','vqshrnle.s64',
2756
+
2757
+ 'vqshruneq.s16','vqshrunne.s16','vqshruncs.s16','vqshrunhs.s16','vqshruncc.s16','vqshrunlo.s16','vqshrunmi.s16','vqshrunpl.s16','vqshrunvs.s16','vqshrunvc.s16','vqshrunhi.s16','vqshrunls.s16','vqshrunge.s16','vqshrunlt.s16','vqshrungt.s16','vqshrunle.s16',
2758
+ 'vqshruneq.s32','vqshrunne.s32','vqshruncs.s32','vqshrunhs.s32','vqshruncc.s32','vqshrunlo.s32','vqshrunmi.s32','vqshrunpl.s32','vqshrunvs.s32','vqshrunvc.s32','vqshrunhi.s32','vqshrunls.s32','vqshrunge.s32','vqshrunlt.s32','vqshrungt.s32','vqshrunle.s32',
2759
+ 'vqshruneq.s64','vqshrunne.s64','vqshruncs.s64','vqshrunhs.s64','vqshruncc.s64','vqshrunlo.s64','vqshrunmi.s64','vqshrunpl.s64','vqshrunvs.s64','vqshrunvc.s64','vqshrunhi.s64','vqshrunls.s64','vqshrunge.s64','vqshrunlt.s64','vqshrungt.s64','vqshrunle.s64',
2760
+
2761
+ 'vqsubeq.s8','vqsubne.s8','vqsubcs.s8','vqsubhs.s8','vqsubcc.s8','vqsublo.s8','vqsubmi.s8','vqsubpl.s8','vqsubvs.s8','vqsubvc.s8','vqsubhi.s8','vqsubls.s8','vqsubge.s8','vqsublt.s8','vqsubgt.s8','vqsuble.s8',
2762
+ 'vqsubeq.s16','vqsubne.s16','vqsubcs.s16','vqsubhs.s16','vqsubcc.s16','vqsublo.s16','vqsubmi.s16','vqsubpl.s16','vqsubvs.s16','vqsubvc.s16','vqsubhi.s16','vqsubls.s16','vqsubge.s16','vqsublt.s16','vqsubgt.s16','vqsuble.s16',
2763
+ 'vqsubeq.s32','vqsubne.s32','vqsubcs.s32','vqsubhs.s32','vqsubcc.s32','vqsublo.s32','vqsubmi.s32','vqsubpl.s32','vqsubvs.s32','vqsubvc.s32','vqsubhi.s32','vqsubls.s32','vqsubge.s32','vqsublt.s32','vqsubgt.s32','vqsuble.s32',
2764
+ 'vqsubeq.s64','vqsubne.s64','vqsubcs.s64','vqsubhs.s64','vqsubcc.s64','vqsublo.s64','vqsubmi.s64','vqsubpl.s64','vqsubvs.s64','vqsubvc.s64','vqsubhi.s64','vqsubls.s64','vqsubge.s64','vqsublt.s64','vqsubgt.s64','vqsuble.s64',
2765
+
2766
+ 'vrhaddeq.s8','vrhaddne.s8','vrhaddcs.s8','vrhaddhs.s8','vrhaddcc.s8','vrhaddlo.s8','vrhaddmi.s8','vrhaddpl.s8','vrhaddvs.s8','vrhaddvc.s8','vrhaddhi.s8','vrhaddls.s8','vrhaddge.s8','vrhaddlt.s8','vrhaddgt.s8','vrhaddle.s8',
2767
+ 'vrhaddeq.s16','vrhaddne.s16','vrhaddcs.s16','vrhaddhs.s16','vrhaddcc.s16','vrhaddlo.s16','vrhaddmi.s16','vrhaddpl.s16','vrhaddvs.s16','vrhaddvc.s16','vrhaddhi.s16','vrhaddls.s16','vrhaddge.s16','vrhaddlt.s16','vrhaddgt.s16','vrhaddle.s16',
2768
+ 'vrhaddeq.s32','vrhaddne.s32','vrhaddcs.s32','vrhaddhs.s32','vrhaddcc.s32','vrhaddlo.s32','vrhaddmi.s32','vrhaddpl.s32','vrhaddvs.s32','vrhaddvc.s32','vrhaddhi.s32','vrhaddls.s32','vrhaddge.s32','vrhaddlt.s32','vrhaddgt.s32','vrhaddle.s32',
2769
+
2770
+ 'vrshleq.s8','vrshlne.s8','vrshlcs.s8','vrshlhs.s8','vrshlcc.s8','vrshllo.s8','vrshlmi.s8','vrshlpl.s8','vrshlvs.s8','vrshlvc.s8','vrshlhi.s8','vrshlls.s8','vrshlge.s8','vrshllt.s8','vrshlgt.s8','vrshlle.s8',
2771
+ 'vrshleq.s16','vrshlne.s16','vrshlcs.s16','vrshlhs.s16','vrshlcc.s16','vrshllo.s16','vrshlmi.s16','vrshlpl.s16','vrshlvs.s16','vrshlvc.s16','vrshlhi.s16','vrshlls.s16','vrshlge.s16','vrshllt.s16','vrshlgt.s16','vrshlle.s16',
2772
+ 'vrshleq.s32','vrshlne.s32','vrshlcs.s32','vrshlhs.s32','vrshlcc.s32','vrshllo.s32','vrshlmi.s32','vrshlpl.s32','vrshlvs.s32','vrshlvc.s32','vrshlhi.s32','vrshlls.s32','vrshlge.s32','vrshllt.s32','vrshlgt.s32','vrshlle.s32',
2773
+ 'vrshleq.s64','vrshlne.s64','vrshlcs.s64','vrshlhs.s64','vrshlcc.s64','vrshllo.s64','vrshlmi.s64','vrshlpl.s64','vrshlvs.s64','vrshlvc.s64','vrshlhi.s64','vrshlls.s64','vrshlge.s64','vrshllt.s64','vrshlgt.s64','vrshlle.s64',
2774
+
2775
+ 'vrshreq.s8','vrshrne.s8','vrshrcs.s8','vrshrhs.s8','vrshrcc.s8','vrshrlo.s8','vrshrmi.s8','vrshrpl.s8','vrshrvs.s8','vrshrvc.s8','vrshrhi.s8','vrshrls.s8','vrshrge.s8','vrshrlt.s8','vrshrgt.s8','vrshrle.s8',
2776
+ 'vrshreq.s16','vrshrne.s16','vrshrcs.s16','vrshrhs.s16','vrshrcc.s16','vrshrlo.s16','vrshrmi.s16','vrshrpl.s16','vrshrvs.s16','vrshrvc.s16','vrshrhi.s16','vrshrls.s16','vrshrge.s16','vrshrlt.s16','vrshrgt.s16','vrshrle.s16',
2777
+ 'vrshreq.s32','vrshrne.s32','vrshrcs.s32','vrshrhs.s32','vrshrcc.s32','vrshrlo.s32','vrshrmi.s32','vrshrpl.s32','vrshrvs.s32','vrshrvc.s32','vrshrhi.s32','vrshrls.s32','vrshrge.s32','vrshrlt.s32','vrshrgt.s32','vrshrle.s32',
2778
+ 'vrshreq.s64','vrshrne.s64','vrshrcs.s64','vrshrhs.s64','vrshrcc.s64','vrshrlo.s64','vrshrmi.s64','vrshrpl.s64','vrshrvs.s64','vrshrvc.s64','vrshrhi.s64','vrshrls.s64','vrshrge.s64','vrshrlt.s64','vrshrgt.s64','vrshrle.s64',
2779
+
2780
+ 'vrsraeq.s8','vrsrane.s8','vrsracs.s8','vrsrahs.s8','vrsracc.s8','vrsralo.s8','vrsrami.s8','vrsrapl.s8','vrsravs.s8','vrsravc.s8','vrsrahi.s8','vrsrals.s8','vrsrage.s8','vrsralt.s8','vrsragt.s8','vrsrale.s8',
2781
+ 'vrsraeq.s16','vrsrane.s16','vrsracs.s16','vrsrahs.s16','vrsracc.s16','vrsralo.s16','vrsrami.s16','vrsrapl.s16','vrsravs.s16','vrsravc.s16','vrsrahi.s16','vrsrals.s16','vrsrage.s16','vrsralt.s16','vrsragt.s16','vrsrale.s16',
2782
+ 'vrsraeq.s32','vrsrane.s32','vrsracs.s32','vrsrahs.s32','vrsracc.s32','vrsralo.s32','vrsrami.s32','vrsrapl.s32','vrsravs.s32','vrsravc.s32','vrsrahi.s32','vrsrals.s32','vrsrage.s32','vrsralt.s32','vrsragt.s32','vrsrale.s32',
2783
+ 'vrsraeq.s64','vrsrane.s64','vrsracs.s64','vrsrahs.s64','vrsracc.s64','vrsralo.s64','vrsrami.s64','vrsrapl.s64','vrsravs.s64','vrsravc.s64','vrsrahi.s64','vrsrals.s64','vrsrage.s64','vrsralt.s64','vrsragt.s64','vrsrale.s64',
2784
+
2785
+ 'vshleq.s8','vshlne.s8','vshlcs.s8','vshlhs.s8','vshlcc.s8','vshllo.s8','vshlmi.s8','vshlpl.s8','vshlvs.s8','vshlvc.s8','vshlhi.s8','vshlls.s8','vshlge.s8','vshllt.s8','vshlgt.s8','vshlle.s8',
2786
+ 'vshleq.s16','vshlne.s16','vshlcs.s16','vshlhs.s16','vshlcc.s16','vshllo.s16','vshlmi.s16','vshlpl.s16','vshlvs.s16','vshlvc.s16','vshlhi.s16','vshlls.s16','vshlge.s16','vshllt.s16','vshlgt.s16','vshlle.s16',
2787
+ 'vshleq.s32','vshlne.s32','vshlcs.s32','vshlhs.s32','vshlcc.s32','vshllo.s32','vshlmi.s32','vshlpl.s32','vshlvs.s32','vshlvc.s32','vshlhi.s32','vshlls.s32','vshlge.s32','vshllt.s32','vshlgt.s32','vshlle.s32',
2788
+ 'vshleq.s64','vshlne.s64','vshlcs.s64','vshlhs.s64','vshlcc.s64','vshllo.s64','vshlmi.s64','vshlpl.s64','vshlvs.s64','vshlvc.s64','vshlhi.s64','vshlls.s64','vshlge.s64','vshllt.s64','vshlgt.s64','vshlle.s64',
2789
+
2790
+ 'vshlleq.s8','vshllne.s8','vshllcs.s8','vshllhs.s8','vshllcc.s8','vshlllo.s8','vshllmi.s8','vshllpl.s8','vshllvs.s8','vshllvc.s8','vshllhi.s8','vshllls.s8','vshllge.s8','vshlllt.s8','vshllgt.s8','vshllle.s8',
2791
+ 'vshlleq.s16','vshllne.s16','vshllcs.s16','vshllhs.s16','vshllcc.s16','vshlllo.s16','vshllmi.s16','vshllpl.s16','vshllvs.s16','vshllvc.s16','vshllhi.s16','vshllls.s16','vshllge.s16','vshlllt.s16','vshllgt.s16','vshllle.s16',
2792
+ 'vshlleq.s32','vshllne.s32','vshllcs.s32','vshllhs.s32','vshllcc.s32','vshlllo.s32','vshllmi.s32','vshllpl.s32','vshllvs.s32','vshllvc.s32','vshllhi.s32','vshllls.s32','vshllge.s32','vshlllt.s32','vshllgt.s32','vshllle.s32',
2793
+
2794
+ 'vshreq.s8','vshrne.s8','vshrcs.s8','vshrhs.s8','vshrcc.s8','vshrlo.s8','vshrmi.s8','vshrpl.s8','vshrvs.s8','vshrvc.s8','vshrhi.s8','vshrls.s8','vshrge.s8','vshrlt.s8','vshrgt.s8','vshrle.s8',
2795
+ 'vshreq.s16','vshrne.s16','vshrcs.s16','vshrhs.s16','vshrcc.s16','vshrlo.s16','vshrmi.s16','vshrpl.s16','vshrvs.s16','vshrvc.s16','vshrhi.s16','vshrls.s16','vshrge.s16','vshrlt.s16','vshrgt.s16','vshrle.s16',
2796
+ 'vshreq.s32','vshrne.s32','vshrcs.s32','vshrhs.s32','vshrcc.s32','vshrlo.s32','vshrmi.s32','vshrpl.s32','vshrvs.s32','vshrvc.s32','vshrhi.s32','vshrls.s32','vshrge.s32','vshrlt.s32','vshrgt.s32','vshrle.s32',
2797
+ 'vshreq.s64','vshrne.s64','vshrcs.s64','vshrhs.s64','vshrcc.s64','vshrlo.s64','vshrmi.s64','vshrpl.s64','vshrvs.s64','vshrvc.s64','vshrhi.s64','vshrls.s64','vshrge.s64','vshrlt.s64','vshrgt.s64','vshrle.s64',
2798
+
2799
+ 'vsraeq.s8','vsrane.s8','vsracs.s8','vsrahs.s8','vsracc.s8','vsralo.s8','vsrami.s8','vsrapl.s8','vsravs.s8','vsravc.s8','vsrahi.s8','vsrals.s8','vsrage.s8','vsralt.s8','vsragt.s8','vsrale.s8',
2800
+ 'vsraeq.s16','vsrane.s16','vsracs.s16','vsrahs.s16','vsracc.s16','vsralo.s16','vsrami.s16','vsrapl.s16','vsravs.s16','vsravc.s16','vsrahi.s16','vsrals.s16','vsrage.s16','vsralt.s16','vsragt.s16','vsrale.s16',
2801
+ 'vsraeq.s32','vsrane.s32','vsracs.s32','vsrahs.s32','vsracc.s32','vsralo.s32','vsrami.s32','vsrapl.s32','vsravs.s32','vsravc.s32','vsrahi.s32','vsrals.s32','vsrage.s32','vsralt.s32','vsragt.s32','vsrale.s32',
2802
+ 'vsraeq.s64','vsrane.s64','vsracs.s64','vsrahs.s64','vsracc.s64','vsralo.s64','vsrami.s64','vsrapl.s64','vsravs.s64','vsravc.s64','vsrahi.s64','vsrals.s64','vsrage.s64','vsralt.s64','vsragt.s64','vsrale.s64',
2803
+
2804
+ 'vsubleq.s8','vsublne.s8','vsublcs.s8','vsublhs.s8','vsublcc.s8','vsubllo.s8','vsublmi.s8','vsublpl.s8','vsublvs.s8','vsublvc.s8','vsublhi.s8','vsublls.s8','vsublge.s8','vsubllt.s8','vsublgt.s8','vsublle.s8',
2805
+ 'vsubleq.s16','vsublne.s16','vsublcs.s16','vsublhs.s16','vsublcc.s16','vsubllo.s16','vsublmi.s16','vsublpl.s16','vsublvs.s16','vsublvc.s16','vsublhi.s16','vsublls.s16','vsublge.s16','vsubllt.s16','vsublgt.s16','vsublle.s16',
2806
+ 'vsubleq.s32','vsublne.s32','vsublcs.s32','vsublhs.s32','vsublcc.s32','vsubllo.s32','vsublmi.s32','vsublpl.s32','vsublvs.s32','vsublvc.s32','vsublhi.s32','vsublls.s32','vsublge.s32','vsubllt.s32','vsublgt.s32','vsublle.s32',
2807
+
2808
+ 'vsubheq.s8','vsubhne.s8','vsubhcs.s8','vsubhhs.s8','vsubhcc.s8','vsubhlo.s8','vsubhmi.s8','vsubhpl.s8','vsubhvs.s8','vsubhvc.s8','vsubhhi.s8','vsubhls.s8','vsubhge.s8','vsubhlt.s8','vsubhgt.s8','vsubhle.s8',
2809
+ 'vsubheq.s16','vsubhne.s16','vsubhcs.s16','vsubhhs.s16','vsubhcc.s16','vsubhlo.s16','vsubhmi.s16','vsubhpl.s16','vsubhvs.s16','vsubhvc.s16','vsubhhi.s16','vsubhls.s16','vsubhge.s16','vsubhlt.s16','vsubhgt.s16','vsubhle.s16',
2810
+ 'vsubheq.s32','vsubhne.s32','vsubhcs.s32','vsubhhs.s32','vsubhcc.s32','vsubhlo.s32','vsubhmi.s32','vsubhpl.s32','vsubhvs.s32','vsubhvc.s32','vsubhhi.s32','vsubhls.s32','vsubhge.s32','vsubhlt.s32','vsubhgt.s32','vsubhle.s32'
2811
+ ),
2812
+ /* Conditional NEON SIMD Unsigned Integer Instructions */
2813
+ 33 => array(
2814
+ 'vabaeq.u8','vabane.u8','vabacs.u8','vabahs.u8','vabacc.u8','vabalo.u8','vabami.u8','vabapl.u8','vabavs.u8','vabavc.u8','vabahi.u8','vabals.u8','vabage.u8','vabalt.u8','vabagt.u8','vabale.u8',
2815
+ 'vabaeq.u16','vabane.u16','vabacs.u16','vabahs.u16','vabacc.u16','vabalo.u16','vabami.u16','vabapl.u16','vabavs.u16','vabavc.u16','vabahi.u16','vabals.u16','vabage.u16','vabalt.u16','vabagt.u16','vabale.u16',
2816
+ 'vabaeq.u32','vabane.u32','vabacs.u32','vabahs.u32','vabacc.u32','vabalo.u32','vabami.u32','vabapl.u32','vabavs.u32','vabavc.u32','vabahi.u32','vabals.u32','vabage.u32','vabalt.u32','vabagt.u32','vabale.u32',
2817
+
2818
+ 'vabaleq.u8','vabalne.u8','vabalcs.u8','vabalhs.u8','vabalcc.u8','vaballo.u8','vabalmi.u8','vabalpl.u8','vabalvs.u8','vabalvc.u8','vabalhi.u8','vaballs.u8','vabalge.u8','vaballt.u8','vabalgt.u8','vaballe.u8',
2819
+ 'vabaleq.u16','vabalne.u16','vabalcs.u16','vabalhs.u16','vabalcc.u16','vaballo.u16','vabalmi.u16','vabalpl.u16','vabalvs.u16','vabalvc.u16','vabalhi.u16','vaballs.u16','vabalge.u16','vaballt.u16','vabalgt.u16','vaballe.u16',
2820
+ 'vabaleq.u32','vabalne.u32','vabalcs.u32','vabalhs.u32','vabalcc.u32','vaballo.u32','vabalmi.u32','vabalpl.u32','vabalvs.u32','vabalvc.u32','vabalhi.u32','vaballs.u32','vabalge.u32','vaballt.u32','vabalgt.u32','vaballe.u32',
2821
+
2822
+ 'vabdeq.u8','vabdne.u8','vabdcs.u8','vabdhs.u8','vabdcc.u8','vabdlo.u8','vabdmi.u8','vabdpl.u8','vabdvs.u8','vabdvc.u8','vabdhi.u8','vabdls.u8','vabdge.u8','vabdlt.u8','vabdgt.u8','vabdle.u8',
2823
+ 'vabdeq.u16','vabdne.u16','vabdcs.u16','vabdhs.u16','vabdcc.u16','vabdlo.u16','vabdmi.u16','vabdpl.u16','vabdvs.u16','vabdvc.u16','vabdhi.u16','vabdls.u16','vabdge.u16','vabdlt.u16','vabdgt.u16','vabdle.u16',
2824
+ 'vabdeq.u32','vabdne.u32','vabdcs.u32','vabdhs.u32','vabdcc.u32','vabdlo.u32','vabdmi.u32','vabdpl.u32','vabdvs.u32','vabdvc.u32','vabdhi.u32','vabdls.u32','vabdge.u32','vabdlt.u32','vabdgt.u32','vabdle.u32',
2825
+
2826
+ 'vaddleq.u8','vaddlne.u8','vaddlcs.u8','vaddlhs.u8','vaddlcc.u8','vaddllo.u8','vaddlmi.u8','vaddlpl.u8','vaddlvs.u8','vaddlvc.u8','vaddlhi.u8','vaddlls.u8','vaddlge.u8','vaddllt.u8','vaddlgt.u8','vaddlle.u8',
2827
+ 'vaddleq.u16','vaddlne.u16','vaddlcs.u16','vaddlhs.u16','vaddlcc.u16','vaddllo.u16','vaddlmi.u16','vaddlpl.u16','vaddlvs.u16','vaddlvc.u16','vaddlhi.u16','vaddlls.u16','vaddlge.u16','vaddllt.u16','vaddlgt.u16','vaddlle.u16',
2828
+ 'vaddleq.u32','vaddlne.u32','vaddlcs.u32','vaddlhs.u32','vaddlcc.u32','vaddllo.u32','vaddlmi.u32','vaddlpl.u32','vaddlvs.u32','vaddlvc.u32','vaddlhi.u32','vaddlls.u32','vaddlge.u32','vaddllt.u32','vaddlgt.u32','vaddlle.u32',
2829
+
2830
+ 'vsubleq.u8','vsublne.u8','vsublcs.u8','vsublhs.u8','vsublcc.u8','vsubllo.u8','vsublmi.u8','vsublpl.u8','vsublvs.u8','vsublvc.u8','vsublhi.u8','vsublls.u8','vsublge.u8','vsubllt.u8','vsublgt.u8','vsublle.u8',
2831
+ 'vsubleq.u16','vsublne.u16','vsublcs.u16','vsublhs.u16','vsublcc.u16','vsubllo.u16','vsublmi.u16','vsublpl.u16','vsublvs.u16','vsublvc.u16','vsublhi.u16','vsublls.u16','vsublge.u16','vsubllt.u16','vsublgt.u16','vsublle.u16',
2832
+ 'vsubleq.u32','vsublne.u32','vsublcs.u32','vsublhs.u32','vsublcc.u32','vsubllo.u32','vsublmi.u32','vsublpl.u32','vsublvs.u32','vsublvc.u32','vsublhi.u32','vsublls.u32','vsublge.u32','vsubllt.u32','vsublgt.u32','vsublle.u32',
2833
+
2834
+ 'vaddweq.u8','vaddwne.u8','vaddwcs.u8','vaddwhs.u8','vaddwcc.u8','vaddwlo.u8','vaddwmi.u8','vaddwpl.u8','vaddwvs.u8','vaddwvc.u8','vaddwhi.u8','vaddwls.u8','vaddwge.u8','vaddwlt.u8','vaddwgt.u8','vaddwle.u8',
2835
+ 'vaddweq.u16','vaddwne.u16','vaddwcs.u16','vaddwhs.u16','vaddwcc.u16','vaddwlo.u16','vaddwmi.u16','vaddwpl.u16','vaddwvs.u16','vaddwvc.u16','vaddwhi.u16','vaddwls.u16','vaddwge.u16','vaddwlt.u16','vaddwgt.u16','vaddwle.u16',
2836
+ 'vaddweq.u32','vaddwne.u32','vaddwcs.u32','vaddwhs.u32','vaddwcc.u32','vaddwlo.u32','vaddwmi.u32','vaddwpl.u32','vaddwvs.u32','vaddwvc.u32','vaddwhi.u32','vaddwls.u32','vaddwge.u32','vaddwlt.u32','vaddwgt.u32','vaddwle.u32',
2837
+
2838
+ 'vsubheq.u8','vsubhne.u8','vsubhcs.u8','vsubhhs.u8','vsubhcc.u8','vsubhlo.u8','vsubhmi.u8','vsubhpl.u8','vsubhvs.u8','vsubhvc.u8','vsubhhi.u8','vsubhls.u8','vsubhge.u8','vsubhlt.u8','vsubhgt.u8','vsubhle.u8',
2839
+ 'vsubheq.u16','vsubhne.u16','vsubhcs.u16','vsubhhs.u16','vsubhcc.u16','vsubhlo.u16','vsubhmi.u16','vsubhpl.u16','vsubhvs.u16','vsubhvc.u16','vsubhhi.u16','vsubhls.u16','vsubhge.u16','vsubhlt.u16','vsubhgt.u16','vsubhle.u16',
2840
+ 'vsubheq.u32','vsubhne.u32','vsubhcs.u32','vsubhhs.u32','vsubhcc.u32','vsubhlo.u32','vsubhmi.u32','vsubhpl.u32','vsubhvs.u32','vsubhvc.u32','vsubhhi.u32','vsubhls.u32','vsubhge.u32','vsubhlt.u32','vsubhgt.u32','vsubhle.u32',
2841
+
2842
+ 'vhaddeq.u8','vhaddne.u8','vhaddcs.u8','vhaddhs.u8','vhaddcc.u8','vhaddlo.u8','vhaddmi.u8','vhaddpl.u8','vhaddvs.u8','vhaddvc.u8','vhaddhi.u8','vhaddls.u8','vhaddge.u8','vhaddlt.u8','vhaddgt.u8','vhaddle.u8',
2843
+ 'vhaddeq.u16','vhaddne.u16','vhaddcs.u16','vhaddhs.u16','vhaddcc.u16','vhaddlo.u16','vhaddmi.u16','vhaddpl.u16','vhaddvs.u16','vhaddvc.u16','vhaddhi.u16','vhaddls.u16','vhaddge.u16','vhaddlt.u16','vhaddgt.u16','vhaddle.u16',
2844
+ 'vhaddeq.u32','vhaddne.u32','vhaddcs.u32','vhaddhs.u32','vhaddcc.u32','vhaddlo.u32','vhaddmi.u32','vhaddpl.u32','vhaddvs.u32','vhaddvc.u32','vhaddhi.u32','vhaddls.u32','vhaddge.u32','vhaddlt.u32','vhaddgt.u32','vhaddle.u32',
2845
+
2846
+ 'vhsubeq.u8','vhsubne.u8','vhsubcs.u8','vhsubhs.u8','vhsubcc.u8','vhsublo.u8','vhsubmi.u8','vhsubpl.u8','vhsubvs.u8','vhsubvc.u8','vhsubhi.u8','vhsubls.u8','vhsubge.u8','vhsublt.u8','vhsubgt.u8','vhsuble.u8',
2847
+ 'vhsubeq.u16','vhsubne.u16','vhsubcs.u16','vhsubhs.u16','vhsubcc.u16','vhsublo.u16','vhsubmi.u16','vhsubpl.u16','vhsubvs.u16','vhsubvc.u16','vhsubhi.u16','vhsubls.u16','vhsubge.u16','vhsublt.u16','vhsubgt.u16','vhsuble.u16',
2848
+ 'vhsubeq.u32','vhsubne.u32','vhsubcs.u32','vhsubhs.u32','vhsubcc.u32','vhsublo.u32','vhsubmi.u32','vhsubpl.u32','vhsubvs.u32','vhsubvc.u32','vhsubhi.u32','vhsubls.u32','vhsubge.u32','vhsublt.u32','vhsubgt.u32','vhsuble.u32',
2849
+
2850
+ 'vpadaleq.u8','vpadalne.u8','vpadalcs.u8','vpadalhs.u8','vpadalcc.u8','vpadallo.u8','vpadalmi.u8','vpadalpl.u8','vpadalvs.u8','vpadalvc.u8','vpadalhi.u8','vpadalls.u8','vpadalge.u8','vpadallt.u8','vpadalgt.u8','vpadalle.u8',
2851
+ 'vpadaleq.u16','vpadalne.u16','vpadalcs.u16','vpadalhs.u16','vpadalcc.u16','vpadallo.u16','vpadalmi.u16','vpadalpl.u16','vpadalvs.u16','vpadalvc.u16','vpadalhi.u16','vpadalls.u16','vpadalge.u16','vpadallt.u16','vpadalgt.u16','vpadalle.u16',
2852
+ 'vpadaleq.u32','vpadalne.u32','vpadalcs.u32','vpadalhs.u32','vpadalcc.u32','vpadallo.u32','vpadalmi.u32','vpadalpl.u32','vpadalvs.u32','vpadalvc.u32','vpadalhi.u32','vpadalls.u32','vpadalge.u32','vpadallt.u32','vpadalgt.u32','vpadalle.u32',
2853
+
2854
+ 'vpaddleq.u8','vpaddlne.u8','vpaddlcs.u8','vpaddlhs.u8','vpaddlcc.u8','vpaddllo.u8','vpaddlmi.u8','vpaddlpl.u8','vpaddlvs.u8','vpaddlvc.u8','vpaddlhi.u8','vpaddlls.u8','vpaddlge.u8','vpaddllt.u8','vpaddlgt.u8','vpaddlle.u8',
2855
+ 'vpaddleq.u16','vpaddlne.u16','vpaddlcs.u16','vpaddlhs.u16','vpaddlcc.u16','vpaddllo.u16','vpaddlmi.u16','vpaddlpl.u16','vpaddlvs.u16','vpaddlvc.u16','vpaddlhi.u16','vpaddlls.u16','vpaddlge.u16','vpaddllt.u16','vpaddlgt.u16','vpaddlle.u16',
2856
+ 'vpaddleq.u32','vpaddlne.u32','vpaddlcs.u32','vpaddlhs.u32','vpaddlcc.u32','vpaddllo.u32','vpaddlmi.u32','vpaddlpl.u32','vpaddlvs.u32','vpaddlvc.u32','vpaddlhi.u32','vpaddlls.u32','vpaddlge.u32','vpaddllt.u32','vpaddlgt.u32','vpaddlle.u32',
2857
+
2858
+ 'vcgeeq.u8','vcgene.u8','vcgecs.u8','vcgehs.u8','vcgecc.u8','vcgelo.u8','vcgemi.u8','vcgepl.u8','vcgevs.u8','vcgevc.u8','vcgehi.u8','vcgels.u8','vcgege.u8','vcgelt.u8','vcgegt.u8','vcgele.u8',
2859
+ 'vcgeeq.u16','vcgene.u16','vcgecs.u16','vcgehs.u16','vcgecc.u16','vcgelo.u16','vcgemi.u16','vcgepl.u16','vcgevs.u16','vcgevc.u16','vcgehi.u16','vcgels.u16','vcgege.u16','vcgelt.u16','vcgegt.u16','vcgele.u16',
2860
+ 'vcgeeq.u32','vcgene.u32','vcgecs.u32','vcgehs.u32','vcgecc.u32','vcgelo.u32','vcgemi.u32','vcgepl.u32','vcgevs.u32','vcgevc.u32','vcgehi.u32','vcgels.u32','vcgege.u32','vcgelt.u32','vcgegt.u32','vcgele.u32',
2861
+
2862
+ 'vcleeq.u8','vclene.u8','vclecs.u8','vclehs.u8','vclecc.u8','vclelo.u8','vclemi.u8','vclepl.u8','vclevs.u8','vclevc.u8','vclehi.u8','vclels.u8','vclege.u8','vclelt.u8','vclegt.u8','vclele.u8',
2863
+ 'vcleeq.u16','vclene.u16','vclecs.u16','vclehs.u16','vclecc.u16','vclelo.u16','vclemi.u16','vclepl.u16','vclevs.u16','vclevc.u16','vclehi.u16','vclels.u16','vclege.u16','vclelt.u16','vclegt.u16','vclele.u16',
2864
+ 'vcleeq.u32','vclene.u32','vclecs.u32','vclehs.u32','vclecc.u32','vclelo.u32','vclemi.u32','vclepl.u32','vclevs.u32','vclevc.u32','vclehi.u32','vclels.u32','vclege.u32','vclelt.u32','vclegt.u32','vclele.u32',
2865
+
2866
+ 'vcgteq.u8','vcgtne.u8','vcgtcs.u8','vcgths.u8','vcgtcc.u8','vcgtlo.u8','vcgtmi.u8','vcgtpl.u8','vcgtvs.u8','vcgtvc.u8','vcgthi.u8','vcgtls.u8','vcgtge.u8','vcgtlt.u8','vcgtgt.u8','vcgtle.u8',
2867
+ 'vcgteq.u16','vcgtne.u16','vcgtcs.u16','vcgths.u16','vcgtcc.u16','vcgtlo.u16','vcgtmi.u16','vcgtpl.u16','vcgtvs.u16','vcgtvc.u16','vcgthi.u16','vcgtls.u16','vcgtge.u16','vcgtlt.u16','vcgtgt.u16','vcgtle.u16',
2868
+ 'vcgteq.u32','vcgtne.u32','vcgtcs.u32','vcgths.u32','vcgtcc.u32','vcgtlo.u32','vcgtmi.u32','vcgtpl.u32','vcgtvs.u32','vcgtvc.u32','vcgthi.u32','vcgtls.u32','vcgtge.u32','vcgtlt.u32','vcgtgt.u32','vcgtle.u32',
2869
+
2870
+ 'vclteq.u8','vcltne.u8','vcltcs.u8','vclths.u8','vcltcc.u8','vcltlo.u8','vcltmi.u8','vcltpl.u8','vcltvs.u8','vcltvc.u8','vclthi.u8','vcltls.u8','vcltge.u8','vcltlt.u8','vcltgt.u8','vcltle.u8',
2871
+ 'vclteq.u16','vcltne.u16','vcltcs.u16','vclths.u16','vcltcc.u16','vcltlo.u16','vcltmi.u16','vcltpl.u16','vcltvs.u16','vcltvc.u16','vclthi.u16','vcltls.u16','vcltge.u16','vcltlt.u16','vcltgt.u16','vcltle.u16',
2872
+ 'vclteq.u32','vcltne.u32','vcltcs.u32','vclths.u32','vcltcc.u32','vcltlo.u32','vcltmi.u32','vcltpl.u32','vcltvs.u32','vcltvc.u32','vclthi.u32','vcltls.u32','vcltge.u32','vcltlt.u32','vcltgt.u32','vcltle.u32',
2873
+
2874
+ 'vmaxeq.u8','vmaxne.u8','vmaxcs.u8','vmaxhs.u8','vmaxcc.u8','vmaxlo.u8','vmaxmi.u8','vmaxpl.u8','vmaxvs.u8','vmaxvc.u8','vmaxhi.u8','vmaxls.u8','vmaxge.u8','vmaxlt.u8','vmaxgt.u8','vmaxle.u8',
2875
+ 'vmaxeq.u16','vmaxne.u16','vmaxcs.u16','vmaxhs.u16','vmaxcc.u16','vmaxlo.u16','vmaxmi.u16','vmaxpl.u16','vmaxvs.u16','vmaxvc.u16','vmaxhi.u16','vmaxls.u16','vmaxge.u16','vmaxlt.u16','vmaxgt.u16','vmaxle.u16',
2876
+ 'vmaxeq.u32','vmaxne.u32','vmaxcs.u32','vmaxhs.u32','vmaxcc.u32','vmaxlo.u32','vmaxmi.u32','vmaxpl.u32','vmaxvs.u32','vmaxvc.u32','vmaxhi.u32','vmaxls.u32','vmaxge.u32','vmaxlt.u32','vmaxgt.u32','vmaxle.u32',
2877
+
2878
+ 'vmineq.u8','vminne.u8','vmincs.u8','vminhs.u8','vmincc.u8','vminlo.u8','vminmi.u8','vminpl.u8','vminvs.u8','vminvc.u8','vminhi.u8','vminls.u8','vminge.u8','vminlt.u8','vmingt.u8','vminle.u8',
2879
+ 'vmineq.u16','vminne.u16','vmincs.u16','vminhs.u16','vmincc.u16','vminlo.u16','vminmi.u16','vminpl.u16','vminvs.u16','vminvc.u16','vminhi.u16','vminls.u16','vminge.u16','vminlt.u16','vmingt.u16','vminle.u16',
2880
+ 'vmineq.u32','vminne.u32','vmincs.u32','vminhs.u32','vmincc.u32','vminlo.u32','vminmi.u32','vminpl.u32','vminvs.u32','vminvc.u32','vminhi.u32','vminls.u32','vminge.u32','vminlt.u32','vmingt.u32','vminle.u32',
2881
+
2882
+ 'vmlaleq.u8','vmlalne.u8','vmlalcs.u8','vmlalhs.u8','vmlalcc.u8','vmlallo.u8','vmlalmi.u8','vmlalpl.u8','vmlalvs.u8','vmlalvc.u8','vmlalhi.u8','vmlalls.u8','vmlalge.u8','vmlallt.u8','vmlalgt.u8','vmlalle.u8',
2883
+ 'vmlaleq.u16','vmlalne.u16','vmlalcs.u16','vmlalhs.u16','vmlalcc.u16','vmlallo.u16','vmlalmi.u16','vmlalpl.u16','vmlalvs.u16','vmlalvc.u16','vmlalhi.u16','vmlalls.u16','vmlalge.u16','vmlallt.u16','vmlalgt.u16','vmlalle.u16',
2884
+ 'vmlaleq.u32','vmlalne.u32','vmlalcs.u32','vmlalhs.u32','vmlalcc.u32','vmlallo.u32','vmlalmi.u32','vmlalpl.u32','vmlalvs.u32','vmlalvc.u32','vmlalhi.u32','vmlalls.u32','vmlalge.u32','vmlallt.u32','vmlalgt.u32','vmlalle.u32',
2885
+
2886
+ 'vmlsleq.u8','vmlslne.u8','vmlslcs.u8','vmlslhs.u8','vmlslcc.u8','vmlsllo.u8','vmlslmi.u8','vmlslpl.u8','vmlslvs.u8','vmlslvc.u8','vmlslhi.u8','vmlslls.u8','vmlslge.u8','vmlsllt.u8','vmlslgt.u8','vmlslle.u8',
2887
+ 'vmlsleq.u16','vmlslne.u16','vmlslcs.u16','vmlslhs.u16','vmlslcc.u16','vmlsllo.u16','vmlslmi.u16','vmlslpl.u16','vmlslvs.u16','vmlslvc.u16','vmlslhi.u16','vmlslls.u16','vmlslge.u16','vmlsllt.u16','vmlslgt.u16','vmlslle.u16',
2888
+ 'vmlsleq.u32','vmlslne.u32','vmlslcs.u32','vmlslhs.u32','vmlslcc.u32','vmlsllo.u32','vmlslmi.u32','vmlslpl.u32','vmlslvs.u32','vmlslvc.u32','vmlslhi.u32','vmlslls.u32','vmlslge.u32','vmlsllt.u32','vmlslgt.u32','vmlslle.u32',
2889
+
2890
+ 'vmulleq.u8','vmullne.u8','vmullcs.u8','vmullhs.u8','vmullcc.u8','vmulllo.u8','vmullmi.u8','vmullpl.u8','vmullvs.u8','vmullvc.u8','vmullhi.u8','vmullls.u8','vmullge.u8','vmulllt.u8','vmullgt.u8','vmullle.u8',
2891
+ 'vmulleq.u16','vmullne.u16','vmullcs.u16','vmullhs.u16','vmullcc.u16','vmulllo.u16','vmullmi.u16','vmullpl.u16','vmullvs.u16','vmullvc.u16','vmullhi.u16','vmullls.u16','vmullge.u16','vmulllt.u16','vmullgt.u16','vmullle.u16',
2892
+ 'vmulleq.u32','vmullne.u32','vmullcs.u32','vmullhs.u32','vmullcc.u32','vmulllo.u32','vmullmi.u32','vmullpl.u32','vmullvs.u32','vmullvc.u32','vmullhi.u32','vmullls.u32','vmullge.u32','vmulllt.u32','vmullgt.u32','vmullle.u32',
2893
+
2894
+ 'vmovleq.u8','vmovlne.u8','vmovlcs.u8','vmovlhs.u8','vmovlcc.u8','vmovllo.u8','vmovlmi.u8','vmovlpl.u8','vmovlvs.u8','vmovlvc.u8','vmovlhi.u8','vmovlls.u8','vmovlge.u8','vmovllt.u8','vmovlgt.u8','vmovlle.u8',
2895
+ 'vmovleq.u16','vmovlne.u16','vmovlcs.u16','vmovlhs.u16','vmovlcc.u16','vmovllo.u16','vmovlmi.u16','vmovlpl.u16','vmovlvs.u16','vmovlvc.u16','vmovlhi.u16','vmovlls.u16','vmovlge.u16','vmovllt.u16','vmovlgt.u16','vmovlle.u16',
2896
+ 'vmovleq.u32','vmovlne.u32','vmovlcs.u32','vmovlhs.u32','vmovlcc.u32','vmovllo.u32','vmovlmi.u32','vmovlpl.u32','vmovlvs.u32','vmovlvc.u32','vmovlhi.u32','vmovlls.u32','vmovlge.u32','vmovllt.u32','vmovlgt.u32','vmovlle.u32',
2897
+
2898
+ 'vshleq.u8','vshlne.u8','vshlcs.u8','vshlhs.u8','vshlcc.u8','vshllo.u8','vshlmi.u8','vshlpl.u8','vshlvs.u8','vshlvc.u8','vshlhi.u8','vshlls.u8','vshlge.u8','vshllt.u8','vshlgt.u8','vshlle.u8',
2899
+ 'vshleq.u16','vshlne.u16','vshlcs.u16','vshlhs.u16','vshlcc.u16','vshllo.u16','vshlmi.u16','vshlpl.u16','vshlvs.u16','vshlvc.u16','vshlhi.u16','vshlls.u16','vshlge.u16','vshllt.u16','vshlgt.u16','vshlle.u16',
2900
+ 'vshleq.u32','vshlne.u32','vshlcs.u32','vshlhs.u32','vshlcc.u32','vshllo.u32','vshlmi.u32','vshlpl.u32','vshlvs.u32','vshlvc.u32','vshlhi.u32','vshlls.u32','vshlge.u32','vshllt.u32','vshlgt.u32','vshlle.u32',
2901
+ 'vshleq.u64','vshlne.u64','vshlcs.u64','vshlhs.u64','vshlcc.u64','vshllo.u64','vshlmi.u64','vshlpl.u64','vshlvs.u64','vshlvc.u64','vshlhi.u64','vshlls.u64','vshlge.u64','vshllt.u64','vshlgt.u64','vshlle.u64',
2902
+
2903
+ 'vshlleq.u8','vshllne.u8','vshllcs.u8','vshllhs.u8','vshllcc.u8','vshlllo.u8','vshllmi.u8','vshllpl.u8','vshllvs.u8','vshllvc.u8','vshllhi.u8','vshllls.u8','vshllge.u8','vshlllt.u8','vshllgt.u8','vshllle.u8',
2904
+ 'vshlleq.u16','vshllne.u16','vshllcs.u16','vshllhs.u16','vshllcc.u16','vshlllo.u16','vshllmi.u16','vshllpl.u16','vshllvs.u16','vshllvc.u16','vshllhi.u16','vshllls.u16','vshllge.u16','vshlllt.u16','vshllgt.u16','vshllle.u16',
2905
+ 'vshlleq.u32','vshllne.u32','vshllcs.u32','vshllhs.u32','vshllcc.u32','vshlllo.u32','vshllmi.u32','vshllpl.u32','vshllvs.u32','vshllvc.u32','vshllhi.u32','vshllls.u32','vshllge.u32','vshlllt.u32','vshllgt.u32','vshllle.u32',
2906
+
2907
+ 'vshreq.u8','vshrne.u8','vshrcs.u8','vshrhs.u8','vshrcc.u8','vshrlo.u8','vshrmi.u8','vshrpl.u8','vshrvs.u8','vshrvc.u8','vshrhi.u8','vshrls.u8','vshrge.u8','vshrlt.u8','vshrgt.u8','vshrle.u8',
2908
+ 'vshreq.u16','vshrne.u16','vshrcs.u16','vshrhs.u16','vshrcc.u16','vshrlo.u16','vshrmi.u16','vshrpl.u16','vshrvs.u16','vshrvc.u16','vshrhi.u16','vshrls.u16','vshrge.u16','vshrlt.u16','vshrgt.u16','vshrle.u16',
2909
+ 'vshreq.u32','vshrne.u32','vshrcs.u32','vshrhs.u32','vshrcc.u32','vshrlo.u32','vshrmi.u32','vshrpl.u32','vshrvs.u32','vshrvc.u32','vshrhi.u32','vshrls.u32','vshrge.u32','vshrlt.u32','vshrgt.u32','vshrle.u32',
2910
+ 'vshreq.u64','vshrne.u64','vshrcs.u64','vshrhs.u64','vshrcc.u64','vshrlo.u64','vshrmi.u64','vshrpl.u64','vshrvs.u64','vshrvc.u64','vshrhi.u64','vshrls.u64','vshrge.u64','vshrlt.u64','vshrgt.u64','vshrle.u64',
2911
+
2912
+ 'vsraeq.u8','vsrane.u8','vsracs.u8','vsrahs.u8','vsracc.u8','vsralo.u8','vsrami.u8','vsrapl.u8','vsravs.u8','vsravc.u8','vsrahi.u8','vsrals.u8','vsrage.u8','vsralt.u8','vsragt.u8','vsrale.u8',
2913
+ 'vsraeq.u16','vsrane.u16','vsracs.u16','vsrahs.u16','vsracc.u16','vsralo.u16','vsrami.u16','vsrapl.u16','vsravs.u16','vsravc.u16','vsrahi.u16','vsrals.u16','vsrage.u16','vsralt.u16','vsragt.u16','vsrale.u16',
2914
+ 'vsraeq.u32','vsrane.u32','vsracs.u32','vsrahs.u32','vsracc.u32','vsralo.u32','vsrami.u32','vsrapl.u32','vsravs.u32','vsravc.u32','vsrahi.u32','vsrals.u32','vsrage.u32','vsralt.u32','vsragt.u32','vsrale.u32',
2915
+ 'vsraeq.u64','vsrane.u64','vsracs.u64','vsrahs.u64','vsracc.u64','vsralo.u64','vsrami.u64','vsrapl.u64','vsravs.u64','vsravc.u64','vsrahi.u64','vsrals.u64','vsrage.u64','vsralt.u64','vsragt.u64','vsrale.u64',
2916
+
2917
+ 'vpmaxeq.u8','vpmaxne.u8','vpmaxcs.u8','vpmaxhs.u8','vpmaxcc.u8','vpmaxlo.u8','vpmaxmi.u8','vpmaxpl.u8','vpmaxvs.u8','vpmaxvc.u8','vpmaxhi.u8','vpmaxls.u8','vpmaxge.u8','vpmaxlt.u8','vpmaxgt.u8','vpmaxle.u8',
2918
+ 'vpmaxeq.u16','vpmaxne.u16','vpmaxcs.u16','vpmaxhs.u16','vpmaxcc.u16','vpmaxlo.u16','vpmaxmi.u16','vpmaxpl.u16','vpmaxvs.u16','vpmaxvc.u16','vpmaxhi.u16','vpmaxls.u16','vpmaxge.u16','vpmaxlt.u16','vpmaxgt.u16','vpmaxle.u16',
2919
+ 'vpmaxeq.u32','vpmaxne.u32','vpmaxcs.u32','vpmaxhs.u32','vpmaxcc.u32','vpmaxlo.u32','vpmaxmi.u32','vpmaxpl.u32','vpmaxvs.u32','vpmaxvc.u32','vpmaxhi.u32','vpmaxls.u32','vpmaxge.u32','vpmaxlt.u32','vpmaxgt.u32','vpmaxle.u32',
2920
+
2921
+ 'vpmineq.u8','vpminne.u8','vpmincs.u8','vpminhs.u8','vpmincc.u8','vpminlo.u8','vpminmi.u8','vpminpl.u8','vpminvs.u8','vpminvc.u8','vpminhi.u8','vpminls.u8','vpminge.u8','vpminlt.u8','vpmingt.u8','vpminle.u8',
2922
+ 'vpmineq.u16','vpminne.u16','vpmincs.u16','vpminhs.u16','vpmincc.u16','vpminlo.u16','vpminmi.u16','vpminpl.u16','vpminvs.u16','vpminvc.u16','vpminhi.u16','vpminls.u16','vpminge.u16','vpminlt.u16','vpmingt.u16','vpminle.u16',
2923
+ 'vpmineq.u32','vpminne.u32','vpmincs.u32','vpminhs.u32','vpmincc.u32','vpminlo.u32','vpminmi.u32','vpminpl.u32','vpminvs.u32','vpminvc.u32','vpminhi.u32','vpminls.u32','vpminge.u32','vpminlt.u32','vpmingt.u32','vpminle.u32',
2924
+
2925
+ 'vqaddeq.u8','vqaddne.u8','vqaddcs.u8','vqaddhs.u8','vqaddcc.u8','vqaddlo.u8','vqaddmi.u8','vqaddpl.u8','vqaddvs.u8','vqaddvc.u8','vqaddhi.u8','vqaddls.u8','vqaddge.u8','vqaddlt.u8','vqaddgt.u8','vqaddle.u8',
2926
+ 'vqaddeq.u16','vqaddne.u16','vqaddcs.u16','vqaddhs.u16','vqaddcc.u16','vqaddlo.u16','vqaddmi.u16','vqaddpl.u16','vqaddvs.u16','vqaddvc.u16','vqaddhi.u16','vqaddls.u16','vqaddge.u16','vqaddlt.u16','vqaddgt.u16','vqaddle.u16',
2927
+ 'vqaddeq.u32','vqaddne.u32','vqaddcs.u32','vqaddhs.u32','vqaddcc.u32','vqaddlo.u32','vqaddmi.u32','vqaddpl.u32','vqaddvs.u32','vqaddvc.u32','vqaddhi.u32','vqaddls.u32','vqaddge.u32','vqaddlt.u32','vqaddgt.u32','vqaddle.u32',
2928
+ 'vqaddeq.u64','vqaddne.u64','vqaddcs.u64','vqaddhs.u64','vqaddcc.u64','vqaddlo.u64','vqaddmi.u64','vqaddpl.u64','vqaddvs.u64','vqaddvc.u64','vqaddhi.u64','vqaddls.u64','vqaddge.u64','vqaddlt.u64','vqaddgt.u64','vqaddle.u64',
2929
+
2930
+ 'vqsubeq.u8','vqsubne.u8','vqsubcs.u8','vqsubhs.u8','vqsubcc.u8','vqsublo.u8','vqsubmi.u8','vqsubpl.u8','vqsubvs.u8','vqsubvc.u8','vqsubhi.u8','vqsubls.u8','vqsubge.u8','vqsublt.u8','vqsubgt.u8','vqsuble.u8',
2931
+ 'vqsubeq.u16','vqsubne.u16','vqsubcs.u16','vqsubhs.u16','vqsubcc.u16','vqsublo.u16','vqsubmi.u16','vqsubpl.u16','vqsubvs.u16','vqsubvc.u16','vqsubhi.u16','vqsubls.u16','vqsubge.u16','vqsublt.u16','vqsubgt.u16','vqsuble.u16',
2932
+ 'vqsubeq.u32','vqsubne.u32','vqsubcs.u32','vqsubhs.u32','vqsubcc.u32','vqsublo.u32','vqsubmi.u32','vqsubpl.u32','vqsubvs.u32','vqsubvc.u32','vqsubhi.u32','vqsubls.u32','vqsubge.u32','vqsublt.u32','vqsubgt.u32','vqsuble.u32',
2933
+ 'vqsubeq.u64','vqsubne.u64','vqsubcs.u64','vqsubhs.u64','vqsubcc.u64','vqsublo.u64','vqsubmi.u64','vqsubpl.u64','vqsubvs.u64','vqsubvc.u64','vqsubhi.u64','vqsubls.u64','vqsubge.u64','vqsublt.u64','vqsubgt.u64','vqsuble.u64',
2934
+
2935
+ 'vqmovneq.u16','vqmovnne.u16','vqmovncs.u16','vqmovnhs.u16','vqmovncc.u16','vqmovnlo.u16','vqmovnmi.u16','vqmovnpl.u16','vqmovnvs.u16','vqmovnvc.u16','vqmovnhi.u16','vqmovnls.u16','vqmovnge.u16','vqmovnlt.u16','vqmovngt.u16','vqmovnle.u16',
2936
+ 'vqmovneq.u32','vqmovnne.u32','vqmovncs.u32','vqmovnhs.u32','vqmovncc.u32','vqmovnlo.u32','vqmovnmi.u32','vqmovnpl.u32','vqmovnvs.u32','vqmovnvc.u32','vqmovnhi.u32','vqmovnls.u32','vqmovnge.u32','vqmovnlt.u32','vqmovngt.u32','vqmovnle.u32',
2937
+ 'vqmovneq.u64','vqmovnne.u64','vqmovncs.u64','vqmovnhs.u64','vqmovncc.u64','vqmovnlo.u64','vqmovnmi.u64','vqmovnpl.u64','vqmovnvs.u64','vqmovnvc.u64','vqmovnhi.u64','vqmovnls.u64','vqmovnge.u64','vqmovnlt.u64','vqmovngt.u64','vqmovnle.u64',
2938
+
2939
+ 'vqshleq.u8','vqshlne.u8','vqshlcs.u8','vqshlhs.u8','vqshlcc.u8','vqshllo.u8','vqshlmi.u8','vqshlpl.u8','vqshlvs.u8','vqshlvc.u8','vqshlhi.u8','vqshlls.u8','vqshlge.u8','vqshllt.u8','vqshlgt.u8','vqshlle.u8',
2940
+ 'vqshleq.u16','vqshlne.u16','vqshlcs.u16','vqshlhs.u16','vqshlcc.u16','vqshllo.u16','vqshlmi.u16','vqshlpl.u16','vqshlvs.u16','vqshlvc.u16','vqshlhi.u16','vqshlls.u16','vqshlge.u16','vqshllt.u16','vqshlgt.u16','vqshlle.u16',
2941
+ 'vqshleq.u32','vqshlne.u32','vqshlcs.u32','vqshlhs.u32','vqshlcc.u32','vqshllo.u32','vqshlmi.u32','vqshlpl.u32','vqshlvs.u32','vqshlvc.u32','vqshlhi.u32','vqshlls.u32','vqshlge.u32','vqshllt.u32','vqshlgt.u32','vqshlle.u32',
2942
+ 'vqshleq.u64','vqshlne.u64','vqshlcs.u64','vqshlhs.u64','vqshlcc.u64','vqshllo.u64','vqshlmi.u64','vqshlpl.u64','vqshlvs.u64','vqshlvc.u64','vqshlhi.u64','vqshlls.u64','vqshlge.u64','vqshllt.u64','vqshlgt.u64','vqshlle.u64',
2943
+
2944
+ 'vqshrneq.u16','vqshrnne.u16','vqshrncs.u16','vqshrnhs.u16','vqshrncc.u16','vqshrnlo.u16','vqshrnmi.u16','vqshrnpl.u16','vqshrnvs.u16','vqshrnvc.u16','vqshrnhi.u16','vqshrnls.u16','vqshrnge.u16','vqshrnlt.u16','vqshrngt.u16','vqshrnle.u16',
2945
+ 'vqshrneq.u32','vqshrnne.u32','vqshrncs.u32','vqshrnhs.u32','vqshrncc.u32','vqshrnlo.u32','vqshrnmi.u32','vqshrnpl.u32','vqshrnvs.u32','vqshrnvc.u32','vqshrnhi.u32','vqshrnls.u32','vqshrnge.u32','vqshrnlt.u32','vqshrngt.u32','vqshrnle.u32',
2946
+ 'vqshrneq.u64','vqshrnne.u64','vqshrncs.u64','vqshrnhs.u64','vqshrncc.u64','vqshrnlo.u64','vqshrnmi.u64','vqshrnpl.u64','vqshrnvs.u64','vqshrnvc.u64','vqshrnhi.u64','vqshrnls.u64','vqshrnge.u64','vqshrnlt.u64','vqshrngt.u64','vqshrnle.u64',
2947
+
2948
+ 'vqrshleq.u8','vqrshlne.u8','vqrshlcs.u8','vqrshlhs.u8','vqrshlcc.u8','vqrshllo.u8','vqrshlmi.u8','vqrshlpl.u8','vqrshlvs.u8','vqrshlvc.u8','vqrshlhi.u8','vqrshlls.u8','vqrshlge.u8','vqrshllt.u8','vqrshlgt.u8','vqrshlle.u8',
2949
+ 'vqrshleq.u16','vqrshlne.u16','vqrshlcs.u16','vqrshlhs.u16','vqrshlcc.u16','vqrshllo.u16','vqrshlmi.u16','vqrshlpl.u16','vqrshlvs.u16','vqrshlvc.u16','vqrshlhi.u16','vqrshlls.u16','vqrshlge.u16','vqrshllt.u16','vqrshlgt.u16','vqrshlle.u16',
2950
+ 'vqrshleq.u32','vqrshlne.u32','vqrshlcs.u32','vqrshlhs.u32','vqrshlcc.u32','vqrshllo.u32','vqrshlmi.u32','vqrshlpl.u32','vqrshlvs.u32','vqrshlvc.u32','vqrshlhi.u32','vqrshlls.u32','vqrshlge.u32','vqrshllt.u32','vqrshlgt.u32','vqrshlle.u32',
2951
+ 'vqrshleq.u64','vqrshlne.u64','vqrshlcs.u64','vqrshlhs.u64','vqrshlcc.u64','vqrshllo.u64','vqrshlmi.u64','vqrshlpl.u64','vqrshlvs.u64','vqrshlvc.u64','vqrshlhi.u64','vqrshlls.u64','vqrshlge.u64','vqrshllt.u64','vqrshlgt.u64','vqrshlle.u64',
2952
+
2953
+ 'vqrshrneq.u16','vqrshrnne.u16','vqrshrncs.u16','vqrshrnhs.u16','vqrshrncc.u16','vqrshrnlo.u16','vqrshrnmi.u16','vqrshrnpl.u16','vqrshrnvs.u16','vqrshrnvc.u16','vqrshrnhi.u16','vqrshrnls.u16','vqrshrnge.u16','vqrshrnlt.u16','vqrshrngt.u16','vqrshrnle.u16',
2954
+ 'vqrshrneq.u32','vqrshrnne.u32','vqrshrncs.u32','vqrshrnhs.u32','vqrshrncc.u32','vqrshrnlo.u32','vqrshrnmi.u32','vqrshrnpl.u32','vqrshrnvs.u32','vqrshrnvc.u32','vqrshrnhi.u32','vqrshrnls.u32','vqrshrnge.u32','vqrshrnlt.u32','vqrshrngt.u32','vqrshrnle.u32',
2955
+ 'vqrshrneq.u64','vqrshrnne.u64','vqrshrncs.u64','vqrshrnhs.u64','vqrshrncc.u64','vqrshrnlo.u64','vqrshrnmi.u64','vqrshrnpl.u64','vqrshrnvs.u64','vqrshrnvc.u64','vqrshrnhi.u64','vqrshrnls.u64','vqrshrnge.u64','vqrshrnlt.u64','vqrshrngt.u64','vqrshrnle.u64',
2956
+
2957
+ 'vrhaddeq.u8','vrhaddne.u8','vrhaddcs.u8','vrhaddhs.u8','vrhaddcc.u8','vrhaddlo.u8','vrhaddmi.u8','vrhaddpl.u8','vrhaddvs.u8','vrhaddvc.u8','vrhaddhi.u8','vrhaddls.u8','vrhaddge.u8','vrhaddlt.u8','vrhaddgt.u8','vrhaddle.u8',
2958
+ 'vrhaddeq.u16','vrhaddne.u16','vrhaddcs.u16','vrhaddhs.u16','vrhaddcc.u16','vrhaddlo.u16','vrhaddmi.u16','vrhaddpl.u16','vrhaddvs.u16','vrhaddvc.u16','vrhaddhi.u16','vrhaddls.u16','vrhaddge.u16','vrhaddlt.u16','vrhaddgt.u16','vrhaddle.u16',
2959
+ 'vrhaddeq.u32','vrhaddne.u32','vrhaddcs.u32','vrhaddhs.u32','vrhaddcc.u32','vrhaddlo.u32','vrhaddmi.u32','vrhaddpl.u32','vrhaddvs.u32','vrhaddvc.u32','vrhaddhi.u32','vrhaddls.u32','vrhaddge.u32','vrhaddlt.u32','vrhaddgt.u32','vrhaddle.u32',
2960
+
2961
+ 'vrshleq.u8','vrshlne.u8','vrshlcs.u8','vrshlhs.u8','vrshlcc.u8','vrshllo.u8','vrshlmi.u8','vrshlpl.u8','vrshlvs.u8','vrshlvc.u8','vrshlhi.u8','vrshlls.u8','vrshlge.u8','vrshllt.u8','vrshlgt.u8','vrshlle.u8',
2962
+ 'vrshleq.u16','vrshlne.u16','vrshlcs.u16','vrshlhs.u16','vrshlcc.u16','vrshllo.u16','vrshlmi.u16','vrshlpl.u16','vrshlvs.u16','vrshlvc.u16','vrshlhi.u16','vrshlls.u16','vrshlge.u16','vrshllt.u16','vrshlgt.u16','vrshlle.u16',
2963
+ 'vrshleq.u32','vrshlne.u32','vrshlcs.u32','vrshlhs.u32','vrshlcc.u32','vrshllo.u32','vrshlmi.u32','vrshlpl.u32','vrshlvs.u32','vrshlvc.u32','vrshlhi.u32','vrshlls.u32','vrshlge.u32','vrshllt.u32','vrshlgt.u32','vrshlle.u32',
2964
+ 'vrshleq.u64','vrshlne.u64','vrshlcs.u64','vrshlhs.u64','vrshlcc.u64','vrshllo.u64','vrshlmi.u64','vrshlpl.u64','vrshlvs.u64','vrshlvc.u64','vrshlhi.u64','vrshlls.u64','vrshlge.u64','vrshllt.u64','vrshlgt.u64','vrshlle.u64',
2965
+
2966
+ 'vrshreq.u8','vrshrne.u8','vrshrcs.u8','vrshrhs.u8','vrshrcc.u8','vrshrlo.u8','vrshrmi.u8','vrshrpl.u8','vrshrvs.u8','vrshrvc.u8','vrshrhi.u8','vrshrls.u8','vrshrge.u8','vrshrlt.u8','vrshrgt.u8','vrshrle.u8',
2967
+ 'vrshreq.u16','vrshrne.u16','vrshrcs.u16','vrshrhs.u16','vrshrcc.u16','vrshrlo.u16','vrshrmi.u16','vrshrpl.u16','vrshrvs.u16','vrshrvc.u16','vrshrhi.u16','vrshrls.u16','vrshrge.u16','vrshrlt.u16','vrshrgt.u16','vrshrle.u16',
2968
+ 'vrshreq.u32','vrshrne.u32','vrshrcs.u32','vrshrhs.u32','vrshrcc.u32','vrshrlo.u32','vrshrmi.u32','vrshrpl.u32','vrshrvs.u32','vrshrvc.u32','vrshrhi.u32','vrshrls.u32','vrshrge.u32','vrshrlt.u32','vrshrgt.u32','vrshrle.u32',
2969
+ 'vrshreq.u64','vrshrne.u64','vrshrcs.u64','vrshrhs.u64','vrshrcc.u64','vrshrlo.u64','vrshrmi.u64','vrshrpl.u64','vrshrvs.u64','vrshrvc.u64','vrshrhi.u64','vrshrls.u64','vrshrge.u64','vrshrlt.u64','vrshrgt.u64','vrshrle.u64',
2970
+
2971
+ 'vrsraeq.u8','vrsrane.u8','vrsracs.u8','vrsrahs.u8','vrsracc.u8','vrsralo.u8','vrsrami.u8','vrsrapl.u8','vrsravs.u8','vrsravc.u8','vrsrahi.u8','vrsrals.u8','vrsrage.u8','vrsralt.u8','vrsragt.u8','vrsrale.u8',
2972
+ 'vrsraeq.u16','vrsrane.u16','vrsracs.u16','vrsrahs.u16','vrsracc.u16','vrsralo.u16','vrsrami.u16','vrsrapl.u16','vrsravs.u16','vrsravc.u16','vrsrahi.u16','vrsrals.u16','vrsrage.u16','vrsralt.u16','vrsragt.u16','vrsrale.u16',
2973
+ 'vrsraeq.u32','vrsrane.u32','vrsracs.u32','vrsrahs.u32','vrsracc.u32','vrsralo.u32','vrsrami.u32','vrsrapl.u32','vrsravs.u32','vrsravc.u32','vrsrahi.u32','vrsrals.u32','vrsrage.u32','vrsralt.u32','vrsragt.u32','vrsrale.u32',
2974
+ 'vrsraeq.u64','vrsrane.u64','vrsracs.u64','vrsrahs.u64','vrsracc.u64','vrsralo.u64','vrsrami.u64','vrsrapl.u64','vrsravs.u64','vrsravc.u64','vrsrahi.u64','vrsrals.u64','vrsrage.u64','vrsralt.u64','vrsragt.u64','vrsrale.u64',
2975
+ ),
2976
+ /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */
2977
+ 34 => array(
2978
+ 'vabdeq.f32','vabdne.f32','vabdcs.f32','vabdhs.f32','vabdcc.f32','vabdlo.f32','vabdmi.f32','vabdpl.f32','vabdvs.f32','vabdvc.f32','vabdhi.f32','vabdls.f32','vabdge.f32','vabdlt.f32','vabdgt.f32','vabdle.f32',
2979
+
2980
+ 'vabseq.f32','vabsne.f32','vabscs.f32','vabshs.f32','vabscc.f32','vabslo.f32','vabsmi.f32','vabspl.f32','vabsvs.f32','vabsvc.f32','vabshi.f32','vabsls.f32','vabsge.f32','vabslt.f32','vabsgt.f32','vabsle.f32',
2981
+ 'vabseq.f64','vabsne.f64','vabscs.f64','vabshs.f64','vabscc.f64','vabslo.f64','vabsmi.f64','vabspl.f64','vabsvs.f64','vabsvc.f64','vabshi.f64','vabsls.f64','vabsge.f64','vabslt.f64','vabsgt.f64','vabsle.f64',
2982
+
2983
+ 'vacgeeq.f32','vacgene.f32','vacgecs.f32','vacgehs.f32','vacgecc.f32','vacgelo.f32','vacgemi.f32','vacgepl.f32','vacgevs.f32','vacgevc.f32','vacgehi.f32','vacgels.f32','vacgege.f32','vacgelt.f32','vacgegt.f32','vacgele.f32',
2984
+ 'vacgteq.f32','vacgtne.f32','vacgtcs.f32','vacgths.f32','vacgtcc.f32','vacgtlo.f32','vacgtmi.f32','vacgtpl.f32','vacgtvs.f32','vacgtvc.f32','vacgthi.f32','vacgtls.f32','vacgtge.f32','vacgtlt.f32','vacgtgt.f32','vacgtle.f32',
2985
+ 'vacleeq.f32','vaclene.f32','vaclecs.f32','vaclehs.f32','vaclecc.f32','vaclelo.f32','vaclemi.f32','vaclepl.f32','vaclevs.f32','vaclevc.f32','vaclehi.f32','vaclels.f32','vaclege.f32','vaclelt.f32','vaclegt.f32','vaclele.f32',
2986
+ 'vaclteq.f32','vacltne.f32','vacltcs.f32','vaclths.f32','vacltcc.f32','vacltlo.f32','vacltmi.f32','vacltpl.f32','vacltvs.f32','vacltvc.f32','vaclthi.f32','vacltls.f32','vacltge.f32','vacltlt.f32','vacltgt.f32','vacltle.f32',
2987
+
2988
+ 'vaddeq.f32','vaddne.f32','vaddcs.f32','vaddhs.f32','vaddcc.f32','vaddlo.f32','vaddmi.f32','vaddpl.f32','vaddvs.f32','vaddvc.f32','vaddhi.f32','vaddls.f32','vaddge.f32','vaddlt.f32','vaddgt.f32','vaddle.f32',
2989
+ 'vaddeq.f64','vaddne.f64','vaddcs.f64','vaddhs.f64','vaddcc.f64','vaddlo.f64','vaddmi.f64','vaddpl.f64','vaddvs.f64','vaddvc.f64','vaddhi.f64','vaddls.f64','vaddge.f64','vaddlt.f64','vaddgt.f64','vaddle.f64',
2990
+
2991
+ 'vceqeq.f32','vceqne.f32','vceqcs.f32','vceqhs.f32','vceqcc.f32','vceqlo.f32','vceqmi.f32','vceqpl.f32','vceqvs.f32','vceqvc.f32','vceqhi.f32','vceqls.f32','vceqge.f32','vceqlt.f32','vceqgt.f32','vceqle.f32',
2992
+ 'vcgeeq.f32','vcgene.f32','vcgecs.f32','vcgehs.f32','vcgecc.f32','vcgelo.f32','vcgemi.f32','vcgepl.f32','vcgevs.f32','vcgevc.f32','vcgehi.f32','vcgels.f32','vcgege.f32','vcgelt.f32','vcgegt.f32','vcgele.f32',
2993
+ 'vcleeq.f32','vclene.f32','vclecs.f32','vclehs.f32','vclecc.f32','vclelo.f32','vclemi.f32','vclepl.f32','vclevs.f32','vclevc.f32','vclehi.f32','vclels.f32','vclege.f32','vclelt.f32','vclegt.f32','vclele.f32',
2994
+ 'vcgteq.f32','vcgtne.f32','vcgtcs.f32','vcgths.f32','vcgtcc.f32','vcgtlo.f32','vcgtmi.f32','vcgtpl.f32','vcgtvs.f32','vcgtvc.f32','vcgthi.f32','vcgtls.f32','vcgtge.f32','vcgtlt.f32','vcgtgt.f32','vcgtle.f32',
2995
+ 'vclteq.f32','vcltne.f32','vcltcs.f32','vclths.f32','vcltcc.f32','vcltlo.f32','vcltmi.f32','vcltpl.f32','vcltvs.f32','vcltvc.f32','vclthi.f32','vcltls.f32','vcltge.f32','vcltlt.f32','vcltgt.f32','vcltle.f32',
2996
+
2997
+ 'vcmpeq.f32','vcmpne.f32','vcmpcs.f32','vcmphs.f32','vcmpcc.f32','vcmplo.f32','vcmpmi.f32','vcmppl.f32','vcmpvs.f32','vcmpvc.f32','vcmphi.f32','vcmpls.f32','vcmpge.f32','vcmplt.f32','vcmpgt.f32','vcmple.f32',
2998
+ 'vcmpeq.f64','vcmpne.f64','vcmpcs.f64','vcmphs.f64','vcmpcc.f64','vcmplo.f64','vcmpmi.f64','vcmppl.f64','vcmpvs.f64','vcmpvc.f64','vcmphi.f64','vcmpls.f64','vcmpge.f64','vcmplt.f64','vcmpgt.f64','vcmple.f64',
2999
+
3000
+ 'vcmpeeq.f32','vcmpene.f32','vcmpecs.f32','vcmpehs.f32','vcmpecc.f32','vcmpelo.f32','vcmpemi.f32','vcmpepl.f32','vcmpevs.f32','vcmpevc.f32','vcmpehi.f32','vcmpels.f32','vcmpege.f32','vcmpelt.f32','vcmpegt.f32','vcmpele.f32',
3001
+ 'vcmpeeq.f64','vcmpene.f64','vcmpecs.f64','vcmpehs.f64','vcmpecc.f64','vcmpelo.f64','vcmpemi.f64','vcmpepl.f64','vcmpevs.f64','vcmpevc.f64','vcmpehi.f64','vcmpels.f64','vcmpege.f64','vcmpelt.f64','vcmpegt.f64','vcmpele.f64',
3002
+
3003
+ 'vcvteq.s16.f32','vcvtne.s16.f32','vcvtcs.s16.f32','vcvths.s16.f32','vcvtcc.s16.f32','vcvtlo.s16.f32','vcvtmi.s16.f32','vcvtpl.s16.f32','vcvtvs.s16.f32','vcvtvc.s16.f32','vcvthi.s16.f32','vcvtls.s16.f32','vcvtge.s16.f32','vcvtlt.s16.f32','vcvtgt.s16.f32','vcvtle.s16.f32',
3004
+ 'vcvteq.s16.f64','vcvtne.s16.f64','vcvtcs.s16.f64','vcvths.s16.f64','vcvtcc.s16.f64','vcvtlo.s16.f64','vcvtmi.s16.f64','vcvtpl.s16.f64','vcvtvs.s16.f64','vcvtvc.s16.f64','vcvthi.s16.f64','vcvtls.s16.f64','vcvtge.s16.f64','vcvtlt.s16.f64','vcvtgt.s16.f64','vcvtle.s16.f64',
3005
+ 'vcvteq.s32.f32','vcvtne.s32.f32','vcvtcs.s32.f32','vcvths.s32.f32','vcvtcc.s32.f32','vcvtlo.s32.f32','vcvtmi.s32.f32','vcvtpl.s32.f32','vcvtvs.s32.f32','vcvtvc.s32.f32','vcvthi.s32.f32','vcvtls.s32.f32','vcvtge.s32.f32','vcvtlt.s32.f32','vcvtgt.s32.f32','vcvtle.s32.f32',
3006
+ 'vcvteq.s32.f64','vcvtne.s32.f64','vcvtcs.s32.f64','vcvths.s32.f64','vcvtcc.s32.f64','vcvtlo.s32.f64','vcvtmi.s32.f64','vcvtpl.s32.f64','vcvtvs.s32.f64','vcvtvc.s32.f64','vcvthi.s32.f64','vcvtls.s32.f64','vcvtge.s32.f64','vcvtlt.s32.f64','vcvtgt.s32.f64','vcvtle.s32.f64',
3007
+ 'vcvteq.u16.f32','vcvtne.u16.f32','vcvtcs.u16.f32','vcvths.u16.f32','vcvtcc.u16.f32','vcvtlo.u16.f32','vcvtmi.u16.f32','vcvtpl.u16.f32','vcvtvs.u16.f32','vcvtvc.u16.f32','vcvthi.u16.f32','vcvtls.u16.f32','vcvtge.u16.f32','vcvtlt.u16.f32','vcvtgt.u16.f32','vcvtle.u16.f32',
3008
+ 'vcvteq.u16.f64','vcvtne.u16.f64','vcvtcs.u16.f64','vcvths.u16.f64','vcvtcc.u16.f64','vcvtlo.u16.f64','vcvtmi.u16.f64','vcvtpl.u16.f64','vcvtvs.u16.f64','vcvtvc.u16.f64','vcvthi.u16.f64','vcvtls.u16.f64','vcvtge.u16.f64','vcvtlt.u16.f64','vcvtgt.u16.f64','vcvtle.u16.f64',
3009
+ 'vcvteq.u32.f32','vcvtne.u32.f32','vcvtcs.u32.f32','vcvths.u32.f32','vcvtcc.u32.f32','vcvtlo.u32.f32','vcvtmi.u32.f32','vcvtpl.u32.f32','vcvtvs.u32.f32','vcvtvc.u32.f32','vcvthi.u32.f32','vcvtls.u32.f32','vcvtge.u32.f32','vcvtlt.u32.f32','vcvtgt.u32.f32','vcvtle.u32.f32',
3010
+ 'vcvteq.u32.f64','vcvtne.u32.f64','vcvtcs.u32.f64','vcvths.u32.f64','vcvtcc.u32.f64','vcvtlo.u32.f64','vcvtmi.u32.f64','vcvtpl.u32.f64','vcvtvs.u32.f64','vcvtvc.u32.f64','vcvthi.u32.f64','vcvtls.u32.f64','vcvtge.u32.f64','vcvtlt.u32.f64','vcvtgt.u32.f64','vcvtle.u32.f64',
3011
+ 'vcvteq.f16.f32','vcvtne.f16.f32','vcvtcs.f16.f32','vcvths.f16.f32','vcvtcc.f16.f32','vcvtlo.f16.f32','vcvtmi.f16.f32','vcvtpl.f16.f32','vcvtvs.f16.f32','vcvtvc.f16.f32','vcvthi.f16.f32','vcvtls.f16.f32','vcvtge.f16.f32','vcvtlt.f16.f32','vcvtgt.f16.f32','vcvtle.f16.f32',
3012
+ 'vcvteq.f32.s32','vcvtne.f32.s32','vcvtcs.f32.s32','vcvths.f32.s32','vcvtcc.f32.s32','vcvtlo.f32.s32','vcvtmi.f32.s32','vcvtpl.f32.s32','vcvtvs.f32.s32','vcvtvc.f32.s32','vcvthi.f32.s32','vcvtls.f32.s32','vcvtge.f32.s32','vcvtlt.f32.s32','vcvtgt.f32.s32','vcvtle.f32.s32',
3013
+ 'vcvteq.f32.u32','vcvtne.f32.u32','vcvtcs.f32.u32','vcvths.f32.u32','vcvtcc.f32.u32','vcvtlo.f32.u32','vcvtmi.f32.u32','vcvtpl.f32.u32','vcvtvs.f32.u32','vcvtvc.f32.u32','vcvthi.f32.u32','vcvtls.f32.u32','vcvtge.f32.u32','vcvtlt.f32.u32','vcvtgt.f32.u32','vcvtle.f32.u32',
3014
+ 'vcvteq.f32.f16','vcvtne.f32.f16','vcvtcs.f32.f16','vcvths.f32.f16','vcvtcc.f32.f16','vcvtlo.f32.f16','vcvtmi.f32.f16','vcvtpl.f32.f16','vcvtvs.f32.f16','vcvtvc.f32.f16','vcvthi.f32.f16','vcvtls.f32.f16','vcvtge.f32.f16','vcvtlt.f32.f16','vcvtgt.f32.f16','vcvtle.f32.f16',
3015
+ 'vcvteq.f32.f64','vcvtne.f32.f64','vcvtcs.f32.f64','vcvths.f32.f64','vcvtcc.f32.f64','vcvtlo.f32.f64','vcvtmi.f32.f64','vcvtpl.f32.f64','vcvtvs.f32.f64','vcvtvc.f32.f64','vcvthi.f32.f64','vcvtls.f32.f64','vcvtge.f32.f64','vcvtlt.f32.f64','vcvtgt.f32.f64','vcvtle.f32.f64',
3016
+ 'vcvteq.f64.s32','vcvtne.f64.s32','vcvtcs.f64.s32','vcvths.f64.s32','vcvtcc.f64.s32','vcvtlo.f64.s32','vcvtmi.f64.s32','vcvtpl.f64.s32','vcvtvs.f64.s32','vcvtvc.f64.s32','vcvthi.f64.s32','vcvtls.f64.s32','vcvtge.f64.s32','vcvtlt.f64.s32','vcvtgt.f64.s32','vcvtle.f64.s32',
3017
+ 'vcvteq.f64.u32','vcvtne.f64.u32','vcvtcs.f64.u32','vcvths.f64.u32','vcvtcc.f64.u32','vcvtlo.f64.u32','vcvtmi.f64.u32','vcvtpl.f64.u32','vcvtvs.f64.u32','vcvtvc.f64.u32','vcvthi.f64.u32','vcvtls.f64.u32','vcvtge.f64.u32','vcvtlt.f64.u32','vcvtgt.f64.u32','vcvtle.f64.u32',
3018
+ 'vcvteq.f64.f32','vcvtne.f64.f32','vcvtcs.f64.f32','vcvths.f64.f32','vcvtcc.f64.f32','vcvtlo.f64.f32','vcvtmi.f64.f32','vcvtpl.f64.f32','vcvtvs.f64.f32','vcvtvc.f64.f32','vcvthi.f64.f32','vcvtls.f64.f32','vcvtge.f64.f32','vcvtlt.f64.f32','vcvtgt.f64.f32','vcvtle.f64.f32',
3019
+
3020
+ 'vcvtreq.s32.f32','vcvtrne.s32.f32','vcvtrcs.s32.f32','vcvtrhs.s32.f32','vcvtrcc.s32.f32','vcvtrlo.s32.f32','vcvtrmi.s32.f32','vcvtrpl.s32.f32','vcvtrvs.s32.f32','vcvtrvc.s32.f32','vcvtrhi.s32.f32','vcvtrls.s32.f32','vcvtrge.s32.f32','vcvtrlt.s32.f32','vcvtrgt.s32.f32','vcvtrle.s32.f32',
3021
+ 'vcvtreq.s32.f64','vcvtrne.s32.f64','vcvtrcs.s32.f64','vcvtrhs.s32.f64','vcvtrcc.s32.f64','vcvtrlo.s32.f64','vcvtrmi.s32.f64','vcvtrpl.s32.f64','vcvtrvs.s32.f64','vcvtrvc.s32.f64','vcvtrhi.s32.f64','vcvtrls.s32.f64','vcvtrge.s32.f64','vcvtrlt.s32.f64','vcvtrgt.s32.f64','vcvtrle.s32.f64',
3022
+ 'vcvtreq.u32.f32','vcvtrne.u32.f32','vcvtrcs.u32.f32','vcvtrhs.u32.f32','vcvtrcc.u32.f32','vcvtrlo.u32.f32','vcvtrmi.u32.f32','vcvtrpl.u32.f32','vcvtrvs.u32.f32','vcvtrvc.u32.f32','vcvtrhi.u32.f32','vcvtrls.u32.f32','vcvtrge.u32.f32','vcvtrlt.u32.f32','vcvtrgt.u32.f32','vcvtrle.u32.f32',
3023
+ 'vcvtreq.u32.f64','vcvtrne.u32.f64','vcvtrcs.u32.f64','vcvtrhs.u32.f64','vcvtrcc.u32.f64','vcvtrlo.u32.f64','vcvtrmi.u32.f64','vcvtrpl.u32.f64','vcvtrvs.u32.f64','vcvtrvc.u32.f64','vcvtrhi.u32.f64','vcvtrls.u32.f64','vcvtrge.u32.f64','vcvtrlt.u32.f64','vcvtrgt.u32.f64','vcvtrle.u32.f64',
3024
+
3025
+ 'vcvtbeq.f16.f32','vcvtbne.f16.f32','vcvtbcs.f16.f32','vcvtbhs.f16.f32','vcvtbcc.f16.f32','vcvtblo.f16.f32','vcvtbmi.f16.f32','vcvtbpl.f16.f32','vcvtbvs.f16.f32','vcvtbvc.f16.f32','vcvtbhi.f16.f32','vcvtbls.f16.f32','vcvtbge.f16.f32','vcvtblt.f16.f32','vcvtbgt.f16.f32','vcvtble.f16.f32',
3026
+ 'vcvtbeq.f32.f16','vcvtbne.f32.f16','vcvtbcs.f32.f16','vcvtbhs.f32.f16','vcvtbcc.f32.f16','vcvtblo.f32.f16','vcvtbmi.f32.f16','vcvtbpl.f32.f16','vcvtbvs.f32.f16','vcvtbvc.f32.f16','vcvtbhi.f32.f16','vcvtbls.f32.f16','vcvtbge.f32.f16','vcvtblt.f32.f16','vcvtbgt.f32.f16','vcvtble.f32.f16',
3027
+
3028
+ 'vcvtteq.f16.f32','vcvttne.f16.f32','vcvttcs.f16.f32','vcvtths.f16.f32','vcvttcc.f16.f32','vcvttlo.f16.f32','vcvttmi.f16.f32','vcvttpl.f16.f32','vcvttvs.f16.f32','vcvttvc.f16.f32','vcvtthi.f16.f32','vcvttls.f16.f32','vcvttge.f16.f32','vcvttlt.f16.f32','vcvttgt.f16.f32','vcvttle.f16.f32',
3029
+ 'vcvtteq.f32.f16','vcvttne.f32.f16','vcvttcs.f32.f16','vcvtths.f32.f16','vcvttcc.f32.f16','vcvttlo.f32.f16','vcvttmi.f32.f16','vcvttpl.f32.f16','vcvttvs.f32.f16','vcvttvc.f32.f16','vcvtthi.f32.f16','vcvttls.f32.f16','vcvttge.f32.f16','vcvttlt.f32.f16','vcvttgt.f32.f16','vcvttle.f32.f16',
3030
+
3031
+ 'vdiveq.f32','vdivne.f32','vdivcs.f32','vdivhs.f32','vdivcc.f32','vdivlo.f32','vdivmi.f32','vdivpl.f32','vdivvs.f32','vdivvc.f32','vdivhi.f32','vdivls.f32','vdivge.f32','vdivlt.f32','vdivgt.f32','vdivle.f32',
3032
+ 'vdiveq.f64','vdivne.f64','vdivcs.f64','vdivhs.f64','vdivcc.f64','vdivlo.f64','vdivmi.f64','vdivpl.f64','vdivvs.f64','vdivvc.f64','vdivhi.f64','vdivls.f64','vdivge.f64','vdivlt.f64','vdivgt.f64','vdivle.f64',
3033
+
3034
+ 'vmaxeq.f32','vmaxne.f32','vmaxcs.f32','vmaxhs.f32','vmaxcc.f32','vmaxlo.f32','vmaxmi.f32','vmaxpl.f32','vmaxvs.f32','vmaxvc.f32','vmaxhi.f32','vmaxls.f32','vmaxge.f32','vmaxlt.f32','vmaxgt.f32','vmaxle.f32',
3035
+ 'vmineq.f32','vminne.f32','vmincs.f32','vminhs.f32','vmincc.f32','vminlo.f32','vminmi.f32','vminpl.f32','vminvs.f32','vminvc.f32','vminhi.f32','vminls.f32','vminge.f32','vminlt.f32','vmingt.f32','vminle.f32',
3036
+
3037
+ 'vmlaeq.f32','vmlane.f32','vmlacs.f32','vmlahs.f32','vmlacc.f32','vmlalo.f32','vmlami.f32','vmlapl.f32','vmlavs.f32','vmlavc.f32','vmlahi.f32','vmlals.f32','vmlage.f32','vmlalt.f32','vmlagt.f32','vmlale.f32',
3038
+ 'vmlaeq.f64','vmlane.f64','vmlacs.f64','vmlahs.f64','vmlacc.f64','vmlalo.f64','vmlami.f64','vmlapl.f64','vmlavs.f64','vmlavc.f64','vmlahi.f64','vmlals.f64','vmlage.f64','vmlalt.f64','vmlagt.f64','vmlale.f64',
3039
+
3040
+ 'vmlseq.f32','vmlsne.f32','vmlscs.f32','vmlshs.f32','vmlscc.f32','vmlslo.f32','vmlsmi.f32','vmlspl.f32','vmlsvs.f32','vmlsvc.f32','vmlshi.f32','vmlsls.f32','vmlsge.f32','vmlslt.f32','vmlsgt.f32','vmlsle.f32',
3041
+ 'vmlseq.f64','vmlsne.f64','vmlscs.f64','vmlshs.f64','vmlscc.f64','vmlslo.f64','vmlsmi.f64','vmlspl.f64','vmlsvs.f64','vmlsvc.f64','vmlshi.f64','vmlsls.f64','vmlsge.f64','vmlslt.f64','vmlsgt.f64','vmlsle.f64',
3042
+
3043
+ 'vmuleq.f32','vmulne.f32','vmulcs.f32','vmulhs.f32','vmulcc.f32','vmullo.f32','vmulmi.f32','vmulpl.f32','vmulvs.f32','vmulvc.f32','vmulhi.f32','vmulls.f32','vmulge.f32','vmullt.f32','vmulgt.f32','vmulle.f32',
3044
+ 'vmuleq.f64','vmulne.f64','vmulcs.f64','vmulhs.f64','vmulcc.f64','vmullo.f64','vmulmi.f64','vmulpl.f64','vmulvs.f64','vmulvc.f64','vmulhi.f64','vmulls.f64','vmulge.f64','vmullt.f64','vmulgt.f64','vmulle.f64',
3045
+
3046
+ 'vnegeq.f32','vnegne.f32','vnegcs.f32','vneghs.f32','vnegcc.f32','vneglo.f32','vnegmi.f32','vnegpl.f32','vnegvs.f32','vnegvc.f32','vneghi.f32','vnegls.f32','vnegge.f32','vneglt.f32','vneggt.f32','vnegle.f32',
3047
+ 'vnegeq.f64','vnegne.f64','vnegcs.f64','vneghs.f64','vnegcc.f64','vneglo.f64','vnegmi.f64','vnegpl.f64','vnegvs.f64','vnegvc.f64','vneghi.f64','vnegls.f64','vnegge.f64','vneglt.f64','vneggt.f64','vnegle.f64',
3048
+
3049
+ 'vnmlaeq.f32','vnmlane.f32','vnmlacs.f32','vnmlahs.f32','vnmlacc.f32','vnmlalo.f32','vnmlami.f32','vnmlapl.f32','vnmlavs.f32','vnmlavc.f32','vnmlahi.f32','vnmlals.f32','vnmlage.f32','vnmlalt.f32','vnmlagt.f32','vnmlale.f32',
3050
+ 'vnmlaeq.f64','vnmlane.f64','vnmlacs.f64','vnmlahs.f64','vnmlacc.f64','vnmlalo.f64','vnmlami.f64','vnmlapl.f64','vnmlavs.f64','vnmlavc.f64','vnmlahi.f64','vnmlals.f64','vnmlage.f64','vnmlalt.f64','vnmlagt.f64','vnmlale.f64',
3051
+
3052
+ 'vnmlseq.f32','vnmlsne.f32','vnmlscs.f32','vnmlshs.f32','vnmlscc.f32','vnmlslo.f32','vnmlsmi.f32','vnmlspl.f32','vnmlsvs.f32','vnmlsvc.f32','vnmlshi.f32','vnmlsls.f32','vnmlsge.f32','vnmlslt.f32','vnmlsgt.f32','vnmlsle.f32',
3053
+ 'vnmlseq.f64','vnmlsne.f64','vnmlscs.f64','vnmlshs.f64','vnmlscc.f64','vnmlslo.f64','vnmlsmi.f64','vnmlspl.f64','vnmlsvs.f64','vnmlsvc.f64','vnmlshi.f64','vnmlsls.f64','vnmlsge.f64','vnmlslt.f64','vnmlsgt.f64','vnmlsle.f64',
3054
+
3055
+ 'vnmuleq.f64','vnmulne.f64','vnmulcs.f64','vnmulhs.f64','vnmulcc.f64','vnmullo.f64','vnmulmi.f64','vnmulpl.f64','vnmulvs.f64','vnmulvc.f64','vnmulhi.f64','vnmulls.f64','vnmulge.f64','vnmullt.f64','vnmulgt.f64','vnmulle.f64',
3056
+ 'vnmuleq.f32','vnmulne.f32','vnmulcs.f32','vnmulhs.f32','vnmulcc.f32','vnmullo.f32','vnmulmi.f32','vnmulpl.f32','vnmulvs.f32','vnmulvc.f32','vnmulhi.f32','vnmulls.f32','vnmulge.f32','vnmullt.f32','vnmulgt.f32','vnmulle.f32',
3057
+
3058
+ 'vpaddeq.f32','vpaddne.f32','vpaddcs.f32','vpaddhs.f32','vpaddcc.f32','vpaddlo.f32','vpaddmi.f32','vpaddpl.f32','vpaddvs.f32','vpaddvc.f32','vpaddhi.f32','vpaddls.f32','vpaddge.f32','vpaddlt.f32','vpaddgt.f32','vpaddle.f32',
3059
+
3060
+ 'vpmaxeq.f32','vpmaxne.f32','vpmaxcs.f32','vpmaxhs.f32','vpmaxcc.f32','vpmaxlo.f32','vpmaxmi.f32','vpmaxpl.f32','vpmaxvs.f32','vpmaxvc.f32','vpmaxhi.f32','vpmaxls.f32','vpmaxge.f32','vpmaxlt.f32','vpmaxgt.f32','vpmaxle.f32',
3061
+ 'vpmineq.f32','vpminne.f32','vpmincs.f32','vpminhs.f32','vpmincc.f32','vpminlo.f32','vpminmi.f32','vpminpl.f32','vpminvs.f32','vpminvc.f32','vpminhi.f32','vpminls.f32','vpminge.f32','vpminlt.f32','vpmingt.f32','vpminle.f32',
3062
+
3063
+ 'vrecpeeq.u32','vrecpene.u32','vrecpecs.u32','vrecpehs.u32','vrecpecc.u32','vrecpelo.u32','vrecpemi.u32','vrecpepl.u32','vrecpevs.u32','vrecpevc.u32','vrecpehi.u32','vrecpels.u32','vrecpege.u32','vrecpelt.u32','vrecpegt.u32','vrecpele.u32',
3064
+ 'vrecpeeq.f32','vrecpene.f32','vrecpecs.f32','vrecpehs.f32','vrecpecc.f32','vrecpelo.f32','vrecpemi.f32','vrecpepl.f32','vrecpevs.f32','vrecpevc.f32','vrecpehi.f32','vrecpels.f32','vrecpege.f32','vrecpelt.f32','vrecpegt.f32','vrecpele.f32',
3065
+ 'vrecpseq.f32','vrecpsne.f32','vrecpscs.f32','vrecpshs.f32','vrecpscc.f32','vrecpslo.f32','vrecpsmi.f32','vrecpspl.f32','vrecpsvs.f32','vrecpsvc.f32','vrecpshi.f32','vrecpsls.f32','vrecpsge.f32','vrecpslt.f32','vrecpsgt.f32','vrecpsle.f32',
3066
+
3067
+ 'vrsqrteeq.u32','vrsqrtene.u32','vrsqrtecs.u32','vrsqrtehs.u32','vrsqrtecc.u32','vrsqrtelo.u32','vrsqrtemi.u32','vrsqrtepl.u32','vrsqrtevs.u32','vrsqrtevc.u32','vrsqrtehi.u32','vrsqrtels.u32','vrsqrtege.u32','vrsqrtelt.u32','vrsqrtegt.u32','vrsqrtele.u32',
3068
+ 'vrsqrteeq.f32','vrsqrtene.f32','vrsqrtecs.f32','vrsqrtehs.f32','vrsqrtecc.f32','vrsqrtelo.f32','vrsqrtemi.f32','vrsqrtepl.f32','vrsqrtevs.f32','vrsqrtevc.f32','vrsqrtehi.f32','vrsqrtels.f32','vrsqrtege.f32','vrsqrtelt.f32','vrsqrtegt.f32','vrsqrtele.f32',
3069
+ 'vrsqrtseq.f32','vrsqrtsne.f32','vrsqrtscs.f32','vrsqrtshs.f32','vrsqrtscc.f32','vrsqrtslo.f32','vrsqrtsmi.f32','vrsqrtspl.f32','vrsqrtsvs.f32','vrsqrtsvc.f32','vrsqrtshi.f32','vrsqrtsls.f32','vrsqrtsge.f32','vrsqrtslt.f32','vrsqrtsgt.f32','vrsqrtsle.f32',
3070
+
3071
+ 'vsqrteq.f32','vsqrtne.f32','vsqrtcs.f32','vsqrths.f32','vsqrtcc.f32','vsqrtlo.f32','vsqrtmi.f32','vsqrtpl.f32','vsqrtvs.f32','vsqrtvc.f32','vsqrthi.f32','vsqrtls.f32','vsqrtge.f32','vsqrtlt.f32','vsqrtgt.f32','vsqrtle.f32',
3072
+ 'vsqrteq.f64','vsqrtne.f64','vsqrtcs.f64','vsqrths.f64','vsqrtcc.f64','vsqrtlo.f64','vsqrtmi.f64','vsqrtpl.f64','vsqrtvs.f64','vsqrtvc.f64','vsqrthi.f64','vsqrtls.f64','vsqrtge.f64','vsqrtlt.f64','vsqrtgt.f64','vsqrtle.f64',
3073
+
3074
+ 'vsubeq.f32','vsubne.f32','vsubcs.f32','vsubhs.f32','vsubcc.f32','vsublo.f32','vsubmi.f32','vsubpl.f32','vsubvs.f32','vsubvc.f32','vsubhi.f32','vsubls.f32','vsubge.f32','vsublt.f32','vsubgt.f32','vsuble.f32',
3075
+ 'vsubeq.f64','vsubne.f64','vsubcs.f64','vsubhs.f64','vsubcc.f64','vsublo.f64','vsubmi.f64','vsubpl.f64','vsubvs.f64','vsubvc.f64','vsubhi.f64','vsubls.f64','vsubge.f64','vsublt.f64','vsubgt.f64','vsuble.f64'
3076
+ ),
3077
+ /* Registers */
3078
+ 35 => array(
3079
+ /* General-Purpose Registers */
3080
+ 'r0','r1','r2','r3','r4','r5','r6','r7',
3081
+ 'r8','r9','r10','r11','r12','r13','r14','r15',
3082
+ /* Scratch Registers */
3083
+ 'a1','a2','a3','a4',
3084
+ /* Variable Registers */
3085
+ 'v1','v2','v3','v4','v5','v6','v7','v8',
3086
+ /* Other Synonims for General-Purpose Registers */
3087
+ 'sb','sl','fp','ip','sp','lr','pc',
3088
+ /* WMMX Data Registers */
3089
+ 'wr0','wr1','wr2','wr3','wr4','wr5','wr6','wr7',
3090
+ 'wr8','wr9','wr10','wr11','wr12','wr13','wr14','wr15',
3091
+ /* WMMX Control Registers */
3092
+ 'wcid','wcon','wcssf','wcasf',
3093
+ /* WMMX-Mapped General-Purpose Registers */
3094
+ 'wcgr0','wcgr1','wcgr2','wcgr3',
3095
+ /* VFPv3 Registers */
3096
+ 's0','s1','s2','s3','s4','s5','s6','s7',
3097
+ 's8','s9','s10','s11','s12','s13','s14','s15',
3098
+ 's16','s17','s18','s19','s20','s21','s22','s23',
3099
+ 's24','s25','s26','s27','s28','s29','s30','s31',
3100
+ /* VFPv3/NEON Registers */
3101
+ 'd0','d1','d2','d3','d4','d5','d6','d7',
3102
+ 'd8','d9','d10','d11','d12','d13','d14','d15',
3103
+ 'd16','d17','d18','d19','d20','d21','d22','d23',
3104
+ 'd24','d25','d26','d27','d28','d29','d30','d31',
3105
+ /* NEON Registers */
3106
+ 'q0','q1','q2','q3','q4','q5','q6','q7',
3107
+ 'q8','q9','q10','q11','q12','q13','q14','q15'
3108
+ )
3109
+ ),
3110
+ 'SYMBOLS' => array(
3111
+ '[', ']', '(', ')',
3112
+ '+', '-', '*', '/', '%',
3113
+ '.', ',', ';', ':'
3114
+ ),
3115
+ 'CASE_SENSITIVE' => array(
3116
+ GESHI_COMMENTS => false,
3117
+ 1 => false,
3118
+ 2 => false,
3119
+ 3 => false,
3120
+ 4 => false,
3121
+ 5 => false,
3122
+ 6 => false,
3123
+ 7 => false,
3124
+ 8 => false,
3125
+ 9 => false,
3126
+ 10 => false,
3127
+ 11 => false,
3128
+ 12 => false,
3129
+ 13 => false,
3130
+ 14 => false,
3131
+ 15 => false,
3132
+ 16 => false,
3133
+ 17 => false,
3134
+ 18 => false,
3135
+ 19 => false,
3136
+ 20 => false,
3137
+ 21 => false,
3138
+ 22 => false,
3139
+ 23 => false,
3140
+ 24 => false,
3141
+ 25 => false,
3142
+ 26 => false,
3143
+ 27 => false,
3144
+ 28 => false,
3145
+ 29 => false,
3146
+ 30 => false,
3147
+ 31 => false,
3148
+ 32 => false,
3149
+ 33 => false,
3150
+ 34 => false,
3151
+ 35 => false
3152
+ ),
3153
+ 'STYLES' => array(
3154
+ 'KEYWORDS' => array(
3155
+ /* Unconditional Data Processing Instructions */
3156
+ 1 => 'color: #00007f; font-weight: normal; font-style: normal;',
3157
+ /* Conditional Data Processing Instructions */
3158
+ 2 => 'color: #00007f; font-weight: normal; font-style: italic;',
3159
+ /* Unconditional Memory Access Instructions */
3160
+ 3 => 'color: #00007f; font-weight: normal; font-style: normal;',
3161
+ /* Conditional Memory Access Instructions */
3162
+ 4 => 'color: #00007f; font-weight: normal; font-style: italic;',
3163
+ /* Unconditional Flags Changing Instructions */
3164
+ 5 => 'color: #00007f; font-weight: bold; font-style: normal;',
3165
+ /* Conditional Flags Changing Instructions */
3166
+ 6 => 'color: #00007f; font-weight: bold; font-style: italic;',
3167
+ /* Unconditional Flow Control Instructions */
3168
+ 7 => 'color: #0000ff; font-weight: normal; font-style: normal;',
3169
+ /* Conditional Flow Control Instructions */
3170
+ 8 => 'color: #0000ff; font-weight: normal; font-style: italic;',
3171
+ /* Unconditional Syncronization Instructions */
3172
+ 9 => 'color: #00007f; font-weight: normal; font-style: normal;',
3173
+ /* Conditional Syncronization Instructions */
3174
+ 10 => 'color: #00007f; font-weight: normal; font-style: italic;',
3175
+ /* Unonditional ARMv6 SIMD */
3176
+ 11 => 'color: #b00040; font-weight: normal; font-style: normal;',
3177
+ /* Conditional ARMv6 SIMD */
3178
+ 12 => 'color: #b00040; font-weight: normal; font-style: italic;',
3179
+ /* Unconditional Coprocessor Instructions */
3180
+ 13 => 'color: #00007f; font-weight: normal; font-style: normal;',
3181
+ /* Conditional Coprocessor Instructions */
3182
+ 14 => 'color: #00007f; font-weight: bold; font-style: italic;',
3183
+ /* Unconditional System Instructions */
3184
+ 15 => 'color: #00007f; font-weight: normal; font-style: normal;',
3185
+ /* Conditional System Instructions */
3186
+ 16 => 'color: #00007f; font-weight: bold; font-style: italic;',
3187
+ /* Unconditional WMMX/WMMX2 SIMD Instructions */
3188
+ 17 => 'color: #b00040; font-weight: normal; font-style: normal;',
3189
+ /* Conditional WMMX/WMMX2 SIMD Instructions */
3190
+ 18 => 'color: #b00040; font-weight: normal; font-style: italic;',
3191
+ /* Unconditional VFPv3 & NEON SIMD Memory Access Instructions */
3192
+ 19 => 'color: #b00040; font-weight: normal; font-style: normal;',
3193
+ /* Unconditional NEON SIMD Logical Instructions */
3194
+ 20 => 'color: #b00040; font-weight: normal; font-style: italic;',
3195
+ /* Unconditional NEON SIMD ARM Registers Interop Instructions */
3196
+ 21 => 'color: #b00040; font-weight: normal; font-style: italic;',
3197
+ /* Unconditional NEON SIMD Bit/Byte-Level Instructions */
3198
+ 22 => 'color: #b00040; font-weight: normal; font-style: italic;',
3199
+ /* Unconditional NEON SIMD Universal Integer Instructions */
3200
+ 23 => 'color: #b00040; font-weight: normal; font-style: italic;',
3201
+ /* Unconditional NEON SIMD Signed Integer Instructions */
3202
+ 24 => 'color: #b00040; font-weight: normal; font-style: italic;',
3203
+ /* Unconditional NEON SIMD Unsigned Integer Instructions */
3204
+ 25 => 'color: #b00040; font-weight: normal; font-style: italic;',
3205
+ /* Unconditional VFPv3 & NEON SIMD Floating-Point Instructions */
3206
+ 26 => 'color: #b00040; font-weight: normal; font-style: italic;',
3207
+ /* Conditional VFPv3 & NEON SIMD Memory Access Instructions */
3208
+ 27 => 'color: #b00040; font-weight: normal; font-style: italic;',
3209
+ /* Conditional NEON SIMD Logical Instructions */
3210
+ 28 => 'color: #b00040; font-weight: normal; font-style: italic;',
3211
+ /* Conditional NEON SIMD ARM Registers Interop Instructions */
3212
+ 29 => 'color: #b00040; font-weight: normal; font-style: italic;',
3213
+ /* Conditional NEON SIMD Bit/Byte-Level Instructions */
3214
+ 30 => 'color: #b00040; font-weight: normal; font-style: italic;',
3215
+ /* Conditional NEON SIMD Universal Integer Instructions */
3216
+ 31 => 'color: #b00040; font-weight: normal; font-style: italic;',
3217
+ /* Conditional NEON SIMD Signed Integer Instructions */
3218
+ 32 => 'color: #b00040; font-weight: normal; font-style: italic;',
3219
+ /* Conditional NEON SIMD Unsigned Integer Instructions */
3220
+ 33 => 'color: #b00040; font-weight: normal; font-style: italic;',
3221
+ /* Conditional VFPv3 & NEON SIMD Floating-Point Instructions */
3222
+ 34 => 'color: #b00040; font-weight: normal; font-style: italic;',
3223
+ /* Registers */
3224
+ 35 => 'color: #46aa03; font-weight: bold;'
3225
+ ),
3226
+ 'COMMENTS' => array(
3227
+ 1 => 'color: #666666; font-style: italic;',
3228
+ 2 => 'color: #adadad; font-style: italic;'
3229
+ ),
3230
+ 'ESCAPE_CHAR' => array(
3231
+ 0 => 'color: #000099; font-weight: bold;'
3232
+ ),
3233
+ 'BRACKETS' => array(
3234
+ 0 => 'color: #009900; font-weight: bold;'
3235
+ ),
3236
+ 'STRINGS' => array(
3237
+ 0 => 'color: #7f007f;'
3238
+ ),
3239
+ 'NUMBERS' => array(
3240
+ 0 => 'color: #ff0000;'
3241
+ ),
3242
+ 'METHODS' => array(
3243
+ ),
3244
+ 'SYMBOLS' => array(
3245
+ 0 => 'color: #339933;'
3246
+ ),
3247
+ 'REGEXPS' => array(
3248
+ ),
3249
+ 'SCRIPT' => array(
3250
+ )
3251
+ ),
3252
+ 'URLS' => array(
3253
+ 1 => '',
3254
+ 2 => '',
3255
+ 3 => '',
3256
+ 4 => '',
3257
+ 5 => '',
3258
+ 6 => '',
3259
+ 7 => '',
3260
+ 8 => '',
3261
+ 9 => '',
3262
+ 10 => '',
3263
+ 11 => '',
3264
+ 12 => '',
3265
+ 13 => '',
3266
+ 14 => '',
3267
+ 15 => '',
3268
+ 16 => '',
3269
+ 17 => '',
3270
+ 18 => '',
3271
+ 19 => '',
3272
+ 20 => '',
3273
+ 21 => '',
3274
+ 22 => '',
3275
+ 23 => '',
3276
+ 24 => '',
3277
+ 25 => '',
3278
+ 26 => '',
3279
+ 27 => '',
3280
+ 28 => '',
3281
+ 29 => '',
3282
+ 30 => '',
3283
+ 31 => '',
3284
+ 32 => '',
3285
+ 33 => '',
3286
+ 34 => '',
3287
+ 35 => ''
3288
+ ),
3289
+ 'NUMBERS' =>
3290
+ GESHI_NUMBER_BIN_PREFIX_PERCENT |
3291
+ GESHI_NUMBER_BIN_SUFFIX |
3292
+ GESHI_NUMBER_HEX_PREFIX |
3293
+ GESHI_NUMBER_HEX_SUFFIX |
3294
+ GESHI_NUMBER_OCT_SUFFIX |
3295
+ GESHI_NUMBER_INT_BASIC |
3296
+ GESHI_NUMBER_FLT_NONSCI |
3297
+ GESHI_NUMBER_FLT_NONSCI_F |
3298
+ GESHI_NUMBER_FLT_SCI_ZERO,
3299
+ 'OOLANG' => false,
3300
+ 'OBJECT_SPLITTERS' => array(
3301
+ ),
3302
+ 'REGEXPS' => array(
3303
+ ),
3304
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
3305
+ 'SCRIPT_DELIMITERS' => array(
3306
+ ),
3307
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
3308
+ ),
3309
+ 'TAB_WIDTH' => 8,
3310
+ 'PARSER_CONTROL' => array(
3311
+ 'KEYWORDS' => array(
3312
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
3313
+ 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
3314
+ )
3315
+ )
3316
+ );
includes/geshi/asm.php ADDED
@@ -0,0 +1,601 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * asm.php
4
+ * -------
5
+ * Author: Tux (tux@inmail.cz)
6
+ * Copyright: (c) 2004 Tux (http://tux.a4.cz/),
7
+ * 2004-2009 Nigel McNie (http://qbnz.com/highlighter),
8
+ * 2009-2011 Benny Baumann (http://qbnz.com/highlighter),
9
+ * 2011 Dennis Yurichev (dennis@conus.info),
10
+ * 2011 Marat Dukhan (mdukhan3.at.gatech.dot.edu)
11
+ * Release Version: 1.0.9.0
12
+ * Date Started: 2004/07/27
13
+ *
14
+ * x86 Assembler language file for GeSHi.
15
+ * Based on the following documents:
16
+ * - "Intel64 and IA-32 Architectures Programmer's Reference Manual
17
+ * Volume 2 (2A & 2B): Instructions Set Reference, A-Z",
18
+ * Order Number 25383-039US, May 2011
19
+ * - "Intel Advanced Vector Extensions Programming Reference",
20
+ * Order Number 319433-011, June 2011
21
+ * - "AMD64 Architecture Programmer's Manual Volume 3:
22
+ * General-Purpose and System Instructions", Publication No. 24594,
23
+ * Revision 3.15, November 2009
24
+ * - "AMD64 Architecture Programmer's Manual Volume 4:
25
+ * 128-Bit and 256-Bit Media Instructions", Publication No. 26568,
26
+ * Revision 3.12, May 2011
27
+ * - "AMD64 Architecture Programmer's Manual Volume 5:
28
+ * 64-Bit Media and x87 Floating-Point Instructions",
29
+ * Publication No. 26569, Revision 3.11, December 2009
30
+ * - "AMD64 Technology Lightweight Profiling Specification",
31
+ * Publication No. 43724, Revision 3.08, August 2010
32
+ * - "Application Note 108: Cyrix Extended MMX Instruction Set"
33
+ * - "VIA Padlock Programming Guide", 3rd May 2005
34
+ * - http://en.wikipedia.org/wiki/X86_instruction_listings
35
+ * - NASM 2.10rc8 Online Documenation at
36
+ * http://www.nasm.us/xdoc/2.10rc8/html/nasmdoc0.html
37
+ * Color scheme is taken from SciTE. Previous versions of this file
38
+ * also used words from SciTE configuration file (based on NASM syntax)
39
+ *
40
+ * CHANGES
41
+ * -------
42
+ * 2011/10/07
43
+ * - Rearranged instructions and registers into groups
44
+ * - Updated to support the following extensions
45
+ * - CMOV, BMI1, BMI2, TBM, FSGSBASE
46
+ * - LZCNT, TZCNT, POPCNT, MOVBE, CRC32
47
+ * - MMX, MMX+, EMMX
48
+ * - 3dnow!, 3dnow!+, 3dnow! Geode, 3dnow! Prefetch
49
+ * - SSE, SSE2, SSE3, SSSE3, SSE4A, SSE4.1, SSE4.2
50
+ * - AVX, AVX2, XOP, FMA3, FMA4, CVT16
51
+ * - VMX, SVM
52
+ * - AES, PCLMULQDQ, Padlock, RDRAND
53
+ * - Updated NASM macros and directives
54
+ * 2010/07/01 (1.0.8.11)
55
+ * - Added MMX/SSE/new x86-64 registers, MMX/SSE (up to 4.2) instructions
56
+ * 2008/05/23 (1.0.7.22)
57
+ * - Added description of extra language features (SF#1970248)
58
+ * 2004/11/27 (1.0.2)
59
+ * - Added support for multiple object splitters
60
+ * 2004/10/27 (1.0.1)
61
+ * - Added support for URLs
62
+ * - Added binary and hexadecimal regexps
63
+ * 2004/08/05 (1.0.0)
64
+ * - First Release
65
+ *
66
+ * TODO (updated 2004/11/27)
67
+ * -------------------------
68
+ *
69
+ *************************************************************************************
70
+ *
71
+ * This file is part of GeSHi.
72
+ *
73
+ * GeSHi is free software; you can redistribute it and/or modify
74
+ * it under the terms of the GNU General Public License as published by
75
+ * the Free Software Foundation; either version 2 of the License, or
76
+ * (at your option) any later version.
77
+ *
78
+ * GeSHi is distributed in the hope that it will be useful,
79
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
80
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
81
+ * GNU General Public License for more details.
82
+ *
83
+ * You should have received a copy of the GNU General Public License
84
+ * along with GeSHi; if not, write to the Free Software
85
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
86
+ *
87
+ ************************************************************************************/
88
+
89
+ $language_data = array (
90
+ 'LANG_NAME' => 'ASM',
91
+ 'COMMENT_SINGLE' => array(1 => ';'),
92
+ 'COMMENT_MULTI' => array(),
93
+ //Line address prefix suppression
94
+ 'COMMENT_REGEXP' => array(2 => "/^(?:[0-9a-f]{0,4}:)?[0-9a-f]{4}(?:[0-9a-f]{4})?/mi"),
95
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
96
+ 'QUOTEMARKS' => array("'", '"'),
97
+ 'ESCAPE_CHAR' => '',
98
+ 'KEYWORDS' => array(
99
+ /* General-Purpose */
100
+ 1 => array(
101
+ /* BCD instructions */
102
+ 'aaa','aad','aam','aas','daa','das',
103
+ /* Control flow instructions */
104
+ 'ja','jae','jb','jbe','jc','je','jg','jge','jl','jle','jmp','jna',
105
+ 'jnae','jnb','jnbe','jnc','jne','jng','jnge','jnl','jnle','jno','jnp','jns','jnz',
106
+ 'jo','jp','jpe','jpo','js','jz','jcxz','jecxz','jrcxz','loop','loope','loopne',
107
+ 'call','ret','enter','leave','syscall','sysenter','int','into',
108
+ /* Predicate instructions */
109
+ 'seta','setae','setb','setbe','setc','sete','setg','setge','setl','setle','setna',
110
+ 'setnae','setnb','setnbe','setnc','setne','setng','setnge','setnl','setnle','setno',
111
+ 'setnp','setns','setnz','seto','setp','setpe','setpo','sets','setz','salc',
112
+ /* Conditional move instructions */
113
+ 'cmovo','cmovno','cmovb','cmovc','cmovnae','cmovae','cmovnb','cmovnc','cmove','cmovz',
114
+ 'cmovne','cmovnz','cmovbe','cmovna','cmova','cmovnbe','cmovs','cmovns','cmovp','cmovpe',
115
+ 'cmovnp','cmovpo','cmovl','cmovnge','cmovge','cmovnl','cmovle','cmovng','cmovg','cmovnle',
116
+ /* ALU instructions */
117
+ 'add','sub','adc','sbb','neg','cmp','inc','dec','and','or','xor','not','test',
118
+ 'shl','shr','sal','sar','shld','shrd','rol','ror','rcl','rcr',
119
+ 'cbw','cwd','cwde','cdq','cdqe','cqo','bsf','bsr','bt','btc','btr','bts',
120
+ 'idiv','imul','div','mul','bswap','nop',
121
+ /* Memory instructions */
122
+ 'lea','mov','movsx','movsxd','movzx','xlatb','bound','xchg','xadd','cmpxchg','cmpxchg8b','cmpxchg16b',
123
+ /* Stack instructions */
124
+ 'push','pop','pusha','popa','pushad','popad','pushf','popf','pushfd','popfd','pushfq','popfq',
125
+ /* EFLAGS manipulations instructions */
126
+ 'clc','cld','stc','std','cmc','lahf','sahf',
127
+ /* Prefix instructions */
128
+ 'lock','rep','repe','repz','repne','repnz',
129
+ /* String instructions */
130
+ 'cmps','cmpsb','cmpsw',/*'cmpsd',*/ 'cmpsq', /*CMPSD conflicts with the SSE2 instructions of the same name*/
131
+ 'movs','movsb','movsw',/*'movsd',*/ 'movsq', /*MOVSD conflicts with the SSE2 instructions of the same name*/
132
+ 'scas','scasb','scasw','scasd','scasq',
133
+ 'stos','stosb','stosw','stosd','stosq',
134
+ 'lods','lodsb','lodsw','lodsd','lodsq',
135
+ /* Information instructions */
136
+ 'cpuid','rdtsc','rdtscp','rdpmc','xgetbv',
137
+ 'sgdt','sidt','sldt','smsw','str','lar',
138
+ /* LWP instructions */
139
+ 'llwpcb','slwpcb','lwpval','lwpins',
140
+ /* Instructions from miscellaneous extensions */
141
+ 'crc32','popcnt','lzcnt','tzcnt','movbe','pclmulqdq','rdrand',
142
+ /* FSGSBASE instructions */
143
+ 'rdfsbase','rdgsbase','wrfsbase','wrgsbase',
144
+ /* BMI1 instructions */
145
+ 'andn','bextr','blsi','blsmk','blsr',
146
+ /* BMI2 instructions */
147
+ 'bzhi','mulx','pdep','pext','rorx','sarx','shlx','shrx',
148
+ /* TBM instructions */
149
+ 'blcfill','blci','blcic','blcmsk','blcs','blsfill','blsic','t1mskc','tzmsk',
150
+ /* Legacy instructions */
151
+ 'arpl','ud2','lds','les','lfs','lgs','lss','lsl','verr','verw',
152
+ /* Privileged instructions */
153
+ 'cli','sti','clts','hlt','rsm','in','insb','insw','insd',
154
+ 'out','outsb','outsw','outsd','clflush','invd','invlpg','invpcid','wbinvd',
155
+ 'iret','iretd','iretq','sysexit','sysret','lidt','lgdt','lldt','lmsw','ltr',
156
+ 'monitor','mwait','rdmsr','wrmsr','swapgs',
157
+ 'fxsave','fxsave64','fxrstor','fxrstor64',
158
+ 'xsave','xsaveopt','xrstor','xsetbv','getsec',
159
+ /* VMX instructions */
160
+ 'invept','invvpid','vmcall','vmclear','vmlaunch','vmresume',
161
+ 'vmptrld','vmptrst','vmread','vmwrite','vmxoff','vmxon',
162
+ /* SVM (AMD-V) instructions */
163
+ 'invlpga','skinit','clgi','stgi','vmload','vmsave','vmmcall','vmrun'
164
+ ),
165
+ /*FPU*/
166
+ 2 => array(
167
+ 'f2xm1','fabs','fadd','faddp','fbld','fbstp','fchs','fclex','fcom','fcomp','fcompp','fdecstp',
168
+ 'fdisi','fdiv','fdivp','fdivr','fdivrp','feni','ffree','fiadd','ficom','ficomp','fidiv',
169
+ 'fidivr','fild','fimul','fincstp','finit','fist','fistp','fisub','fisubr','fld','fld1',
170
+ 'fldcw','fldenv','fldenvw','fldl2e','fldl2t','fldlg2','fldln2','fldpi','fldz','fmul',
171
+ 'fmulp','fnclex','fndisi','fneni','fninit','fnop','fnsave','fnsavew','fnstcw','fnstenv',
172
+ 'fnstenvw','fnstsw','fpatan','fprem','fptan','frndint','frstor','frstorw','fsave',
173
+ 'fsavew','fscale','fsqrt','fst','fstcw','fstenv','fstenvw','fstp','fstsw','fsub','fsubp',
174
+ 'fsubr','fsubrp','ftst','fwait','fxam','fxch','fxtract','fyl2x','fyl2xp1',
175
+ 'fsetpm','fcos','fldenvd','fnsaved','fnstenvd','fprem1','frstord','fsaved','fsin','fsincos',
176
+ 'fstenvd','fucom','fucomp','fucompp','ffreep',
177
+ /* FCMOV instructions */
178
+ 'fcomi','fcomip','fucomi','fucomip',
179
+ 'fcmovb','fcmove','fcmovbe','fcmovu','fcmovnb','fcmovne','fcmovnbe','fcmovnu',
180
+ /* SSE3 instructions */
181
+ 'fisttp'
182
+ ),
183
+ /*SIMD*/
184
+ 3 => array(
185
+ /* MMX instructions */
186
+ 'movd','movq',
187
+ 'paddb','paddw','paddd','paddsb','paddsw','paddusb','paddusw',
188
+ 'psubb','psubw','psubd','psubsb','psubsw','psubusb','psubusw',
189
+ 'pand','pandn','por','pxor',
190
+ 'pcmpeqb','pcmpeqd','pcmpeqw','pcmpgtb','pcmpgtd','pcmpgtw',
191
+ 'pmaddwd','pmulhw','pmullw',
192
+ 'psllw','pslld','psllq','psrlw','psrld','psrlq','psraw','psrad',
193
+ 'packuswb','packsswb','packssdw',
194
+ 'punpcklbw','punpcklwd','punpckldq','punpckhbw','punpckhwd','punpckhdq',
195
+ 'emms',
196
+ /* MMX+ instructions */
197
+ 'pavgb','pavgw',
198
+ 'pextrw','pinsrw','pmovmskb',
199
+ 'pmaxsw','pmaxub','pminsw','pminub',
200
+ 'pmulhuw','psadbw','pshufw',
201
+ 'prefetchnta','prefetcht0','prefetcht1','prefetcht2',
202
+ 'maskmovq','movntq','sfence',
203
+ /* EMMX instructions (only available on Cyrix MediaGXm) */
204
+ 'paddsiw','psubsiw',
205
+ /*'pmulhrw',*/'pmachriw','pmulhriw', /* PMULHRW conflicts with the 3dnow! instruction of the same name */
206
+ 'pmagw','pdistib','paveb',
207
+ 'pmvzb','pmvnzb','pmvlzb','pmvgezb',
208
+ /* 3dnow! instructions! */
209
+ 'pfacc','pfadd','pfsub','pfsubr','pfmul',
210
+ 'pfcmpeq','pfcmpge','pfcmpgt',
211
+ 'pfmax','pfmin',
212
+ 'pfrcp','pfrcpit1','pfrcpit2','pfrsqit1','pfrsqrt',
213
+ 'pi2fd','pf2id',
214
+ 'pavgusb','pmulhrw',
215
+ 'femms',
216
+ /* 3dnow!+ instructions */
217
+ 'pfnacc','pfpnacc','pi2fw','pf2iw','pswapd',
218
+ /* 3dnow! Geode instructions */
219
+ 'pfrsqrtv','pfrcpv',
220
+ /* 3dnow! Prefetch instructions */
221
+ 'prefetch','prefetchw',
222
+ /* SSE instructions */
223
+ 'addss','addps','subss','subps',
224
+ 'mulss','mulps','divss','divps','sqrtss','sqrtps',
225
+ 'rcpss','rcpps','rsqrtss','rsqrtps',
226
+ 'maxss','maxps','minss','minps',
227
+ 'cmpss','comiss','ucomiss','cmpps',
228
+ 'cmpeqss','cmpltss','cmpless','cmpunordss','cmpneqss','cmpnltss','cmpnless','cmpordss',
229
+ 'cmpeqps','cmpltps','cmpleps','cmpunordps','cmpneqps','cmpnltps','cmpnleps','cmpordps',
230
+ 'andnps','andps','orps','xorps',
231
+ 'cvtsi2ss','cvtss2si','cvttss2si',
232
+ 'cvtpi2ps','cvtps2pi','cvttps2pi',
233
+ 'movss','movlps','movhps','movlhps','movhlps','movaps','movups','movntps','movmskps',
234
+ 'shufps','unpckhps','unpcklps',
235
+ 'ldmxcsr','stmxcsr',
236
+ /* SSE2 instructions */
237
+ 'addpd','addsd','subpd','subsd',
238
+ 'mulsd','mulpd','divsd','divpd','sqrtsd','sqrtpd',
239
+ 'maxsd','maxpd','minsd','minpd',
240
+ 'cmpsd','comisd','ucomisd','cmppd',
241
+ 'cmpeqsd','cmpltsd','cmplesd','cmpunordsd','cmpneqsd','cmpnltsd','cmpnlesd','cmpordsd',
242
+ 'cmpeqpd','cmpltpd','cmplepd','cmpunordpd','cmpneqpd','cmpnltpd','cmpnlepd','cmpordpd',
243
+ 'andnpd','andpd','orpd','xorpd',
244
+ 'cvtsd2ss','cvtpd2ps','cvtss2sd','cvtps2pd',
245
+ 'cvtdq2ps','cvtps2dq','cvttps2dq',
246
+ 'cvtdq2pd','cvtpd2dq','cvttpd2dq',
247
+ 'cvtsi2sd','cvtsd2si','cvttsd2si',
248
+ 'cvtpi2pd','cvtpd2pi','cvttpd2pi',
249
+ 'movsd','movlpd','movhpd','movapd','movupd','movntpd','movmskpd',
250
+ 'shufpd','unpckhpd','unpcklpd',
251
+ 'movnti','movdqa','movdqu','movntdq','maskmovdqu',
252
+ 'movdq2q','movq2dq',
253
+ 'paddq','psubq','pmuludq',
254
+ 'pslldq','psrldq',
255
+ 'punpcklqdq','punpckhqdq',
256
+ 'pshufhw','pshuflw','pshufd',
257
+ 'lfence','mfence',
258
+ /* SSE3 instructions */
259
+ 'addsubps','addsubpd',
260
+ 'haddps','haddpd','hsubps','hsubpd',
261
+ 'movsldup','movshdup','movddup',
262
+ 'lddqu',
263
+ /* SSSE3 instructions */
264
+ 'psignb','psignw','psignd',
265
+ 'pabsb','pabsw','pabsd',
266
+ 'palignr','pshufb',
267
+ 'pmulhrsw','pmaddubsw',
268
+ 'phaddw','phaddd','phaddsw',
269
+ 'phsubw','phsubd','phsubsw',
270
+ /* SSE4A instructions */
271
+ 'extrq','insertq','movntsd','movntss',
272
+ /* SSE4.1 instructions */
273
+ 'mpsadbw','phminposuw',
274
+ 'pmuldq','pmulld',
275
+ 'dpps','dppd',
276
+ 'blendps','blendpd','blendvps','blendvpd','pblendvb','pblendw',
277
+ 'pmaxsb','pmaxuw','pmaxsd','pmaxud','pminsb','pminuw','pminsd','pminud',
278
+ 'roundps','roundss','roundpd','roundsd',
279
+ 'insertps','pinsrb','pinsrd','pinsrq',
280
+ 'extractps','pextrb','pextrd','pextrq',
281
+ 'pmovsxbw','pmovsxbd','pmovsxbq','pmovsxwd','pmovsxwq','pmovsxdq',
282
+ 'pmovzxbw','pmovzxbd','pmovzxbq','pmovzxwd','pmovzxwq','pmovzxdq',
283
+ 'ptest',
284
+ 'pcmpeqq',
285
+ 'packusdw',
286
+ 'movntdqa',
287
+ /* SSE4.2 instructions */
288
+ 'pcmpgtq',
289
+ 'pcmpestri','pcmpestrm','pcmpistri','pcmpistrm',
290
+ /* AES instructions */
291
+ 'aesenc','aesenclast','aesdec','aesdeclast','aeskeygenassist','aesimc',
292
+ /* VIA Padlock instructions */
293
+ 'xcryptcbc','xcryptcfb','xcryptctr','xcryptecb','xcryptofb',
294
+ 'xsha1','xsha256','montmul','xstore',
295
+ /* AVX instructions */
296
+ 'vaddss','vaddps','vaddsd','vaddpd','vsubss','vsubps','vsubsd','vsubpd',
297
+ 'vaddsubps','vaddsubpd',
298
+ 'vhaddps','vhaddpd','vhsubps','vhsubpd',
299
+ 'vmulss','vmulps','vmulsd','vmulpd',
300
+ 'vmaxss','vmaxps','vmaxsd','vmaxpd','vminss','vminps','vminsd','vminpd',
301
+ 'vandps','vandpd','vandnps','vandnpd','vorps','vorpd','vxorps','vxorpd',
302
+ 'vblendps','vblendpd','vblendvps','vblendvpd',
303
+ 'vcmpss','vcomiss','vucomiss','vcmpsd','vcomisd','vucomisd','vcmpps','vcmppd',
304
+ 'vcmpeqss','vcmpltss','vcmpless','vcmpunordss','vcmpneqss','vcmpnltss','vcmpnless','vcmpordss',
305
+ 'vcmpeq_uqss','vcmpngess','vcmpngtss','vcmpfalsess','vcmpneq_oqss','vcmpgess','vcmpgtss','vcmptruess',
306
+ 'vcmpeq_osss','vcmplt_oqss','vcmple_oqss','vcmpunord_sss','vcmpneq_usss','vcmpnlt_uqss','vcmpnle_uqss','vcmpord_sss',
307
+ 'vcmpeq_usss','vcmpnge_uqss','vcmpngt_uqss','vcmpfalse_osss','vcmpneq_osss','vcmpge_oqss','vcmpgt_oqss','vcmptrue_usss',
308
+ 'vcmpeqps','vcmpltps','vcmpleps','vcmpunordps','vcmpneqps','vcmpnltps','vcmpnleps','vcmpordps',
309
+ 'vcmpeq_uqps','vcmpngeps','vcmpngtps','vcmpfalseps','vcmpneq_oqps','vcmpgeps','vcmpgtps','vcmptrueps',
310
+ 'vcmpeq_osps','vcmplt_oqps','vcmple_oqps','vcmpunord_sps','vcmpneq_usps','vcmpnlt_uqps','vcmpnle_uqps','vcmpord_sps',
311
+ 'vcmpeq_usps','vcmpnge_uqps','vcmpngt_uqps','vcmpfalse_osps','vcmpneq_osps','vcmpge_oqps','vcmpgt_oqps','vcmptrue_usps',
312
+ 'vcmpeqsd','vcmpltsd','vcmplesd','vcmpunordsd','vcmpneqsd','vcmpnltsd','vcmpnlesd','vcmpordsd',
313
+ 'vcmpeq_uqsd','vcmpngesd','vcmpngtsd','vcmpfalsesd','vcmpneq_oqsd','vcmpgesd','vcmpgtsd','vcmptruesd',
314
+ 'vcmpeq_ossd','vcmplt_oqsd','vcmple_oqsd','vcmpunord_ssd','vcmpneq_ussd','vcmpnlt_uqsd','vcmpnle_uqsd','vcmpord_ssd',
315
+ 'vcmpeq_ussd','vcmpnge_uqsd','vcmpngt_uqsd','vcmpfalse_ossd','vcmpneq_ossd','vcmpge_oqsd','vcmpgt_oqsd','vcmptrue_ussd',
316
+ 'vcmpeqpd','vcmpltpd','vcmplepd','vcmpunordpd','vcmpneqpd','vcmpnltpd','vcmpnlepd','vcmpordpd',
317
+ 'vcmpeq_uqpd','vcmpngepd','vcmpngtpd','vcmpfalsepd','vcmpneq_oqpd','vcmpgepd','vcmpgtpd','vcmptruepd',
318
+ 'vcmpeq_ospd','vcmplt_oqpd','vcmple_oqpd','vcmpunord_spd','vcmpneq_uspd','vcmpnlt_uqpd','vcmpnle_uqpd','vcmpord_spd',
319
+ 'vcmpeq_uspd','vcmpnge_uqpd','vcmpngt_uqpd','vcmpfalse_ospd','vcmpneq_ospd','vcmpge_oqpd','vcmpgt_oqpd','vcmptrue_uspd',
320
+ 'vcvtsd2ss','vcvtpd2ps','vcvtss2sd','vcvtps2pd',
321
+ 'vcvtsi2ss','vcvtss2si','vcvttss2si',
322
+ 'vcvtpi2ps','vcvtps2pi','vcvttps2pi',
323
+ 'vcvtdq2ps','vcvtps2dq','vcvttps2dq',
324
+ 'vcvtdq2pd','vcvtpd2dq','vcvttpd2dq',
325
+ 'vcvtsi2sd','vcvtsd2si','vcvttsd2si',
326
+ 'vcvtpi2pd','vcvtpd2pi','vcvttpd2pi',
327
+ 'vdivss','vdivps','vdivsd','vdivpd','vsqrtss','vsqrtps','vsqrtsd','vsqrtpd',
328
+ 'vdpps','vdppd',
329
+ 'vmaskmovps','vmaskmovpd',
330
+ 'vmovss','vmovsd','vmovaps','vmovapd','vmovups','vmovupd','vmovntps','vmovntpd',
331
+ 'vmovhlps','vmovlhps','vmovlps','vmovlpd','vmovhps','vmovhpd',
332
+ 'vmovsldup','vmovshdup','vmovddup',
333
+ 'vmovmskps','vmovmskpd',
334
+ 'vroundss','vroundps','vroundsd','vroundpd',
335
+ 'vrcpss','vrcpps','vrsqrtss','vrsqrtps',
336
+ 'vunpcklps','vunpckhps','vunpcklpd','vunpckhpd',
337
+ 'vbroadcastss','vbroadcastsd','vbroadcastf128',
338
+ 'vextractps','vinsertps','vextractf128','vinsertf128',
339
+ 'vshufps','vshufpd','vpermilps','vpermilpd','vperm2f128',
340
+ 'vtestps','vtestpd',
341
+ 'vpaddb','vpaddusb','vpaddsb','vpaddw','vpaddusw','vpaddsw','vpaddd','vpaddq',
342
+ 'vpsubb','vpsubusb','vpsubsb','vpsubw','vpsubusw','vpsubsw','vpsubd','vpsubq',
343
+ 'vphaddw','vphaddsw','vphaddd','vphsubw','vphsubsw','vphsubd',
344
+ 'vpsllw','vpslld','vpsllq','vpsrlw','vpsrld','vpsrlq','vpsraw','vpsrad',
345
+ 'vpand','vpandn','vpor','vpxor',
346
+ 'vpblendwb','vpblendw',
347
+ 'vpsignb','vpsignw','vpsignd',
348
+ 'vpavgb','vpavgw',
349
+ 'vpabsb','vpabsw','vpabsd',
350
+ 'vmovd','vmovq','vmovdqa','vmovdqu','vlddqu','vmovntdq','vmovntdqa','vmaskmovdqu',
351
+ 'vpmovsxbw','vpmovsxbd','vpmovsxbq','vpmovsxwd','vpmovsxwq','vpmovsxdq',
352
+ 'vpmovzxbw','vpmovzxbd','vpmovzxbq','vpmovzxwd','vpmovzxwq','vpmovzxdq',
353
+ 'vpackuswb','vpacksswb','vpackusdw','vpackssdw',
354
+ 'vpcmpeqb','vpcmpeqw','vpcmpeqd','vpcmpeqq','vpcmpgtb','vpcmpgtw','vpcmpgtd','vpcmpgtq',
355
+ 'vpmaddubsw','vpmaddwd',
356
+ 'vpmullw','vpmulhuw','vpmulhw','vpmulhrsw','vpmulld','vpmuludq','vpmuldq',
357
+ 'vpmaxub','vpmaxsb','vpmaxuw','vpmaxsw','vpmaxud','vpmaxsd',
358
+ 'vpminub','vpminsb','vpminuw','vpminsw','vpminud','vpminsd',
359
+ 'vpmovmskb','vptest',
360
+ 'vpunpcklbw','vpunpcklwd','vpunpckldq','vpunpcklqdq',
361
+ 'vpunpckhbw','vpunpckhwd','vpunpckhdq','vpunpckhqdq',
362
+ 'vpslldq','vpsrldq','vpalignr',
363
+ 'vpshufb','vpshuflw','vpshufhw','vpshufd',
364
+ 'vpextrb','vpextrw','vpextrd','vpextrq','vpinsrb','vpinsrw','vpinsrd','vpinsrq',
365
+ 'vpsadbw','vmpsadbw','vphminposuw',
366
+ 'vpcmpestri','vpcmpestrm','vpcmpistri','vpcmpistrm',
367
+ 'vpclmulqdq','vaesenc','vaesenclast','vaesdec','vaesdeclast','vaeskeygenassist','vaesimc',
368
+ 'vldmxcsr','vstmxcsr','vzeroall','vzeroupper',
369
+ /* AVX2 instructions */
370
+ 'vbroadcasti128','vpbroadcastb','vpbroadcastw','vpbroadcastd','vpbroadcastq',
371
+ 'vpblendd',
372
+ 'vpermd','vpermq','vperm2i128',
373
+ 'vextracti128','vinserti128',
374
+ 'vpmaskmovd','vpmaskmovq',
375
+ 'vpsllvd','vpsllvq','vpsravd','vpsrlvd',
376
+ 'vpgatherdd','vpgatherqd','vgatherdq','vgatherqq',
377
+ 'vpermps','vpermpd',
378
+ 'vgatherdpd','vgatherqpd','vgatherdps','vgatherqps',
379
+ /* XOP instructions */
380
+ 'vfrczss','vfrczps','vfrczsd','vfrczpd',
381
+ 'vpermil2ps','vperlil2pd',
382
+ 'vpcomub','vpcomb','vpcomuw','vpcomw','vpcomud','vpcomd','vpcomuq','vpcomq',
383
+ 'vphaddubw','vphaddbw','vphaddubd','vphaddbd','vphaddubq','vphaddbq',
384
+ 'vphadduwd','vphaddwd','vphadduwq','vphaddwq','vphaddudq','vphadddq',
385
+ 'vphsubbw','vphsubwd','vphsubdq',
386
+ 'vpmacsdd','vpmacssdd','vpmacsdql','vpmacssdql','vpmacsdqh','vpmacssdqh',
387
+ 'vpmacsww','vpmacssww','vpmacswd','vpmacsswd',
388
+ 'vpmadcswd','vpmadcsswd',
389
+ 'vpcmov','vpperm',
390
+ 'vprotb','vprotw','vprotd','vprotq',
391
+ 'vpshab','vpshaw','vpshad','vpshaq',
392
+ 'vpshlb','vpshlw','vpshld','vpshlq',
393
+ /* CVT16 instructions */
394
+ 'vcvtph2ps','vcvtps2ph',
395
+ /* FMA4 instructions */
396
+ 'vfmaddss','vfmaddps','vfmaddsd','vfmaddpd',
397
+ 'vfmsubss','vfmsubps','vfmsubsd','vfmsubpd',
398
+ 'vnfmaddss','vnfmaddps','vnfmaddsd','vnfmaddpd',
399
+ 'vnfmsubss','vnfmsubps','vnfmsubsd','vnfmsubpd',
400
+ 'vfmaddsubps','vfmaddsubpd','vfmsubaddps','vfmsubaddpd',
401
+ /* FMA3 instructions */
402
+ 'vfmadd132ss','vfmadd213ss','vfmadd231ss',
403
+ 'vfmadd132ps','vfmadd213ps','vfmadd231ps',
404
+ 'vfmadd132sd','vfmadd213sd','vfmadd231sd',
405
+ 'vfmadd132pd','vfmadd213pd','vfmadd231pd',
406
+ 'vfmaddsub132ps','vfmaddsub213ps','vfmaddsub231ps',
407
+ 'vfmaddsub132pd','vfmaddsub213pd','vfmaddsub231pd',
408
+ 'vfmsubadd132ps','vfmsubadd213ps','vfmsubadd231ps',
409
+ 'vfmsubadd132pd','vfmsubadd213pd','vfmsubadd231pd',
410
+ 'vfmsub132ss','vfmsub213ss','vfmsub231ss',
411
+ 'vfmsub132ps','vfmsub213ps','vfmsub231ps',
412
+ 'vfmsub132sd','vfmsub213sd','vfmsub231sd',
413
+ 'vfmsub132pd','vfmsub213pd','vfmsub231pd',
414
+ 'vfnmadd132ss','vfnmadd213ss','vfnmadd231ss',
415
+ 'vfnmadd132ps','vfnmadd213ps','vfnmadd231ps',
416
+ 'vfnmadd132sd','vfnmadd213sd','vfnmadd231sd',
417
+ 'vfnmadd132pd','vfnmadd213pd','vfnmadd231pd',
418
+ 'vfnmsub132ss','vfnmsub213ss','vfnmsub231ss',
419
+ 'vfnmsub132ps','vfnmsub213ps','vfnmsub231ps',
420
+ 'vfnmsub132sd','vfnmsub213sd','vfnmsub231sd',
421
+ 'vfnmsub132pd','vfnmsub213pd','vfnmsub231pd'
422
+ ),
423
+ /*registers*/
424
+ 4 => array(
425
+ /* General-Purpose Registers */
426
+ 'al','ah','bl','bh','cl','ch','dl','dh','sil','dil','bpl','spl',
427
+ 'r8b','r9b','r10b','r11b','r12b','r13b','r14b','r15b',
428
+ 'ax','bx','cx','dx','si','di','bp','sp',
429
+ 'r8w','r9w','r10w','r11w','r12w','r13w','r14w','r15w',
430
+ 'eax','ebx','ecx','edx','esi','edi','ebp','esp',
431
+ 'r8d','r9d','r10d','r11d','r12d','r13d','r14d','r15d',
432
+ 'rax','rcx','rdx','rbx','rsp','rbp','rsi','rdi',
433
+ 'r8','r9','r10','r11','r12','r13','r14','r15',
434
+ /* Debug Registers */
435
+ 'dr0','dr1','dr2','dr3','dr6','dr7',
436
+ /* Control Registers */
437
+ 'cr0','cr2','cr3','cr4','cr8',
438
+ /* Test Registers (Supported on Intel 486 only) */
439
+ 'tr3','tr4','tr5','tr6','tr7',
440
+ /* Segment Registers */
441
+ 'cs','ds','es','fs','gs','ss',
442
+ /* FPU Registers */
443
+ 'st','st0','st1','st2','st3','st4','st5','st6','st7',
444
+ /* MMX Registers */
445
+ 'mm0','mm1','mm2','mm3','mm4','mm5','mm6','mm7',
446
+ /* SSE Registers */
447
+ 'xmm0','xmm1','xmm2','xmm3','xmm4','xmm5','xmm6','xmm7',
448
+ 'xmm8','xmm9','xmm10','xmm11','xmm12','xmm13','xmm14','xmm15',
449
+ /* AVX Registers */
450
+ 'ymm0','ymm1','ymm2','ymm3','ymm4','ymm5','ymm6','ymm7',
451
+ 'ymm8','ymm9','ymm10','ymm11','ymm12','ymm13','ymm14','ymm15'
452
+ ),
453
+ /*Directive*/
454
+ 5 => array(
455
+ 'db','dw','dd','dq','dt','do','dy',
456
+ 'resb','resw','resd','resq','rest','reso','resy','incbin','equ','times','safeseh',
457
+ '__utf16__','__utf32__',
458
+ 'default','cpu','float','start','imagebase','osabi',
459
+ '..start','..imagebase','..gotpc','..gotoff','..gottpoff','..got','..plt','..sym','..tlsie',
460
+ 'section','segment','__sect__','group','absolute',
461
+ '.bss','.comment','.data','.lbss','.ldata','.lrodata','.rdata','.rodata','.tbss','.tdata','.text',
462
+ 'alloc','bss','code','exec','data','noalloc','nobits','noexec','nowrite','progbits','rdata','tls','write',
463
+ 'private','public','common','stack','overlay','class',
464
+ 'extern','global','import','export',
465
+ '%define','%idefine','%xdefine','%ixdefine','%assign','%undef',
466
+ '%defstr','%idefstr','%deftok','%ideftok',
467
+ '%strcat','%strlen','%substr',
468
+ '%macro','%imacro','%rmacro','%exitmacro','%endmacro','%unmacro',
469
+ '%if','%ifn','%elif','%elifn','%else','%endif',
470
+ '%ifdef','%ifndef','%elifdef','%elifndef',
471
+ '%ifmacro','%ifnmacro','%elifmacro','%elifnmacro',
472
+ '%ifctx','%ifnctx','%elifctx','%elifnctx',
473
+ '%ifidn','%ifnidn','%elifidn','%elifnidn',
474
+ '%ifidni','%ifnidni','%elifidni','%elifnidni',
475
+ '%ifid','%ifnid','%elifid','%elifnid',
476
+ '%ifnum','%ifnnum','%elifnum','%elifnnum',
477
+ '%ifstr','%ifnstr','%elifstr','%elifnstr',
478
+ '%iftoken','%ifntoken','%eliftoken','%elifntoken',
479
+ '%ifempty','%ifnempty','%elifempty','%elifnempty',
480
+ '%ifenv','%ifnenv','%elifenv','%elifnenv',
481
+ '%rep','%exitrep','%endrep',
482
+ '%while','%exitwhile','%endwhile',
483
+ '%include','%pathsearch','%depend','%use',
484
+ '%push','%pop','%repl','%arg','%local','%stacksize','flat','flat64','large','small',
485
+ '%error','%warning','%fatal',
486
+ '%00','.nolist','%rotate','%line','%!','%final','%clear',
487
+ 'struc','endstruc','istruc','at','iend',
488
+ 'align','alignb','sectalign',
489
+ 'bits','use16','use32','use64',
490
+ '__nasm_major__','__nasm_minor__','__nasm_subminor__','___nasm_patchlevel__',
491
+ '__nasm_version_id__','__nasm_ver__',
492
+ '__file__','__line__','__pass__','__bits__','__output_format__',
493
+ '__date__','__time__','__date_num__','__time_num__','__posix_time__',
494
+ '__utc_date__','__utc_time__','__utc_date_num__','__utc_time_num__',
495
+ '__float_daz__','__float_round__','__float__',
496
+ /* Keywords from standard packages */
497
+ '__use_altreg__',
498
+ '__use_smartalign__','smartalign','__alignmode__',
499
+ '__use_fp__','__infinity__','__nan__','__qnan__','__snan__',
500
+ '__float8__','__float16__','__float32__','__float64__','__float80m__','__float80e__','__float128l__','__float128h__'
501
+ ),
502
+ /*Operands*/
503
+ 6 => array(
504
+ 'a16','a32','a64','o16','o32','o64','strict',
505
+ 'byte','word','dword','qword','tword','oword','yword','nosplit',
506
+ '%0','%1','%2','%3','%4','%5','%6','%7','%8','%9',
507
+ 'abs','rel',
508
+ 'seg','wrt'
509
+ )
510
+ ),
511
+ 'SYMBOLS' => array(
512
+ 1 => array(
513
+ '[', ']', '(', ')',
514
+ '+', '-', '*', '/', '%',
515
+ '.', ',', ';', ':'
516
+ ),
517
+ 2 => array(
518
+ '$','$$','%+','%?','%??'
519
+ )
520
+ ),
521
+ 'CASE_SENSITIVE' => array(
522
+ GESHI_COMMENTS => false,
523
+ 1 => false,
524
+ 2 => false,
525
+ 3 => false,
526
+ 4 => false,
527
+ 5 => false,
528
+ 6 => false
529
+ ),
530
+ 'STYLES' => array(
531
+ 'KEYWORDS' => array(
532
+ 1 => 'color: #00007f; font-weight: bold;',
533
+ 2 => 'color: #0000ff;',
534
+ 3 => 'color: #b00040;',
535
+ 4 => 'color: #46aa03; font-weight: bold;',
536
+ 5 => 'color: #0000ff; font-weight: bold;',
537
+ 6 => 'color: #0000ff; font-weight: bold;'
538
+ ),
539
+ 'COMMENTS' => array(
540
+ 1 => 'color: #666666; font-style: italic;',
541
+ 2 => 'color: #adadad; font-style: italic;'
542
+ ),
543
+ 'ESCAPE_CHAR' => array(
544
+ 0 => 'color: #000099; font-weight: bold;'
545
+ ),
546
+ 'BRACKETS' => array(
547
+ 0 => 'color: #009900; font-weight: bold;'
548
+ ),
549
+ 'STRINGS' => array(
550
+ 0 => 'color: #7f007f;'
551
+ ),
552
+ 'NUMBERS' => array(
553
+ 0 => 'color: #ff0000;'
554
+ ),
555
+ 'METHODS' => array(
556
+ ),
557
+ 'SYMBOLS' => array(
558
+ 1 => 'color: #339933;',
559
+ 2 => 'color: #0000ff; font-weight: bold;'
560
+ ),
561
+ 'REGEXPS' => array(
562
+ ),
563
+ 'SCRIPT' => array(
564
+ )
565
+ ),
566
+ 'URLS' => array(
567
+ 1 => '',
568
+ 2 => '',
569
+ 3 => '',
570
+ 4 => '',
571
+ 5 => '',
572
+ 6 => ''
573
+ ),
574
+ 'NUMBERS' =>
575
+ GESHI_NUMBER_BIN_PREFIX_PERCENT |
576
+ GESHI_NUMBER_BIN_SUFFIX |
577
+ GESHI_NUMBER_HEX_PREFIX |
578
+ GESHI_NUMBER_HEX_SUFFIX |
579
+ GESHI_NUMBER_OCT_SUFFIX |
580
+ GESHI_NUMBER_INT_BASIC |
581
+ GESHI_NUMBER_FLT_NONSCI |
582
+ GESHI_NUMBER_FLT_NONSCI_F |
583
+ GESHI_NUMBER_FLT_SCI_ZERO,
584
+ 'OOLANG' => false,
585
+ 'OBJECT_SPLITTERS' => array(
586
+ ),
587
+ 'REGEXPS' => array(
588
+ ),
589
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
590
+ 'SCRIPT_DELIMITERS' => array(
591
+ ),
592
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
593
+ ),
594
+ 'TAB_WIDTH' => 8,
595
+ 'PARSER_CONTROL' => array(
596
+ 'KEYWORDS' => array(
597
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#>|^])",
598
+ 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_<\|%])"
599
+ )
600
+ )
601
+ );
includes/geshi/asp.php ADDED
@@ -0,0 +1,162 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * asp.php
4
+ * --------
5
+ * Author: Amit Gupta (http://blog.igeek.info/)
6
+ * Copyright: (c) 2004 Amit Gupta (http://blog.igeek.info/), Nigel McNie (http://qbnz.com/highlighter)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2004/08/13
9
+ *
10
+ * ASP language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2005/12/30 (1.0.3)
15
+ * - Strings only delimited by ", comments by '
16
+ * 2004/11/27 (1.0.2)
17
+ * - Added support for multiple object splitters
18
+ * 2004/10/27 (1.0.1)
19
+ * - Added support for URLs
20
+ * 2004/08/13 (1.0.0)
21
+ * - First Release
22
+ *
23
+ * TODO (updated 2004/11/27)
24
+ * -------------------------
25
+ * * Include all the functions, keywords etc that I have missed
26
+ *
27
+ *************************************************************************************
28
+ *
29
+ * This file is part of GeSHi.
30
+ *
31
+ * GeSHi is free software; you can redistribute it and/or modify
32
+ * it under the terms of the GNU General Public License as published by
33
+ * the Free Software Foundation; either version 2 of the License, or
34
+ * (at your option) any later version.
35
+ *
36
+ * GeSHi is distributed in the hope that it will be useful,
37
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
38
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
39
+ * GNU General Public License for more details.
40
+ *
41
+ * You should have received a copy of the GNU General Public License
42
+ * along with GeSHi; if not, write to the Free Software
43
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
44
+ *
45
+ ************************************************************************************/
46
+
47
+ $language_data = array (
48
+ 'LANG_NAME' => 'ASP',
49
+ 'COMMENT_SINGLE' => array(1 => "'", 2 => '//'),
50
+ 'COMMENT_MULTI' => array('/*' => '*/'),
51
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
52
+ 'QUOTEMARKS' => array('"'),
53
+ 'ESCAPE_CHAR' => '',
54
+ 'KEYWORDS' => array(
55
+ 1 => array(
56
+ 'include', 'file', 'Const', 'Dim', 'Option', 'Explicit', 'Implicit', 'Set', 'Select', 'ReDim', 'Preserve',
57
+ 'ByVal', 'ByRef', 'End', 'Private', 'Public', 'If', 'Then', 'Else', 'ElseIf', 'Case', 'With', 'NOT',
58
+ 'While', 'Wend', 'For', 'Loop', 'Do', 'Request', 'Response', 'Server', 'ADODB', 'Session', 'Application',
59
+ 'Each', 'In', 'Get', 'Next', 'INT', 'CINT', 'CBOOL', 'CDATE', 'CBYTE', 'CCUR', 'CDBL', 'CLNG', 'CSNG',
60
+ 'CSTR', 'Fix', 'Is', 'Sgn', 'String', 'Boolean', 'Currency', 'Me', 'Single', 'Long', 'Integer', 'Byte',
61
+ 'Variant', 'Double', 'To', 'Let', 'Xor', 'Resume', 'On', 'Error', 'Imp', 'GoTo', 'Call', 'Global'
62
+ ),
63
+ 2 => array(
64
+ 'Null', 'Nothing', 'And',
65
+ 'False',
66
+ 'True', 'var', 'Or', 'BOF', 'EOF', 'xor',
67
+ 'Function', 'Class', 'New', 'Sub'
68
+ ),
69
+ 3 => array(
70
+ 'CreateObject', 'Write', 'Redirect', 'Cookies', 'BinaryRead', 'ClientCertificate', 'Form', 'QueryString',
71
+ 'ServerVariables', 'TotalBytes', 'AddHeader', 'AppendToLog', 'BinaryWrite', 'Buffer', 'CacheControl',
72
+ 'Charset', 'Clear', 'ContentType', 'End()', 'Expires', 'ExpiresAbsolute', 'Flush()', 'IsClientConnected',
73
+ 'PICS', 'Status', 'Connection', 'Recordset', 'Execute', 'Abandon', 'Lock', 'UnLock', 'Command', 'Fields',
74
+ 'Properties', 'Property', 'Send', 'Replace', 'InStr', 'TRIM', 'NOW', 'Day', 'Month', 'Hour', 'Minute', 'Second',
75
+ 'Year', 'MonthName', 'LCase', 'UCase', 'Abs', 'Array', 'As', 'LEN', 'MoveFirst', 'MoveLast', 'MovePrevious',
76
+ 'MoveNext', 'LBound', 'UBound', 'Transfer', 'Open', 'Close', 'MapPath', 'FileExists', 'OpenTextFile', 'ReadAll'
77
+ )
78
+ ),
79
+ 'SYMBOLS' => array(
80
+ 1 => array(
81
+ '<%', '%>'
82
+ ),
83
+ 0 => array(
84
+ '(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>',
85
+ ';', ':', '?', '='),
86
+ ),
87
+ 'CASE_SENSITIVE' => array(
88
+ GESHI_COMMENTS => false,
89
+ 1 => false,
90
+ 2 => false,
91
+ 3 => false,
92
+ ),
93
+ 'STYLES' => array(
94
+ 'KEYWORDS' => array(
95
+ 1 => 'color: #990099; font-weight: bold;',
96
+ 2 => 'color: #0000ff; font-weight: bold;',
97
+ 3 => 'color: #330066;'
98
+ ),
99
+ 'COMMENTS' => array(
100
+ 1 => 'color: #008000;',
101
+ 2 => 'color: #ff6600;',
102
+ 'MULTI' => 'color: #008000;'
103
+ ),
104
+ 'ESCAPE_CHAR' => array(
105
+ 0 => 'color: #000099; font-weight: bold;'
106
+ ),
107
+ 'BRACKETS' => array(
108
+ 0 => 'color: #006600; font-weight:bold;'
109
+ ),
110
+ 'STRINGS' => array(
111
+ 0 => 'color: #cc0000;'
112
+ ),
113
+ 'NUMBERS' => array(
114
+ 0 => 'color: #800000;'
115
+ ),
116
+ 'METHODS' => array(
117
+ 1 => 'color: #9900cc;'
118
+ ),
119
+ 'SYMBOLS' => array(
120
+ 0 => 'color: #006600; font-weight: bold;',
121
+ 1 => 'color: #000000; font-weight: bold;'
122
+ ),
123
+ 'REGEXPS' => array(
124
+ ),
125
+ 'SCRIPT' => array(
126
+ 0 => '',
127
+ 1 => '',
128
+ 2 => '',
129
+ 3 => ''
130
+ )
131
+ ),
132
+ 'URLS' => array(
133
+ 1 => '',
134
+ 2 => '',
135
+ 3 => ''
136
+ ),
137
+ 'OOLANG' => true,
138
+ 'OBJECT_SPLITTERS' => array(
139
+ 1 => '.'
140
+ ),
141
+ 'REGEXPS' => array(
142
+ ),
143
+ 'STRICT_MODE_APPLIES' => GESHI_MAYBE,
144
+ 'SCRIPT_DELIMITERS' => array(
145
+ 0 => array(
146
+ '<%' => '%>'
147
+ ),
148
+ 1 => array(
149
+ '<script language="vbscript" runat="server">' => '</script>'
150
+ ),
151
+ 2 => array(
152
+ '<script language="javascript" runat="server">' => '</script>'
153
+ ),
154
+ 3 => "/(?P<start><%=?)(?:\"[^\"]*?\"|\/\*(?!\*\/).*?\*\/|.)*?(?P<end>%>|\Z)/sm"
155
+ ),
156
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
157
+ 0 => true,
158
+ 1 => true,
159
+ 2 => true,
160
+ 3 => true
161
+ )
162
+ );
includes/geshi/asymptote.php ADDED
@@ -0,0 +1,1850 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * asymptote.php
4
+ * -------------
5
+ * Author: Manuel Yguel (manuel.yguel.robotics@gmail.com)
6
+ * Copyright: (c) 2012 Manuel Yguel (http://manuelyguel.eu)
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2012/05/24
9
+ *
10
+ * asymptote language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2012/05/24 (1.0.0.0)
15
+ * - First Release
16
+ *
17
+ * TODO (updated 2012/05/24)
18
+ * -------------------------
19
+ * * Split to several files - php4, php5 etc
20
+ *
21
+ *************************************************************************************
22
+ *
23
+ * This file is part of GeSHi.
24
+ *
25
+ * GeSHi is free software; you can redistribute it and/or modify
26
+ * it under the terms of the GNU General Public License as published by
27
+ * the Free Software Foundation; either version 2 of the License, or
28
+ * (at your option) any later version.
29
+ *
30
+ * GeSHi is distributed in the hope that it will be useful,
31
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
32
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33
+ * GNU General Public License for more details.
34
+ *
35
+ * You should have received a copy of the GNU General Public License
36
+ * along with GeSHi; if not, write to the Free Software
37
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
38
+ * ************************************************************************************/
39
+
40
+ $language_data = array(
41
+ 'LANG_NAME' => 'asymptote',
42
+ 'COMMENT_SINGLE' => array(1 => '//'),
43
+ 'COMMENT_MULTI' => array('/*' => '*/'),
44
+ 'COMMENT_REGEXP' => array(
45
+ //Multiline-continued single-line comments
46
+ 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
47
+ //Multiline-continued preprocessor define
48
+ 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m'
49
+ ),
50
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
51
+ 'QUOTEMARKS' => array("'", '"'),
52
+ 'ESCAPE_CHAR' => '',
53
+ 'ESCAPE_REGEXP' => array(
54
+ //Simple Single Char Escapes
55
+ 1 => "#\\\\[\\\\abfnrtv\'\"?\n]#i",
56
+ //Hexadecimal Char Specs
57
+ 2 => "#\\\\x[\da-fA-F]{2}#",
58
+ //Hexadecimal Char Specs
59
+ 3 => "#\\\\u[\da-fA-F]{4}#",
60
+ //Hexadecimal Char Specs
61
+ 4 => "#\\\\U[\da-fA-F]{8}#",
62
+ //Octal Char Specs
63
+ 5 => "#\\\\[0-7]{1,3}#"
64
+ ),
65
+ 'NUMBERS' =>
66
+ GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
67
+ GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
68
+ GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
69
+ 'KEYWORDS' => array(
70
+ 1 => array(
71
+ 'and',
72
+ 'controls',
73
+ 'tension',
74
+ 'atleast',
75
+ 'curl',
76
+ 'if',
77
+ 'else',
78
+ 'while',
79
+ 'for',
80
+ 'do',
81
+ 'return',
82
+ 'break',
83
+ 'continue',
84
+ 'struct',
85
+ 'typedef',
86
+ 'new',
87
+ 'access',
88
+ 'import',
89
+ 'unravel',
90
+ 'from',
91
+ 'include',
92
+ 'quote',
93
+ 'static',
94
+ 'public',
95
+ 'private',
96
+ 'restricted',
97
+ 'this',
98
+ 'explicit',
99
+ 'true',
100
+ 'false',
101
+ 'null',
102
+ 'cycle',
103
+ 'newframe',
104
+ 'operator'
105
+ ),
106
+ 2 => array(
107
+ 'Braid',
108
+ 'FitResult',
109
+ 'Label',
110
+ 'Legend',
111
+ 'Segment',
112
+ 'Solution',
113
+ 'TreeNode',
114
+ 'abscissa',
115
+ 'arrowhead',
116
+ 'binarytree',
117
+ 'binarytreeNode',
118
+ 'block',
119
+ 'bool',
120
+ 'bool3',
121
+ 'bounds',
122
+ 'bqe',
123
+ 'circle',
124
+ 'conic',
125
+ 'coord',
126
+ 'coordsys',
127
+ 'cputime',
128
+ 'ellipse',
129
+ 'file',
130
+ 'filltype',
131
+ 'frame',
132
+ 'grid3',
133
+ 'guide',
134
+ 'horner',
135
+ 'hsv',
136
+ 'hyperbola',
137
+ 'indexedTransform',
138
+ 'int',
139
+ 'inversion',
140
+ 'key',
141
+ 'light',
142
+ 'line',
143
+ 'linefit',
144
+ 'marginT',
145
+ 'marker',
146
+ 'mass',
147
+ 'object',
148
+ 'pair',
149
+ 'parabola',
150
+ 'path',
151
+ 'path3',
152
+ 'pen',
153
+ 'picture',
154
+ 'point',
155
+ 'position',
156
+ 'projection',
157
+ 'real',
158
+ 'revolution',
159
+ 'scaleT',
160
+ 'scientific',
161
+ 'segment',
162
+ 'side',
163
+ 'slice',
164
+ 'solution',
165
+ 'splitface',
166
+ 'string',
167
+ 'surface',
168
+ 'tensionSpecifier',
169
+ 'ticklocate',
170
+ 'ticksgridT',
171
+ 'tickvalues',
172
+ 'transform',
173
+ 'transformation',
174
+ 'tree',
175
+ 'triangle',
176
+ 'trilinear',
177
+ 'triple',
178
+ 'vector',
179
+ 'vertex',
180
+ 'void'),
181
+
182
+ 3 => array(
183
+ 'AND',
184
+ 'Arc',
185
+ 'ArcArrow',
186
+ 'ArcArrows',
187
+ 'Arrow',
188
+ 'Arrows',
189
+ 'Automatic',
190
+ 'AvantGarde',
191
+ 'BBox',
192
+ 'BWRainbow',
193
+ 'BWRainbow2',
194
+ 'Bar',
195
+ 'Bars',
196
+ 'BeginArcArrow',
197
+ 'BeginArrow',
198
+ 'BeginBar',
199
+ 'BeginDotMargin',
200
+ 'BeginMargin',
201
+ 'BeginPenMargin',
202
+ 'Blank',
203
+ 'Bookman',
204
+ 'Bottom',
205
+ 'BottomTop',
206
+ 'Bounds',
207
+ 'Break',
208
+ 'Broken',
209
+ 'BrokenLog',
210
+ 'CLZ',
211
+ 'CTZ',
212
+ 'Ceil',
213
+ 'Circle',
214
+ 'CircleBarIntervalMarker',
215
+ 'Cos',
216
+ 'Courier',
217
+ 'CrossIntervalMarker',
218
+ 'DOSendl',
219
+ 'DOSnewl',
220
+ 'DefaultFormat',
221
+ 'DefaultLogFormat',
222
+ 'Degrees',
223
+ 'Dir',
224
+ 'DotMargin',
225
+ 'DotMargins',
226
+ 'Dotted',
227
+ 'Draw',
228
+ 'Drawline',
229
+ 'Embed',
230
+ 'EndArcArrow',
231
+ 'EndArrow',
232
+ 'EndBar',
233
+ 'EndDotMargin',
234
+ 'EndMargin',
235
+ 'EndPenMargin',
236
+ 'Fill',
237
+ 'FillDraw',
238
+ 'Floor',
239
+ 'Format',
240
+ 'Full',
241
+ 'Gaussian',
242
+ 'Gaussrand',
243
+ 'Gaussrandpair',
244
+ 'Gradient',
245
+ 'Grayscale',
246
+ 'Helvetica',
247
+ 'Hermite',
248
+ 'HookHead',
249
+ 'InOutTicks',
250
+ 'InTicks',
251
+ 'Jn',
252
+ 'Landscape',
253
+ 'Left',
254
+ 'LeftRight',
255
+ 'LeftTicks',
256
+ 'Linear',
257
+ 'Link',
258
+ 'Log',
259
+ 'LogFormat',
260
+ 'Margin',
261
+ 'Margins',
262
+ 'Mark',
263
+ 'MidArcArrow',
264
+ 'MidArrow',
265
+ 'NOT',
266
+ 'NewCenturySchoolBook',
267
+ 'NoBox',
268
+ 'NoMargin',
269
+ 'NoModifier',
270
+ 'NoTicks',
271
+ 'NoTicks3',
272
+ 'NoZero',
273
+ 'NoZeroFormat',
274
+ 'None',
275
+ 'OR',
276
+ 'OmitFormat',
277
+ 'OmitTick',
278
+ 'OmitTickInterval',
279
+ 'OmitTickIntervals',
280
+ 'OutTicks',
281
+ 'Ox',
282
+ 'Oy',
283
+ 'Palatino',
284
+ 'PaletteTicks',
285
+ 'Pen',
286
+ 'PenMargin',
287
+ 'PenMargins',
288
+ 'Pentype',
289
+ 'Portrait',
290
+ 'RadialShade',
291
+ 'RadialShadeDraw',
292
+ 'Rainbow',
293
+ 'Range',
294
+ 'Relative',
295
+ 'Right',
296
+ 'RightTicks',
297
+ 'Rotate',
298
+ 'Round',
299
+ 'SQR',
300
+ 'Scale',
301
+ 'ScaleX',
302
+ 'ScaleY',
303
+ 'ScaleZ',
304
+ 'Seascape',
305
+ 'Shift',
306
+ 'Sin',
307
+ 'Slant',
308
+ 'Spline',
309
+ 'StickIntervalMarker',
310
+ 'Straight',
311
+ 'Symbol',
312
+ 'Tan',
313
+ 'TeXify',
314
+ 'Ticks',
315
+ 'Ticks3',
316
+ 'TildeIntervalMarker',
317
+ 'TimesRoman',
318
+ 'Top',
319
+ 'TrueMargin',
320
+ 'UnFill',
321
+ 'UpsideDown',
322
+ 'Wheel',
323
+ 'X',
324
+ 'XEquals',
325
+ 'XOR',
326
+ 'XY',
327
+ 'XYEquals',
328
+ 'XYZero',
329
+ 'XYgrid',
330
+ 'XZEquals',
331
+ 'XZZero',
332
+ 'XZero',
333
+ 'XZgrid',
334
+ 'Y',
335
+ 'YEquals',
336
+ 'YXgrid',
337
+ 'YZ',
338
+ 'YZEquals',
339
+ 'YZZero',
340
+ 'YZero',
341
+ 'YZgrid',
342
+ 'Yn',
343
+ 'Z',
344
+ 'ZX',
345
+ 'ZXgrid',
346
+ 'ZYgrid',
347
+ 'ZapfChancery',
348
+ 'ZapfDingbats',
349
+ '_begingroup3',
350
+ '_cputime',
351
+ '_draw',
352
+ '_eval',
353
+ '_image',
354
+ '_labelpath',
355
+ '_projection',
356
+ '_strokepath',
357
+ '_texpath',
358
+ 'aCos',
359
+ 'aSin',
360
+ 'aTan',
361
+ 'abort',
362
+ 'abs',
363
+ 'accel',
364
+ 'acos',
365
+ 'acosh',
366
+ 'acot',
367
+ 'acsc',
368
+ 'activatequote',
369
+ 'add',
370
+ 'addArrow',
371
+ 'addMargins',
372
+ 'addSaveFunction',
373
+ 'addpenarc',
374
+ 'addpenline',
375
+ 'adjust',
376
+ 'alias',
377
+ 'align',
378
+ 'all',
379
+ 'altitude',
380
+ 'angabscissa',
381
+ 'angle',
382
+ 'angpoint',
383
+ 'animate',
384
+ 'annotate',
385
+ 'anticomplementary',
386
+ 'antipedal',
387
+ 'apply',
388
+ 'approximate',
389
+ 'arc',
390
+ 'arcarrowsize',
391
+ 'arccircle',
392
+ 'arcdir',
393
+ 'arcfromcenter',
394
+ 'arcfromfocus',
395
+ 'arclength',
396
+ 'arcnodesnumber',
397
+ 'arcpoint',
398
+ 'arcsubtended',
399
+ 'arcsubtendedcenter',
400
+ 'arctime',
401
+ 'arctopath',
402
+ 'array',
403
+ 'arrow',
404
+ 'arrow2',
405
+ 'arrowbase',
406
+ 'arrowbasepoints',
407
+ 'arrowsize',
408
+ 'asec',
409
+ 'asin',
410
+ 'asinh',
411
+ 'ask',
412
+ 'assert',
413
+ 'asy',
414
+ 'asycode',
415
+ 'asydir',
416
+ 'asyfigure',
417
+ 'asyfilecode',
418
+ 'asyinclude',
419
+ 'asywrite',
420
+ 'atan',
421
+ 'atan2',
422
+ 'atanh',
423
+ 'atbreakpoint',
424
+ 'atexit',
425
+ 'attach',
426
+ 'attract',
427
+ 'atupdate',
428
+ 'autoformat',
429
+ 'autoscale',
430
+ 'autoscale3',
431
+ 'axes',
432
+ 'axes3',
433
+ 'axialshade',
434
+ 'axis',
435
+ 'axiscoverage',
436
+ 'azimuth',
437
+ 'babel',
438
+ 'bangles',
439
+ 'bar',
440
+ 'barmarksize',
441
+ 'barsize',
442
+ 'baseline',
443
+ 'bbox',
444
+ 'beep',
445
+ 'begin',
446
+ 'beginclip',
447
+ 'begingroup',
448
+ 'beginpoint',
449
+ 'between',
450
+ 'bevel',
451
+ 'bezier',
452
+ 'bezierP',
453
+ 'bezierPP',
454
+ 'bezierPPP',
455
+ 'bezulate',
456
+ 'bibliography',
457
+ 'bibliographystyle',
458
+ 'binomial',
459
+ 'binput',
460
+ 'bins',
461
+ 'bisector',
462
+ 'bisectorpoint',
463
+ 'bispline',
464
+ 'blend',
465
+ 'blockconnector',
466
+ 'boutput',
467
+ 'box',
468
+ 'breakpoint',
469
+ 'breakpoints',
470
+ 'brick',
471
+ 'buildRestoreDefaults',
472
+ 'buildRestoreThunk',
473
+ 'buildcycle',
474
+ 'bulletcolor',
475
+ 'byte',
476
+ 'calculateScaling',
477
+ 'canonical',
478
+ 'canonicalcartesiansystem',
479
+ 'cartesiansystem',
480
+ 'case1',
481
+ 'case2',
482
+ 'case3',
483
+ 'case4',
484
+ 'cbrt',
485
+ 'cd',
486
+ 'ceil',
487
+ 'center',
488
+ 'centerToFocus',
489
+ 'centroid',
490
+ 'cevian',
491
+ 'change2',
492
+ 'changecoordsys',
493
+ 'checkSegment',
494
+ 'checkconditionlength',
495
+ 'checker',
496
+ 'checkincreasing',
497
+ 'checklengths',
498
+ 'checkposition',
499
+ 'checktriangle',
500
+ 'choose',
501
+ 'circlebarframe',
502
+ 'circlemarkradius',
503
+ 'circlenodesnumber',
504
+ 'circumcenter',
505
+ 'circumcircle',
506
+ 'clamped',
507
+ 'clear',
508
+ 'clip',
509
+ 'clipdraw',
510
+ 'close',
511
+ 'cmyk',
512
+ 'code',
513
+ 'colatitude',
514
+ 'collect',
515
+ 'collinear',
516
+ 'color',
517
+ 'colorless',
518
+ 'colors',
519
+ 'colorspace',
520
+ 'comma',
521
+ 'compassmark',
522
+ 'complement',
523
+ 'complementary',
524
+ 'concat',
525
+ 'concurrent',
526
+ 'cone',
527
+ 'conicnodesnumber',
528
+ 'conictype',
529
+ 'conj',
530
+ 'connect',
531
+ 'connected',
532
+ 'connectedindex',
533
+ 'containmentTree',
534
+ 'contains',
535
+ 'contour',
536
+ 'contour3',
537
+ 'contouredges',
538
+ 'controlSpecifier',
539
+ 'convert',
540
+ 'coordinates',
541
+ 'copy',
542
+ 'copyPairOrTriple',
543
+ 'cos',
544
+ 'cosh',
545
+ 'cot',
546
+ 'countIntersections',
547
+ 'crop',
548
+ 'cropcode',
549
+ 'cross',
550
+ 'crossframe',
551
+ 'crosshatch',
552
+ 'crossmarksize',
553
+ 'csc',
554
+ 'cubicroots',
555
+ 'curabscissa',
556
+ 'curlSpecifier',
557
+ 'curpoint',
558
+ 'currentarrow',
559
+ 'currentexitfunction',
560
+ 'currentmomarrow',
561
+ 'currentpolarconicroutine',
562
+ 'curve',
563
+ 'cut',
564
+ 'cutafter',
565
+ 'cutbefore',
566
+ 'cyclic',
567
+ 'cylinder',
568
+ 'deactivatequote',
569
+ 'debugger',
570
+ 'deconstruct',
571
+ 'defaultdir',
572
+ 'defined',
573
+ 'degenerate',
574
+ 'degrees',
575
+ 'delete',
576
+ 'deletepreamble',
577
+ 'determinant',
578
+ 'diagonal',
579
+ 'diamond',
580
+ 'diffdiv',
581
+ 'dir',
582
+ 'dirSpecifier',
583
+ 'dirtime',
584
+ 'display',
585
+ 'distance',
586
+ 'divisors',
587
+ 'do_overpaint',
588
+ 'dotsize',
589
+ 'downcase',
590
+ 'draw',
591
+ 'drawAll',
592
+ 'drawDoubleLine',
593
+ 'drawFermion',
594
+ 'drawGhost',
595
+ 'drawGluon',
596
+ 'drawMomArrow',
597
+ 'drawPRCcylinder',
598
+ 'drawPRCdisk',
599
+ 'drawPRCsphere',
600
+ 'drawPRCtube',
601
+ 'drawPhoton',
602
+ 'drawScalar',
603
+ 'drawVertex',
604
+ 'drawVertexBox',
605
+ 'drawVertexBoxO',
606
+ 'drawVertexBoxX',
607
+ 'drawVertexO',
608
+ 'drawVertexOX',
609
+ 'drawVertexTriangle',
610
+ 'drawVertexTriangleO',
611
+ 'drawVertexX',
612
+ 'drawarrow',
613
+ 'drawarrow2',
614
+ 'drawline',
615
+ 'drawpixel',
616
+ 'drawtick',
617
+ 'duplicate',
618
+ 'elle',
619
+ 'ellipsenodesnumber',
620
+ 'embed',
621
+ 'embed3',
622
+ 'empty',
623
+ 'enclose',
624
+ 'end',
625
+ 'endScript',
626
+ 'endclip',
627
+ 'endgroup',
628
+ 'endgroup3',
629
+ 'endl',
630
+ 'endpoint',
631
+ 'endpoints',
632
+ 'eof',
633
+ 'eol',
634
+ 'equation',
635
+ 'equations',
636
+ 'erase',
637
+ 'erasestep',
638
+ 'erf',
639
+ 'erfc',
640
+ 'error',
641
+ 'errorbar',
642
+ 'errorbars',
643
+ 'eval',
644
+ 'excenter',
645
+ 'excircle',
646
+ 'exit',
647
+ 'exitXasyMode',
648
+ 'exitfunction',
649
+ 'exp',
650
+ 'expfactors',
651
+ 'expi',
652
+ 'expm1',
653
+ 'exradius',
654
+ 'extend',
655
+ 'extension',
656
+ 'extouch',
657
+ 'fabs',
658
+ 'factorial',
659
+ 'fermat',
660
+ 'fft',
661
+ 'fhorner',
662
+ 'figure',
663
+ 'filecode',
664
+ 'fill',
665
+ 'filldraw',
666
+ 'filloutside',
667
+ 'fillrule',
668
+ 'find',
669
+ 'finite',
670
+ 'finiteDifferenceJacobian',
671
+ 'firstcut',
672
+ 'firstframe',
673
+ 'fit',
674
+ 'fit2',
675
+ 'fixedscaling',
676
+ 'floor',
677
+ 'flush',
678
+ 'fmdefaults',
679
+ 'fmod',
680
+ 'focusToCenter',
681
+ 'font',
682
+ 'fontcommand',
683
+ 'fontsize',
684
+ 'foot',
685
+ 'format',
686
+ 'frac',
687
+ 'frequency',
688
+ 'fromCenter',
689
+ 'fromFocus',
690
+ 'fspline',
691
+ 'functionshade',
692
+ 'gamma',
693
+ 'generate_random_backtrace',
694
+ 'generateticks',
695
+ 'gergonne',
696
+ 'getc',
697
+ 'getint',
698
+ 'getpair',
699
+ 'getreal',
700
+ 'getstring',
701
+ 'gettriple',
702
+ 'gluon',
703
+ 'gouraudshade',
704
+ 'graph',
705
+ 'graphic',
706
+ 'gray',
707
+ 'grestore',
708
+ 'grid',
709
+ 'gsave',
710
+ 'halfbox',
711
+ 'hatch',
712
+ 'hdiffdiv',
713
+ 'hermite',
714
+ 'hex',
715
+ 'histogram',
716
+ 'history',
717
+ 'hline',
718
+ 'hprojection',
719
+ 'hyperbolanodesnumber',
720
+ 'hyperlink',
721
+ 'hypot',
722
+ 'identity',
723
+ 'image',
724
+ 'incenter',
725
+ 'incentral',
726
+ 'incircle',
727
+ 'increasing',
728
+ 'incrementposition',
729
+ 'indexedfigure',
730
+ 'initXasyMode',
731
+ 'initdefaults',
732
+ 'input',
733
+ 'inradius',
734
+ 'insert',
735
+ 'inside',
736
+ 'integrate',
737
+ 'interactive',
738
+ 'interior',
739
+ 'interp',
740
+ 'interpolate',
741
+ 'intersect',
742
+ 'intersection',
743
+ 'intersectionpoint',
744
+ 'intersectionpoints',
745
+ 'intersections',
746
+ 'intouch',
747
+ 'inverse',
748
+ 'invisible',
749
+ 'is3D',
750
+ 'isCCW',
751
+ 'isDuplicate',
752
+ 'isogonal',
753
+ 'isogonalconjugate',
754
+ 'isotomic',
755
+ 'isotomicconjugate',
756
+ 'isparabola',
757
+ 'italic',
758
+ 'item',
759
+ 'jobname',
760
+ 'kurtosis',
761
+ 'kurtosisexcess',
762
+ 'label',
763
+ 'labelaxis',
764
+ 'labelmargin',
765
+ 'labelpath',
766
+ 'labels',
767
+ 'labeltick',
768
+ 'labelx',
769
+ 'labelx3',
770
+ 'labely',
771
+ 'labely3',
772
+ 'labelz',
773
+ 'labelz3',
774
+ 'lastcut',
775
+ 'latex',
776
+ 'latitude',
777
+ 'latticeshade',
778
+ 'layer',
779
+ 'layout',
780
+ 'ldexp',
781
+ 'leastsquares',
782
+ 'legend',
783
+ 'legenditem',
784
+ 'length',
785
+ 'lexorder',
786
+ 'lift',
787
+ 'limits',
788
+ 'linear',
789
+ 'linecap',
790
+ 'lineinversion',
791
+ 'linejoin',
792
+ 'linemargin',
793
+ 'lineskip',
794
+ 'linetype',
795
+ 'linewidth',
796
+ 'link',
797
+ 'list',
798
+ 'lm_enorm',
799
+ 'lm_evaluate_default',
800
+ 'lm_lmdif',
801
+ 'lm_lmpar',
802
+ 'lm_minimize',
803
+ 'lm_print_default',
804
+ 'lm_print_quiet',
805
+ 'lm_qrfac',
806
+ 'lm_qrsolv',
807
+ 'locale',
808
+ 'locate',
809
+ 'locatefile',
810
+ 'location',
811
+ 'log',
812
+ 'log10',
813
+ 'log1p',
814
+ 'logaxiscoverage',
815
+ 'longitude',
816
+ 'lookup',
817
+ 'makeNode',
818
+ 'makedraw',
819
+ 'makepen',
820
+ 'map',
821
+ 'margin',
822
+ 'markangle',
823
+ 'markarc',
824
+ 'markinterval',
825
+ 'marknodes',
826
+ 'markrightangle',
827
+ 'markuniform',
828
+ 'masscenter',
829
+ 'massformat',
830
+ 'math',
831
+ 'max',
832
+ 'max3',
833
+ 'maxAfterTransform',
834
+ 'maxbezier',
835
+ 'maxbound',
836
+ 'maxcoords',
837
+ 'maxlength',
838
+ 'maxratio',
839
+ 'maxtimes',
840
+ 'mean',
841
+ 'medial',
842
+ 'median',
843
+ 'midpoint',
844
+ 'min',
845
+ 'min3',
846
+ 'minAfterTransform',
847
+ 'minbezier',
848
+ 'minbound',
849
+ 'minipage',
850
+ 'minratio',
851
+ 'mintimes',
852
+ 'miterlimit',
853
+ 'mktemp',
854
+ 'momArrowPath',
855
+ 'momarrowsize',
856
+ 'monotonic',
857
+ 'multifigure',
858
+ 'nativeformat',
859
+ 'natural',
860
+ 'needshipout',
861
+ 'newl',
862
+ 'newpage',
863
+ 'newslide',
864
+ 'newton',
865
+ 'newtree',
866
+ 'nextframe',
867
+ 'nextnormal',
868
+ 'nextpage',
869
+ 'nib',
870
+ 'nodabscissa',
871
+ 'none',
872
+ 'norm',
873
+ 'normalvideo',
874
+ 'notaknot',
875
+ 'nowarn',
876
+ 'numberpage',
877
+ 'nurb',
878
+ 'offset',
879
+ 'onpath',
880
+ 'opacity',
881
+ 'opposite',
882
+ 'orientation',
883
+ 'origin',
884
+ 'orthic',
885
+ 'orthocentercenter',
886
+ 'outformat',
887
+ 'outline',
888
+ 'outname',
889
+ 'outprefix',
890
+ 'output',
891
+ 'overloadedMessage',
892
+ 'overwrite',
893
+ 'pack',
894
+ 'pad',
895
+ 'pairs',
896
+ 'palette',
897
+ 'parabolanodesnumber',
898
+ 'parallel',
899
+ 'parallelogram',
900
+ 'partialsum',
901
+ 'pattern',
902
+ 'pause',
903
+ 'pdf',
904
+ 'pedal',
905
+ 'periodic',
906
+ 'perp',
907
+ 'perpendicular',
908
+ 'perpendicularmark',
909
+ 'phantom',
910
+ 'phi1',
911
+ 'phi2',
912
+ 'phi3',
913
+ 'photon',
914
+ 'piecewisestraight',
915
+ 'polar',
916
+ 'polarconicroutine',
917
+ 'polargraph',
918
+ 'polygon',
919
+ 'postcontrol',
920
+ 'postscript',
921
+ 'pow10',
922
+ 'ppoint',
923
+ 'prc',
924
+ 'prc0',
925
+ 'precision',
926
+ 'precontrol',
927
+ 'prepend',
928
+ 'printBytecode',
929
+ 'print_random_addresses',
930
+ 'project',
931
+ 'purge',
932
+ 'pwhermite',
933
+ 'quadrant',
934
+ 'quadraticroots',
935
+ 'quantize',
936
+ 'quarticroots',
937
+ 'quotient',
938
+ 'radialshade',
939
+ 'radians',
940
+ 'radicalcenter',
941
+ 'radicalline',
942
+ 'radius',
943
+ 'rand',
944
+ 'randompath',
945
+ 'rd',
946
+ 'readline',
947
+ 'realmult',
948
+ 'realquarticroots',
949
+ 'rectangle',
950
+ 'rectangular',
951
+ 'rectify',
952
+ 'reflect',
953
+ 'relabscissa',
954
+ 'relative',
955
+ 'relativedistance',
956
+ 'reldir',
957
+ 'relpoint',
958
+ 'reltime',
959
+ 'remainder',
960
+ 'remark',
961
+ 'removeDuplicates',
962
+ 'rename',
963
+ 'replace',
964
+ 'report',
965
+ 'resetdefaultpen',
966
+ 'restore',
967
+ 'restoredefaults',
968
+ 'reverse',
969
+ 'reversevideo',
970
+ 'rf',
971
+ 'rfind',
972
+ 'rgb',
973
+ 'rgba',
974
+ 'rgbint',
975
+ 'rms',
976
+ 'rotate',
977
+ 'rotateO',
978
+ 'rotation',
979
+ 'round',
980
+ 'roundbox',
981
+ 'roundedpath',
982
+ 'roundrectangle',
983
+ 'same',
984
+ 'samecoordsys',
985
+ 'sameside',
986
+ 'sample',
987
+ 'save',
988
+ 'savedefaults',
989
+ 'saveline',
990
+ 'scale',
991
+ 'scale3',
992
+ 'scaleO',
993
+ 'scaleless',
994
+ 'search',
995
+ 'searchindex',
996
+ 'searchtree',
997
+ 'sec',
998
+ 'secondaryX',
999
+ 'secondaryY',
1000
+ 'seconds',
1001
+ 'section',
1002
+ 'sector',
1003
+ 'seek',
1004
+ 'seekeof',
1005
+ 'sequence',
1006
+ 'setcontour',
1007
+ 'setpens',
1008
+ 'sgn',
1009
+ 'sgnd',
1010
+ 'sharpangle',
1011
+ 'sharpdegrees',
1012
+ 'shift',
1013
+ 'shiftless',
1014
+ 'shipout',
1015
+ 'shipout3',
1016
+ 'show',
1017
+ 'simeq',
1018
+ 'simpson',
1019
+ 'sin',
1020
+ 'sinh',
1021
+ 'size',
1022
+ 'size3',
1023
+ 'skewness',
1024
+ 'skip',
1025
+ 'slant',
1026
+ 'sleep',
1027
+ 'slope',
1028
+ 'slopefield',
1029
+ 'solve',
1030
+ 'solveBVP',
1031
+ 'sort',
1032
+ 'sourceline',
1033
+ 'sphere',
1034
+ 'split',
1035
+ 'sqrt',
1036
+ 'square',
1037
+ 'srand',
1038
+ 'standardizecoordsys',
1039
+ 'startScript',
1040
+ 'stdev',
1041
+ 'step',
1042
+ 'stickframe',
1043
+ 'stickmarksize',
1044
+ 'stickmarkspace',
1045
+ 'stop',
1046
+ 'straight',
1047
+ 'straightness',
1048
+ 'stripdirectory',
1049
+ 'stripextension',
1050
+ 'stripfile',
1051
+ 'stripsuffix',
1052
+ 'strokepath',
1053
+ 'subdivide',
1054
+ 'subitem',
1055
+ 'subpath',
1056
+ 'substr',
1057
+ 'sum',
1058
+ 'symmedial',
1059
+ 'symmedian',
1060
+ 'system',
1061
+ 'tab',
1062
+ 'tableau',
1063
+ 'tan',
1064
+ 'tangent',
1065
+ 'tangential',
1066
+ 'tangents',
1067
+ 'tanh',
1068
+ 'tell',
1069
+ 'tensorshade',
1070
+ 'tex',
1071
+ 'texcolor',
1072
+ 'texify',
1073
+ 'texpath',
1074
+ 'texpreamble',
1075
+ 'texreset',
1076
+ 'texshipout',
1077
+ 'texsize',
1078
+ 'textpath',
1079
+ 'thick',
1080
+ 'thin',
1081
+ 'tick',
1082
+ 'tickMax',
1083
+ 'tickMax3',
1084
+ 'tickMin',
1085
+ 'tickMin3',
1086
+ 'ticklabelshift',
1087
+ 'tildeframe',
1088
+ 'tildemarksize',
1089
+ 'tile',
1090
+ 'tiling',
1091
+ 'time',
1092
+ 'times',
1093
+ 'title',
1094
+ 'titlepage',
1095
+ 'topbox',
1096
+ 'transpose',
1097
+ 'trembleFuzz',
1098
+ 'triangleAbc',
1099
+ 'triangleabc',
1100
+ 'triangulate',
1101
+ 'tricoef',
1102
+ 'tridiagonal',
1103
+ 'trim',
1104
+ 'truepoint',
1105
+ 'tube',
1106
+ 'uncycle',
1107
+ 'unfill',
1108
+ 'uniform',
1109
+ 'unique',
1110
+ 'unit',
1111
+ 'unitrand',
1112
+ 'unitsize',
1113
+ 'unityroot',
1114
+ 'unstraighten',
1115
+ 'upcase',
1116
+ 'updatefunction',
1117
+ 'uperiodic',
1118
+ 'upscale',
1119
+ 'uptodate',
1120
+ 'usepackage',
1121
+ 'usersetting',
1122
+ 'usetypescript',
1123
+ 'usleep',
1124
+ 'value',
1125
+ 'variance',
1126
+ 'variancebiased',
1127
+ 'vbox',
1128
+ 'vectorfield',
1129
+ 'verbatim',
1130
+ 'view',
1131
+ 'vperiodic',
1132
+ 'vprojection',
1133
+ 'warn',
1134
+ 'warning',
1135
+ 'windingnumber',
1136
+ 'write',
1137
+ 'xaxis',
1138
+ 'xaxis3',
1139
+ 'xaxis3At',
1140
+ 'xaxisAt',
1141
+ 'xequals',
1142
+ 'xinput',
1143
+ 'xlimits',
1144
+ 'xoutput',
1145
+ 'xpart',
1146
+ 'xscale',
1147
+ 'xscaleO',
1148
+ 'xtick',
1149
+ 'xtick3',
1150
+ 'xtrans',
1151
+ 'yaxis',
1152
+ 'yaxis3',
1153
+ 'yaxis3At',
1154
+ 'yaxisAt',
1155
+ 'yequals',
1156
+ 'ylimits',
1157
+ 'ypart',
1158
+ 'yscale',
1159
+ 'yscaleO',
1160
+ 'ytick',
1161
+ 'ytick3',
1162
+ 'ytrans',
1163
+ 'zaxis3',
1164
+ 'zaxis3At',
1165
+ 'zero',
1166
+ 'zero3',
1167
+ 'zlimits',
1168
+ 'zpart',
1169
+ 'ztick',
1170
+ 'ztick3',
1171
+ 'ztrans'
1172
+ ),
1173
+
1174
+ 4 => array(
1175
+ 'AliceBlue',
1176
+ 'Align',
1177
+ 'Allow',
1178
+ 'AntiqueWhite',
1179
+ 'Apricot',
1180
+ 'Aqua',
1181
+ 'Aquamarine',
1182
+ 'Aspect',
1183
+ 'Azure',
1184
+ 'BeginPoint',
1185
+ 'Beige',
1186
+ 'Bisque',
1187
+ 'Bittersweet',
1188
+ 'Black',
1189
+ 'BlanchedAlmond',
1190
+ 'Blue',
1191
+ 'BlueGreen',
1192
+ 'BlueViolet',
1193
+ 'Both',
1194
+ 'BrickRed',
1195
+ 'Brown',
1196
+ 'BurlyWood',
1197
+ 'BurntOrange',
1198
+ 'CCW',
1199
+ 'CW',
1200
+ 'CadetBlue',
1201
+ 'CarnationPink',
1202
+ 'Center',
1203
+ 'Centered',
1204
+ 'Cerulean',
1205
+ 'Chartreuse',
1206
+ 'Chocolate',
1207
+ 'Coeff',
1208
+ 'Coral',
1209
+ 'CornflowerBlue',
1210
+ 'Cornsilk',
1211
+ 'Crimson',
1212
+ 'Crop',
1213
+ 'Cyan',
1214
+ 'Dandelion',
1215
+ 'DarkBlue',
1216
+ 'DarkCyan',
1217
+ 'DarkGoldenrod',
1218
+ 'DarkGray',
1219
+ 'DarkGreen',
1220
+ 'DarkKhaki',
1221
+ 'DarkMagenta',
1222
+ 'DarkOliveGreen',
1223
+ 'DarkOrange',
1224
+ 'DarkOrchid',
1225
+ 'DarkRed',
1226
+ 'DarkSalmon',
1227
+ 'DarkSeaGreen',
1228
+ 'DarkSlateBlue',
1229
+ 'DarkSlateGray',
1230
+ 'DarkTurquoise',
1231
+ 'DarkViolet',
1232
+ 'DeepPink',
1233
+ 'DeepSkyBlue',
1234
+ 'DefaultHead',
1235
+ 'DimGray',
1236
+ 'DodgerBlue',
1237
+ 'Down',
1238
+ 'E',
1239
+ 'ENE',
1240
+ 'EPS',
1241
+ 'ESE',
1242
+ 'E_Euler',
1243
+ 'E_PC',
1244
+ 'E_RK2',
1245
+ 'E_RK3BS',
1246
+ 'Emerald',
1247
+ 'EndPoint',
1248
+ 'Euler',
1249
+ 'FireBrick',
1250
+ 'FloralWhite',
1251
+ 'ForestGreen',
1252
+ 'Fuchsia',
1253
+ 'Gainsboro',
1254
+ 'GhostWhite',
1255
+ 'Gold',
1256
+ 'Goldenrod',
1257
+ 'Gray',
1258
+ 'Green',
1259
+ 'GreenYellow',
1260
+ 'Honeydew',
1261
+ 'Horizontal',
1262
+ 'HotPink',
1263
+ 'I',
1264
+ 'IgnoreAspect',
1265
+ 'IndianRed',
1266
+ 'Indigo',
1267
+ 'Ivory',
1268
+ 'JOIN_IN',
1269
+ 'JOIN_OUT',
1270
+ 'JungleGreen',
1271
+ 'Khaki',
1272
+ 'LM_DWARF',
1273
+ 'LM_MACHEP',
1274
+ 'LM_SQRT_DWARF',
1275
+ 'LM_SQRT_GIANT',
1276
+ 'LM_USERTOL',
1277
+ 'Lavender',
1278
+ 'LavenderBlush',
1279
+ 'LawnGreen',
1280
+ 'LeftJustified',
1281
+ 'LeftSide',
1282
+ 'LemonChiffon',
1283
+ 'LightBlue',
1284
+ 'LightCoral',
1285
+ 'LightCyan',
1286
+ 'LightGoldenrodYellow',
1287
+ 'LightGreen',
1288
+ 'LightGrey',
1289
+ 'LightPink',
1290
+ 'LightSalmon',
1291
+ 'LightSeaGreen',
1292
+ 'LightSkyBlue',
1293
+ 'LightSlateGray',
1294
+ 'LightSteelBlue',
1295
+ 'LightYellow',
1296
+ 'Lime',
1297
+ 'LimeGreen',
1298
+ 'Linen',
1299
+ 'Logarithmic',
1300
+ 'Magenta',
1301
+ 'Mahogany',
1302
+ 'MarkFill',
1303
+ 'Maroon',
1304
+ 'Max',
1305
+ 'MediumAquamarine',
1306
+ 'MediumBlue',
1307
+ 'MediumOrchid',
1308
+ 'MediumPurple',
1309
+ 'MediumSeaGreen',
1310
+ 'MediumSlateBlue',
1311
+ 'MediumSpringGreen',
1312
+ 'MediumTurquoise',
1313
+ 'MediumVioletRed',
1314
+ 'Melon',
1315
+ 'MidPoint',
1316
+ 'MidnightBlue',
1317
+ 'Min',
1318
+ 'MintCream',
1319
+ 'MistyRose',
1320
+ 'Moccasin',
1321
+ 'Move',
1322
+ 'MoveQuiet',
1323
+ 'Mulberry',
1324
+ 'N',
1325
+ 'NE',
1326
+ 'NNE',
1327
+ 'NNW',
1328
+ 'NW',
1329
+ 'NavajoWhite',
1330
+ 'Navy',
1331
+ 'NavyBlue',
1332
+ 'NoAlign',
1333
+ 'NoCrop',
1334
+ 'NoFill',
1335
+ 'NoSide',
1336
+ 'OldLace',
1337
+ 'Olive',
1338
+ 'OliveDrab',
1339
+ 'OliveGreen',
1340
+ 'Orange',
1341
+ 'OrangeRed',
1342
+ 'Orchid',
1343
+ 'PC',
1344
+ 'PaleGoldenrod',
1345
+ 'PaleGreen',
1346
+ 'PaleTurquoise',
1347
+ 'PaleVioletRed',
1348
+ 'PapayaWhip',
1349
+ 'Peach',
1350
+ 'PeachPuff',
1351
+ 'Periwinkle',
1352
+ 'Peru',
1353
+ 'PineGreen',
1354
+ 'Pink',
1355
+ 'Plum',
1356
+ 'PowderBlue',
1357
+ 'ProcessBlue',
1358
+ 'Purple',
1359
+ 'RK2',
1360
+ 'RK3',
1361
+ 'RK3BS',
1362
+ 'RK4',
1363
+ 'RK5',
1364
+ 'RK5DP',
1365
+ 'RK5F',
1366
+ 'RawSienna',
1367
+ 'Red',
1368
+ 'RedOrange',
1369
+ 'RedViolet',
1370
+ 'Rhodamine',
1371
+ 'RightJustified',
1372
+ 'RightSide',
1373
+ 'RosyBrown',
1374
+ 'RoyalBlue',
1375
+ 'RoyalPurple',
1376
+ 'RubineRed',
1377
+ 'S',
1378
+ 'SE',
1379
+ 'SSE',
1380
+ 'SSW',
1381
+ 'SW',
1382
+ 'SaddleBrown',
1383
+ 'Salmon',
1384
+ 'SandyBrown',
1385
+ 'SeaGreen',
1386
+ 'Seashell',
1387
+ 'Sepia',
1388
+ 'Sienna',
1389
+ 'Silver',
1390
+ 'SimpleHead',
1391
+ 'SkyBlue',
1392
+ 'SlateBlue',
1393
+ 'SlateGray',
1394
+ 'Snow',
1395
+ 'SpringGreen',
1396
+ 'SteelBlue',
1397
+ 'Suppress',
1398
+ 'SuppressQuiet',
1399
+ 'TeXHead',
1400
+ 'Teal',
1401
+ 'TealBlue',
1402
+ 'Thistle',
1403
+ 'Ticksize',
1404
+ 'Tomato',
1405
+ 'Turquoise',
1406
+ 'Up',
1407
+ 'VERSION',
1408
+ 'Value',
1409
+ 'Vertical',
1410
+ 'Violet',
1411
+ 'VioletRed',
1412
+ 'W',
1413
+ 'WNW',
1414
+ 'WSW',
1415
+ 'Wheat',
1416
+ 'White',
1417
+ 'WhiteSmoke',
1418
+ 'WildStrawberry',
1419
+ 'XYAlign',
1420
+ 'YAlign',
1421
+ 'Yellow',
1422
+ 'YellowGreen',
1423
+ 'YellowOrange',
1424
+ 'allowstepping',
1425
+ 'angularsystem',
1426
+ 'animationdelay',
1427
+ 'appendsuffix',
1428
+ 'arcarrowangle',
1429
+ 'arcarrowfactor',
1430
+ 'arrow2sizelimit',
1431
+ 'arrowangle',
1432
+ 'arrowbarb',
1433
+ 'arrowdir',
1434
+ 'arrowfactor',
1435
+ 'arrowhookfactor',
1436
+ 'arrowlength',
1437
+ 'arrowsizelimit',
1438
+ 'arrowtexfactor',
1439
+ 'authorpen',
1440
+ 'axislabelfactor',
1441
+ 'background',
1442
+ 'backgroundcolor',
1443
+ 'backgroundpen',
1444
+ 'barfactor',
1445
+ 'barmarksizefactor',
1446
+ 'basealign',
1447
+ 'baselinetemplate',
1448
+ 'beveljoin',
1449
+ 'bigvertexpen',
1450
+ 'bigvertexsize',
1451
+ 'black',
1452
+ 'blue',
1453
+ 'bm',
1454
+ 'bottom',
1455
+ 'bp',
1456
+ 'brown',
1457
+ 'bullet',
1458
+ 'byfoci',
1459
+ 'byvertices',
1460
+ 'camerafactor',
1461
+ 'chartreuse',
1462
+ 'circlemarkradiusfactor',
1463
+ 'circlenodesnumberfactor',
1464
+ 'circleprecision',
1465
+ 'circlescale',
1466
+ 'cm',
1467
+ 'codefile',
1468
+ 'codepen',
1469
+ 'codeskip',
1470
+ 'colorPen',
1471
+ 'coloredNodes',
1472
+ 'coloredSegments',
1473
+ 'conditionlength',
1474
+ 'conicnodesfactor',
1475
+ 'count',
1476
+ 'cputimeformat',
1477
+ 'crossmarksizefactor',
1478
+ 'currentcoordsys',
1479
+ 'currentlight',
1480
+ 'currentpatterns',
1481
+ 'currentpen',
1482
+ 'currentpicture',
1483
+ 'currentposition',
1484
+ 'currentprojection',
1485
+ 'curvilinearsystem',
1486
+ 'cuttings',
1487
+ 'cyan',
1488
+ 'darkblue',
1489
+ 'darkbrown',
1490
+ 'darkcyan',
1491
+ 'darkgray',
1492
+ 'darkgreen',
1493
+ 'darkgrey',
1494
+ 'darkmagenta',
1495
+ 'darkolive',
1496
+ 'darkred',
1497
+ 'dashdotted',
1498
+ 'dashed',
1499
+ 'datepen',
1500
+ 'dateskip',
1501
+ 'debuggerlines',
1502
+ 'debugging',
1503
+ 'deepblue',
1504
+ 'deepcyan',
1505
+ 'deepgray',
1506
+ 'deepgreen',
1507
+ 'deepgrey',
1508
+ 'deepmagenta',
1509
+ 'deepred',
1510
+ 'default',
1511
+ 'defaultControl',
1512
+ 'defaultS',
1513
+ 'defaultbackpen',
1514
+ 'defaultcoordsys',
1515
+ 'defaultexcursion',
1516
+ 'defaultfilename',
1517
+ 'defaultformat',
1518
+ 'defaultmassformat',
1519
+ 'defaultpen',
1520
+ 'diagnostics',
1521
+ 'differentlengths',
1522
+ 'dot',
1523
+ 'dotfactor',
1524
+ 'dotframe',
1525
+ 'dotted',
1526
+ 'doublelinepen',
1527
+ 'doublelinespacing',
1528
+ 'down',
1529
+ 'duplicateFuzz',
1530
+ 'edge',
1531
+ 'ellipsenodesnumberfactor',
1532
+ 'eps',
1533
+ 'epsgeo',
1534
+ 'epsilon',
1535
+ 'evenodd',
1536
+ 'expansionfactor',
1537
+ 'extendcap',
1538
+ 'exterior',
1539
+ 'fermionpen',
1540
+ 'figureborder',
1541
+ 'figuremattpen',
1542
+ 'file3',
1543
+ 'firstnode',
1544
+ 'firststep',
1545
+ 'foregroundcolor',
1546
+ 'fuchsia',
1547
+ 'fuzz',
1548
+ 'gapfactor',
1549
+ 'ghostpen',
1550
+ 'gluonamplitude',
1551
+ 'gluonpen',
1552
+ 'gluonratio',
1553
+ 'green',
1554
+ 'grey',
1555
+ 'hatchepsilon',
1556
+ 'havepagenumber',
1557
+ 'heavyblue',
1558
+ 'heavycyan',
1559
+ 'heavygray',
1560
+ 'heavygreen',
1561
+ 'heavygrey',
1562
+ 'heavymagenta',
1563
+ 'heavyred',
1564
+ 'hwratio',
1565
+ 'hyperbolanodesnumberfactor',
1566
+ 'identity4',
1567
+ 'ignore',
1568
+ 'inXasyMode',
1569
+ 'inch',
1570
+ 'inches',
1571
+ 'includegraphicscommand',
1572
+ 'inf',
1573
+ 'infinity',
1574
+ 'institutionpen',
1575
+ 'intMax',
1576
+ 'intMin',
1577
+ 'invert',
1578
+ 'itempen',
1579
+ 'itemskip',
1580
+ 'itemstep',
1581
+ 'landscape',
1582
+ 'lastnode',
1583
+ 'left',
1584
+ 'legendhskip',
1585
+ 'legendlinelength',
1586
+ 'legendmargin',
1587
+ 'legendmarkersize',
1588
+ 'legendmaxrelativewidth',
1589
+ 'legendvskip',
1590
+ 'lightblue',
1591
+ 'lightcyan',
1592
+ 'lightgray',
1593
+ 'lightgreen',
1594
+ 'lightgrey',
1595
+ 'lightmagenta',
1596
+ 'lightolive',
1597
+ 'lightred',
1598
+ 'lightyellow',
1599
+ 'lm_infmsg',
1600
+ 'lm_shortmsg',
1601
+ 'longdashdotted',
1602
+ 'longdashed',
1603
+ 'magenta',
1604
+ 'magneticRadius',
1605
+ 'mantissaBits',
1606
+ 'markangleradius',
1607
+ 'markangleradiusfactor',
1608
+ 'markanglespace',
1609
+ 'markanglespacefactor',
1610
+ 'mediumblue',
1611
+ 'mediumcyan',
1612
+ 'mediumgray',
1613
+ 'mediumgreen',
1614
+ 'mediumgrey',
1615
+ 'mediummagenta',
1616
+ 'mediumred',
1617
+ 'mediumyellow',
1618
+ 'middle',
1619
+ 'minDistDefault',
1620
+ 'minblockheight',
1621
+ 'minblockwidth',
1622
+ 'mincirclediameter',
1623
+ 'minipagemargin',
1624
+ 'minipagewidth',
1625
+ 'minvertexangle',
1626
+ 'miterjoin',
1627
+ 'mm',
1628
+ 'momarrowfactor',
1629
+ 'momarrowlength',
1630
+ 'momarrowmargin',
1631
+ 'momarrowoffset',
1632
+ 'momarrowpen',
1633
+ 'monoPen',
1634
+ 'morepoints',
1635
+ 'nCircle',
1636
+ 'newbulletcolor',
1637
+ 'ngraph',
1638
+ 'nil',
1639
+ 'nmesh',
1640
+ 'nobasealign',
1641
+ 'nodeMarginDefault',
1642
+ 'nodesystem',
1643
+ 'nomarker',
1644
+ 'nopoint',
1645
+ 'noprimary',
1646
+ 'nullpath',
1647
+ 'nullpen',
1648
+ 'numarray',
1649
+ 'ocgindex',
1650
+ 'oldbulletcolor',
1651
+ 'olive',
1652
+ 'orange',
1653
+ 'overpaint',
1654
+ 'page',
1655
+ 'pageheight',
1656
+ 'pagemargin',
1657
+ 'pagenumberalign',
1658
+ 'pagenumberpen',
1659
+ 'pagenumberposition',
1660
+ 'pagewidth',
1661
+ 'paleblue',
1662
+ 'palecyan',
1663
+ 'palegray',
1664
+ 'palegreen',
1665
+ 'palegrey',
1666
+
1667
+ 'palemagenta',
1668
+ 'palered',
1669
+ 'paleyellow',
1670
+ 'parabolanodesnumberfactor',
1671
+ 'perpfactor',
1672
+ 'phi',
1673
+ 'photonamplitude',
1674
+ 'photonpen',
1675
+ 'photonratio',
1676
+ 'pi',
1677
+ 'pink',
1678
+ 'plain',
1679
+ 'plain_bounds',
1680
+ 'plain_scaling',
1681
+ 'plus',
1682
+ 'preamblenodes',
1683
+ 'pt',
1684
+ 'purple',
1685
+ 'r3',
1686
+ 'r4a',
1687
+ 'r4b',
1688
+ 'randMax',
1689
+ 'realDigits',
1690
+ 'realEpsilon',
1691
+ 'realMax',
1692
+ 'realMin',
1693
+ 'red',
1694
+ 'relativesystem',
1695
+ 'right',
1696
+ 'roundcap',
1697
+ 'roundjoin',
1698
+ 'royalblue',
1699
+ 'salmon',
1700
+ 'saveFunctions',
1701
+ 'scalarpen',
1702
+ 'sequencereal',
1703
+ 'settings',
1704
+ 'shipped',
1705
+ 'signedtrailingzero',
1706
+ 'solid',
1707
+ 'springgreen',
1708
+ 'sqrtEpsilon',
1709
+ 'squarecap',
1710
+ 'squarepen',
1711
+ 'startposition',
1712
+ 'stdin',
1713
+ 'stdout',
1714
+ 'stepfactor',
1715
+ 'stepfraction',
1716
+ 'steppagenumberpen',
1717
+ 'stepping',
1718
+ 'stickmarksizefactor',
1719
+ 'stickmarkspacefactor',
1720
+ 'swap',
1721
+ 'textpen',
1722
+ 'ticksize',
1723
+ 'tildemarksizefactor',
1724
+ 'tinv',
1725
+ 'titlealign',
1726
+ 'titlepagepen',
1727
+ 'titlepageposition',
1728
+ 'titlepen',
1729
+ 'titleskip',
1730
+ 'top',
1731
+ 'trailingzero',
1732
+ 'treeLevelStep',
1733
+ 'treeMinNodeWidth',
1734
+ 'treeNodeStep',
1735
+ 'trembleAngle',
1736
+ 'trembleFrequency',
1737
+ 'trembleRandom',
1738
+ 'undefined',
1739
+ 'unitcircle',
1740
+ 'unitsquare',
1741
+ 'up',
1742
+ 'urlpen',
1743
+ 'urlskip',
1744
+ 'version',
1745
+ 'vertexpen',
1746
+ 'vertexsize',
1747
+ 'viewportmargin',
1748
+ 'viewportsize',
1749
+ 'vline',
1750
+ 'white',
1751
+ 'wye',
1752
+ 'xformStack',
1753
+ 'yellow',
1754
+ 'ylabelwidth',
1755
+ 'zerotickfuzz',
1756
+ 'zerowinding'
1757
+ )
1758
+ ),
1759
+ 'SYMBOLS' => array(
1760
+ 0 => array(
1761
+ '(', ')', '{', '}', '[', ']'
1762
+ ),
1763
+ 1 => array('<', '>', '='),
1764
+ 2 => array('+', '-', '*', '/', '%'),
1765
+ 3 => array('!', '^', '&', '|'),
1766
+ 4 => array('?', ':', ';'),
1767
+ 5 => array('..')
1768
+ ),
1769
+ 'CASE_SENSITIVE' => array(
1770
+ GESHI_COMMENTS => false,
1771
+ 1 => true,
1772
+ 2 => true,
1773
+ 3 => true,
1774
+ 4 => true
1775
+ ),
1776
+ 'STYLES' => array(
1777
+ 'KEYWORDS' => array(
1778
+ 1 => 'color: #b1b100;',
1779
+ 2 => 'color: #000000; font-weight: bold;',
1780
+ 3 => 'color: #990000;',
1781
+ 4 => 'color: #009900; font-weight: bold;'
1782
+ ),
1783
+ 'COMMENTS' => array(
1784
+ 1 => 'color: #666666;',
1785
+ 2 => 'color: #339900;',
1786
+ 'MULTI' => 'color: #ff0000; font-style: italic;'
1787
+ ),
1788
+ 'ESCAPE_CHAR' => array(
1789
+ 0 => 'color: #000099; font-weight: bold;',
1790
+ 1 => 'color: #000099; font-weight: bold;',
1791
+ 2 => 'color: #660099; font-weight: bold;',
1792
+ 3 => 'color: #660099; font-weight: bold;',
1793
+ 4 => 'color: #660099; font-weight: bold;',
1794
+ 5 => 'color: #006699; font-weight: bold;',
1795
+ 'HARD' => '',
1796
+ ),
1797
+ 'BRACKETS' => array(
1798
+ 0 => 'color: #008000;'
1799
+ ),
1800
+ 'STRINGS' => array(
1801
+ 0 => 'color: #FF0000;'
1802
+ ),
1803
+ 'NUMBERS' => array(
1804
+ 0 => 'color: #0000dd;',
1805
+ GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
1806
+ GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
1807
+ GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
1808
+ GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
1809
+ GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
1810
+ GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
1811
+ GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
1812
+ ),
1813
+ 'METHODS' => array(
1814
+ 1 => 'color: #007788;',
1815
+ 2 => 'color: #007788;'
1816
+ ),
1817
+ 'SYMBOLS' => array(
1818
+ 0 => 'color: #008000;',
1819
+ 1 => 'color: #000080;',
1820
+ 2 => 'color: #000040;',
1821
+ 3 => 'color: #000040;',
1822
+ 4 => 'color: #008080;',
1823
+ 5 => 'color: #009080;'
1824
+ ),
1825
+ 'REGEXPS' => array(),
1826
+ 'SCRIPT' => array()
1827
+ ),
1828
+ 'URLS' => array(
1829
+ 1 => '',
1830
+ 2 => '',
1831
+ 3 => '',
1832
+ 4 => ''
1833
+ ),
1834
+ 'OOLANG' => true,
1835
+ 'OBJECT_SPLITTERS' => array(
1836
+ 1 => '.',
1837
+ 2 => '::'
1838
+ ),
1839
+ 'REGEXPS' => array(),
1840
+ 'STRICT_MODE_APPLIES' => GESHI_MAYBE,
1841
+ 'SCRIPT_DELIMITERS' => array(),
1842
+ 'HIGHLIGHT_STRICT_BLOCK' => array(),
1843
+ 'TAB_WIDTH' => 4,
1844
+ 'PARSER_CONTROL' => array(
1845
+ 'KEYWORDS' => array(
1846
+ 'DISALLOWED_BEFORE' => "(?<![a-zA-Z0-9\$_\|\#])",
1847
+ 'DISALLOWED_AFTER' => "(?![a-zA-Z0-9_\|%\\-])"
1848
+ )
1849
+ )
1850
+ );
includes/geshi/autoconf.php ADDED
@@ -0,0 +1,510 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * autoconf.php
4
+ * -----
5
+ * Author: Mihai Vasilian (grayasm@gmail.com)
6
+ * Copyright: (c) 2010 Mihai Vasilian
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2010/01/25
9
+ *
10
+ * autoconf language file for GeSHi.
11
+ *
12
+ ***********************************************************************************
13
+ *
14
+ * This file is part of GeSHi.
15
+ *
16
+ * GeSHi is free software; you can redistribute it and/or modify
17
+ * it under the terms of the GNU General Public License as published by
18
+ * the Free Software Foundation; either version 2 of the License, or
19
+ * (at your option) any later version.
20
+ *
21
+ * GeSHi is distributed in the hope that it will be useful,
22
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
23
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
24
+ * GNU General Public License for more details.
25
+ *
26
+ * You should have received a copy of the GNU General Public License
27
+ * along with GeSHi; if not, write to the Free Software
28
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
29
+ *
30
+ ************************************************************************************/
31
+
32
+ $language_data = array (
33
+ 'LANG_NAME' => 'Autoconf',
34
+ 'COMMENT_SINGLE' => array(2 => '#'),
35
+ 'COMMENT_MULTI' => array(),
36
+ 'COMMENT_REGEXP' => array(
37
+ //Multiline-continued single-line comments
38
+ 1 => '/\/\/(?:\\\\\\\\|\\\\\\n|.)*$/m',
39
+ //Multiline-continued preprocessor define
40
+ 2 => '/#(?:\\\\\\\\|\\\\\\n|.)*$/m',
41
+ //Single Line comment started by dnl
42
+ 3 => '/(?<!\$)\bdnl\b.*$/m',
43
+ ),
44
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
45
+ 'QUOTEMARKS' => array("'", '"'),
46
+ 'ESCAPE_CHAR' => '',
47
+ 'ESCAPE_REGEXP' => array(),
48
+ 'NUMBERS' =>
49
+ GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
50
+ GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
51
+ GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
52
+ 'KEYWORDS' => array(
53
+ 1 => array(
54
+ 'AC_ACT_IFELSE',
55
+ 'AC_AIX',
56
+ 'AC_ALLOCA',
57
+ 'AC_ARG_ARRAY',
58
+ 'AC_ARG_ENABLE',
59
+ 'AC_ARG_PROGRAM',
60
+ 'AC_ARG_VAR',
61
+ 'AC_ARG_WITH',
62
+ 'AC_AUTOCONF_VERSION',
63
+ 'AC_BEFORE',
64
+ 'AC_C_BACKSLASH_A',
65
+ 'AC_C_BIGENDIAN',
66
+ 'AC_C_CHAR_UNSIGNED',
67
+ 'AC_C_CONST',
68
+ 'AC_C_CROSS',
69
+ 'AC_C_FLEXIBLE_ARRAY_MEMBER',
70
+ 'AC_C_INLINE',
71
+ 'AC_C_LONG_DOUBLE',
72
+ 'AC_C_PROTOTYPES',
73
+ 'AC_C_RESTRICT',
74
+ 'AC_C_STRINGIZE',
75
+ 'AC_C_TYPEOF',
76
+ 'AC_C_VARARRAYS',
77
+ 'AC_C_VOLATILE',
78
+ 'AC_CACHE_CHECK',
79
+ 'AC_CACHE_LOAD',
80
+ 'AC_CACHE_SAVE',
81
+ 'AC_CACHE_VAL',
82
+ 'AC_CANONICAL_BUILD',
83
+ 'AC_CANONICAL_HOST',
84
+ 'AC_CANONICAL_SYSTEM',
85
+ 'AC_CANONICAL_TARGET',
86
+ 'AC_CHAR_UNSIGNED',
87
+ 'AC_CHECK_ALIGNOF',
88
+ 'AC_CHECK_DECL',
89
+ 'AC_CHECK_DECLS',
90
+ 'AC_CHECK_DECLS_ONCE',
91
+ 'AC_CHECK_FILE',
92
+ 'AC_CHECK_FILES',
93
+ 'AC_CHECK_FUNC',
94
+ 'AC_CHECK_FUNCS',
95
+ 'AC_CHECK_FUNCS_ONCE',
96
+ 'AC_CHECK_HEADER',
97
+ 'AC_CHECK_HEADERS',
98
+ 'AC_CHECK_HEADERS_ONCE',
99
+ 'AC_CHECK_LIB',
100
+ 'AC_CHECK_MEMBER',
101
+ 'AC_CHECK_MEMBERS',
102
+ 'AC_CHECK_PROG',
103
+ 'AC_CHECK_PROGS',
104
+ 'AC_CHECK_SIZEOF',
105
+ 'AC_CHECK_TARGET_TOOL',
106
+ 'AC_CHECK_TARGET_TOOLS',
107
+ 'AC_CHECK_TOOL',
108
+ 'AC_CHECK_TOOLS',
109
+ 'AC_CHECK_TYPE',
110
+ 'AC_CHECK_TYPES',
111
+ 'AC_CHECKING',
112
+ 'AC_COMPILE_CHECK',
113
+ 'AC_COMPILE_IFELSE',
114
+ 'AC_COMPUTE_INT',
115
+ 'AC_CONFIG_AUX_DIR',
116
+ 'AC_CONFIG_COMMANDS',
117
+ 'AC_CONFIG_COMMANDS_POST',
118
+ 'AC_CONFIG_COMMANDS_PRE',
119
+ 'AC_CONFIG_FILES',
120
+ 'AC_CONFIG_HEADERS',
121
+ 'AC_CONFIG_ITEMS',
122
+ 'AC_CONFIG_LIBOBJ_DIR',
123
+ 'AC_CONFIG_LINKS',
124
+ 'AC_CONFIG_MACRO_DIR',
125
+ 'AC_CONFIG_SRCDIR',
126
+ 'AC_CONFIG_SUBDIRS',
127
+ 'AC_CONFIG_TESTDIR',
128
+ 'AC_CONST',
129
+ 'AC_COPYRIGHT',
130
+ 'AC_CROSS_CHECK',
131
+ 'AC_CYGWIN',
132
+ 'AC_DATAROOTDIR_CHECKED',
133
+ 'AC_DECL_SYS_SIGLIST',
134
+ 'AC_DECL_YYTEXT',
135
+ 'AC_DEFINE',
136
+ 'AC_DEFINE_UNQUOTED',
137
+ 'AC_DEFUN',
138
+ 'AC_DEFUN_ONCE',
139
+ 'AC_DIAGNOSE',
140
+ 'AC_DIR_HEADER',
141
+ 'AC_DISABLE_OPTION_CHECKING',
142
+ 'AC_DYNIX_SEQ',
143
+ 'AC_EGREP_CPP',
144
+ 'AC_EGREP_HEADER',
145
+ 'AC_EMXOS2',
146
+ 'AC_ENABLE',
147
+ 'AC_ERLANG_CHECK_LIB',
148
+ 'AC_ERLANG_NEED_ERL',
149
+ 'AC_ERLANG_NEED_ERLC',
150
+ 'AC_ERLANG_PATH_ERL',
151
+ 'AC_ERLANG_PATH_ERLC',
152
+ 'AC_ERLANG_SUBST_ERTS_VER',
153
+ 'AC_ERLANG_SUBST_INSTALL_LIB_DIR',
154
+ 'AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR',
155
+ 'AC_ERLANG_SUBST_LIB_DIR',
156
+ 'AC_ERLANG_SUBST_ROOT_DIR',
157
+ 'AC_ERROR',
158
+ 'AC_EXEEXT',
159
+ 'AC_F77_DUMMY_MAIN',
160
+ 'AC_F77_FUNC',
161
+ 'AC_F77_LIBRARY_LDFLAGS',
162
+ 'AC_F77_MAIN',
163
+ 'AC_F77_WRAPPERS',
164
+ 'AC_FATAL',
165
+ 'AC_FC_FREEFORM',
166
+ 'AC_FC_FUNC',
167
+ 'AC_FC_LIBRARY_LDFLAGS',
168
+ 'AC_FC_MAIN',
169
+ 'AC_FC_SRCEXT',
170
+ 'AC_FC_WRAPPERS',
171
+ 'AC_FIND_X',
172
+ 'AC_FIND_XTRA',
173
+ 'AC_FOREACH',
174
+ 'AC_FUNC_ALLOCA',
175
+ 'AC_FUNC_CHECK',
176
+ 'AC_FUNC_CHOWN',
177
+ 'AC_FUNC_CLOSEDIR_VOID',
178
+ 'AC_FUNC_ERROR_AT_LINE',
179
+ 'AC_FUNC_FNMATCH',
180
+ 'AC_FUNC_FNMATCH_GNU',
181
+ 'AC_FUNC_FORK',
182
+ 'AC_FUNC_FSEEKO',
183
+ 'AC_FUNC_GETGROUPS',
184
+ 'AC_FUNC_GETLOADAVG',
185
+ 'AC_FUNC_GETMNTENT',
186
+ 'AC_FUNC_GETPGRP',
187
+ 'AC_FUNC_LSTAT',
188
+ 'AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK',
189
+ 'AC_FUNC_MALLOC',
190
+ 'AC_FUNC_MBRTOWC',
191
+ 'AC_FUNC_MEMCMP',
192
+ 'AC_FUNC_MKTIME',
193
+ 'AC_FUNC_MMAP',
194
+ 'AC_FUNC_OBSTACK',
195
+ 'AC_FUNC_REALLOC',
196
+ 'AC_FUNC_SELECT_ARGTYPES',
197
+ 'AC_FUNC_SETPGRP',
198
+ 'AC_FUNC_SETVBUF_REVERSED',
199
+ 'AC_FUNC_STAT',
200
+ 'AC_FUNC_STRCOLL',
201
+ 'AC_FUNC_STRERROR_R',
202
+ 'AC_FUNC_STRFTIME',
203
+ 'AC_FUNC_STRNLEN',
204
+ 'AC_FUNC_STRTOD',
205
+ 'AC_FUNC_STRTOLD',
206
+ 'AC_FUNC_UTIME_NULL',
207
+ 'AC_FUNC_VPRINTF',
208
+ 'AC_FUNC_WAIT3',
209
+ 'AC_GCC_TRADITIONAL',
210
+ 'AC_GETGROUPS_T',
211
+ 'AC_GETLOADAVG',
212
+ 'AC_GNU_SOURCE',
213
+ 'AC_HAVE_FUNCS',
214
+ 'AC_HAVE_HEADERS',
215
+ 'AC_HAVE_LIBRARY',
216
+ 'AC_HAVE_POUNDBANG',
217
+ 'AC_HEADER_ASSERT',
218
+ 'AC_HEADER_CHECK',
219
+ 'AC_HEADER_DIRENT',
220
+ 'AC_HEADER_EGREP',
221
+ 'AC_HEADER_MAJOR',
222
+ 'AC_HEADER_RESOLV',
223
+ 'AC_HEADER_STAT',
224
+ 'AC_HEADER_STDBOOL',
225
+ 'AC_HEADER_STDC',
226
+ 'AC_HEADER_SYS_WAIT',
227
+ 'AC_HEADER_TIME',
228
+ 'AC_HEADER_TIOCGWINSZ',
229
+ 'AC_HELP_STRING',
230
+ 'AC_INCLUDES_DEFAULT',
231
+ 'AC_INIT',
232
+ 'AC_INLINE',
233
+ 'AC_INT_16_BITS',
234
+ 'AC_IRIX_SUN',
235
+ 'AC_ISC_POSIX',
236
+ 'AC_LANG_ASSERT',
237
+ 'AC_LANG_C',
238
+ 'AC_LANG_CALL',
239
+ 'AC_LANG_CONFTEST',
240
+ 'AC_LANG_CPLUSPLUS',
241
+ 'AC_LANG_FORTRAN77',
242
+ 'AC_LANG_FUNC_LINK_TRY',
243
+ 'AC_LANG_POP',
244
+ 'AC_LANG_PROGRAM',
245
+ 'AC_LANG_PUSH',
246
+ 'AC_LANG_RESTORE',
247
+ 'AC_LANG_SAVE',
248
+ 'AC_LANG_SOURCE',
249
+ 'AC_LANG_WERROR',
250
+ 'AC_LIBOBJ',
251
+ 'AC_LIBSOURCE',
252
+ 'AC_LIBSOURCES',
253
+ 'AC_LINK_FILES',
254
+ 'AC_LINK_IFELSE',
255
+ 'AC_LN_S',
256
+ 'AC_LONG_64_BITS',
257
+ 'AC_LONG_DOUBLE',
258
+ 'AC_LONG_FILE_NAMES',
259
+ 'AC_MAJOR_HEADER',
260
+ 'AC_MEMORY_H',
261
+ 'AC_MINGW32',
262
+ 'AC_MINIX',
263
+ 'AC_MINUS_C_MINUS_O',
264
+ 'AC_MMAP',
265
+ 'AC_MODE_T',
266
+ 'AC_MSG_CHECKING',
267
+ 'AC_MSG_ERROR',
268
+ 'AC_MSG_FAILURE',
269
+ 'AC_MSG_NOTICE',
270
+ 'AC_MSG_RESULT',
271
+ 'AC_MSG_WARN',
272
+ 'AC_OBJEXT',
273
+ 'AC_OBSOLETE',
274
+ 'AC_OFF_T',
275
+ 'AC_OPENMP',
276
+ 'AC_OUTPUT',
277
+ 'AC_OUTPUT_COMMANDS',
278
+ 'AC_PACKAGE_BUGREPORT',
279
+ 'AC_PACKAGE_NAME',
280
+ 'AC_PACKAGE_STRING',
281
+ 'AC_PACKAGE_TARNAME',
282
+ 'AC_PACKAGE_URL',
283
+ 'AC_PACKAGE_VERSION',
284
+ 'AC_PATH_PROG',
285
+ 'AC_PATH_PROGS',
286
+ 'AC_PATH_PROGS_FEATURE_CHECK',
287
+ 'AC_PATH_TARGET_TOOL',
288
+ 'AC_PATH_TOOL',
289
+ 'AC_PATH_X',
290
+ 'AC_PATH_XTRA',
291
+ 'AC_PID_T',
292
+ 'AC_PREFIX',
293
+ 'AC_PREFIX_DEFAULT',
294
+ 'AC_PREFIX_PROGRAM',
295
+ 'AC_PREPROC_IFELSE',
296
+ 'AC_PREREQ',
297
+ 'AC_PRESERVE_HELP_ORDER',
298
+ 'AC_PROG_AWK',
299
+ 'AC_PROG_CC',
300
+ 'AC_PROG_CC_C89',
301
+ 'AC_PROG_CC_C99',
302
+ 'AC_PROG_CC_C_O',
303
+ 'AC_PROG_CC_STDC',
304
+ 'AC_PROG_CPP',
305
+ 'AC_PROG_CPP_WERROR',
306
+ 'AC_PROG_CXX',
307
+ 'AC_PROG_CXX_C_O',
308
+ 'AC_PROG_CXXCPP',
309
+ 'AC_PROG_EGREP',
310
+ 'AC_PROG_F77',
311
+ 'AC_PROG_F77_C_O',
312
+ 'AC_PROG_FC',
313
+ 'AC_PROG_FC_C_O',
314
+ 'AC_PROG_FGREP',
315
+ 'AC_PROG_GCC_TRADITIONAL',
316
+ 'AC_PROG_GREP',
317
+ 'AC_PROG_INSTALL',
318
+ 'AC_PROG_LEX',
319
+ 'AC_PROG_LN_S',
320
+ 'AC_PROG_MAKE_SET',
321
+ 'AC_PROG_MKDIR_P',
322
+ 'AC_PROG_OBJC',
323
+ 'AC_PROG_OBJCPP',
324
+ 'AC_PROG_OBJCXX',
325
+ 'AC_PROG_OBJCXXCPP',
326
+ 'AC_PROG_RANLIB',
327
+ 'AC_PROG_SED',
328
+ 'AC_PROG_YACC',
329
+ 'AC_PROGRAM_CHECK',
330
+ 'AC_PROGRAM_EGREP',
331
+ 'AC_PROGRAM_PATH',
332
+ 'AC_PROGRAMS_CHECK',
333
+ 'AC_PROGRAMS_PATH',
334
+ 'AC_REMOTE_TAPE',
335
+ 'AC_REPLACE_FNMATCH',
336
+ 'AC_REPLACE_FUNCS',
337
+ 'AC_REQUIRE',
338
+ 'AC_REQUIRE_AUX_FILE',
339
+ 'AC_REQUIRE_CPP',
340
+ 'AC_RESTARTABLE_SYSCALLS',
341
+ 'AC_RETSIGTYPE',
342
+ 'AC_REVISION',
343
+ 'AC_RSH',
344
+ 'AC_RUN_IFELSE',
345
+ 'AC_SCO_INTL',
346
+ 'AC_SEARCH_LIBS',
347
+ 'AC_SET_MAKE',
348
+ 'AC_SETVBUF_REVERSED',
349
+ 'AC_SIZE_T',
350
+ 'AC_SIZEOF_TYPE',
351
+ 'AC_ST_BLKSIZE',
352
+ 'AC_ST_BLOCKS',
353
+ 'AC_ST_RDEV',
354
+ 'AC_STAT_MACROS_BROKEN',
355
+ 'AC_STDC_HEADERS',
356
+ 'AC_STRCOLL',
357
+ 'AC_STRUCT_DIRENT_D_INO',
358
+ 'AC_STRUCT_DIRENT_D_TYPE',
359
+ 'AC_STRUCT_ST_BLKSIZE',
360
+ 'AC_STRUCT_ST_BLOCKS',
361
+ 'AC_STRUCT_ST_RDEV',
362
+ 'AC_STRUCT_TIMEZONE',
363
+ 'AC_STRUCT_TM',
364
+ 'AC_SUBST',
365
+ 'AC_SUBST_FILE',
366
+ 'AC_SYS_INTERPRETER',
367
+ 'AC_SYS_LARGEFILE',
368
+ 'AC_SYS_LONG_FILE_NAMES',
369
+ 'AC_SYS_POSIX_TERMIOS',
370
+ 'AC_SYS_RESTARTABLE_SYSCALLS',
371
+ 'AC_SYS_SIGLIST_DECLARED',
372
+ 'AC_TEST_CPP',
373
+ 'AC_TEST_PROGRAM',
374
+ 'AC_TIME_WITH_SYS_TIME',
375
+ 'AC_TIMEZONE',
376
+ 'AC_TRY_ACT',
377
+ 'AC_TRY_COMPILE',
378
+ 'AC_TRY_CPP',
379
+ 'AC_TRY_LINK',
380
+ 'AC_TRY_LINK_FUNC',
381
+ 'AC_TRY_RUN',
382
+ 'AC_TYPE_GETGROUPS',
383
+ 'AC_TYPE_INT16_T',
384
+ 'AC_TYPE_INT32_T',
385
+ 'AC_TYPE_INT64_T',
386
+ 'AC_TYPE_INT8_T',
387
+ 'AC_TYPE_INTMAX_T',
388
+ 'AC_TYPE_INTPTR_T',
389
+ 'AC_TYPE_LONG_DOUBLE',
390
+ 'AC_TYPE_LONG_DOUBLE_WIDER',
391
+ 'AC_TYPE_LONG_LONG_INT',
392
+ 'AC_TYPE_MBSTATE_T',
393
+ 'AC_TYPE_MODE_T',
394
+ 'AC_TYPE_OFF_T',
395
+ 'AC_TYPE_PID_T',
396
+ 'AC_TYPE_SIGNAL',
397
+ 'AC_TYPE_SIZE_T',
398
+ 'AC_TYPE_SSIZE_T',
399
+ 'AC_TYPE_UID_T',
400
+ 'AC_TYPE_UINT16_T',
401
+ 'AC_TYPE_UINT32_T',
402
+ 'AC_TYPE_UINT64_T',
403
+ 'AC_TYPE_UINT8_T',
404
+ 'AC_TYPE_UINTMAX_T',
405
+ 'AC_TYPE_UINTPTR_T',
406
+ 'AC_TYPE_UNSIGNED_LONG_LONG_INT',
407
+ 'AC_UID_T',
408
+ 'AC_UNISTD_H',
409
+ 'AC_USE_SYSTEM_EXTENSIONS',
410
+ 'AC_USG',
411
+ 'AC_UTIME_NULL',
412
+ 'AC_VALIDATE_CACHED_SYSTEM_TUPLE',
413
+ 'AC_VERBOSE',
414
+ 'AC_VFORK',
415
+ 'AC_VPRINTF',
416
+ 'AC_WAIT3',
417
+ 'AC_WARN',
418
+ 'AC_WARNING',
419
+ 'AC_WITH',
420
+ 'AC_WORDS_BIGENDIAN',
421
+ 'AC_XENIX_DIR',
422
+ 'AC_YYTEXT_POINTER',
423
+ 'AH_BOTTOM',
424
+ 'AH_HEADER',
425
+ 'AH_TEMPLATE',
426
+ 'AH_TOP',
427
+ 'AH_VERBATIM',
428
+ 'AU_ALIAS',
429
+ 'AU_DEFUN'),
430
+ ),
431
+ 'SYMBOLS' => array('(', ')', '[', ']', '!', '@', '%', '&', '*', '|', '/', '<', '>', ';;', '`'),
432
+ 'CASE_SENSITIVE' => array(
433
+ GESHI_COMMENTS => false,
434
+ 1 => true,
435
+ ),
436
+ 'STYLES' => array(
437
+ 'KEYWORDS' => array(
438
+ 1 => 'color: #00ffff;',
439
+ ),
440
+ 'COMMENTS' => array(
441
+ 1 => 'color: #666666;',
442
+ 2 => 'color: #339900;',
443
+ 3 => 'color: #666666;',
444
+ 'MULTI' => 'color: #ff0000; font-style: italic;'
445
+ ),
446
+ 'ESCAPE_CHAR' => array(
447
+ 0 => 'color: #000099;',
448
+ 1 => 'color: #000099;',
449
+ 2 => 'color: #660099;',
450
+ 3 => 'color: #660099;',
451
+ 4 => 'color: #660099;',
452
+ 5 => 'color: #006699;',
453
+ 'HARD' => '',
454
+ ),
455
+ 'BRACKETS' => array(
456
+ 0 => 'color: #008000;'
457
+ ),
458
+ 'STRINGS' => array(
459
+ 0 => 'color: #996600;'
460
+ ),
461
+ 'NUMBERS' => array(
462
+ 0 => 'color: #0000dd;',
463
+ GESHI_NUMBER_BIN_PREFIX_0B => 'color: #208080;',
464
+ GESHI_NUMBER_OCT_PREFIX => 'color: #208080;',
465
+ GESHI_NUMBER_HEX_PREFIX => 'color: #208080;',
466
+ GESHI_NUMBER_FLT_SCI_SHORT => 'color:#800080;',
467
+ GESHI_NUMBER_FLT_SCI_ZERO => 'color:#800080;',
468
+ GESHI_NUMBER_FLT_NONSCI_F => 'color:#800080;',
469
+ GESHI_NUMBER_FLT_NONSCI => 'color:#800080;'
470
+ ),
471
+ 'METHODS' => array(
472
+ 1 => 'color: #202020;',
473
+ 2 => 'color: #202020;'
474
+ ),
475
+ 'SYMBOLS' => array(
476
+ 0 => 'color: #008000;',
477
+ 1 => 'color: #000080;',
478
+ 2 => 'color: #000040;',
479
+ 3 => 'color: #000040;',
480
+ 4 => 'color: #008080;'
481
+ ),
482
+ 'REGEXPS' => array(
483
+ ),
484
+ 'SCRIPT' => array(
485
+ )
486
+ ),
487
+ 'URLS' => array(
488
+ 1 => '',
489
+ ),
490
+ 'OOLANG' => false,
491
+ 'OBJECT_SPLITTERS' => array(
492
+ ),
493
+ 'REGEXPS' => array(
494
+ ),
495
+ 'STRICT_MODE_APPLIES' => GESHI_NEVER,
496
+ 'SCRIPT_DELIMITERS' => array(
497
+ ),
498
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
499
+ ),
500
+ 'TAB_WIDTH' => 4,
501
+ 'PARSER_CONTROL' => array(
502
+ 'COMMENTS' => array(
503
+ 'DISALLOWED_BEFORE' => '$'
504
+ ),
505
+ 'KEYWORDS' => array(
506
+ 'DISALLOWED_BEFORE' => "(?<![\.\-a-zA-Z0-9_\$\#])",
507
+ 'DISALLOWED_AFTER' => "(?![\.\-a-zA-Z0-9_%\\/])"
508
+ )
509
+ )
510
+ );
includes/geshi/autohotkey.php ADDED
@@ -0,0 +1,371 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * autohotkey.php
4
+ * --------
5
+ * Author: Naveen Garg (naveen.garg@gmail.com)
6
+ * Copyright: (c) 2009 Naveen Garg and GeSHi
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2009/06/11
9
+ *
10
+ * Autohotkey language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * Release 1.0.8.5 (2009/06/11)
15
+ * - First Release
16
+ *
17
+ * TODO
18
+ * ----
19
+ * Reference: http://www.autohotkey.com/docs/
20
+ *
21
+ *************************************************************************************
22
+ *
23
+ * This file is part of GeSHi.
24
+ *
25
+ * GeSHi is free software; you can redistribute it and/or modify
26
+ * it under the terms of the GNU General Public License as published by
27
+ * the Free Software Foundation; either version 2 of the License, or
28
+ * (at your option) any later version.
29
+ *
30
+ * GeSHi is distributed in the hope that it will be useful,
31
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
32
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
33
+ * GNU General Public License for more details.
34
+ *
35
+ * You should have received a copy of the GNU General Public License
36
+ * along with GeSHi; if not, write to the Free Software
37
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
38
+ *
39
+ ************************************************************************************/
40
+
41
+ $language_data = array (
42
+ 'LANG_NAME' => 'Autohotkey',
43
+ 'COMMENT_SINGLE' => array(
44
+ 1 => ';'
45
+ ),
46
+ 'COMMENT_MULTI' => array('/*' => '*/'),
47
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
48
+ 'QUOTEMARKS' => array('"'),
49
+ 'ESCAPE_CHAR' => '',
50
+ 'KEYWORDS' => array(
51
+ 1 => array(
52
+ 'while','if','and','or','else','return'
53
+ ),
54
+ 2 => array(
55
+ // built in variables
56
+ 'A_AhkPath','A_AhkVersion','A_AppData','A_AppDataCommon',
57
+ 'A_AutoTrim','A_BatchLines','A_CaretX','A_CaretY',
58
+ 'A_ComputerName','A_ControlDelay','A_Cursor','A_DD',
59
+ 'A_DDD','A_DDDD','A_DefaultMouseSpeed','A_Desktop',
60
+ 'A_DesktopCommon','A_DetectHiddenText','A_DetectHiddenWindows','A_EndChar',
61
+ 'A_EventInfo','A_ExitReason','A_FormatFloat','A_FormatInteger',
62
+ 'A_Gui','A_GuiEvent','A_GuiControl','A_GuiControlEvent',
63
+ 'A_GuiHeight','A_GuiWidth','A_GuiX','A_GuiY',
64
+ 'A_Hour','A_IconFile','A_IconHidden','A_IconNumber',
65
+ 'A_IconTip','A_Index','A_IPAddress1','A_IPAddress2',
66
+ 'A_IPAddress3','A_IPAddress4','A_ISAdmin','A_IsCompiled',
67
+ 'A_IsCritical','A_IsPaused','A_IsSuspended','A_KeyDelay',
68
+ 'A_Language','A_LastError','A_LineFile','A_LineNumber',
69
+ 'A_LoopField','A_LoopFileAttrib','A_LoopFileDir','A_LoopFileExt',
70
+ 'A_LoopFileFullPath','A_LoopFileLongPath','A_LoopFileName','A_LoopFileShortName',
71
+ 'A_LoopFileShortPath','A_LoopFileSize','A_LoopFileSizeKB','A_LoopFileSizeMB',
72
+ 'A_LoopFileTimeAccessed','A_LoopFileTimeCreated','A_LoopFileTimeModified','A_LoopReadLine',
73
+ 'A_LoopRegKey','A_LoopRegName','A_LoopRegSubkey','A_LoopRegTimeModified',
74
+ 'A_LoopRegType','A_MDAY','A_Min','A_MM',
75
+ 'A_MMM','A_MMMM','A_Mon','A_MouseDelay',
76
+ 'A_MSec','A_MyDocuments','A_Now','A_NowUTC',
77
+ 'A_NumBatchLines','A_OSType','A_OSVersion','A_PriorHotkey',
78
+ 'A_ProgramFiles','A_Programs','A_ProgramsCommon','A_ScreenHeight',
79
+ 'A_ScreenWidth','A_ScriptDir','A_ScriptFullPath','A_ScriptName',
80
+ 'A_Sec','A_Space','A_StartMenu','A_StartMenuCommon',
81
+ 'A_Startup','A_StartupCommon','A_StringCaseSense','A_Tab',
82
+ 'A_Temp','A_ThisFunc','A_ThisHotkey','A_ThisLabel',
83
+ 'A_ThisMenu','A_ThisMenuItem','A_ThisMenuItemPos','A_TickCount',
84
+ 'A_TimeIdle','A_TimeIdlePhysical','A_TimeSincePriorHotkey','A_TimeSinceThisHotkey',
85
+ 'A_TitleMatchMode','A_TitleMatchModeSpeed','A_UserName','A_WDay',
86
+ 'A_WinDelay','A_WinDir','A_WorkingDir','A_YDay',
87
+ 'A_YEAR','A_YWeek','A_YYYY','Clipboard',
88
+ 'ClipboardAll','ComSpec','ErrorLevel','ProgramFiles',
89
+ ),
90
+ 3 => array(
91
+ 'AutoTrim',
92
+ 'BlockInput','Break','Click',
93
+ 'ClipWait','Continue','Control',
94
+ 'ControlClick','ControlFocus','ControlGet',
95
+ 'ControlGetFocus','ControlGetPos','ControlGetText',
96
+ 'ControlMove','ControlSend','ControlSendRaw',
97
+ 'ControlSetText','CoordMode','Critical',
98
+ 'DetectHiddenText','DetectHiddenWindows','DllCall','Drive',
99
+ 'DriveGet','DriveSpaceFree',
100
+ 'Else','EnvAdd','EnvDiv',
101
+ 'EnvGet','EnvMult','EnvSet',
102
+ 'EnvSub','EnvUpdate','Exit',
103
+ 'ExitApp','FileAppend','FileCopy',
104
+ 'FileCopyDir','FileCreateDir','FileCreateShortcut',
105
+ 'FileDelete','FileGetAttrib','FileGetShortcut',
106
+ 'FileGetSize','FileGetTime','FileGetVersion',
107
+ 'FileInstall','FileMove','FileMoveDir',
108
+ 'FileRead','FileReadLine','FileRecycle',
109
+ 'FileRecycleEmpty','FileRemoveDir','FileSelectFile',
110
+ 'FileSelectFolder','FileSetAttrib','FileSetTime',
111
+ 'FormatTime','Gosub',
112
+ 'Goto','GroupActivate','GroupAdd',
113
+ 'GroupClose','GroupDeactivate','Gui',
114
+ 'GuiControl','GuiControlGet','Hotkey',
115
+ 'IfExist','IfGreater','IfGreaterOrEqual',
116
+ 'IfInString','IfLess','IfLessOrEqual',
117
+ 'IfMsgBox','IfNotEqual','IfNotExist',
118
+ 'IfNotInString','IfWinActive','IfWinExist',
119
+ 'IfWinNotActive','IfWinNotExist','ImageSearch',
120
+ 'IniDelete','IniRead','IniWrite',
121
+ 'Input','InputBox','KeyHistory',
122
+ 'KeyWait','ListHotkeys','ListLines',
123
+ 'ListVars','Loop',
124
+ 'Menu','MouseClick','MouseClickDrag',
125
+ 'MouseGetPos','MouseMove','MsgBox',
126
+ 'OnMessage','OnExit','OutputDebug',
127
+ 'PixelGetColor','PixelSearch','PostMessage',
128
+ 'Process','Progress','Random',
129
+ 'RegExMatch','RegExReplace','RegisterCallback',
130
+ 'RegDelete','RegRead','RegWrite',
131
+ 'Reload','Repeat','Return',
132
+ 'Run','RunAs','RunWait',
133
+ 'Send','SendEvent','SendInput',
134
+ 'SendMessage','SendMode','SendPlay',
135
+ 'SendRaw','SetBatchLines','SetCapslockState',
136
+ 'SetControlDelay','SetDefaultMouseSpeed','SetEnv',
137
+ 'SetFormat','SetKeyDelay','SetMouseDelay',
138
+ 'SetNumlockState','SetScrollLockState','SetStoreCapslockMode',
139
+ 'SetTimer','SetTitleMatchMode','SetWinDelay',
140
+ 'SetWorkingDir','Shutdown','Sleep',
141
+ 'Sort','SoundBeep','SoundGet',
142
+ 'SoundGetWaveVolume','SoundPlay','SoundSet',
143
+ 'SoundSetWaveVolume','SplashImage','SplashTextOff',
144
+ 'SplashTextOn','SplitPath','StatusBarGetText',
145
+ 'StatusBarWait','StringCaseSense','StringGetPos',
146
+ 'StringLeft','StringLen','StringLower',
147
+ 'StringMid','StringReplace','StringRight',
148
+ 'StringSplit','StringTrimLeft','StringTrimRight',
149
+ 'StringUpper','Suspend','SysGet',
150
+ 'Thread','ToolTip','Transform',
151
+ 'TrayTip','URLDownloadToFile','While',
152
+ 'VarSetCapacity',
153
+ 'WinActivate','WinActivateBottom','WinClose',
154
+ 'WinGet','WinGetActiveStats','WinGetActiveTitle',
155
+ 'WinGetClass','WinGetPos','WinGetText',
156
+ 'WinGetTitle','WinHide','WinKill',
157
+ 'WinMaximize','WinMenuSelectItem','WinMinimize',
158
+ 'WinMinimizeAll','WinMinimizeAllUndo','WinMove',
159
+ 'WinRestore','WinSet','WinSetTitle',
160
+ 'WinShow','WinWait','WinWaitActive',
161
+ 'WinWaitClose','WinWaitNotActive'
162
+ ),
163
+ 4 => array(
164
+ 'Abs','ACos','Asc','ASin',
165
+ 'ATan','Ceil','Chr','Cos',
166
+ 'Exp','FileExist','Floor',
167
+ 'GetKeyState','IL_Add','IL_Create','IL_Destroy',
168
+ 'InStr','IsFunc','IsLabel','Ln',
169
+ 'Log','LV_Add','LV_Delete','LV_DeleteCol',
170
+ 'LV_GetCount','LV_GetNext','LV_GetText','LV_Insert',
171
+ 'LV_InsertCol','LV_Modify','LV_ModifyCol','LV_SetImageList',
172
+ 'Mod','NumGet','NumPut',
173
+ 'Round',
174
+ 'SB_SetIcon','SB_SetParts','SB_SetText','Sin',
175
+ 'Sqrt','StrLen','SubStr','Tan',
176
+ 'TV_Add','TV_Delete','TV_GetChild','TV_GetCount',
177
+ 'TV_GetNext','TV_Get','TV_GetParent','TV_GetPrev',
178
+ 'TV_GetSelection','TV_GetText','TV_Modify',
179
+ 'WinActive','WinExist'
180
+ ),
181
+ 5 => array(
182
+ // #Directives
183
+ 'AllowSameLineComments','ClipboardTimeout','CommentFlag',
184
+ 'ErrorStdOut','EscapeChar','HotkeyInterval',
185
+ 'HotkeyModifierTimeout','Hotstring','IfWinActive',
186
+ 'IfWinExist','IfWinNotActive','IfWinNotExist',
187
+ 'Include','IncludeAgain','InstallKeybdHook',
188
+ 'InstallMouseHook','KeyHistory','LTrim',
189
+ 'MaxHotkeysPerInterval','MaxMem','MaxThreads',
190
+ 'MaxThreadsBuffer','MaxThreadsPerHotkey','NoEnv',
191
+ 'NoTrayIcon','Persistent','SingleInstance',
192
+ 'UseHook','WinActivateForce'
193
+ ),
194
+ 6 => array(
195
+ 'Shift','LShift','RShift',
196
+ 'Alt','LAlt','RAlt',
197
+ 'LControl','RControl',
198
+ 'Ctrl','LCtrl','RCtrl',
199
+ 'LWin','RWin','AppsKey',
200
+ 'AltDown','AltUp','ShiftDown',
201
+ 'ShiftUp','CtrlDown','CtrlUp',
202
+ 'LWinDown','LWinUp','RWinDown',
203
+ 'RWinUp','LButton','RButton',
204
+ 'MButton','WheelUp','WheelDown',
205
+ 'WheelLeft','WheelRight','XButton1',
206
+ 'XButton2','Joy1','Joy2',
207
+ 'Joy3','Joy4','Joy5',
208
+ 'Joy6','Joy7','Joy8',
209
+ 'Joy9','Joy10','Joy11',
210
+ 'Joy12','Joy13','Joy14',
211
+ 'Joy15','Joy16','Joy17',
212
+ 'Joy18','Joy19','Joy20',
213
+ 'Joy21','Joy22','Joy23',
214
+ 'Joy24','Joy25','Joy26',
215
+ 'Joy27','Joy28','Joy29',
216
+ 'Joy30','Joy31','Joy32',
217
+ 'JoyX','JoyY','JoyZ',
218
+ 'JoyR','JoyU','JoyV',
219
+ 'JoyPOV','JoyName','JoyButtons',
220
+ 'JoyAxes','JoyInfo','Space',
221
+ 'Tab','Enter',
222
+ 'Escape','Esc','BackSpace',
223
+ 'BS','Delete','Del',
224
+ 'Insert','Ins','PGUP',
225
+ 'PGDN','Home','End',
226
+ 'Up','Down','Left',
227
+ 'Right','PrintScreen','CtrlBreak',
228
+ 'Pause','ScrollLock','CapsLock',
229
+ 'NumLock','Numpad0','Numpad1',
230
+ 'Numpad2','Numpad3','Numpad4',
231
+ 'Numpad5','Numpad6','Numpad7',
232
+ 'Numpad8','Numpad9','NumpadMult',
233
+ 'NumpadAdd','NumpadSub','NumpadDiv',
234
+ 'NumpadDot','NumpadDel','NumpadIns',
235
+ 'NumpadClear','NumpadUp','NumpadDown',
236
+ 'NumpadLeft','NumpadRight','NumpadHome',
237
+ 'NumpadEnd','NumpadPgup','NumpadPgdn',
238
+ 'NumpadEnter','F1','F2',
239
+ 'F3','F4','F5',
240
+ 'F6','F7','F8',
241
+ 'F9','F10','F11',
242
+ 'F12','F13','F14',
243
+ 'F15','F16','F17',
244
+ 'F18','F19','F20',
245
+ 'F21','F22','F23',
246
+ 'F24','Browser_Back','Browser_Forward',
247
+ 'Browser_Refresh','Browser_Stop','Browser_Search',
248
+ 'Browser_Favorites','Browser_Home','Volume_Mute',
249
+ 'Volume_Down','Volume_Up','Media_Next',
250
+ 'Media_Prev','Media_Stop','Media_Play_Pause',
251
+ 'Launch_Mail','Launch_Media','Launch_App1',
252
+ 'Launch_App2'
253
+ ),
254
+ 7 => array(
255
+ // Gui commands
256
+ 'Add',
257
+ 'Show', 'Submit', 'Cancel', 'Destroy',
258
+ 'Font', 'Color', 'Margin', 'Flash', 'Default',
259
+ 'GuiEscape','GuiClose','GuiSize','GuiContextMenu','GuiDropFilesTabStop',
260
+ ),
261
+ 8 => array(
262
+ // Gui Controls
263
+ 'Button',
264
+ 'Checkbox','Radio','DropDownList','DDL',
265
+ 'ComboBox','ListBox','ListView',
266
+ 'Text', 'Edit', 'UpDown', 'Picture',
267
+ 'TreeView','DateTime', 'MonthCal',
268
+ 'Slider'
269
+ )
270
+ ),
271
+ 'SYMBOLS' => array(
272
+ '(',')','[',']',
273
+ '+','-','*','/','&','^',
274
+ '=','+=','-=','*=','/=','&=',
275
+ '==','<','<=','>','>=',':=',
276
+ ',','.'
277
+ ),
278
+ 'CASE_SENSITIVE' => array(
279
+ GESHI_COMMENTS => false,
280
+ 1 => false,
281
+ 2 => false,
282
+ 3 => false,
283
+ 4 => false,
284
+ 5 => false,
285
+ 6 => false,
286
+ 7 => false,
287
+ 8 => false
288
+ ),
289
+ 'STYLES' => array(
290
+ 'KEYWORDS' => array(
291
+ 1 => 'color: #AAAAFF; font-weight: bold;', // reserved #blue
292
+ 2 => 'color: #88FF88;', // BIV yellow
293
+ 3 => 'color: #FF00FF; font-style: italic;', // commands purple
294
+ 4 => 'color: #888844; font-weight: bold;', // functions #0080FF
295
+ 5 => 'color: #000000; font-style: italic;', // directives #black
296
+ 6 => 'color: #FF0000; font-style: italic;', // hotkeys #red
297
+ 7 => 'color: #000000; font-style: italic;', // gui commands #black
298
+ 8 => 'color: #000000; font-style: italic;' // gui controls
299
+ ),
300
+ 'COMMENTS' => array(
301
+ 'MULTI' => 'font-style: italic; color: #669900;',
302
+ 1 => 'font-style: italic; color: #009933;'
303
+ ),
304
+ 'ESCAPE_CHAR' => array(
305
+ 0 => ''
306
+ ),
307
+ 'BRACKETS' => array(
308
+ 0 => 'color: #00FF00; font-weight: bold;'
309
+ ),
310
+ 'STRINGS' => array(
311
+ 0 => 'font-weight: bold; color: #008080;'
312
+ ),
313
+ 'NUMBERS' => array(
314
+ 0 => 'color: #0000dd;'
315
+ ),
316
+ 'METHODS' => array(
317
+ 1 => 'color: #0000FF; font-style: italic; font-weight: italic;'
318
+ ),
319
+ 'SYMBOLS' => array(
320
+ 0 => 'color: #000000; font-weight: italic;'
321
+ ),
322
+ 'REGEXPS' => array(
323
+ 0 => 'font-weight: italic; color: #A00A0;',
324
+ 1 => 'color: #CC0000; font-style: italic;',
325
+ 2 => 'color: #DD0000; font-style: italic;',
326
+ 3 => 'color: #88FF88;'
327
+ ),
328
+ 'SCRIPT' => array(
329
+ )
330
+ ),
331
+ 'OOLANG' => false,
332
+ 'OBJECT_SPLITTERS' => array(
333
+ 1 => '_'
334
+ ),
335
+ 'REGEXPS' => array(
336
+ //Variables
337
+ 0 => '%[a-zA-Z_][a-zA-Z0-9_]*%',
338
+ //hotstrings
339
+ 1 => '::[\w\d]+::',
340
+ //labels
341
+ 2 => '\w[\w\d]+:\s',
342
+ //Built-in Variables
343
+ 3 => '\bA_\w+\b(?![^<]*>)'
344
+ ),
345
+ 'URLS' => array(
346
+ 1 => '',
347
+ 2 => 'http://www.autohotkey.com/docs/Variables.htm#{FNAME}',
348
+ 3 => 'http://www.autohotkey.com/docs/commands/{FNAME}.htm',
349
+ 4 => 'http://www.autohotkey.com/docs/Functions.htm#BuiltIn',
350
+ 5 => 'http://www.autohotkey.com/docs/commands/_{FNAME}.htm',
351
+ 6 => '',
352
+ 7 => 'http://www.autohotkey.com/docs/commands/Gui.htm#{FNAME}',
353
+ 8 => 'http://www.autohotkey.com/docs/commands/GuiControls.htm#{FNAME}'
354
+ ),
355
+ 'STRICT_MODE_APPLIES' => GESHI_MAYBE,
356
+ 'SCRIPT_DELIMITERS' => array(
357
+ ),
358
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
359
+ 0 => true,
360
+ 1 => true,
361
+ 2 => true,
362
+ 3 => true
363
+ ),
364
+ 'PARSER_CONTROL' => array(
365
+ 'KEYWORDS' => array(
366
+ 5 => array(
367
+ 'DISALLOWED_BEFORE' => '(?<!\w)\#'
368
+ )
369
+ )
370
+ )
371
+ );
includes/geshi/autoit.php ADDED
@@ -0,0 +1,1888 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * autoit.php
4
+ * --------
5
+ * Author: big_daddy, guinness & Tlem
6
+ * Copyright: (c) 2006-2015
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2006/01/26
9
+ *
10
+ * AutoIt: v3.3.14.2
11
+ * Updated: 2015/09/18
12
+ *
13
+ * AutoIt language file for GeSHi.
14
+ *
15
+ * CHANGES
16
+ * -------
17
+ * Release 1.0.8.11 (2014/01/03) by guinness
18
+ * - Added: Split directives so as to point to their specific URL.
19
+ * - Fixed: #EndRegion not highlighting correctly.
20
+ * - Fixed: AutoItWrapper directives and settings were incorrectly highlighting.
21
+ * - Fixed: Highlighting of hex values and complex math values.
22
+ * - Fixed: Include file name to the correct colour scheme.
23
+ * - Fixed: Incorrectly highlighting the _ (underscore).
24
+ * - Fixed: Upper case #include being incorrectly highlighted.
25
+ * - Fixed: Variables and macros were being incorrectly highlighted.
26
+ * - Fixed: Generation based on AutoIt_php.ini file to commit only on specific GeSHi change.
27
+ * Release 1.0.8.1 (2008/09/15) by Tlem
28
+ * - Added: http://www.autoitscript.com/autoit3/docs/functions/{FNAME}.htm
29
+ * - Fixed: The link on functions will now correctly re-direct to
30
+ * Release 1.0.7.20 (2006/01/26)
31
+ * - Initial Release
32
+ *
33
+ * TODO:
34
+ * ----------
35
+ * - None
36
+ *
37
+ * Reference: http://www.autoitscript.com/autoit3/docs/
38
+ *
39
+ *************************************************************************************
40
+ *
41
+ * This file is part of GeSHi.
42
+ *
43
+ * GeSHi is free software; you can redistribute it and/or modify
44
+ * it under the terms of the GNU General Public License as published by
45
+ * the Free Software Foundation; either version 2 of the License, or
46
+ * (at your option) any later version.
47
+ *
48
+ * GeSHi is distributed in the hope that it will be useful,
49
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
50
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
51
+ * GNU General Public License for more details.
52
+ *
53
+ * You should have received a copy of the GNU General Public License
54
+ * along with GeSHi; if not, write to the Free Software
55
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
56
+ *
57
+ ************************************************************************************/
58
+
59
+ $language_data = array(
60
+ 'LANG_NAME' => 'AutoIt',
61
+ 'COMMENT_SINGLE' => array(
62
+ 1 => ';',
63
+ 2 => ';~'
64
+ ),
65
+ 'COMMENT_MULTI' => array(
66
+ '#comments-start' => '#comments-end',
67
+ '#cs' => '#ce'),
68
+ 'COMMENT_REGEXP' => array(
69
+ 0 => '/(?<=(i|I)nclude)\s*<.*?>/'
70
+ ),
71
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
72
+ 'QUOTEMARKS' => array("'", '"'),
73
+ 'ESCAPE_CHAR' => '',
74
+ 'KEYWORDS' => array(
75
+ 1 => array(
76
+ 'And', 'ByRef', 'Case', 'Const', 'ContinueCase', 'ContinueLoop',
77
+ 'Default', 'Dim', 'Do', 'Else', 'ElseIf', 'EndFunc', 'EndIf', 'EndSelect',
78
+ 'EndSwitch', 'EndWith', 'Enum', 'Exit', 'ExitLoop', 'False', 'For', 'Func',
79
+ 'Global', 'If', 'In', 'Local', 'Next', 'Not', 'Null', 'Or', 'ReDim',
80
+ 'Return', 'Select', 'Static', 'Step', 'Switch', 'Then', 'To', 'True',
81
+ 'Until', 'Volatile', 'WEnd', 'While', 'With'
82
+ ),
83
+ 2 => array(
84
+ '@AppDataCommonDir', '@AppDataDir', '@AutoItExe', '@AutoItPID',
85
+ '@AutoItVersion', '@AutoItX64', '@COM_EventObj', '@CommonFilesDir',
86
+ '@Compiled', '@ComputerName', '@ComSpec', '@CPUArch', '@CR', '@CRLF',
87
+ '@DesktopCommonDir', '@DesktopDepth', '@DesktopDir', '@DesktopHeight',
88
+ '@DesktopRefresh', '@DesktopWidth', '@DocumentsCommonDir', '@error',
89
+ '@exitCode', '@exitMethod', '@extended', '@FavoritesCommonDir',
90
+ '@FavoritesDir', '@GUI_CtrlHandle', '@GUI_CtrlId', '@GUI_DragFile',
91
+ '@GUI_DragId', '@GUI_DropId', '@GUI_WinHandle', '@HomeDrive',
92
+ '@HomePath', '@HomeShare', '@HotKeyPressed', '@HOUR', '@IPAddress1',
93
+ '@IPAddress2', '@IPAddress3', '@IPAddress4', '@KBLayout', '@LF',
94
+ '@LocalAppDataDir', '@LogonDNSDomain', '@LogonDomain', '@LogonServer',
95
+ '@MDAY', '@MIN', '@MON', '@MSEC', '@MUILang', '@MyDocumentsDir',
96
+ '@NumParams', '@OSArch', '@OSBuild', '@OSLang', '@OSServicePack',
97
+ '@OSType', '@OSVersion', '@ProgramFilesDir', '@ProgramsCommonDir',
98
+ '@ProgramsDir', '@ScriptDir', '@ScriptFullPath', '@ScriptLineNumber',
99
+ '@ScriptName', '@SEC', '@StartMenuCommonDir', '@StartMenuDir',
100
+ '@StartupCommonDir', '@StartupDir', '@SW_DISABLE', '@SW_ENABLE',
101
+ '@SW_HIDE', '@SW_LOCK', '@SW_MAXIMIZE', '@SW_MINIMIZE', '@SW_RESTORE',
102
+ '@SW_SHOW', '@SW_SHOWDEFAULT', '@SW_SHOWMAXIMIZED',
103
+ '@SW_SHOWMINIMIZED', '@SW_SHOWMINNOACTIVE', '@SW_SHOWNA',
104
+ '@SW_SHOWNOACTIVATE', '@SW_SHOWNORMAL', '@SW_UNLOCK', '@SystemDir',
105
+ '@TAB', '@TempDir', '@TRAY_ID', '@TrayIconFlashing', '@TrayIconVisible',
106
+ '@UserName', '@UserProfileDir', '@WDAY', '@WindowsDir', '@WorkingDir',
107
+ '@YDAY', '@YEAR'
108
+ ),
109
+ 3 => array(
110
+ 'Abs', 'ACos', 'AdlibRegister', 'AdlibUnRegister', 'Asc', 'AscW', 'ASin',
111
+ 'Assign', 'ATan', 'AutoItSetOption', 'AutoItWinGetTitle',
112
+ 'AutoItWinSetTitle', 'Beep', 'Binary', 'BinaryLen', 'BinaryMid',
113
+ 'BinaryToString', 'BitAND', 'BitNOT', 'BitOR', 'BitRotate', 'BitShift',
114
+ 'BitXOR', 'BlockInput', 'Break', 'Call', 'CDTray', 'Ceiling', 'Chr',
115
+ 'ChrW', 'ClipGet', 'ClipPut', 'ConsoleRead', 'ConsoleWrite',
116
+ 'ConsoleWriteError', 'ControlClick', 'ControlCommand',
117
+ 'ControlDisable', 'ControlEnable', 'ControlFocus', 'ControlGetFocus',
118
+ 'ControlGetHandle', 'ControlGetPos', 'ControlGetText', 'ControlHide',
119
+ 'ControlListView', 'ControlMove', 'ControlSend', 'ControlSetText',
120
+ 'ControlShow', 'ControlTreeView', 'Cos', 'Dec', 'DirCopy', 'DirCreate',
121
+ 'DirGetSize', 'DirMove', 'DirRemove', 'DllCall', 'DllCallAddress',
122
+ 'DllCallbackFree', 'DllCallbackGetPtr', 'DllCallbackRegister',
123
+ 'DllClose', 'DllOpen', 'DllStructCreate', 'DllStructGetData',
124
+ 'DllStructGetPtr', 'DllStructGetSize', 'DllStructSetData',
125
+ 'DriveGetDrive', 'DriveGetFileSystem', 'DriveGetLabel',
126
+ 'DriveGetSerial', 'DriveGetType', 'DriveMapAdd', 'DriveMapDel',
127
+ 'DriveMapGet', 'DriveSetLabel', 'DriveSpaceFree', 'DriveSpaceTotal',
128
+ 'DriveStatus', 'EnvGet', 'EnvSet', 'EnvUpdate', 'Eval', 'Execute', 'Exp',
129
+ 'FileChangeDir', 'FileClose', 'FileCopy', 'FileCreateNTFSLink',
130
+ 'FileCreateShortcut', 'FileDelete', 'FileExists', 'FileFindFirstFile',
131
+ 'FileFindNextFile', 'FileFlush', 'FileGetAttrib', 'FileGetEncoding',
132
+ 'FileGetLongName', 'FileGetPos', 'FileGetShortcut', 'FileGetShortName',
133
+ 'FileGetSize', 'FileGetTime', 'FileGetVersion', 'FileInstall',
134
+ 'FileMove', 'FileOpen', 'FileOpenDialog', 'FileRead', 'FileReadLine',
135
+ 'FileReadToArray', 'FileRecycle', 'FileRecycleEmpty', 'FileSaveDialog',
136
+ 'FileSelectFolder', 'FileSetAttrib', 'FileSetEnd', 'FileSetPos',
137
+ 'FileSetTime', 'FileWrite', 'FileWriteLine', 'Floor', 'FtpSetProxy',
138
+ 'FuncName', 'GUICreate', 'GUICtrlCreateAvi', 'GUICtrlCreateButton',
139
+ 'GUICtrlCreateCheckbox', 'GUICtrlCreateCombo',
140
+ 'GUICtrlCreateContextMenu', 'GUICtrlCreateDate', 'GUICtrlCreateDummy',
141
+ 'GUICtrlCreateEdit', 'GUICtrlCreateGraphic', 'GUICtrlCreateGroup',
142
+ 'GUICtrlCreateIcon', 'GUICtrlCreateInput', 'GUICtrlCreateLabel',
143
+ 'GUICtrlCreateList', 'GUICtrlCreateListView',
144
+ 'GUICtrlCreateListViewItem', 'GUICtrlCreateMenu',
145
+ 'GUICtrlCreateMenuItem', 'GUICtrlCreateMonthCal', 'GUICtrlCreateObj',
146
+ 'GUICtrlCreatePic', 'GUICtrlCreateProgress', 'GUICtrlCreateRadio',
147
+ 'GUICtrlCreateSlider', 'GUICtrlCreateTab', 'GUICtrlCreateTabItem',
148
+ 'GUICtrlCreateTreeView', 'GUICtrlCreateTreeViewItem',
149
+ 'GUICtrlCreateUpdown', 'GUICtrlDelete', 'GUICtrlGetHandle',
150
+ 'GUICtrlGetState', 'GUICtrlRead', 'GUICtrlRecvMsg',
151
+ 'GUICtrlRegisterListViewSort', 'GUICtrlSendMsg', 'GUICtrlSendToDummy',
152
+ 'GUICtrlSetBkColor', 'GUICtrlSetColor', 'GUICtrlSetCursor',
153
+ 'GUICtrlSetData', 'GUICtrlSetDefBkColor', 'GUICtrlSetDefColor',
154
+ 'GUICtrlSetFont', 'GUICtrlSetGraphic', 'GUICtrlSetImage',
155
+ 'GUICtrlSetLimit', 'GUICtrlSetOnEvent', 'GUICtrlSetPos',
156
+ 'GUICtrlSetResizing', 'GUICtrlSetState', 'GUICtrlSetStyle',
157
+ 'GUICtrlSetTip', 'GUIDelete', 'GUIGetCursorInfo', 'GUIGetMsg',
158
+ 'GUIGetStyle', 'GUIRegisterMsg', 'GUISetAccelerators', 'GUISetBkColor',
159
+ 'GUISetCoord', 'GUISetCursor', 'GUISetFont', 'GUISetHelp', 'GUISetIcon',
160
+ 'GUISetOnEvent', 'GUISetState', 'GUISetStyle', 'GUIStartGroup',
161
+ 'GUISwitch', 'Hex', 'HotKeySet', 'HttpSetProxy', 'HttpSetUserAgent',
162
+ 'HWnd', 'InetClose', 'InetGet', 'InetGetInfo', 'InetGetSize', 'InetRead',
163
+ 'IniDelete', 'IniRead', 'IniReadSection', 'IniReadSectionNames',
164
+ 'IniRenameSection', 'IniWrite', 'IniWriteSection', 'InputBox', 'Int',
165
+ 'IsAdmin', 'IsArray', 'IsBinary', 'IsBool', 'IsDeclared', 'IsDllStruct',
166
+ 'IsFloat', 'IsFunc', 'IsHWnd', 'IsInt', 'IsKeyword', 'IsNumber', 'IsObj',
167
+ 'IsPtr', 'IsString', 'Log', 'MemGetStats', 'Mod', 'MouseClick',
168
+ 'MouseClickDrag', 'MouseDown', 'MouseGetCursor', 'MouseGetPos',
169
+ 'MouseMove', 'MouseUp', 'MouseWheel', 'MsgBox', 'Number', 'ObjCreate',
170
+ 'ObjCreateInterface', 'ObjEvent', 'ObjGet', 'ObjName',
171
+ 'OnAutoItExitRegister', 'OnAutoItExitUnRegister', 'Opt', 'Ping',
172
+ 'PixelChecksum', 'PixelGetColor', 'PixelSearch', 'ProcessClose',
173
+ 'ProcessExists', 'ProcessGetStats', 'ProcessList',
174
+ 'ProcessSetPriority', 'ProcessWait', 'ProcessWaitClose', 'ProgressOff',
175
+ 'ProgressOn', 'ProgressSet', 'Ptr', 'Random', 'RegDelete', 'RegEnumKey',
176
+ 'RegEnumVal', 'RegRead', 'RegWrite', 'Round', 'Run', 'RunAs', 'RunAsWait',
177
+ 'RunWait', 'Send', 'SendKeepActive', 'SetError', 'SetExtended',
178
+ 'ShellExecute', 'ShellExecuteWait', 'Shutdown', 'Sin', 'Sleep',
179
+ 'SoundPlay', 'SoundSetWaveVolume', 'SplashImageOn', 'SplashOff',
180
+ 'SplashTextOn', 'Sqrt', 'SRandom', 'StatusbarGetText', 'StderrRead',
181
+ 'StdinWrite', 'StdioClose', 'StdoutRead', 'String', 'StringAddCR',
182
+ 'StringCompare', 'StringFormat', 'StringFromASCIIArray', 'StringInStr',
183
+ 'StringIsAlNum', 'StringIsAlpha', 'StringIsASCII', 'StringIsDigit',
184
+ 'StringIsFloat', 'StringIsInt', 'StringIsLower', 'StringIsSpace',
185
+ 'StringIsUpper', 'StringIsXDigit', 'StringLeft', 'StringLen',
186
+ 'StringLower', 'StringMid', 'StringRegExp', 'StringRegExpReplace',
187
+ 'StringReplace', 'StringReverse', 'StringRight', 'StringSplit',
188
+ 'StringStripCR', 'StringStripWS', 'StringToASCIIArray',
189
+ 'StringToBinary', 'StringTrimLeft', 'StringTrimRight', 'StringUpper',
190
+ 'Tan', 'TCPAccept', 'TCPCloseSocket', 'TCPConnect', 'TCPListen',
191
+ 'TCPNameToIP', 'TCPRecv', 'TCPSend', 'TCPShutdown', 'TCPStartup',
192
+ 'TimerDiff', 'TimerInit', 'ToolTip', 'TrayCreateItem', 'TrayCreateMenu',
193
+ 'TrayGetMsg', 'TrayItemDelete', 'TrayItemGetHandle',
194
+ 'TrayItemGetState', 'TrayItemGetText', 'TrayItemSetOnEvent',
195
+ 'TrayItemSetState', 'TrayItemSetText', 'TraySetClick', 'TraySetIcon',
196
+ 'TraySetOnEvent', 'TraySetPauseIcon', 'TraySetState', 'TraySetToolTip',
197
+ 'TrayTip', 'UBound', 'UDPBind', 'UDPCloseSocket', 'UDPOpen', 'UDPRecv',
198
+ 'UDPSend', 'UDPShutdown', 'UDPStartup', 'VarGetType', 'WinActivate',
199
+ 'WinActive', 'WinClose', 'WinExists', 'WinFlash', 'WinGetCaretPos',
200
+ 'WinGetClassList', 'WinGetClientSize', 'WinGetHandle', 'WinGetPos',
201
+ 'WinGetProcess', 'WinGetState', 'WinGetText', 'WinGetTitle', 'WinKill',
202
+ 'WinList', 'WinMenuSelectItem', 'WinMinimizeAll', 'WinMinimizeAllUndo',
203
+ 'WinMove', 'WinSetOnTop', 'WinSetState', 'WinSetTitle', 'WinSetTrans',
204
+ 'WinWait', 'WinWaitActive', 'WinWaitClose', 'WinWaitNotActive'
205
+ ),
206
+ 4 => array(
207
+ 'Array1DToHistogram', 'ArrayAdd', 'ArrayBinarySearch',
208
+ 'ArrayColDelete', 'ArrayColInsert', 'ArrayCombinations',
209
+ 'ArrayConcatenate', 'ArrayDelete', 'ArrayDisplay', 'ArrayExtract',
210
+ 'ArrayFindAll', 'ArrayInsert', 'ArrayMax', 'ArrayMaxIndex', 'ArrayMin',
211
+ 'ArrayMinIndex', 'ArrayPermute', 'ArrayPop', 'ArrayPush',
212
+ 'ArrayReverse', 'ArraySearch', 'ArrayShuffle', 'ArraySort', 'ArraySwap',
213
+ 'ArrayToClip', 'ArrayToString', 'ArrayTranspose', 'ArrayTrim',
214
+ 'ArrayUnique', 'Assert', 'ChooseColor', 'ChooseFont',
215
+ 'ClipBoard_ChangeChain', 'ClipBoard_Close', 'ClipBoard_CountFormats',
216
+ 'ClipBoard_Empty', 'ClipBoard_EnumFormats', 'ClipBoard_FormatStr',
217
+ 'ClipBoard_GetData', 'ClipBoard_GetDataEx', 'ClipBoard_GetFormatName',
218
+ 'ClipBoard_GetOpenWindow', 'ClipBoard_GetOwner',
219
+ 'ClipBoard_GetPriorityFormat', 'ClipBoard_GetSequenceNumber',
220
+ 'ClipBoard_GetViewer', 'ClipBoard_IsFormatAvailable',
221
+ 'ClipBoard_Open', 'ClipBoard_RegisterFormat', 'ClipBoard_SetData',
222
+ 'ClipBoard_SetDataEx', 'ClipBoard_SetViewer', 'ClipPutFile',
223
+ 'ColorConvertHSLtoRGB', 'ColorConvertRGBtoHSL', 'ColorGetBlue',
224
+ 'ColorGetCOLORREF', 'ColorGetGreen', 'ColorGetRed', 'ColorGetRGB',
225
+ 'ColorSetCOLORREF', 'ColorSetRGB', 'Crypt_DecryptData',
226
+ 'Crypt_DecryptFile', 'Crypt_DeriveKey', 'Crypt_DestroyKey',
227
+ 'Crypt_EncryptData', 'Crypt_EncryptFile', 'Crypt_GenRandom',
228
+ 'Crypt_HashData', 'Crypt_HashFile', 'Crypt_Shutdown', 'Crypt_Startup',
229
+ 'DateAdd', 'DateDayOfWeek', 'DateDaysInMonth', 'DateDiff',
230
+ 'DateIsLeapYear', 'DateIsValid', 'DateTimeFormat', 'DateTimeSplit',
231
+ 'DateToDayOfWeek', 'DateToDayOfWeekISO', 'DateToDayValue',
232
+ 'DateToMonth', 'Date_Time_CompareFileTime',
233
+ 'Date_Time_DOSDateTimeToArray', 'Date_Time_DOSDateTimeToFileTime',
234
+ 'Date_Time_DOSDateTimeToStr', 'Date_Time_DOSDateToArray',
235
+ 'Date_Time_DOSDateToStr', 'Date_Time_DOSTimeToArray',
236
+ 'Date_Time_DOSTimeToStr', 'Date_Time_EncodeFileTime',
237
+ 'Date_Time_EncodeSystemTime', 'Date_Time_FileTimeToArray',
238
+ 'Date_Time_FileTimeToDOSDateTime',
239
+ 'Date_Time_FileTimeToLocalFileTime', 'Date_Time_FileTimeToStr',
240
+ 'Date_Time_FileTimeToSystemTime', 'Date_Time_GetFileTime',
241
+ 'Date_Time_GetLocalTime', 'Date_Time_GetSystemTime',
242
+ 'Date_Time_GetSystemTimeAdjustment',
243
+ 'Date_Time_GetSystemTimeAsFileTime', 'Date_Time_GetSystemTimes',
244
+ 'Date_Time_GetTickCount', 'Date_Time_GetTimeZoneInformation',
245
+ 'Date_Time_LocalFileTimeToFileTime', 'Date_Time_SetFileTime',
246
+ 'Date_Time_SetLocalTime', 'Date_Time_SetSystemTime',
247
+ 'Date_Time_SetSystemTimeAdjustment',
248
+ 'Date_Time_SetTimeZoneInformation', 'Date_Time_SystemTimeToArray',
249
+ 'Date_Time_SystemTimeToDateStr', 'Date_Time_SystemTimeToDateTimeStr',
250
+ 'Date_Time_SystemTimeToFileTime', 'Date_Time_SystemTimeToTimeStr',
251
+ 'Date_Time_SystemTimeToTzSpecificLocalTime',
252
+ 'Date_Time_TzSpecificLocalTimeToSystemTime', 'DayValueToDate',
253
+ 'DebugBugReportEnv', 'DebugCOMError', 'DebugOut', 'DebugReport',
254
+ 'DebugReportEx', 'DebugReportVar', 'DebugSetup', 'Degree',
255
+ 'EventLog__Backup', 'EventLog__Clear', 'EventLog__Close',
256
+ 'EventLog__Count', 'EventLog__DeregisterSource', 'EventLog__Full',
257
+ 'EventLog__Notify', 'EventLog__Oldest', 'EventLog__Open',
258
+ 'EventLog__OpenBackup', 'EventLog__Read', 'EventLog__RegisterSource',
259
+ 'EventLog__Report', 'Excel_BookAttach', 'Excel_BookClose',
260
+ 'Excel_BookList', 'Excel_BookNew', 'Excel_BookOpen',
261
+ 'Excel_BookOpenText', 'Excel_BookSave', 'Excel_BookSaveAs',
262
+ 'Excel_Close', 'Excel_ColumnToLetter', 'Excel_ColumnToNumber',
263
+ 'Excel_ConvertFormula', 'Excel_Export', 'Excel_FilterGet',
264
+ 'Excel_FilterSet', 'Excel_Open', 'Excel_PictureAdd', 'Excel_Print',
265
+ 'Excel_RangeCopyPaste', 'Excel_RangeDelete', 'Excel_RangeFind',
266
+ 'Excel_RangeInsert', 'Excel_RangeLinkAddRemove', 'Excel_RangeRead',
267
+ 'Excel_RangeReplace', 'Excel_RangeSort', 'Excel_RangeValidate',
268
+ 'Excel_RangeWrite', 'Excel_SheetAdd', 'Excel_SheetCopyMove',
269
+ 'Excel_SheetDelete', 'Excel_SheetList', 'FileCountLines', 'FileCreate',
270
+ 'FileListToArray', 'FileListToArrayRec', 'FilePrint',
271
+ 'FileReadToArray', 'FileWriteFromArray', 'FileWriteLog',
272
+ 'FileWriteToLine', 'FTP_Close', 'FTP_Command', 'FTP_Connect',
273
+ 'FTP_DecodeInternetStatus', 'FTP_DirCreate', 'FTP_DirDelete',
274
+ 'FTP_DirGetCurrent', 'FTP_DirPutContents', 'FTP_DirSetCurrent',
275
+ 'FTP_FileClose', 'FTP_FileDelete', 'FTP_FileGet', 'FTP_FileGetSize',
276
+ 'FTP_FileOpen', 'FTP_FilePut', 'FTP_FileRead', 'FTP_FileRename',
277
+ 'FTP_FileTimeLoHiToStr', 'FTP_FindFileClose', 'FTP_FindFileFirst',
278
+ 'FTP_FindFileNext', 'FTP_GetLastResponseInfo', 'FTP_ListToArray',
279
+ 'FTP_ListToArray2D', 'FTP_ListToArrayEx', 'FTP_Open',
280
+ 'FTP_ProgressDownload', 'FTP_ProgressUpload', 'FTP_SetStatusCallback',
281
+ 'GDIPlus_ArrowCapCreate', 'GDIPlus_ArrowCapDispose',
282
+ 'GDIPlus_ArrowCapGetFillState', 'GDIPlus_ArrowCapGetHeight',
283
+ 'GDIPlus_ArrowCapGetMiddleInset', 'GDIPlus_ArrowCapGetWidth',
284
+ 'GDIPlus_ArrowCapSetFillState', 'GDIPlus_ArrowCapSetHeight',
285
+ 'GDIPlus_ArrowCapSetMiddleInset', 'GDIPlus_ArrowCapSetWidth',
286
+ 'GDIPlus_BitmapApplyEffect', 'GDIPlus_BitmapApplyEffectEx',
287
+ 'GDIPlus_BitmapCloneArea', 'GDIPlus_BitmapConvertFormat',
288
+ 'GDIPlus_BitmapCreateApplyEffect',
289
+ 'GDIPlus_BitmapCreateApplyEffectEx',
290
+ 'GDIPlus_BitmapCreateDIBFromBitmap', 'GDIPlus_BitmapCreateFromFile',
291
+ 'GDIPlus_BitmapCreateFromGraphics',
292
+ 'GDIPlus_BitmapCreateFromHBITMAP', 'GDIPlus_BitmapCreateFromHICON',
293
+ 'GDIPlus_BitmapCreateFromHICON32', 'GDIPlus_BitmapCreateFromMemory',
294
+ 'GDIPlus_BitmapCreateFromResource', 'GDIPlus_BitmapCreateFromScan0',
295
+ 'GDIPlus_BitmapCreateFromStream',
296
+ 'GDIPlus_BitmapCreateHBITMAPFromBitmap', 'GDIPlus_BitmapDispose',
297
+ 'GDIPlus_BitmapGetHistogram', 'GDIPlus_BitmapGetHistogramEx',
298
+ 'GDIPlus_BitmapGetHistogramSize', 'GDIPlus_BitmapGetPixel',
299
+ 'GDIPlus_BitmapLockBits', 'GDIPlus_BitmapSetPixel',
300
+ 'GDIPlus_BitmapUnlockBits', 'GDIPlus_BrushClone',
301
+ 'GDIPlus_BrushCreateSolid', 'GDIPlus_BrushDispose',
302
+ 'GDIPlus_BrushGetSolidColor', 'GDIPlus_BrushGetType',
303
+ 'GDIPlus_BrushSetSolidColor', 'GDIPlus_ColorMatrixCreate',
304
+ 'GDIPlus_ColorMatrixCreateGrayScale',
305
+ 'GDIPlus_ColorMatrixCreateNegative',
306
+ 'GDIPlus_ColorMatrixCreateSaturation',
307
+ 'GDIPlus_ColorMatrixCreateScale',
308
+ 'GDIPlus_ColorMatrixCreateTranslate', 'GDIPlus_CustomLineCapClone',
309
+ 'GDIPlus_CustomLineCapCreate', 'GDIPlus_CustomLineCapDispose',
310
+ 'GDIPlus_CustomLineCapGetStrokeCaps',
311
+ 'GDIPlus_CustomLineCapSetStrokeCaps', 'GDIPlus_Decoders',
312
+ 'GDIPlus_DecodersGetCount', 'GDIPlus_DecodersGetSize',
313
+ 'GDIPlus_DrawImageFX', 'GDIPlus_DrawImageFXEx',
314
+ 'GDIPlus_DrawImagePoints', 'GDIPlus_EffectCreate',
315
+ 'GDIPlus_EffectCreateBlur', 'GDIPlus_EffectCreateBrightnessContrast',
316
+ 'GDIPlus_EffectCreateColorBalance', 'GDIPlus_EffectCreateColorCurve',
317
+ 'GDIPlus_EffectCreateColorLUT', 'GDIPlus_EffectCreateColorMatrix',
318
+ 'GDIPlus_EffectCreateHueSaturationLightness',
319
+ 'GDIPlus_EffectCreateLevels', 'GDIPlus_EffectCreateRedEyeCorrection',
320
+ 'GDIPlus_EffectCreateSharpen', 'GDIPlus_EffectCreateTint',
321
+ 'GDIPlus_EffectDispose', 'GDIPlus_EffectGetParameters',
322
+ 'GDIPlus_EffectSetParameters', 'GDIPlus_Encoders',
323
+ 'GDIPlus_EncodersGetCLSID', 'GDIPlus_EncodersGetCount',
324
+ 'GDIPlus_EncodersGetParamList', 'GDIPlus_EncodersGetParamListSize',
325
+ 'GDIPlus_EncodersGetSize', 'GDIPlus_FontCreate',
326
+ 'GDIPlus_FontDispose', 'GDIPlus_FontFamilyCreate',
327
+ 'GDIPlus_FontFamilyCreateFromCollection',
328
+ 'GDIPlus_FontFamilyDispose', 'GDIPlus_FontFamilyGetCellAscent',
329
+ 'GDIPlus_FontFamilyGetCellDescent', 'GDIPlus_FontFamilyGetEmHeight',
330
+ 'GDIPlus_FontFamilyGetLineSpacing', 'GDIPlus_FontGetHeight',
331
+ 'GDIPlus_FontPrivateAddFont', 'GDIPlus_FontPrivateAddMemoryFont',
332
+ 'GDIPlus_FontPrivateCollectionDispose',
333
+ 'GDIPlus_FontPrivateCreateCollection', 'GDIPlus_GraphicsClear',
334
+ 'GDIPlus_GraphicsCreateFromHDC', 'GDIPlus_GraphicsCreateFromHWND',
335
+ 'GDIPlus_GraphicsDispose', 'GDIPlus_GraphicsDrawArc',
336
+ 'GDIPlus_GraphicsDrawBezier', 'GDIPlus_GraphicsDrawClosedCurve',
337
+ 'GDIPlus_GraphicsDrawClosedCurve2', 'GDIPlus_GraphicsDrawCurve',
338
+ 'GDIPlus_GraphicsDrawCurve2', 'GDIPlus_GraphicsDrawEllipse',
339
+ 'GDIPlus_GraphicsDrawImage', 'GDIPlus_GraphicsDrawImagePointsRect',
340
+ 'GDIPlus_GraphicsDrawImageRect', 'GDIPlus_GraphicsDrawImageRectRect',
341
+ 'GDIPlus_GraphicsDrawLine', 'GDIPlus_GraphicsDrawPath',
342
+ 'GDIPlus_GraphicsDrawPie', 'GDIPlus_GraphicsDrawPolygon',
343
+ 'GDIPlus_GraphicsDrawRect', 'GDIPlus_GraphicsDrawString',
344
+ 'GDIPlus_GraphicsDrawStringEx', 'GDIPlus_GraphicsFillClosedCurve',
345
+ 'GDIPlus_GraphicsFillClosedCurve2', 'GDIPlus_GraphicsFillEllipse',
346
+ 'GDIPlus_GraphicsFillPath', 'GDIPlus_GraphicsFillPie',
347
+ 'GDIPlus_GraphicsFillPolygon', 'GDIPlus_GraphicsFillRect',
348
+ 'GDIPlus_GraphicsFillRegion', 'GDIPlus_GraphicsGetCompositingMode',
349
+ 'GDIPlus_GraphicsGetCompositingQuality', 'GDIPlus_GraphicsGetDC',
350
+ 'GDIPlus_GraphicsGetInterpolationMode',
351
+ 'GDIPlus_GraphicsGetSmoothingMode', 'GDIPlus_GraphicsGetTransform',
352
+ 'GDIPlus_GraphicsMeasureCharacterRanges',
353
+ 'GDIPlus_GraphicsMeasureString', 'GDIPlus_GraphicsReleaseDC',
354
+ 'GDIPlus_GraphicsResetClip', 'GDIPlus_GraphicsResetTransform',
355
+ 'GDIPlus_GraphicsRestore', 'GDIPlus_GraphicsRotateTransform',
356
+ 'GDIPlus_GraphicsSave', 'GDIPlus_GraphicsScaleTransform',
357
+ 'GDIPlus_GraphicsSetClipPath', 'GDIPlus_GraphicsSetClipRect',
358
+ 'GDIPlus_GraphicsSetClipRegion',
359
+ 'GDIPlus_GraphicsSetCompositingMode',
360
+ 'GDIPlus_GraphicsSetCompositingQuality',
361
+ 'GDIPlus_GraphicsSetInterpolationMode',
362
+ 'GDIPlus_GraphicsSetPixelOffsetMode',
363
+ 'GDIPlus_GraphicsSetSmoothingMode',
364
+ 'GDIPlus_GraphicsSetTextRenderingHint',
365
+ 'GDIPlus_GraphicsSetTransform', 'GDIPlus_GraphicsTransformPoints',
366
+ 'GDIPlus_GraphicsTranslateTransform', 'GDIPlus_HatchBrushCreate',
367
+ 'GDIPlus_HICONCreateFromBitmap', 'GDIPlus_ImageAttributesCreate',
368
+ 'GDIPlus_ImageAttributesDispose',
369
+ 'GDIPlus_ImageAttributesSetColorKeys',
370
+ 'GDIPlus_ImageAttributesSetColorMatrix', 'GDIPlus_ImageDispose',
371
+ 'GDIPlus_ImageGetDimension', 'GDIPlus_ImageGetFlags',
372
+ 'GDIPlus_ImageGetGraphicsContext', 'GDIPlus_ImageGetHeight',
373
+ 'GDIPlus_ImageGetHorizontalResolution',
374
+ 'GDIPlus_ImageGetPixelFormat', 'GDIPlus_ImageGetRawFormat',
375
+ 'GDIPlus_ImageGetThumbnail', 'GDIPlus_ImageGetType',
376
+ 'GDIPlus_ImageGetVerticalResolution', 'GDIPlus_ImageGetWidth',
377
+ 'GDIPlus_ImageLoadFromFile', 'GDIPlus_ImageLoadFromStream',
378
+ 'GDIPlus_ImageResize', 'GDIPlus_ImageRotateFlip',
379
+ 'GDIPlus_ImageSaveToFile', 'GDIPlus_ImageSaveToFileEx',
380
+ 'GDIPlus_ImageSaveToStream', 'GDIPlus_ImageScale',
381
+ 'GDIPlus_LineBrushCreate', 'GDIPlus_LineBrushCreateFromRect',
382
+ 'GDIPlus_LineBrushCreateFromRectWithAngle',
383
+ 'GDIPlus_LineBrushGetColors', 'GDIPlus_LineBrushGetRect',
384
+ 'GDIPlus_LineBrushMultiplyTransform',
385
+ 'GDIPlus_LineBrushResetTransform', 'GDIPlus_LineBrushSetBlend',
386
+ 'GDIPlus_LineBrushSetColors', 'GDIPlus_LineBrushSetGammaCorrection',
387
+ 'GDIPlus_LineBrushSetLinearBlend', 'GDIPlus_LineBrushSetPresetBlend',
388
+ 'GDIPlus_LineBrushSetSigmaBlend', 'GDIPlus_LineBrushSetTransform',
389
+ 'GDIPlus_MatrixClone', 'GDIPlus_MatrixCreate',
390
+ 'GDIPlus_MatrixDispose', 'GDIPlus_MatrixGetElements',
391
+ 'GDIPlus_MatrixInvert', 'GDIPlus_MatrixMultiply',
392
+ 'GDIPlus_MatrixRotate', 'GDIPlus_MatrixScale',
393
+ 'GDIPlus_MatrixSetElements', 'GDIPlus_MatrixShear',
394
+ 'GDIPlus_MatrixTransformPoints', 'GDIPlus_MatrixTranslate',
395
+ 'GDIPlus_PaletteInitialize', 'GDIPlus_ParamAdd', 'GDIPlus_ParamInit',
396
+ 'GDIPlus_ParamSize', 'GDIPlus_PathAddArc', 'GDIPlus_PathAddBezier',
397
+ 'GDIPlus_PathAddClosedCurve', 'GDIPlus_PathAddClosedCurve2',
398
+ 'GDIPlus_PathAddCurve', 'GDIPlus_PathAddCurve2',
399
+ 'GDIPlus_PathAddCurve3', 'GDIPlus_PathAddEllipse',
400
+ 'GDIPlus_PathAddLine', 'GDIPlus_PathAddLine2', 'GDIPlus_PathAddPath',
401
+ 'GDIPlus_PathAddPie', 'GDIPlus_PathAddPolygon',
402
+ 'GDIPlus_PathAddRectangle', 'GDIPlus_PathAddString',
403
+ 'GDIPlus_PathBrushCreate', 'GDIPlus_PathBrushCreateFromPath',
404
+ 'GDIPlus_PathBrushGetCenterPoint', 'GDIPlus_PathBrushGetFocusScales',
405
+ 'GDIPlus_PathBrushGetPointCount', 'GDIPlus_PathBrushGetRect',
406
+ 'GDIPlus_PathBrushGetWrapMode', 'GDIPlus_PathBrushMultiplyTransform',
407
+ 'GDIPlus_PathBrushResetTransform', 'GDIPlus_PathBrushSetBlend',
408
+ 'GDIPlus_PathBrushSetCenterColor', 'GDIPlus_PathBrushSetCenterPoint',
409
+ 'GDIPlus_PathBrushSetFocusScales',
410
+ 'GDIPlus_PathBrushSetGammaCorrection',
411
+ 'GDIPlus_PathBrushSetLinearBlend', 'GDIPlus_PathBrushSetPresetBlend',
412
+ 'GDIPlus_PathBrushSetSigmaBlend',
413
+ 'GDIPlus_PathBrushSetSurroundColor',
414
+ 'GDIPlus_PathBrushSetSurroundColorsWithCount',
415
+ 'GDIPlus_PathBrushSetTransform', 'GDIPlus_PathBrushSetWrapMode',
416
+ 'GDIPlus_PathClone', 'GDIPlus_PathCloseFigure', 'GDIPlus_PathCreate',
417
+ 'GDIPlus_PathCreate2', 'GDIPlus_PathDispose', 'GDIPlus_PathFlatten',
418
+ 'GDIPlus_PathGetData', 'GDIPlus_PathGetFillMode',
419
+ 'GDIPlus_PathGetLastPoint', 'GDIPlus_PathGetPointCount',
420
+ 'GDIPlus_PathGetPoints', 'GDIPlus_PathGetWorldBounds',
421
+ 'GDIPlus_PathIsOutlineVisiblePoint', 'GDIPlus_PathIsVisiblePoint',
422
+ 'GDIPlus_PathIterCreate', 'GDIPlus_PathIterDispose',
423
+ 'GDIPlus_PathIterGetSubpathCount', 'GDIPlus_PathIterNextMarkerPath',
424
+ 'GDIPlus_PathIterNextSubpathPath', 'GDIPlus_PathIterRewind',
425
+ 'GDIPlus_PathReset', 'GDIPlus_PathReverse', 'GDIPlus_PathSetFillMode',
426
+ 'GDIPlus_PathSetMarker', 'GDIPlus_PathStartFigure',
427
+ 'GDIPlus_PathTransform', 'GDIPlus_PathWarp', 'GDIPlus_PathWiden',
428
+ 'GDIPlus_PathWindingModeOutline', 'GDIPlus_PenCreate',
429
+ 'GDIPlus_PenCreate2', 'GDIPlus_PenDispose', 'GDIPlus_PenGetAlignment',
430
+ 'GDIPlus_PenGetColor', 'GDIPlus_PenGetCustomEndCap',
431
+ 'GDIPlus_PenGetDashCap', 'GDIPlus_PenGetDashStyle',
432
+ 'GDIPlus_PenGetEndCap', 'GDIPlus_PenGetMiterLimit',
433
+ 'GDIPlus_PenGetWidth', 'GDIPlus_PenSetAlignment',
434
+ 'GDIPlus_PenSetColor', 'GDIPlus_PenSetCustomEndCap',
435
+ 'GDIPlus_PenSetDashCap', 'GDIPlus_PenSetDashStyle',
436
+ 'GDIPlus_PenSetEndCap', 'GDIPlus_PenSetLineCap',
437
+ 'GDIPlus_PenSetLineJoin', 'GDIPlus_PenSetMiterLimit',
438
+ 'GDIPlus_PenSetStartCap', 'GDIPlus_PenSetWidth',
439
+ 'GDIPlus_RectFCreate', 'GDIPlus_RegionClone',
440
+ 'GDIPlus_RegionCombinePath', 'GDIPlus_RegionCombineRect',
441
+ 'GDIPlus_RegionCombineRegion', 'GDIPlus_RegionCreate',
442
+ 'GDIPlus_RegionCreateFromPath', 'GDIPlus_RegionCreateFromRect',
443
+ 'GDIPlus_RegionDispose', 'GDIPlus_RegionGetBounds',
444
+ 'GDIPlus_RegionGetHRgn', 'GDIPlus_RegionTransform',
445
+ 'GDIPlus_RegionTranslate', 'GDIPlus_Shutdown', 'GDIPlus_Startup',
446
+ 'GDIPlus_StringFormatCreate', 'GDIPlus_StringFormatDispose',
447
+ 'GDIPlus_StringFormatGetMeasurableCharacterRangeCount',
448
+ 'GDIPlus_StringFormatSetAlign', 'GDIPlus_StringFormatSetLineAlign',
449
+ 'GDIPlus_StringFormatSetMeasurableCharacterRanges',
450
+ 'GDIPlus_TextureCreate', 'GDIPlus_TextureCreate2',
451
+ 'GDIPlus_TextureCreateIA', 'GetIP', 'GUICtrlAVI_Close',
452
+ 'GUICtrlAVI_Create', 'GUICtrlAVI_Destroy', 'GUICtrlAVI_IsPlaying',
453
+ 'GUICtrlAVI_Open', 'GUICtrlAVI_OpenEx', 'GUICtrlAVI_Play',
454
+ 'GUICtrlAVI_Seek', 'GUICtrlAVI_Show', 'GUICtrlAVI_Stop',
455
+ 'GUICtrlButton_Click', 'GUICtrlButton_Create',
456
+ 'GUICtrlButton_Destroy', 'GUICtrlButton_Enable',
457
+ 'GUICtrlButton_GetCheck', 'GUICtrlButton_GetFocus',
458
+ 'GUICtrlButton_GetIdealSize', 'GUICtrlButton_GetImage',
459
+ 'GUICtrlButton_GetImageList', 'GUICtrlButton_GetNote',
460
+ 'GUICtrlButton_GetNoteLength', 'GUICtrlButton_GetSplitInfo',
461
+ 'GUICtrlButton_GetState', 'GUICtrlButton_GetText',
462
+ 'GUICtrlButton_GetTextMargin', 'GUICtrlButton_SetCheck',
463
+ 'GUICtrlButton_SetDontClick', 'GUICtrlButton_SetFocus',
464
+ 'GUICtrlButton_SetImage', 'GUICtrlButton_SetImageList',
465
+ 'GUICtrlButton_SetNote', 'GUICtrlButton_SetShield',
466
+ 'GUICtrlButton_SetSize', 'GUICtrlButton_SetSplitInfo',
467
+ 'GUICtrlButton_SetState', 'GUICtrlButton_SetStyle',
468
+ 'GUICtrlButton_SetText', 'GUICtrlButton_SetTextMargin',
469
+ 'GUICtrlButton_Show', 'GUICtrlComboBoxEx_AddDir',
470
+ 'GUICtrlComboBoxEx_AddString', 'GUICtrlComboBoxEx_BeginUpdate',
471
+ 'GUICtrlComboBoxEx_Create', 'GUICtrlComboBoxEx_CreateSolidBitMap',
472
+ 'GUICtrlComboBoxEx_DeleteString', 'GUICtrlComboBoxEx_Destroy',
473
+ 'GUICtrlComboBoxEx_EndUpdate', 'GUICtrlComboBoxEx_FindStringExact',
474
+ 'GUICtrlComboBoxEx_GetComboBoxInfo',
475
+ 'GUICtrlComboBoxEx_GetComboControl', 'GUICtrlComboBoxEx_GetCount',
476
+ 'GUICtrlComboBoxEx_GetCurSel',
477
+ 'GUICtrlComboBoxEx_GetDroppedControlRect',
478
+ 'GUICtrlComboBoxEx_GetDroppedControlRectEx',
479
+ 'GUICtrlComboBoxEx_GetDroppedState',
480
+ 'GUICtrlComboBoxEx_GetDroppedWidth',
481
+ 'GUICtrlComboBoxEx_GetEditControl', 'GUICtrlComboBoxEx_GetEditSel',
482
+ 'GUICtrlComboBoxEx_GetEditText',
483
+ 'GUICtrlComboBoxEx_GetExtendedStyle',
484
+ 'GUICtrlComboBoxEx_GetExtendedUI', 'GUICtrlComboBoxEx_GetImageList',
485
+ 'GUICtrlComboBoxEx_GetItem', 'GUICtrlComboBoxEx_GetItemEx',
486
+ 'GUICtrlComboBoxEx_GetItemHeight', 'GUICtrlComboBoxEx_GetItemImage',
487
+ 'GUICtrlComboBoxEx_GetItemIndent',
488
+ 'GUICtrlComboBoxEx_GetItemOverlayImage',
489
+ 'GUICtrlComboBoxEx_GetItemParam',
490
+ 'GUICtrlComboBoxEx_GetItemSelectedImage',
491
+ 'GUICtrlComboBoxEx_GetItemText', 'GUICtrlComboBoxEx_GetItemTextLen',
492
+ 'GUICtrlComboBoxEx_GetList', 'GUICtrlComboBoxEx_GetListArray',
493
+ 'GUICtrlComboBoxEx_GetLocale', 'GUICtrlComboBoxEx_GetLocaleCountry',
494
+ 'GUICtrlComboBoxEx_GetLocaleLang',
495
+ 'GUICtrlComboBoxEx_GetLocalePrimLang',
496
+ 'GUICtrlComboBoxEx_GetLocaleSubLang',
497
+ 'GUICtrlComboBoxEx_GetMinVisible', 'GUICtrlComboBoxEx_GetTopIndex',
498
+ 'GUICtrlComboBoxEx_GetUnicode', 'GUICtrlComboBoxEx_InitStorage',
499
+ 'GUICtrlComboBoxEx_InsertString', 'GUICtrlComboBoxEx_LimitText',
500
+ 'GUICtrlComboBoxEx_ReplaceEditSel', 'GUICtrlComboBoxEx_ResetContent',
501
+ 'GUICtrlComboBoxEx_SetCurSel', 'GUICtrlComboBoxEx_SetDroppedWidth',
502
+ 'GUICtrlComboBoxEx_SetEditSel', 'GUICtrlComboBoxEx_SetEditText',
503
+ 'GUICtrlComboBoxEx_SetExtendedStyle',
504
+ 'GUICtrlComboBoxEx_SetExtendedUI', 'GUICtrlComboBoxEx_SetImageList',
505
+ 'GUICtrlComboBoxEx_SetItem', 'GUICtrlComboBoxEx_SetItemEx',
506
+ 'GUICtrlComboBoxEx_SetItemHeight', 'GUICtrlComboBoxEx_SetItemImage',
507
+ 'GUICtrlComboBoxEx_SetItemIndent',
508
+ 'GUICtrlComboBoxEx_SetItemOverlayImage',
509
+ 'GUICtrlComboBoxEx_SetItemParam',
510
+ 'GUICtrlComboBoxEx_SetItemSelectedImage',
511
+ 'GUICtrlComboBoxEx_SetMinVisible', 'GUICtrlComboBoxEx_SetTopIndex',
512
+ 'GUICtrlComboBoxEx_SetUnicode', 'GUICtrlComboBoxEx_ShowDropDown',
513
+ 'GUICtrlComboBox_AddDir', 'GUICtrlComboBox_AddString',
514
+ 'GUICtrlComboBox_AutoComplete', 'GUICtrlComboBox_BeginUpdate',
515
+ 'GUICtrlComboBox_Create', 'GUICtrlComboBox_DeleteString',
516
+ 'GUICtrlComboBox_Destroy', 'GUICtrlComboBox_EndUpdate',
517
+ 'GUICtrlComboBox_FindString', 'GUICtrlComboBox_FindStringExact',
518
+ 'GUICtrlComboBox_GetComboBoxInfo', 'GUICtrlComboBox_GetCount',
519
+ 'GUICtrlComboBox_GetCueBanner', 'GUICtrlComboBox_GetCurSel',
520
+ 'GUICtrlComboBox_GetDroppedControlRect',
521
+ 'GUICtrlComboBox_GetDroppedControlRectEx',
522
+ 'GUICtrlComboBox_GetDroppedState', 'GUICtrlComboBox_GetDroppedWidth',
523
+ 'GUICtrlComboBox_GetEditSel', 'GUICtrlComboBox_GetEditText',
524
+ 'GUICtrlComboBox_GetExtendedUI',
525
+ 'GUICtrlComboBox_GetHorizontalExtent',
526
+ 'GUICtrlComboBox_GetItemHeight', 'GUICtrlComboBox_GetLBText',
527
+ 'GUICtrlComboBox_GetLBTextLen', 'GUICtrlComboBox_GetList',
528
+ 'GUICtrlComboBox_GetListArray', 'GUICtrlComboBox_GetLocale',
529
+ 'GUICtrlComboBox_GetLocaleCountry', 'GUICtrlComboBox_GetLocaleLang',
530
+ 'GUICtrlComboBox_GetLocalePrimLang',
531
+ 'GUICtrlComboBox_GetLocaleSubLang', 'GUICtrlComboBox_GetMinVisible',
532
+ 'GUICtrlComboBox_GetTopIndex', 'GUICtrlComboBox_InitStorage',
533
+ 'GUICtrlComboBox_InsertString', 'GUICtrlComboBox_LimitText',
534
+ 'GUICtrlComboBox_ReplaceEditSel', 'GUICtrlComboBox_ResetContent',
535
+ 'GUICtrlComboBox_SelectString', 'GUICtrlComboBox_SetCueBanner',
536
+ 'GUICtrlComboBox_SetCurSel', 'GUICtrlComboBox_SetDroppedWidth',
537
+ 'GUICtrlComboBox_SetEditSel', 'GUICtrlComboBox_SetEditText',
538
+ 'GUICtrlComboBox_SetExtendedUI',
539
+ 'GUICtrlComboBox_SetHorizontalExtent',
540
+ 'GUICtrlComboBox_SetItemHeight', 'GUICtrlComboBox_SetMinVisible',
541
+ 'GUICtrlComboBox_SetTopIndex', 'GUICtrlComboBox_ShowDropDown',
542
+ 'GUICtrlDTP_Create', 'GUICtrlDTP_Destroy', 'GUICtrlDTP_GetMCColor',
543
+ 'GUICtrlDTP_GetMCFont', 'GUICtrlDTP_GetMonthCal',
544
+ 'GUICtrlDTP_GetRange', 'GUICtrlDTP_GetRangeEx',
545
+ 'GUICtrlDTP_GetSystemTime', 'GUICtrlDTP_GetSystemTimeEx',
546
+ 'GUICtrlDTP_SetFormat', 'GUICtrlDTP_SetMCColor',
547
+ 'GUICtrlDTP_SetMCFont', 'GUICtrlDTP_SetRange',
548
+ 'GUICtrlDTP_SetRangeEx', 'GUICtrlDTP_SetSystemTime',
549
+ 'GUICtrlDTP_SetSystemTimeEx', 'GUICtrlEdit_AppendText',
550
+ 'GUICtrlEdit_BeginUpdate', 'GUICtrlEdit_CanUndo',
551
+ 'GUICtrlEdit_CharFromPos', 'GUICtrlEdit_Create',
552
+ 'GUICtrlEdit_Destroy', 'GUICtrlEdit_EmptyUndoBuffer',
553
+ 'GUICtrlEdit_EndUpdate', 'GUICtrlEdit_Find', 'GUICtrlEdit_FmtLines',
554
+ 'GUICtrlEdit_GetCueBanner', 'GUICtrlEdit_GetFirstVisibleLine',
555
+ 'GUICtrlEdit_GetLimitText', 'GUICtrlEdit_GetLine',
556
+ 'GUICtrlEdit_GetLineCount', 'GUICtrlEdit_GetMargins',
557
+ 'GUICtrlEdit_GetModify', 'GUICtrlEdit_GetPasswordChar',
558
+ 'GUICtrlEdit_GetRECT', 'GUICtrlEdit_GetRECTEx', 'GUICtrlEdit_GetSel',
559
+ 'GUICtrlEdit_GetText', 'GUICtrlEdit_GetTextLen',
560
+ 'GUICtrlEdit_HideBalloonTip', 'GUICtrlEdit_InsertText',
561
+ 'GUICtrlEdit_LineFromChar', 'GUICtrlEdit_LineIndex',
562
+ 'GUICtrlEdit_LineLength', 'GUICtrlEdit_LineScroll',
563
+ 'GUICtrlEdit_PosFromChar', 'GUICtrlEdit_ReplaceSel',
564
+ 'GUICtrlEdit_Scroll', 'GUICtrlEdit_SetCueBanner',
565
+ 'GUICtrlEdit_SetLimitText', 'GUICtrlEdit_SetMargins',
566
+ 'GUICtrlEdit_SetModify', 'GUICtrlEdit_SetPasswordChar',
567
+ 'GUICtrlEdit_SetReadOnly', 'GUICtrlEdit_SetRECT',
568
+ 'GUICtrlEdit_SetRECTEx', 'GUICtrlEdit_SetRECTNP',
569
+ 'GUICtrlEdit_SetRectNPEx', 'GUICtrlEdit_SetSel',
570
+ 'GUICtrlEdit_SetTabStops', 'GUICtrlEdit_SetText',
571
+ 'GUICtrlEdit_ShowBalloonTip', 'GUICtrlEdit_Undo',
572
+ 'GUICtrlHeader_AddItem', 'GUICtrlHeader_ClearFilter',
573
+ 'GUICtrlHeader_ClearFilterAll', 'GUICtrlHeader_Create',
574
+ 'GUICtrlHeader_CreateDragImage', 'GUICtrlHeader_DeleteItem',
575
+ 'GUICtrlHeader_Destroy', 'GUICtrlHeader_EditFilter',
576
+ 'GUICtrlHeader_GetBitmapMargin', 'GUICtrlHeader_GetImageList',
577
+ 'GUICtrlHeader_GetItem', 'GUICtrlHeader_GetItemAlign',
578
+ 'GUICtrlHeader_GetItemBitmap', 'GUICtrlHeader_GetItemCount',
579
+ 'GUICtrlHeader_GetItemDisplay', 'GUICtrlHeader_GetItemFlags',
580
+ 'GUICtrlHeader_GetItemFormat', 'GUICtrlHeader_GetItemImage',
581
+ 'GUICtrlHeader_GetItemOrder', 'GUICtrlHeader_GetItemParam',
582
+ 'GUICtrlHeader_GetItemRect', 'GUICtrlHeader_GetItemRectEx',
583
+ 'GUICtrlHeader_GetItemText', 'GUICtrlHeader_GetItemWidth',
584
+ 'GUICtrlHeader_GetOrderArray', 'GUICtrlHeader_GetUnicodeFormat',
585
+ 'GUICtrlHeader_HitTest', 'GUICtrlHeader_InsertItem',
586
+ 'GUICtrlHeader_Layout', 'GUICtrlHeader_OrderToIndex',
587
+ 'GUICtrlHeader_SetBitmapMargin',
588
+ 'GUICtrlHeader_SetFilterChangeTimeout',
589
+ 'GUICtrlHeader_SetHotDivider', 'GUICtrlHeader_SetImageList',
590
+ 'GUICtrlHeader_SetItem', 'GUICtrlHeader_SetItemAlign',
591
+ 'GUICtrlHeader_SetItemBitmap', 'GUICtrlHeader_SetItemDisplay',
592
+ 'GUICtrlHeader_SetItemFlags', 'GUICtrlHeader_SetItemFormat',
593
+ 'GUICtrlHeader_SetItemImage', 'GUICtrlHeader_SetItemOrder',
594
+ 'GUICtrlHeader_SetItemParam', 'GUICtrlHeader_SetItemText',
595
+ 'GUICtrlHeader_SetItemWidth', 'GUICtrlHeader_SetOrderArray',
596
+ 'GUICtrlHeader_SetUnicodeFormat', 'GUICtrlIpAddress_ClearAddress',
597
+ 'GUICtrlIpAddress_Create', 'GUICtrlIpAddress_Destroy',
598
+ 'GUICtrlIpAddress_Get', 'GUICtrlIpAddress_GetArray',
599
+ 'GUICtrlIpAddress_GetEx', 'GUICtrlIpAddress_IsBlank',
600
+ 'GUICtrlIpAddress_Set', 'GUICtrlIpAddress_SetArray',
601
+ 'GUICtrlIpAddress_SetEx', 'GUICtrlIpAddress_SetFocus',
602
+ 'GUICtrlIpAddress_SetFont', 'GUICtrlIpAddress_SetRange',
603
+ 'GUICtrlIpAddress_ShowHide', 'GUICtrlListBox_AddFile',
604
+ 'GUICtrlListBox_AddString', 'GUICtrlListBox_BeginUpdate',
605
+ 'GUICtrlListBox_ClickItem', 'GUICtrlListBox_Create',
606
+ 'GUICtrlListBox_DeleteString', 'GUICtrlListBox_Destroy',
607
+ 'GUICtrlListBox_Dir', 'GUICtrlListBox_EndUpdate',
608
+ 'GUICtrlListBox_FindInText', 'GUICtrlListBox_FindString',
609
+ 'GUICtrlListBox_GetAnchorIndex', 'GUICtrlListBox_GetCaretIndex',
610
+ 'GUICtrlListBox_GetCount', 'GUICtrlListBox_GetCurSel',
611
+ 'GUICtrlListBox_GetHorizontalExtent', 'GUICtrlListBox_GetItemData',
612
+ 'GUICtrlListBox_GetItemHeight', 'GUICtrlListBox_GetItemRect',
613
+ 'GUICtrlListBox_GetItemRectEx', 'GUICtrlListBox_GetListBoxInfo',
614
+ 'GUICtrlListBox_GetLocale', 'GUICtrlListBox_GetLocaleCountry',
615
+ 'GUICtrlListBox_GetLocaleLang', 'GUICtrlListBox_GetLocalePrimLang',
616
+ 'GUICtrlListBox_GetLocaleSubLang', 'GUICtrlListBox_GetSel',
617
+ 'GUICtrlListBox_GetSelCount', 'GUICtrlListBox_GetSelItems',
618
+ 'GUICtrlListBox_GetSelItemsText', 'GUICtrlListBox_GetText',
619
+ 'GUICtrlListBox_GetTextLen', 'GUICtrlListBox_GetTopIndex',
620
+ 'GUICtrlListBox_InitStorage', 'GUICtrlListBox_InsertString',
621
+ 'GUICtrlListBox_ItemFromPoint', 'GUICtrlListBox_ReplaceString',
622
+ 'GUICtrlListBox_ResetContent', 'GUICtrlListBox_SelectString',
623
+ 'GUICtrlListBox_SelItemRange', 'GUICtrlListBox_SelItemRangeEx',
624
+ 'GUICtrlListBox_SetAnchorIndex', 'GUICtrlListBox_SetCaretIndex',
625
+ 'GUICtrlListBox_SetColumnWidth', 'GUICtrlListBox_SetCurSel',
626
+ 'GUICtrlListBox_SetHorizontalExtent', 'GUICtrlListBox_SetItemData',
627
+ 'GUICtrlListBox_SetItemHeight', 'GUICtrlListBox_SetLocale',
628
+ 'GUICtrlListBox_SetSel', 'GUICtrlListBox_SetTabStops',
629
+ 'GUICtrlListBox_SetTopIndex', 'GUICtrlListBox_Sort',
630
+ 'GUICtrlListBox_SwapString', 'GUICtrlListBox_UpdateHScroll',
631
+ 'GUICtrlListView_AddArray', 'GUICtrlListView_AddColumn',
632
+ 'GUICtrlListView_AddItem', 'GUICtrlListView_AddSubItem',
633
+ 'GUICtrlListView_ApproximateViewHeight',
634
+ 'GUICtrlListView_ApproximateViewRect',
635
+ 'GUICtrlListView_ApproximateViewWidth', 'GUICtrlListView_Arrange',
636
+ 'GUICtrlListView_BeginUpdate', 'GUICtrlListView_CancelEditLabel',
637
+ 'GUICtrlListView_ClickItem', 'GUICtrlListView_CopyItems',
638
+ 'GUICtrlListView_Create', 'GUICtrlListView_CreateDragImage',
639
+ 'GUICtrlListView_CreateSolidBitMap',
640
+ 'GUICtrlListView_DeleteAllItems', 'GUICtrlListView_DeleteColumn',
641
+ 'GUICtrlListView_DeleteItem', 'GUICtrlListView_DeleteItemsSelected',
642
+ 'GUICtrlListView_Destroy', 'GUICtrlListView_DrawDragImage',
643
+ 'GUICtrlListView_EditLabel', 'GUICtrlListView_EnableGroupView',
644
+ 'GUICtrlListView_EndUpdate', 'GUICtrlListView_EnsureVisible',
645
+ 'GUICtrlListView_FindInText', 'GUICtrlListView_FindItem',
646
+ 'GUICtrlListView_FindNearest', 'GUICtrlListView_FindParam',
647
+ 'GUICtrlListView_FindText', 'GUICtrlListView_GetBkColor',
648
+ 'GUICtrlListView_GetBkImage', 'GUICtrlListView_GetCallbackMask',
649
+ 'GUICtrlListView_GetColumn', 'GUICtrlListView_GetColumnCount',
650
+ 'GUICtrlListView_GetColumnOrder',
651
+ 'GUICtrlListView_GetColumnOrderArray',
652
+ 'GUICtrlListView_GetColumnWidth', 'GUICtrlListView_GetCounterPage',
653
+ 'GUICtrlListView_GetEditControl',
654
+ 'GUICtrlListView_GetExtendedListViewStyle',
655
+ 'GUICtrlListView_GetFocusedGroup', 'GUICtrlListView_GetGroupCount',
656
+ 'GUICtrlListView_GetGroupInfo',
657
+ 'GUICtrlListView_GetGroupInfoByIndex',
658
+ 'GUICtrlListView_GetGroupRect',
659
+ 'GUICtrlListView_GetGroupViewEnabled', 'GUICtrlListView_GetHeader',
660
+ 'GUICtrlListView_GetHotCursor', 'GUICtrlListView_GetHotItem',
661
+ 'GUICtrlListView_GetHoverTime', 'GUICtrlListView_GetImageList',
662
+ 'GUICtrlListView_GetISearchString', 'GUICtrlListView_GetItem',
663
+ 'GUICtrlListView_GetItemChecked', 'GUICtrlListView_GetItemCount',
664
+ 'GUICtrlListView_GetItemCut', 'GUICtrlListView_GetItemDropHilited',
665
+ 'GUICtrlListView_GetItemEx', 'GUICtrlListView_GetItemFocused',
666
+ 'GUICtrlListView_GetItemGroupID', 'GUICtrlListView_GetItemImage',
667
+ 'GUICtrlListView_GetItemIndent', 'GUICtrlListView_GetItemParam',
668
+ 'GUICtrlListView_GetItemPosition',
669
+ 'GUICtrlListView_GetItemPositionX',
670
+ 'GUICtrlListView_GetItemPositionY', 'GUICtrlListView_GetItemRect',
671
+ 'GUICtrlListView_GetItemRectEx', 'GUICtrlListView_GetItemSelected',
672
+ 'GUICtrlListView_GetItemSpacing', 'GUICtrlListView_GetItemSpacingX',
673
+ 'GUICtrlListView_GetItemSpacingY', 'GUICtrlListView_GetItemState',
674
+ 'GUICtrlListView_GetItemStateImage', 'GUICtrlListView_GetItemText',
675
+ 'GUICtrlListView_GetItemTextArray',
676
+ 'GUICtrlListView_GetItemTextString', 'GUICtrlListView_GetNextItem',
677
+ 'GUICtrlListView_GetNumberOfWorkAreas', 'GUICtrlListView_GetOrigin',
678
+ 'GUICtrlListView_GetOriginX', 'GUICtrlListView_GetOriginY',
679
+ 'GUICtrlListView_GetOutlineColor',
680
+ 'GUICtrlListView_GetSelectedColumn',
681
+ 'GUICtrlListView_GetSelectedCount',
682
+ 'GUICtrlListView_GetSelectedIndices',
683
+ 'GUICtrlListView_GetSelectionMark', 'GUICtrlListView_GetStringWidth',
684
+ 'GUICtrlListView_GetSubItemRect', 'GUICtrlListView_GetTextBkColor',
685
+ 'GUICtrlListView_GetTextColor', 'GUICtrlListView_GetToolTips',
686
+ 'GUICtrlListView_GetTopIndex', 'GUICtrlListView_GetUnicodeFormat',
687
+ 'GUICtrlListView_GetView', 'GUICtrlListView_GetViewDetails',
688
+ 'GUICtrlListView_GetViewLarge', 'GUICtrlListView_GetViewList',
689
+ 'GUICtrlListView_GetViewRect', 'GUICtrlListView_GetViewSmall',
690
+ 'GUICtrlListView_GetViewTile', 'GUICtrlListView_HideColumn',
691
+ 'GUICtrlListView_HitTest', 'GUICtrlListView_InsertColumn',
692
+ 'GUICtrlListView_InsertGroup', 'GUICtrlListView_InsertItem',
693
+ 'GUICtrlListView_JustifyColumn', 'GUICtrlListView_MapIDToIndex',
694
+ 'GUICtrlListView_MapIndexToID', 'GUICtrlListView_RedrawItems',
695
+ 'GUICtrlListView_RegisterSortCallBack',
696
+ 'GUICtrlListView_RemoveAllGroups', 'GUICtrlListView_RemoveGroup',
697
+ 'GUICtrlListView_Scroll', 'GUICtrlListView_SetBkColor',
698
+ 'GUICtrlListView_SetBkImage', 'GUICtrlListView_SetCallBackMask',
699
+ 'GUICtrlListView_SetColumn', 'GUICtrlListView_SetColumnOrder',
700
+ 'GUICtrlListView_SetColumnOrderArray',
701
+ 'GUICtrlListView_SetColumnWidth',
702
+ 'GUICtrlListView_SetExtendedListViewStyle',
703
+ 'GUICtrlListView_SetGroupInfo', 'GUICtrlListView_SetHotItem',
704
+ 'GUICtrlListView_SetHoverTime', 'GUICtrlListView_SetIconSpacing',
705
+ 'GUICtrlListView_SetImageList', 'GUICtrlListView_SetItem',
706
+ 'GUICtrlListView_SetItemChecked', 'GUICtrlListView_SetItemCount',
707
+ 'GUICtrlListView_SetItemCut', 'GUICtrlListView_SetItemDropHilited',
708
+ 'GUICtrlListView_SetItemEx', 'GUICtrlListView_SetItemFocused',
709
+ 'GUICtrlListView_SetItemGroupID', 'GUICtrlListView_SetItemImage',
710
+ 'GUICtrlListView_SetItemIndent', 'GUICtrlListView_SetItemParam',
711
+ 'GUICtrlListView_SetItemPosition',
712
+ 'GUICtrlListView_SetItemPosition32',
713
+ 'GUICtrlListView_SetItemSelected', 'GUICtrlListView_SetItemState',
714
+ 'GUICtrlListView_SetItemStateImage', 'GUICtrlListView_SetItemText',
715
+ 'GUICtrlListView_SetOutlineColor',
716
+ 'GUICtrlListView_SetSelectedColumn',
717
+ 'GUICtrlListView_SetSelectionMark', 'GUICtrlListView_SetTextBkColor',
718
+ 'GUICtrlListView_SetTextColor', 'GUICtrlListView_SetToolTips',
719
+ 'GUICtrlListView_SetUnicodeFormat', 'GUICtrlListView_SetView',
720
+ 'GUICtrlListView_SetWorkAreas', 'GUICtrlListView_SimpleSort',
721
+ 'GUICtrlListView_SortItems', 'GUICtrlListView_SubItemHitTest',
722
+ 'GUICtrlListView_UnRegisterSortCallBack', 'GUICtrlMenu_AddMenuItem',
723
+ 'GUICtrlMenu_AppendMenu', 'GUICtrlMenu_CalculatePopupWindowPosition',
724
+ 'GUICtrlMenu_CheckMenuItem', 'GUICtrlMenu_CheckRadioItem',
725
+ 'GUICtrlMenu_CreateMenu', 'GUICtrlMenu_CreatePopup',
726
+ 'GUICtrlMenu_DeleteMenu', 'GUICtrlMenu_DestroyMenu',
727
+ 'GUICtrlMenu_DrawMenuBar', 'GUICtrlMenu_EnableMenuItem',
728
+ 'GUICtrlMenu_FindItem', 'GUICtrlMenu_FindParent',
729
+ 'GUICtrlMenu_GetItemBmp', 'GUICtrlMenu_GetItemBmpChecked',
730
+ 'GUICtrlMenu_GetItemBmpUnchecked', 'GUICtrlMenu_GetItemChecked',
731
+ 'GUICtrlMenu_GetItemCount', 'GUICtrlMenu_GetItemData',
732
+ 'GUICtrlMenu_GetItemDefault', 'GUICtrlMenu_GetItemDisabled',
733
+ 'GUICtrlMenu_GetItemEnabled', 'GUICtrlMenu_GetItemGrayed',
734
+ 'GUICtrlMenu_GetItemHighlighted', 'GUICtrlMenu_GetItemID',
735
+ 'GUICtrlMenu_GetItemInfo', 'GUICtrlMenu_GetItemRect',
736
+ 'GUICtrlMenu_GetItemRectEx', 'GUICtrlMenu_GetItemState',
737
+ 'GUICtrlMenu_GetItemStateEx', 'GUICtrlMenu_GetItemSubMenu',
738
+ 'GUICtrlMenu_GetItemText', 'GUICtrlMenu_GetItemType',
739
+ 'GUICtrlMenu_GetMenu', 'GUICtrlMenu_GetMenuBackground',
740
+ 'GUICtrlMenu_GetMenuBarInfo', 'GUICtrlMenu_GetMenuContextHelpID',
741
+ 'GUICtrlMenu_GetMenuData', 'GUICtrlMenu_GetMenuDefaultItem',
742
+ 'GUICtrlMenu_GetMenuHeight', 'GUICtrlMenu_GetMenuInfo',
743
+ 'GUICtrlMenu_GetMenuStyle', 'GUICtrlMenu_GetSystemMenu',
744
+ 'GUICtrlMenu_InsertMenuItem', 'GUICtrlMenu_InsertMenuItemEx',
745
+ 'GUICtrlMenu_IsMenu', 'GUICtrlMenu_LoadMenu',
746
+ 'GUICtrlMenu_MapAccelerator', 'GUICtrlMenu_MenuItemFromPoint',
747
+ 'GUICtrlMenu_RemoveMenu', 'GUICtrlMenu_SetItemBitmaps',
748
+ 'GUICtrlMenu_SetItemBmp', 'GUICtrlMenu_SetItemBmpChecked',
749
+ 'GUICtrlMenu_SetItemBmpUnchecked', 'GUICtrlMenu_SetItemChecked',
750
+ 'GUICtrlMenu_SetItemData', 'GUICtrlMenu_SetItemDefault',
751
+ 'GUICtrlMenu_SetItemDisabled', 'GUICtrlMenu_SetItemEnabled',
752
+ 'GUICtrlMenu_SetItemGrayed', 'GUICtrlMenu_SetItemHighlighted',
753
+ 'GUICtrlMenu_SetItemID', 'GUICtrlMenu_SetItemInfo',
754
+ 'GUICtrlMenu_SetItemState', 'GUICtrlMenu_SetItemSubMenu',
755
+ 'GUICtrlMenu_SetItemText', 'GUICtrlMenu_SetItemType',
756
+ 'GUICtrlMenu_SetMenu', 'GUICtrlMenu_SetMenuBackground',
757
+ 'GUICtrlMenu_SetMenuContextHelpID', 'GUICtrlMenu_SetMenuData',
758
+ 'GUICtrlMenu_SetMenuDefaultItem', 'GUICtrlMenu_SetMenuHeight',
759
+ 'GUICtrlMenu_SetMenuInfo', 'GUICtrlMenu_SetMenuStyle',
760
+ 'GUICtrlMenu_TrackPopupMenu', 'GUICtrlMonthCal_Create',
761
+ 'GUICtrlMonthCal_Destroy', 'GUICtrlMonthCal_GetCalendarBorder',
762
+ 'GUICtrlMonthCal_GetCalendarCount', 'GUICtrlMonthCal_GetColor',
763
+ 'GUICtrlMonthCal_GetColorArray', 'GUICtrlMonthCal_GetCurSel',
764
+ 'GUICtrlMonthCal_GetCurSelStr', 'GUICtrlMonthCal_GetFirstDOW',
765
+ 'GUICtrlMonthCal_GetFirstDOWStr', 'GUICtrlMonthCal_GetMaxSelCount',
766
+ 'GUICtrlMonthCal_GetMaxTodayWidth',
767
+ 'GUICtrlMonthCal_GetMinReqHeight', 'GUICtrlMonthCal_GetMinReqRect',
768
+ 'GUICtrlMonthCal_GetMinReqRectArray',
769
+ 'GUICtrlMonthCal_GetMinReqWidth', 'GUICtrlMonthCal_GetMonthDelta',
770
+ 'GUICtrlMonthCal_GetMonthRange', 'GUICtrlMonthCal_GetMonthRangeMax',
771
+ 'GUICtrlMonthCal_GetMonthRangeMaxStr',
772
+ 'GUICtrlMonthCal_GetMonthRangeMin',
773
+ 'GUICtrlMonthCal_GetMonthRangeMinStr',
774
+ 'GUICtrlMonthCal_GetMonthRangeSpan', 'GUICtrlMonthCal_GetRange',
775
+ 'GUICtrlMonthCal_GetRangeMax', 'GUICtrlMonthCal_GetRangeMaxStr',
776
+ 'GUICtrlMonthCal_GetRangeMin', 'GUICtrlMonthCal_GetRangeMinStr',
777
+ 'GUICtrlMonthCal_GetSelRange', 'GUICtrlMonthCal_GetSelRangeMax',
778
+ 'GUICtrlMonthCal_GetSelRangeMaxStr',
779
+ 'GUICtrlMonthCal_GetSelRangeMin',
780
+ 'GUICtrlMonthCal_GetSelRangeMinStr', 'GUICtrlMonthCal_GetToday',
781
+ 'GUICtrlMonthCal_GetTodayStr', 'GUICtrlMonthCal_GetUnicodeFormat',
782
+ 'GUICtrlMonthCal_HitTest', 'GUICtrlMonthCal_SetCalendarBorder',
783
+ 'GUICtrlMonthCal_SetColor', 'GUICtrlMonthCal_SetCurSel',
784
+ 'GUICtrlMonthCal_SetDayState', 'GUICtrlMonthCal_SetFirstDOW',
785
+ 'GUICtrlMonthCal_SetMaxSelCount', 'GUICtrlMonthCal_SetMonthDelta',
786
+ 'GUICtrlMonthCal_SetRange', 'GUICtrlMonthCal_SetSelRange',
787
+ 'GUICtrlMonthCal_SetToday', 'GUICtrlMonthCal_SetUnicodeFormat',
788
+ 'GUICtrlRebar_AddBand', 'GUICtrlRebar_AddToolBarBand',
789
+ 'GUICtrlRebar_BeginDrag', 'GUICtrlRebar_Create',
790
+ 'GUICtrlRebar_DeleteBand', 'GUICtrlRebar_Destroy',
791
+ 'GUICtrlRebar_DragMove', 'GUICtrlRebar_EndDrag',
792
+ 'GUICtrlRebar_GetBandBackColor', 'GUICtrlRebar_GetBandBorders',
793
+ 'GUICtrlRebar_GetBandBordersEx', 'GUICtrlRebar_GetBandChildHandle',
794
+ 'GUICtrlRebar_GetBandChildSize', 'GUICtrlRebar_GetBandCount',
795
+ 'GUICtrlRebar_GetBandForeColor', 'GUICtrlRebar_GetBandHeaderSize',
796
+ 'GUICtrlRebar_GetBandID', 'GUICtrlRebar_GetBandIdealSize',
797
+ 'GUICtrlRebar_GetBandLength', 'GUICtrlRebar_GetBandLParam',
798
+ 'GUICtrlRebar_GetBandMargins', 'GUICtrlRebar_GetBandMarginsEx',
799
+ 'GUICtrlRebar_GetBandRect', 'GUICtrlRebar_GetBandRectEx',
800
+ 'GUICtrlRebar_GetBandStyle', 'GUICtrlRebar_GetBandStyleBreak',
801
+ 'GUICtrlRebar_GetBandStyleChildEdge',
802
+ 'GUICtrlRebar_GetBandStyleFixedBMP',
803
+ 'GUICtrlRebar_GetBandStyleFixedSize',
804
+ 'GUICtrlRebar_GetBandStyleGripperAlways',
805
+ 'GUICtrlRebar_GetBandStyleHidden',
806
+ 'GUICtrlRebar_GetBandStyleHideTitle',
807
+ 'GUICtrlRebar_GetBandStyleNoGripper',
808
+ 'GUICtrlRebar_GetBandStyleTopAlign',
809
+ 'GUICtrlRebar_GetBandStyleUseChevron',
810
+ 'GUICtrlRebar_GetBandStyleVariableHeight',
811
+ 'GUICtrlRebar_GetBandText', 'GUICtrlRebar_GetBarHeight',
812
+ 'GUICtrlRebar_GetBarInfo', 'GUICtrlRebar_GetBKColor',
813
+ 'GUICtrlRebar_GetColorScheme', 'GUICtrlRebar_GetRowCount',
814
+ 'GUICtrlRebar_GetRowHeight', 'GUICtrlRebar_GetTextColor',
815
+ 'GUICtrlRebar_GetToolTips', 'GUICtrlRebar_GetUnicodeFormat',
816
+ 'GUICtrlRebar_HitTest', 'GUICtrlRebar_IDToIndex',
817
+ 'GUICtrlRebar_MaximizeBand', 'GUICtrlRebar_MinimizeBand',
818
+ 'GUICtrlRebar_MoveBand', 'GUICtrlRebar_SetBandBackColor',
819
+ 'GUICtrlRebar_SetBandForeColor', 'GUICtrlRebar_SetBandHeaderSize',
820
+ 'GUICtrlRebar_SetBandID', 'GUICtrlRebar_SetBandIdealSize',
821
+ 'GUICtrlRebar_SetBandLength', 'GUICtrlRebar_SetBandLParam',
822
+ 'GUICtrlRebar_SetBandStyle', 'GUICtrlRebar_SetBandStyleBreak',
823
+ 'GUICtrlRebar_SetBandStyleChildEdge',
824
+ 'GUICtrlRebar_SetBandStyleFixedBMP',
825
+ 'GUICtrlRebar_SetBandStyleFixedSize',
826
+ 'GUICtrlRebar_SetBandStyleGripperAlways',
827
+ 'GUICtrlRebar_SetBandStyleHidden',
828
+ 'GUICtrlRebar_SetBandStyleHideTitle',
829
+ 'GUICtrlRebar_SetBandStyleNoGripper',
830
+ 'GUICtrlRebar_SetBandStyleTopAlign',
831
+ 'GUICtrlRebar_SetBandStyleUseChevron',
832
+ 'GUICtrlRebar_SetBandStyleVariableHeight',
833
+ 'GUICtrlRebar_SetBandText', 'GUICtrlRebar_SetBarInfo',
834
+ 'GUICtrlRebar_SetBKColor', 'GUICtrlRebar_SetColorScheme',
835
+ 'GUICtrlRebar_SetTextColor', 'GUICtrlRebar_SetToolTips',
836
+ 'GUICtrlRebar_SetUnicodeFormat', 'GUICtrlRebar_ShowBand',
837
+ 'GUICtrlRichEdit_AppendText', 'GUICtrlRichEdit_AutoDetectURL',
838
+ 'GUICtrlRichEdit_CanPaste', 'GUICtrlRichEdit_CanPasteSpecial',
839
+ 'GUICtrlRichEdit_CanRedo', 'GUICtrlRichEdit_CanUndo',
840
+ 'GUICtrlRichEdit_ChangeFontSize', 'GUICtrlRichEdit_Copy',
841
+ 'GUICtrlRichEdit_Create', 'GUICtrlRichEdit_Cut',
842
+ 'GUICtrlRichEdit_Deselect', 'GUICtrlRichEdit_Destroy',
843
+ 'GUICtrlRichEdit_EmptyUndoBuffer', 'GUICtrlRichEdit_FindText',
844
+ 'GUICtrlRichEdit_FindTextInRange', 'GUICtrlRichEdit_GetBkColor',
845
+ 'GUICtrlRichEdit_GetCharAttributes',
846
+ 'GUICtrlRichEdit_GetCharBkColor', 'GUICtrlRichEdit_GetCharColor',
847
+ 'GUICtrlRichEdit_GetCharPosFromXY',
848
+ 'GUICtrlRichEdit_GetCharPosOfNextWord',
849
+ 'GUICtrlRichEdit_GetCharPosOfPreviousWord',
850
+ 'GUICtrlRichEdit_GetCharWordBreakInfo',
851
+ 'GUICtrlRichEdit_GetFirstCharPosOnLine', 'GUICtrlRichEdit_GetFont',
852
+ 'GUICtrlRichEdit_GetLineCount', 'GUICtrlRichEdit_GetLineLength',
853
+ 'GUICtrlRichEdit_GetLineNumberFromCharPos',
854
+ 'GUICtrlRichEdit_GetNextRedo', 'GUICtrlRichEdit_GetNextUndo',
855
+ 'GUICtrlRichEdit_GetNumberOfFirstVisibleLine',
856
+ 'GUICtrlRichEdit_GetParaAlignment',
857
+ 'GUICtrlRichEdit_GetParaAttributes', 'GUICtrlRichEdit_GetParaBorder',
858
+ 'GUICtrlRichEdit_GetParaIndents', 'GUICtrlRichEdit_GetParaNumbering',
859
+ 'GUICtrlRichEdit_GetParaShading', 'GUICtrlRichEdit_GetParaSpacing',
860
+ 'GUICtrlRichEdit_GetParaTabStops', 'GUICtrlRichEdit_GetPasswordChar',
861
+ 'GUICtrlRichEdit_GetRECT', 'GUICtrlRichEdit_GetScrollPos',
862
+ 'GUICtrlRichEdit_GetSel', 'GUICtrlRichEdit_GetSelAA',
863
+ 'GUICtrlRichEdit_GetSelText', 'GUICtrlRichEdit_GetSpaceUnit',
864
+ 'GUICtrlRichEdit_GetText', 'GUICtrlRichEdit_GetTextInLine',
865
+ 'GUICtrlRichEdit_GetTextInRange', 'GUICtrlRichEdit_GetTextLength',
866
+ 'GUICtrlRichEdit_GetVersion', 'GUICtrlRichEdit_GetXYFromCharPos',
867
+ 'GUICtrlRichEdit_GetZoom', 'GUICtrlRichEdit_GotoCharPos',
868
+ 'GUICtrlRichEdit_HideSelection', 'GUICtrlRichEdit_InsertText',
869
+ 'GUICtrlRichEdit_IsModified', 'GUICtrlRichEdit_IsTextSelected',
870
+ 'GUICtrlRichEdit_Paste', 'GUICtrlRichEdit_PasteSpecial',
871
+ 'GUICtrlRichEdit_PauseRedraw', 'GUICtrlRichEdit_Redo',
872
+ 'GUICtrlRichEdit_ReplaceText', 'GUICtrlRichEdit_ResumeRedraw',
873
+ 'GUICtrlRichEdit_ScrollLineOrPage', 'GUICtrlRichEdit_ScrollLines',
874
+ 'GUICtrlRichEdit_ScrollToCaret', 'GUICtrlRichEdit_SetBkColor',
875
+ 'GUICtrlRichEdit_SetCharAttributes',
876
+ 'GUICtrlRichEdit_SetCharBkColor', 'GUICtrlRichEdit_SetCharColor',
877
+ 'GUICtrlRichEdit_SetEventMask', 'GUICtrlRichEdit_SetFont',
878
+ 'GUICtrlRichEdit_SetLimitOnText', 'GUICtrlRichEdit_SetModified',
879
+ 'GUICtrlRichEdit_SetParaAlignment',
880
+ 'GUICtrlRichEdit_SetParaAttributes', 'GUICtrlRichEdit_SetParaBorder',
881
+ 'GUICtrlRichEdit_SetParaIndents', 'GUICtrlRichEdit_SetParaNumbering',
882
+ 'GUICtrlRichEdit_SetParaShading', 'GUICtrlRichEdit_SetParaSpacing',
883
+ 'GUICtrlRichEdit_SetParaTabStops', 'GUICtrlRichEdit_SetPasswordChar',
884
+ 'GUICtrlRichEdit_SetReadOnly', 'GUICtrlRichEdit_SetRECT',
885
+ 'GUICtrlRichEdit_SetScrollPos', 'GUICtrlRichEdit_SetSel',
886
+ 'GUICtrlRichEdit_SetSpaceUnit', 'GUICtrlRichEdit_SetTabStops',
887
+ 'GUICtrlRichEdit_SetText', 'GUICtrlRichEdit_SetUndoLimit',
888
+ 'GUICtrlRichEdit_SetZoom', 'GUICtrlRichEdit_StreamFromFile',
889
+ 'GUICtrlRichEdit_StreamFromVar', 'GUICtrlRichEdit_StreamToFile',
890
+ 'GUICtrlRichEdit_StreamToVar', 'GUICtrlRichEdit_Undo',
891
+ 'GUICtrlSlider_ClearSel', 'GUICtrlSlider_ClearTics',
892
+ 'GUICtrlSlider_Create', 'GUICtrlSlider_Destroy',
893
+ 'GUICtrlSlider_GetBuddy', 'GUICtrlSlider_GetChannelRect',
894
+ 'GUICtrlSlider_GetChannelRectEx', 'GUICtrlSlider_GetLineSize',
895
+ 'GUICtrlSlider_GetLogicalTics', 'GUICtrlSlider_GetNumTics',
896
+ 'GUICtrlSlider_GetPageSize', 'GUICtrlSlider_GetPos',
897
+ 'GUICtrlSlider_GetRange', 'GUICtrlSlider_GetRangeMax',
898
+ 'GUICtrlSlider_GetRangeMin', 'GUICtrlSlider_GetSel',
899
+ 'GUICtrlSlider_GetSelEnd', 'GUICtrlSlider_GetSelStart',
900
+ 'GUICtrlSlider_GetThumbLength', 'GUICtrlSlider_GetThumbRect',
901
+ 'GUICtrlSlider_GetThumbRectEx', 'GUICtrlSlider_GetTic',
902
+ 'GUICtrlSlider_GetTicPos', 'GUICtrlSlider_GetToolTips',
903
+ 'GUICtrlSlider_GetUnicodeFormat', 'GUICtrlSlider_SetBuddy',
904
+ 'GUICtrlSlider_SetLineSize', 'GUICtrlSlider_SetPageSize',
905
+ 'GUICtrlSlider_SetPos', 'GUICtrlSlider_SetRange',
906
+ 'GUICtrlSlider_SetRangeMax', 'GUICtrlSlider_SetRangeMin',
907
+ 'GUICtrlSlider_SetSel', 'GUICtrlSlider_SetSelEnd',
908
+ 'GUICtrlSlider_SetSelStart', 'GUICtrlSlider_SetThumbLength',
909
+ 'GUICtrlSlider_SetTic', 'GUICtrlSlider_SetTicFreq',
910
+ 'GUICtrlSlider_SetTipSide', 'GUICtrlSlider_SetToolTips',
911
+ 'GUICtrlSlider_SetUnicodeFormat', 'GUICtrlStatusBar_Create',
912
+ 'GUICtrlStatusBar_Destroy', 'GUICtrlStatusBar_EmbedControl',
913
+ 'GUICtrlStatusBar_GetBorders', 'GUICtrlStatusBar_GetBordersHorz',
914
+ 'GUICtrlStatusBar_GetBordersRect', 'GUICtrlStatusBar_GetBordersVert',
915
+ 'GUICtrlStatusBar_GetCount', 'GUICtrlStatusBar_GetHeight',
916
+ 'GUICtrlStatusBar_GetIcon', 'GUICtrlStatusBar_GetParts',
917
+ 'GUICtrlStatusBar_GetRect', 'GUICtrlStatusBar_GetRectEx',
918
+ 'GUICtrlStatusBar_GetText', 'GUICtrlStatusBar_GetTextFlags',
919
+ 'GUICtrlStatusBar_GetTextLength', 'GUICtrlStatusBar_GetTextLengthEx',
920
+ 'GUICtrlStatusBar_GetTipText', 'GUICtrlStatusBar_GetUnicodeFormat',
921
+ 'GUICtrlStatusBar_GetWidth', 'GUICtrlStatusBar_IsSimple',
922
+ 'GUICtrlStatusBar_Resize', 'GUICtrlStatusBar_SetBkColor',
923
+ 'GUICtrlStatusBar_SetIcon', 'GUICtrlStatusBar_SetMinHeight',
924
+ 'GUICtrlStatusBar_SetParts', 'GUICtrlStatusBar_SetSimple',
925
+ 'GUICtrlStatusBar_SetText', 'GUICtrlStatusBar_SetTipText',
926
+ 'GUICtrlStatusBar_SetUnicodeFormat', 'GUICtrlStatusBar_ShowHide',
927
+ 'GUICtrlTab_ActivateTab', 'GUICtrlTab_ClickTab', 'GUICtrlTab_Create',
928
+ 'GUICtrlTab_DeleteAllItems', 'GUICtrlTab_DeleteItem',
929
+ 'GUICtrlTab_DeselectAll', 'GUICtrlTab_Destroy', 'GUICtrlTab_FindTab',
930
+ 'GUICtrlTab_GetCurFocus', 'GUICtrlTab_GetCurSel',
931
+ 'GUICtrlTab_GetDisplayRect', 'GUICtrlTab_GetDisplayRectEx',
932
+ 'GUICtrlTab_GetExtendedStyle', 'GUICtrlTab_GetImageList',
933
+ 'GUICtrlTab_GetItem', 'GUICtrlTab_GetItemCount',
934
+ 'GUICtrlTab_GetItemImage', 'GUICtrlTab_GetItemParam',
935
+ 'GUICtrlTab_GetItemRect', 'GUICtrlTab_GetItemRectEx',
936
+ 'GUICtrlTab_GetItemState', 'GUICtrlTab_GetItemText',
937
+ 'GUICtrlTab_GetRowCount', 'GUICtrlTab_GetToolTips',
938
+ 'GUICtrlTab_GetUnicodeFormat', 'GUICtrlTab_HighlightItem',
939
+ 'GUICtrlTab_HitTest', 'GUICtrlTab_InsertItem',
940
+ 'GUICtrlTab_RemoveImage', 'GUICtrlTab_SetCurFocus',
941
+ 'GUICtrlTab_SetCurSel', 'GUICtrlTab_SetExtendedStyle',
942
+ 'GUICtrlTab_SetImageList', 'GUICtrlTab_SetItem',
943
+ 'GUICtrlTab_SetItemImage', 'GUICtrlTab_SetItemParam',
944
+ 'GUICtrlTab_SetItemSize', 'GUICtrlTab_SetItemState',
945
+ 'GUICtrlTab_SetItemText', 'GUICtrlTab_SetMinTabWidth',
946
+ 'GUICtrlTab_SetPadding', 'GUICtrlTab_SetToolTips',
947
+ 'GUICtrlTab_SetUnicodeFormat', 'GUICtrlToolbar_AddBitmap',
948
+ 'GUICtrlToolbar_AddButton', 'GUICtrlToolbar_AddButtonSep',
949
+ 'GUICtrlToolbar_AddString', 'GUICtrlToolbar_ButtonCount',
950
+ 'GUICtrlToolbar_CheckButton', 'GUICtrlToolbar_ClickAccel',
951
+ 'GUICtrlToolbar_ClickButton', 'GUICtrlToolbar_ClickIndex',
952
+ 'GUICtrlToolbar_CommandToIndex', 'GUICtrlToolbar_Create',
953
+ 'GUICtrlToolbar_Customize', 'GUICtrlToolbar_DeleteButton',
954
+ 'GUICtrlToolbar_Destroy', 'GUICtrlToolbar_EnableButton',
955
+ 'GUICtrlToolbar_FindToolbar', 'GUICtrlToolbar_GetAnchorHighlight',
956
+ 'GUICtrlToolbar_GetBitmapFlags', 'GUICtrlToolbar_GetButtonBitmap',
957
+ 'GUICtrlToolbar_GetButtonInfo', 'GUICtrlToolbar_GetButtonInfoEx',
958
+ 'GUICtrlToolbar_GetButtonParam', 'GUICtrlToolbar_GetButtonRect',
959
+ 'GUICtrlToolbar_GetButtonRectEx', 'GUICtrlToolbar_GetButtonSize',
960
+ 'GUICtrlToolbar_GetButtonState', 'GUICtrlToolbar_GetButtonStyle',
961
+ 'GUICtrlToolbar_GetButtonText', 'GUICtrlToolbar_GetColorScheme',
962
+ 'GUICtrlToolbar_GetDisabledImageList',
963
+ 'GUICtrlToolbar_GetExtendedStyle', 'GUICtrlToolbar_GetHotImageList',
964
+ 'GUICtrlToolbar_GetHotItem', 'GUICtrlToolbar_GetImageList',
965
+ 'GUICtrlToolbar_GetInsertMark', 'GUICtrlToolbar_GetInsertMarkColor',
966
+ 'GUICtrlToolbar_GetMaxSize', 'GUICtrlToolbar_GetMetrics',
967
+ 'GUICtrlToolbar_GetPadding', 'GUICtrlToolbar_GetRows',
968
+ 'GUICtrlToolbar_GetString', 'GUICtrlToolbar_GetStyle',
969
+ 'GUICtrlToolbar_GetStyleAltDrag',
970
+ 'GUICtrlToolbar_GetStyleCustomErase', 'GUICtrlToolbar_GetStyleFlat',
971
+ 'GUICtrlToolbar_GetStyleList', 'GUICtrlToolbar_GetStyleRegisterDrop',
972
+ 'GUICtrlToolbar_GetStyleToolTips',
973
+ 'GUICtrlToolbar_GetStyleTransparent',
974
+ 'GUICtrlToolbar_GetStyleWrapable', 'GUICtrlToolbar_GetTextRows',
975
+ 'GUICtrlToolbar_GetToolTips', 'GUICtrlToolbar_GetUnicodeFormat',
976
+ 'GUICtrlToolbar_HideButton', 'GUICtrlToolbar_HighlightButton',
977
+ 'GUICtrlToolbar_HitTest', 'GUICtrlToolbar_IndexToCommand',
978
+ 'GUICtrlToolbar_InsertButton', 'GUICtrlToolbar_InsertMarkHitTest',
979
+ 'GUICtrlToolbar_IsButtonChecked', 'GUICtrlToolbar_IsButtonEnabled',
980
+ 'GUICtrlToolbar_IsButtonHidden',
981
+ 'GUICtrlToolbar_IsButtonHighlighted',
982
+ 'GUICtrlToolbar_IsButtonIndeterminate',
983
+ 'GUICtrlToolbar_IsButtonPressed', 'GUICtrlToolbar_LoadBitmap',
984
+ 'GUICtrlToolbar_LoadImages', 'GUICtrlToolbar_MapAccelerator',
985
+ 'GUICtrlToolbar_MoveButton', 'GUICtrlToolbar_PressButton',
986
+ 'GUICtrlToolbar_SetAnchorHighlight', 'GUICtrlToolbar_SetBitmapSize',
987
+ 'GUICtrlToolbar_SetButtonBitMap', 'GUICtrlToolbar_SetButtonInfo',
988
+ 'GUICtrlToolbar_SetButtonInfoEx', 'GUICtrlToolbar_SetButtonParam',
989
+ 'GUICtrlToolbar_SetButtonSize', 'GUICtrlToolbar_SetButtonState',
990
+ 'GUICtrlToolbar_SetButtonStyle', 'GUICtrlToolbar_SetButtonText',
991
+ 'GUICtrlToolbar_SetButtonWidth', 'GUICtrlToolbar_SetCmdID',
992
+ 'GUICtrlToolbar_SetColorScheme',
993
+ 'GUICtrlToolbar_SetDisabledImageList',
994
+ 'GUICtrlToolbar_SetDrawTextFlags', 'GUICtrlToolbar_SetExtendedStyle',
995
+ 'GUICtrlToolbar_SetHotImageList', 'GUICtrlToolbar_SetHotItem',
996
+ 'GUICtrlToolbar_SetImageList', 'GUICtrlToolbar_SetIndent',
997
+ 'GUICtrlToolbar_SetIndeterminate', 'GUICtrlToolbar_SetInsertMark',
998
+ 'GUICtrlToolbar_SetInsertMarkColor', 'GUICtrlToolbar_SetMaxTextRows',
999
+ 'GUICtrlToolbar_SetMetrics', 'GUICtrlToolbar_SetPadding',
1000
+ 'GUICtrlToolbar_SetParent', 'GUICtrlToolbar_SetRows',
1001
+ 'GUICtrlToolbar_SetStyle', 'GUICtrlToolbar_SetStyleAltDrag',
1002
+ 'GUICtrlToolbar_SetStyleCustomErase', 'GUICtrlToolbar_SetStyleFlat',
1003
+ 'GUICtrlToolbar_SetStyleList', 'GUICtrlToolbar_SetStyleRegisterDrop',
1004
+ 'GUICtrlToolbar_SetStyleToolTips',
1005
+ 'GUICtrlToolbar_SetStyleTransparent',
1006
+ 'GUICtrlToolbar_SetStyleWrapable', 'GUICtrlToolbar_SetToolTips',
1007
+ 'GUICtrlToolbar_SetUnicodeFormat', 'GUICtrlToolbar_SetWindowTheme',
1008
+ 'GUICtrlTreeView_Add', 'GUICtrlTreeView_AddChild',
1009
+ 'GUICtrlTreeView_AddChildFirst', 'GUICtrlTreeView_AddFirst',
1010
+ 'GUICtrlTreeView_BeginUpdate', 'GUICtrlTreeView_ClickItem',
1011
+ 'GUICtrlTreeView_Create', 'GUICtrlTreeView_CreateDragImage',
1012
+ 'GUICtrlTreeView_CreateSolidBitMap', 'GUICtrlTreeView_Delete',
1013
+ 'GUICtrlTreeView_DeleteAll', 'GUICtrlTreeView_DeleteChildren',
1014
+ 'GUICtrlTreeView_Destroy', 'GUICtrlTreeView_DisplayRect',
1015
+ 'GUICtrlTreeView_DisplayRectEx', 'GUICtrlTreeView_EditText',
1016
+ 'GUICtrlTreeView_EndEdit', 'GUICtrlTreeView_EndUpdate',
1017
+ 'GUICtrlTreeView_EnsureVisible', 'GUICtrlTreeView_Expand',
1018
+ 'GUICtrlTreeView_ExpandedOnce', 'GUICtrlTreeView_FindItem',
1019
+ 'GUICtrlTreeView_FindItemEx', 'GUICtrlTreeView_GetBkColor',
1020
+ 'GUICtrlTreeView_GetBold', 'GUICtrlTreeView_GetChecked',
1021
+ 'GUICtrlTreeView_GetChildCount', 'GUICtrlTreeView_GetChildren',
1022
+ 'GUICtrlTreeView_GetCount', 'GUICtrlTreeView_GetCut',
1023
+ 'GUICtrlTreeView_GetDropTarget', 'GUICtrlTreeView_GetEditControl',
1024
+ 'GUICtrlTreeView_GetExpanded', 'GUICtrlTreeView_GetFirstChild',
1025
+ 'GUICtrlTreeView_GetFirstItem', 'GUICtrlTreeView_GetFirstVisible',
1026
+ 'GUICtrlTreeView_GetFocused', 'GUICtrlTreeView_GetHeight',
1027
+ 'GUICtrlTreeView_GetImageIndex',
1028
+ 'GUICtrlTreeView_GetImageListIconHandle',
1029
+ 'GUICtrlTreeView_GetIndent', 'GUICtrlTreeView_GetInsertMarkColor',
1030
+ 'GUICtrlTreeView_GetISearchString', 'GUICtrlTreeView_GetItemByIndex',
1031
+ 'GUICtrlTreeView_GetItemHandle', 'GUICtrlTreeView_GetItemParam',
1032
+ 'GUICtrlTreeView_GetLastChild', 'GUICtrlTreeView_GetLineColor',
1033
+ 'GUICtrlTreeView_GetNext', 'GUICtrlTreeView_GetNextChild',
1034
+ 'GUICtrlTreeView_GetNextSibling', 'GUICtrlTreeView_GetNextVisible',
1035
+ 'GUICtrlTreeView_GetNormalImageList',
1036
+ 'GUICtrlTreeView_GetParentHandle', 'GUICtrlTreeView_GetParentParam',
1037
+ 'GUICtrlTreeView_GetPrev', 'GUICtrlTreeView_GetPrevChild',
1038
+ 'GUICtrlTreeView_GetPrevSibling', 'GUICtrlTreeView_GetPrevVisible',
1039
+ 'GUICtrlTreeView_GetScrollTime', 'GUICtrlTreeView_GetSelected',
1040
+ 'GUICtrlTreeView_GetSelectedImageIndex',
1041
+ 'GUICtrlTreeView_GetSelection', 'GUICtrlTreeView_GetSiblingCount',
1042
+ 'GUICtrlTreeView_GetState', 'GUICtrlTreeView_GetStateImageIndex',
1043
+ 'GUICtrlTreeView_GetStateImageList', 'GUICtrlTreeView_GetText',
1044
+ 'GUICtrlTreeView_GetTextColor', 'GUICtrlTreeView_GetToolTips',
1045
+ 'GUICtrlTreeView_GetTree', 'GUICtrlTreeView_GetUnicodeFormat',
1046
+ 'GUICtrlTreeView_GetVisible', 'GUICtrlTreeView_GetVisibleCount',
1047
+ 'GUICtrlTreeView_HitTest', 'GUICtrlTreeView_HitTestEx',
1048
+ 'GUICtrlTreeView_HitTestItem', 'GUICtrlTreeView_Index',
1049
+ 'GUICtrlTreeView_InsertItem', 'GUICtrlTreeView_IsFirstItem',
1050
+ 'GUICtrlTreeView_IsParent', 'GUICtrlTreeView_Level',
1051
+ 'GUICtrlTreeView_SelectItem', 'GUICtrlTreeView_SelectItemByIndex',
1052
+ 'GUICtrlTreeView_SetBkColor', 'GUICtrlTreeView_SetBold',
1053
+ 'GUICtrlTreeView_SetChecked', 'GUICtrlTreeView_SetCheckedByIndex',
1054
+ 'GUICtrlTreeView_SetChildren', 'GUICtrlTreeView_SetCut',
1055
+ 'GUICtrlTreeView_SetDropTarget', 'GUICtrlTreeView_SetFocused',
1056
+ 'GUICtrlTreeView_SetHeight', 'GUICtrlTreeView_SetIcon',
1057
+ 'GUICtrlTreeView_SetImageIndex', 'GUICtrlTreeView_SetIndent',
1058
+ 'GUICtrlTreeView_SetInsertMark',
1059
+ 'GUICtrlTreeView_SetInsertMarkColor',
1060
+ 'GUICtrlTreeView_SetItemHeight', 'GUICtrlTreeView_SetItemParam',
1061
+ 'GUICtrlTreeView_SetLineColor', 'GUICtrlTreeView_SetNormalImageList',
1062
+ 'GUICtrlTreeView_SetScrollTime', 'GUICtrlTreeView_SetSelected',
1063
+ 'GUICtrlTreeView_SetSelectedImageIndex', 'GUICtrlTreeView_SetState',
1064
+ 'GUICtrlTreeView_SetStateImageIndex',
1065
+ 'GUICtrlTreeView_SetStateImageList', 'GUICtrlTreeView_SetText',
1066
+ 'GUICtrlTreeView_SetTextColor', 'GUICtrlTreeView_SetToolTips',
1067
+ 'GUICtrlTreeView_SetUnicodeFormat', 'GUICtrlTreeView_Sort',
1068
+ 'GUIImageList_Add', 'GUIImageList_AddBitmap', 'GUIImageList_AddIcon',
1069
+ 'GUIImageList_AddMasked', 'GUIImageList_BeginDrag',
1070
+ 'GUIImageList_Copy', 'GUIImageList_Create', 'GUIImageList_Destroy',
1071
+ 'GUIImageList_DestroyIcon', 'GUIImageList_DragEnter',
1072
+ 'GUIImageList_DragLeave', 'GUIImageList_DragMove',
1073
+ 'GUIImageList_Draw', 'GUIImageList_DrawEx', 'GUIImageList_Duplicate',
1074
+ 'GUIImageList_EndDrag', 'GUIImageList_GetBkColor',
1075
+ 'GUIImageList_GetIcon', 'GUIImageList_GetIconHeight',
1076
+ 'GUIImageList_GetIconSize', 'GUIImageList_GetIconSizeEx',
1077
+ 'GUIImageList_GetIconWidth', 'GUIImageList_GetImageCount',
1078
+ 'GUIImageList_GetImageInfoEx', 'GUIImageList_Remove',
1079
+ 'GUIImageList_ReplaceIcon', 'GUIImageList_SetBkColor',
1080
+ 'GUIImageList_SetIconSize', 'GUIImageList_SetImageCount',
1081
+ 'GUIImageList_Swap', 'GUIScrollBars_EnableScrollBar',
1082
+ 'GUIScrollBars_GetScrollBarInfoEx', 'GUIScrollBars_GetScrollBarRect',
1083
+ 'GUIScrollBars_GetScrollBarRGState',
1084
+ 'GUIScrollBars_GetScrollBarXYLineButton',
1085
+ 'GUIScrollBars_GetScrollBarXYThumbBottom',
1086
+ 'GUIScrollBars_GetScrollBarXYThumbTop',
1087
+ 'GUIScrollBars_GetScrollInfo', 'GUIScrollBars_GetScrollInfoEx',
1088
+ 'GUIScrollBars_GetScrollInfoMax', 'GUIScrollBars_GetScrollInfoMin',
1089
+ 'GUIScrollBars_GetScrollInfoPage', 'GUIScrollBars_GetScrollInfoPos',
1090
+ 'GUIScrollBars_GetScrollInfoTrackPos', 'GUIScrollBars_GetScrollPos',
1091
+ 'GUIScrollBars_GetScrollRange', 'GUIScrollBars_Init',
1092
+ 'GUIScrollBars_ScrollWindow', 'GUIScrollBars_SetScrollInfo',
1093
+ 'GUIScrollBars_SetScrollInfoMax', 'GUIScrollBars_SetScrollInfoMin',
1094
+ 'GUIScrollBars_SetScrollInfoPage', 'GUIScrollBars_SetScrollInfoPos',
1095
+ 'GUIScrollBars_SetScrollRange', 'GUIScrollBars_ShowScrollBar',
1096
+ 'GUIToolTip_Activate', 'GUIToolTip_AddTool', 'GUIToolTip_AdjustRect',
1097
+ 'GUIToolTip_BitsToTTF', 'GUIToolTip_Create', 'GUIToolTip_Deactivate',
1098
+ 'GUIToolTip_DelTool', 'GUIToolTip_Destroy', 'GUIToolTip_EnumTools',
1099
+ 'GUIToolTip_GetBubbleHeight', 'GUIToolTip_GetBubbleSize',
1100
+ 'GUIToolTip_GetBubbleWidth', 'GUIToolTip_GetCurrentTool',
1101
+ 'GUIToolTip_GetDelayTime', 'GUIToolTip_GetMargin',
1102
+ 'GUIToolTip_GetMarginEx', 'GUIToolTip_GetMaxTipWidth',
1103
+ 'GUIToolTip_GetText', 'GUIToolTip_GetTipBkColor',
1104
+ 'GUIToolTip_GetTipTextColor', 'GUIToolTip_GetTitleBitMap',
1105
+ 'GUIToolTip_GetTitleText', 'GUIToolTip_GetToolCount',
1106
+ 'GUIToolTip_GetToolInfo', 'GUIToolTip_HitTest',
1107
+ 'GUIToolTip_NewToolRect', 'GUIToolTip_Pop', 'GUIToolTip_PopUp',
1108
+ 'GUIToolTip_SetDelayTime', 'GUIToolTip_SetMargin',
1109
+ 'GUIToolTip_SetMaxTipWidth', 'GUIToolTip_SetTipBkColor',
1110
+ 'GUIToolTip_SetTipTextColor', 'GUIToolTip_SetTitle',
1111
+ 'GUIToolTip_SetToolInfo', 'GUIToolTip_SetWindowTheme',
1112
+ 'GUIToolTip_ToolExists', 'GUIToolTip_ToolToArray',
1113
+ 'GUIToolTip_TrackActivate', 'GUIToolTip_TrackPosition',
1114
+ 'GUIToolTip_Update', 'GUIToolTip_UpdateTipText', 'HexToString',
1115
+ 'IEAction', 'IEAttach', 'IEBodyReadHTML', 'IEBodyReadText',
1116
+ 'IEBodyWriteHTML', 'IECreate', 'IECreateEmbedded', 'IEDocGetObj',
1117
+ 'IEDocInsertHTML', 'IEDocInsertText', 'IEDocReadHTML',
1118
+ 'IEDocWriteHTML', 'IEErrorNotify', 'IEFormElementCheckBoxSelect',
1119
+ 'IEFormElementGetCollection', 'IEFormElementGetObjByName',
1120
+ 'IEFormElementGetValue', 'IEFormElementOptionSelect',
1121
+ 'IEFormElementRadioSelect', 'IEFormElementSetValue',
1122
+ 'IEFormGetCollection', 'IEFormGetObjByName', 'IEFormImageClick',
1123
+ 'IEFormReset', 'IEFormSubmit', 'IEFrameGetCollection',
1124
+ 'IEFrameGetObjByName', 'IEGetObjById', 'IEGetObjByName',
1125
+ 'IEHeadInsertEventScript', 'IEImgClick', 'IEImgGetCollection',
1126
+ 'IEIsFrameSet', 'IELinkClickByIndex', 'IELinkClickByText',
1127
+ 'IELinkGetCollection', 'IELoadWait', 'IELoadWaitTimeout', 'IENavigate',
1128
+ 'IEPropertyGet', 'IEPropertySet', 'IEQuit', 'IETableGetCollection',
1129
+ 'IETableWriteToArray', 'IETagNameAllGetCollection',
1130
+ 'IETagNameGetCollection', 'IE_Example', 'IE_Introduction',
1131
+ 'IE_VersionInfo', 'INetExplorerCapable', 'INetGetSource', 'INetMail',
1132
+ 'INetSmtpMail', 'IsPressed', 'MathCheckDiv', 'Max', 'MemGlobalAlloc',
1133
+ 'MemGlobalFree', 'MemGlobalLock', 'MemGlobalSize', 'MemGlobalUnlock',
1134
+ 'MemMoveMemory', 'MemVirtualAlloc', 'MemVirtualAllocEx',
1135
+ 'MemVirtualFree', 'MemVirtualFreeEx', 'Min', 'MouseTrap',
1136
+ 'NamedPipes_CallNamedPipe', 'NamedPipes_ConnectNamedPipe',
1137
+ 'NamedPipes_CreateNamedPipe', 'NamedPipes_CreatePipe',
1138
+ 'NamedPipes_DisconnectNamedPipe',
1139
+ 'NamedPipes_GetNamedPipeHandleState', 'NamedPipes_GetNamedPipeInfo',
1140
+ 'NamedPipes_PeekNamedPipe', 'NamedPipes_SetNamedPipeHandleState',
1141
+ 'NamedPipes_TransactNamedPipe', 'NamedPipes_WaitNamedPipe',
1142
+ 'Net_Share_ConnectionEnum', 'Net_Share_FileClose',
1143
+ 'Net_Share_FileEnum', 'Net_Share_FileGetInfo', 'Net_Share_PermStr',
1144
+ 'Net_Share_ResourceStr', 'Net_Share_SessionDel',
1145
+ 'Net_Share_SessionEnum', 'Net_Share_SessionGetInfo',
1146
+ 'Net_Share_ShareAdd', 'Net_Share_ShareCheck', 'Net_Share_ShareDel',
1147
+ 'Net_Share_ShareEnum', 'Net_Share_ShareGetInfo',
1148
+ 'Net_Share_ShareSetInfo', 'Net_Share_StatisticsGetSvr',
1149
+ 'Net_Share_StatisticsGetWrk', 'Now', 'NowCalc', 'NowCalcDate',
1150
+ 'NowDate', 'NowTime', 'PathFull', 'PathGetRelative', 'PathMake',
1151
+ 'PathSplit', 'ProcessGetName', 'ProcessGetPriority', 'Radian',
1152
+ 'ReplaceStringInFile', 'RunDos', 'ScreenCapture_Capture',
1153
+ 'ScreenCapture_CaptureWnd', 'ScreenCapture_SaveImage',
1154
+ 'ScreenCapture_SetBMPFormat', 'ScreenCapture_SetJPGQuality',
1155
+ 'ScreenCapture_SetTIFColorDepth', 'ScreenCapture_SetTIFCompression',
1156
+ 'Security__AdjustTokenPrivileges',
1157
+ 'Security__CreateProcessWithToken', 'Security__DuplicateTokenEx',
1158
+ 'Security__GetAccountSid', 'Security__GetLengthSid',
1159
+ 'Security__GetTokenInformation', 'Security__ImpersonateSelf',
1160
+ 'Security__IsValidSid', 'Security__LookupAccountName',
1161
+ 'Security__LookupAccountSid', 'Security__LookupPrivilegeValue',
1162
+ 'Security__OpenProcessToken', 'Security__OpenThreadToken',
1163
+ 'Security__OpenThreadTokenEx', 'Security__SetPrivilege',
1164
+ 'Security__SetTokenInformation', 'Security__SidToStringSid',
1165
+ 'Security__SidTypeStr', 'Security__StringSidToSid', 'SendMessage',
1166
+ 'SendMessageA', 'SetDate', 'SetTime', 'Singleton', 'SoundClose',
1167
+ 'SoundLength', 'SoundOpen', 'SoundPause', 'SoundPlay', 'SoundPos',
1168
+ 'SoundResume', 'SoundSeek', 'SoundStatus', 'SoundStop',
1169
+ 'SQLite_Changes', 'SQLite_Close', 'SQLite_Display2DResult',
1170
+ 'SQLite_Encode', 'SQLite_ErrCode', 'SQLite_ErrMsg', 'SQLite_Escape',
1171
+ 'SQLite_Exec', 'SQLite_FastEncode', 'SQLite_FastEscape',
1172
+ 'SQLite_FetchData', 'SQLite_FetchNames', 'SQLite_GetTable',
1173
+ 'SQLite_GetTable2d', 'SQLite_LastInsertRowID', 'SQLite_LibVersion',
1174
+ 'SQLite_Open', 'SQLite_Query', 'SQLite_QueryFinalize',
1175
+ 'SQLite_QueryReset', 'SQLite_QuerySingleRow', 'SQLite_SafeMode',
1176
+ 'SQLite_SetTimeout', 'SQLite_Shutdown', 'SQLite_SQLiteExe',
1177
+ 'SQLite_Startup', 'SQLite_TotalChanges', 'StringBetween',
1178
+ 'StringExplode', 'StringInsert', 'StringProper', 'StringRepeat',
1179
+ 'StringTitleCase', 'StringToHex', 'TCPIpToName', 'TempFile',
1180
+ 'TicksToTime', 'Timer_Diff', 'Timer_GetIdleTime', 'Timer_GetTimerID',
1181
+ 'Timer_Init', 'Timer_KillAllTimers', 'Timer_KillTimer',
1182
+ 'Timer_SetTimer', 'TimeToTicks', 'VersionCompare', 'viClose',
1183
+ 'viExecCommand', 'viFindGpib', 'viGpibBusReset', 'viGTL',
1184
+ 'viInteractiveControl', 'viOpen', 'viSetAttribute', 'viSetTimeout',
1185
+ 'WeekNumberISO', 'WinAPI_AbortPath', 'WinAPI_ActivateKeyboardLayout',
1186
+ 'WinAPI_AddClipboardFormatListener', 'WinAPI_AddFontMemResourceEx',
1187
+ 'WinAPI_AddFontResourceEx', 'WinAPI_AddIconOverlay',
1188
+ 'WinAPI_AddIconTransparency', 'WinAPI_AddMRUString',
1189
+ 'WinAPI_AdjustBitmap', 'WinAPI_AdjustTokenPrivileges',
1190
+ 'WinAPI_AdjustWindowRectEx', 'WinAPI_AlphaBlend', 'WinAPI_AngleArc',
1191
+ 'WinAPI_AnimateWindow', 'WinAPI_Arc', 'WinAPI_ArcTo',
1192
+ 'WinAPI_ArrayToStruct', 'WinAPI_AssignProcessToJobObject',
1193
+ 'WinAPI_AssocGetPerceivedType', 'WinAPI_AssocQueryString',
1194
+ 'WinAPI_AttachConsole', 'WinAPI_AttachThreadInput',
1195
+ 'WinAPI_BackupRead', 'WinAPI_BackupReadAbort', 'WinAPI_BackupSeek',
1196
+ 'WinAPI_BackupWrite', 'WinAPI_BackupWriteAbort', 'WinAPI_Beep',
1197
+ 'WinAPI_BeginBufferedPaint', 'WinAPI_BeginDeferWindowPos',
1198
+ 'WinAPI_BeginPaint', 'WinAPI_BeginPath', 'WinAPI_BeginUpdateResource',
1199
+ 'WinAPI_BitBlt', 'WinAPI_BringWindowToTop',
1200
+ 'WinAPI_BroadcastSystemMessage', 'WinAPI_BrowseForFolderDlg',
1201
+ 'WinAPI_BufferedPaintClear', 'WinAPI_BufferedPaintInit',
1202
+ 'WinAPI_BufferedPaintSetAlpha', 'WinAPI_BufferedPaintUnInit',
1203
+ 'WinAPI_CallNextHookEx', 'WinAPI_CallWindowProc',
1204
+ 'WinAPI_CallWindowProcW', 'WinAPI_CascadeWindows',
1205
+ 'WinAPI_ChangeWindowMessageFilterEx', 'WinAPI_CharToOem',
1206
+ 'WinAPI_ChildWindowFromPointEx', 'WinAPI_ClientToScreen',
1207
+ 'WinAPI_ClipCursor', 'WinAPI_CloseDesktop', 'WinAPI_CloseEnhMetaFile',
1208
+ 'WinAPI_CloseFigure', 'WinAPI_CloseHandle', 'WinAPI_CloseThemeData',
1209
+ 'WinAPI_CloseWindow', 'WinAPI_CloseWindowStation',
1210
+ 'WinAPI_CLSIDFromProgID', 'WinAPI_CoInitialize',
1211
+ 'WinAPI_ColorAdjustLuma', 'WinAPI_ColorHLSToRGB',
1212
+ 'WinAPI_ColorRGBToHLS', 'WinAPI_CombineRgn',
1213
+ 'WinAPI_CombineTransform', 'WinAPI_CommandLineToArgv',
1214
+ 'WinAPI_CommDlgExtendedError', 'WinAPI_CommDlgExtendedErrorEx',
1215
+ 'WinAPI_CompareString', 'WinAPI_CompressBitmapBits',
1216
+ 'WinAPI_CompressBuffer', 'WinAPI_ComputeCrc32',
1217
+ 'WinAPI_ConfirmCredentials', 'WinAPI_CopyBitmap', 'WinAPI_CopyCursor',
1218
+ 'WinAPI_CopyEnhMetaFile', 'WinAPI_CopyFileEx', 'WinAPI_CopyIcon',
1219
+ 'WinAPI_CopyImage', 'WinAPI_CopyRect', 'WinAPI_CopyStruct',
1220
+ 'WinAPI_CoTaskMemAlloc', 'WinAPI_CoTaskMemFree',
1221
+ 'WinAPI_CoTaskMemRealloc', 'WinAPI_CoUninitialize',
1222
+ 'WinAPI_Create32BitHBITMAP', 'WinAPI_Create32BitHICON',
1223
+ 'WinAPI_CreateANDBitmap', 'WinAPI_CreateBitmap',
1224
+ 'WinAPI_CreateBitmapIndirect', 'WinAPI_CreateBrushIndirect',
1225
+ 'WinAPI_CreateBuffer', 'WinAPI_CreateBufferFromStruct',
1226
+ 'WinAPI_CreateCaret', 'WinAPI_CreateColorAdjustment',
1227
+ 'WinAPI_CreateCompatibleBitmap', 'WinAPI_CreateCompatibleBitmapEx',
1228
+ 'WinAPI_CreateCompatibleDC', 'WinAPI_CreateDesktop',
1229
+ 'WinAPI_CreateDIB', 'WinAPI_CreateDIBColorTable',
1230
+ 'WinAPI_CreateDIBitmap', 'WinAPI_CreateDIBSection',
1231
+ 'WinAPI_CreateDirectory', 'WinAPI_CreateDirectoryEx',
1232
+ 'WinAPI_CreateEllipticRgn', 'WinAPI_CreateEmptyIcon',
1233
+ 'WinAPI_CreateEnhMetaFile', 'WinAPI_CreateEvent', 'WinAPI_CreateFile',
1234
+ 'WinAPI_CreateFileEx', 'WinAPI_CreateFileMapping',
1235
+ 'WinAPI_CreateFont', 'WinAPI_CreateFontEx',
1236
+ 'WinAPI_CreateFontIndirect', 'WinAPI_CreateGUID',
1237
+ 'WinAPI_CreateHardLink', 'WinAPI_CreateIcon',
1238
+ 'WinAPI_CreateIconFromResourceEx', 'WinAPI_CreateIconIndirect',
1239
+ 'WinAPI_CreateJobObject', 'WinAPI_CreateMargins',
1240
+ 'WinAPI_CreateMRUList', 'WinAPI_CreateMutex', 'WinAPI_CreateNullRgn',
1241
+ 'WinAPI_CreateNumberFormatInfo', 'WinAPI_CreateObjectID',
1242
+ 'WinAPI_CreatePen', 'WinAPI_CreatePoint', 'WinAPI_CreatePolygonRgn',
1243
+ 'WinAPI_CreateProcess', 'WinAPI_CreateProcessWithToken',
1244
+ 'WinAPI_CreateRect', 'WinAPI_CreateRectEx', 'WinAPI_CreateRectRgn',
1245
+ 'WinAPI_CreateRectRgnIndirect', 'WinAPI_CreateRoundRectRgn',
1246
+ 'WinAPI_CreateSemaphore', 'WinAPI_CreateSize',
1247
+ 'WinAPI_CreateSolidBitmap', 'WinAPI_CreateSolidBrush',
1248
+ 'WinAPI_CreateStreamOnHGlobal', 'WinAPI_CreateString',
1249
+ 'WinAPI_CreateSymbolicLink', 'WinAPI_CreateTransform',
1250
+ 'WinAPI_CreateWindowEx', 'WinAPI_CreateWindowStation',
1251
+ 'WinAPI_DecompressBuffer', 'WinAPI_DecryptFile',
1252
+ 'WinAPI_DeferWindowPos', 'WinAPI_DefineDosDevice',
1253
+ 'WinAPI_DefRawInputProc', 'WinAPI_DefSubclassProc',
1254
+ 'WinAPI_DefWindowProc', 'WinAPI_DefWindowProcW', 'WinAPI_DeleteDC',
1255
+ 'WinAPI_DeleteEnhMetaFile', 'WinAPI_DeleteFile',
1256
+ 'WinAPI_DeleteObject', 'WinAPI_DeleteObjectID',
1257
+ 'WinAPI_DeleteVolumeMountPoint', 'WinAPI_DeregisterShellHookWindow',
1258
+ 'WinAPI_DestroyCaret', 'WinAPI_DestroyCursor', 'WinAPI_DestroyIcon',
1259
+ 'WinAPI_DestroyWindow', 'WinAPI_DeviceIoControl',
1260
+ 'WinAPI_DisplayStruct', 'WinAPI_DllGetVersion', 'WinAPI_DllInstall',
1261
+ 'WinAPI_DllUninstall', 'WinAPI_DPtoLP', 'WinAPI_DragAcceptFiles',
1262
+ 'WinAPI_DragFinish', 'WinAPI_DragQueryFileEx',
1263
+ 'WinAPI_DragQueryPoint', 'WinAPI_DrawAnimatedRects',
1264
+ 'WinAPI_DrawBitmap', 'WinAPI_DrawEdge', 'WinAPI_DrawFocusRect',
1265
+ 'WinAPI_DrawFrameControl', 'WinAPI_DrawIcon', 'WinAPI_DrawIconEx',
1266
+ 'WinAPI_DrawLine', 'WinAPI_DrawShadowText', 'WinAPI_DrawText',
1267
+ 'WinAPI_DrawThemeBackground', 'WinAPI_DrawThemeEdge',
1268
+ 'WinAPI_DrawThemeIcon', 'WinAPI_DrawThemeParentBackground',
1269
+ 'WinAPI_DrawThemeText', 'WinAPI_DrawThemeTextEx',
1270
+ 'WinAPI_DuplicateEncryptionInfoFile', 'WinAPI_DuplicateHandle',
1271
+ 'WinAPI_DuplicateTokenEx', 'WinAPI_DwmDefWindowProc',
1272
+ 'WinAPI_DwmEnableBlurBehindWindow', 'WinAPI_DwmEnableComposition',
1273
+ 'WinAPI_DwmExtendFrameIntoClientArea',
1274
+ 'WinAPI_DwmGetColorizationColor',
1275
+ 'WinAPI_DwmGetColorizationParameters',
1276
+ 'WinAPI_DwmGetWindowAttribute', 'WinAPI_DwmInvalidateIconicBitmaps',
1277
+ 'WinAPI_DwmIsCompositionEnabled',
1278
+ 'WinAPI_DwmQueryThumbnailSourceSize', 'WinAPI_DwmRegisterThumbnail',
1279
+ 'WinAPI_DwmSetColorizationParameters',
1280
+ 'WinAPI_DwmSetIconicLivePreviewBitmap',
1281
+ 'WinAPI_DwmSetIconicThumbnail', 'WinAPI_DwmSetWindowAttribute',
1282
+ 'WinAPI_DwmUnregisterThumbnail',
1283
+ 'WinAPI_DwmUpdateThumbnailProperties', 'WinAPI_DWordToFloat',
1284
+ 'WinAPI_DWordToInt', 'WinAPI_EjectMedia', 'WinAPI_Ellipse',
1285
+ 'WinAPI_EmptyWorkingSet', 'WinAPI_EnableWindow', 'WinAPI_EncryptFile',
1286
+ 'WinAPI_EncryptionDisable', 'WinAPI_EndBufferedPaint',
1287
+ 'WinAPI_EndDeferWindowPos', 'WinAPI_EndPaint', 'WinAPI_EndPath',
1288
+ 'WinAPI_EndUpdateResource', 'WinAPI_EnumChildProcess',
1289
+ 'WinAPI_EnumChildWindows', 'WinAPI_EnumDesktops',
1290
+ 'WinAPI_EnumDesktopWindows', 'WinAPI_EnumDeviceDrivers',
1291
+ 'WinAPI_EnumDisplayDevices', 'WinAPI_EnumDisplayMonitors',
1292
+ 'WinAPI_EnumDisplaySettings', 'WinAPI_EnumDllProc',
1293
+ 'WinAPI_EnumFiles', 'WinAPI_EnumFileStreams',
1294
+ 'WinAPI_EnumFontFamilies', 'WinAPI_EnumHardLinks',
1295
+ 'WinAPI_EnumMRUList', 'WinAPI_EnumPageFiles',
1296
+ 'WinAPI_EnumProcessHandles', 'WinAPI_EnumProcessModules',
1297
+ 'WinAPI_EnumProcessThreads', 'WinAPI_EnumProcessWindows',
1298
+ 'WinAPI_EnumRawInputDevices', 'WinAPI_EnumResourceLanguages',
1299
+ 'WinAPI_EnumResourceNames', 'WinAPI_EnumResourceTypes',
1300
+ 'WinAPI_EnumSystemGeoID', 'WinAPI_EnumSystemLocales',
1301
+ 'WinAPI_EnumUILanguages', 'WinAPI_EnumWindows',
1302
+ 'WinAPI_EnumWindowsPopup', 'WinAPI_EnumWindowStations',
1303
+ 'WinAPI_EnumWindowsTop', 'WinAPI_EqualMemory', 'WinAPI_EqualRect',
1304
+ 'WinAPI_EqualRgn', 'WinAPI_ExcludeClipRect',
1305
+ 'WinAPI_ExpandEnvironmentStrings', 'WinAPI_ExtCreatePen',
1306
+ 'WinAPI_ExtCreateRegion', 'WinAPI_ExtFloodFill', 'WinAPI_ExtractIcon',
1307
+ 'WinAPI_ExtractIconEx', 'WinAPI_ExtSelectClipRgn',
1308
+ 'WinAPI_FatalAppExit', 'WinAPI_FatalExit',
1309
+ 'WinAPI_FileEncryptionStatus', 'WinAPI_FileExists',
1310
+ 'WinAPI_FileIconInit', 'WinAPI_FileInUse', 'WinAPI_FillMemory',
1311
+ 'WinAPI_FillPath', 'WinAPI_FillRect', 'WinAPI_FillRgn',
1312
+ 'WinAPI_FindClose', 'WinAPI_FindCloseChangeNotification',
1313
+ 'WinAPI_FindExecutable', 'WinAPI_FindFirstChangeNotification',
1314
+ 'WinAPI_FindFirstFile', 'WinAPI_FindFirstFileName',
1315
+ 'WinAPI_FindFirstStream', 'WinAPI_FindNextChangeNotification',
1316
+ 'WinAPI_FindNextFile', 'WinAPI_FindNextFileName',
1317
+ 'WinAPI_FindNextStream', 'WinAPI_FindResource',
1318
+ 'WinAPI_FindResourceEx', 'WinAPI_FindTextDlg', 'WinAPI_FindWindow',
1319
+ 'WinAPI_FlashWindow', 'WinAPI_FlashWindowEx', 'WinAPI_FlattenPath',
1320
+ 'WinAPI_FloatToDWord', 'WinAPI_FloatToInt', 'WinAPI_FlushFileBuffers',
1321
+ 'WinAPI_FlushFRBuffer', 'WinAPI_FlushViewOfFile',
1322
+ 'WinAPI_FormatDriveDlg', 'WinAPI_FormatMessage', 'WinAPI_FrameRect',
1323
+ 'WinAPI_FrameRgn', 'WinAPI_FreeLibrary', 'WinAPI_FreeMemory',
1324
+ 'WinAPI_FreeMRUList', 'WinAPI_FreeResource', 'WinAPI_GdiComment',
1325
+ 'WinAPI_GetActiveWindow', 'WinAPI_GetAllUsersProfileDirectory',
1326
+ 'WinAPI_GetAncestor', 'WinAPI_GetApplicationRestartSettings',
1327
+ 'WinAPI_GetArcDirection', 'WinAPI_GetAsyncKeyState',
1328
+ 'WinAPI_GetBinaryType', 'WinAPI_GetBitmapBits',
1329
+ 'WinAPI_GetBitmapDimension', 'WinAPI_GetBitmapDimensionEx',
1330
+ 'WinAPI_GetBkColor', 'WinAPI_GetBkMode', 'WinAPI_GetBoundsRect',
1331
+ 'WinAPI_GetBrushOrg', 'WinAPI_GetBufferedPaintBits',
1332
+ 'WinAPI_GetBufferedPaintDC', 'WinAPI_GetBufferedPaintTargetDC',
1333
+ 'WinAPI_GetBufferedPaintTargetRect', 'WinAPI_GetBValue',
1334
+ 'WinAPI_GetCaretBlinkTime', 'WinAPI_GetCaretPos', 'WinAPI_GetCDType',
1335
+ 'WinAPI_GetClassInfoEx', 'WinAPI_GetClassLongEx',
1336
+ 'WinAPI_GetClassName', 'WinAPI_GetClientHeight',
1337
+ 'WinAPI_GetClientRect', 'WinAPI_GetClientWidth',
1338
+ 'WinAPI_GetClipboardSequenceNumber', 'WinAPI_GetClipBox',
1339
+ 'WinAPI_GetClipCursor', 'WinAPI_GetClipRgn',
1340
+ 'WinAPI_GetColorAdjustment', 'WinAPI_GetCompressedFileSize',
1341
+ 'WinAPI_GetCompression', 'WinAPI_GetConnectedDlg',
1342
+ 'WinAPI_GetCurrentDirectory', 'WinAPI_GetCurrentHwProfile',
1343
+ 'WinAPI_GetCurrentObject', 'WinAPI_GetCurrentPosition',
1344
+ 'WinAPI_GetCurrentProcess',
1345
+ 'WinAPI_GetCurrentProcessExplicitAppUserModelID',
1346
+ 'WinAPI_GetCurrentProcessID', 'WinAPI_GetCurrentThemeName',
1347
+ 'WinAPI_GetCurrentThread', 'WinAPI_GetCurrentThreadId',
1348
+ 'WinAPI_GetCursor', 'WinAPI_GetCursorInfo', 'WinAPI_GetDateFormat',
1349
+ 'WinAPI_GetDC', 'WinAPI_GetDCEx', 'WinAPI_GetDefaultPrinter',
1350
+ 'WinAPI_GetDefaultUserProfileDirectory', 'WinAPI_GetDesktopWindow',
1351
+ 'WinAPI_GetDeviceCaps', 'WinAPI_GetDeviceDriverBaseName',
1352
+ 'WinAPI_GetDeviceDriverFileName', 'WinAPI_GetDeviceGammaRamp',
1353
+ 'WinAPI_GetDIBColorTable', 'WinAPI_GetDIBits',
1354
+ 'WinAPI_GetDiskFreeSpaceEx', 'WinAPI_GetDlgCtrlID',
1355
+ 'WinAPI_GetDlgItem', 'WinAPI_GetDllDirectory',
1356
+ 'WinAPI_GetDriveBusType', 'WinAPI_GetDriveGeometryEx',
1357
+ 'WinAPI_GetDriveNumber', 'WinAPI_GetDriveType',
1358
+ 'WinAPI_GetDurationFormat', 'WinAPI_GetEffectiveClientRect',
1359
+ 'WinAPI_GetEnhMetaFile', 'WinAPI_GetEnhMetaFileBits',
1360
+ 'WinAPI_GetEnhMetaFileDescription', 'WinAPI_GetEnhMetaFileDimension',
1361
+ 'WinAPI_GetEnhMetaFileHeader', 'WinAPI_GetErrorMessage',
1362
+ 'WinAPI_GetErrorMode', 'WinAPI_GetExitCodeProcess',
1363
+ 'WinAPI_GetExtended', 'WinAPI_GetFileAttributes', 'WinAPI_GetFileID',
1364
+ 'WinAPI_GetFileInformationByHandle',
1365
+ 'WinAPI_GetFileInformationByHandleEx', 'WinAPI_GetFilePointerEx',
1366
+ 'WinAPI_GetFileSizeEx', 'WinAPI_GetFileSizeOnDisk',
1367
+ 'WinAPI_GetFileTitle', 'WinAPI_GetFileType',
1368
+ 'WinAPI_GetFileVersionInfo', 'WinAPI_GetFinalPathNameByHandle',
1369
+ 'WinAPI_GetFinalPathNameByHandleEx', 'WinAPI_GetFocus',
1370
+ 'WinAPI_GetFontMemoryResourceInfo', 'WinAPI_GetFontName',
1371
+ 'WinAPI_GetFontResourceInfo', 'WinAPI_GetForegroundWindow',
1372
+ 'WinAPI_GetFRBuffer', 'WinAPI_GetFullPathName', 'WinAPI_GetGeoInfo',
1373
+ 'WinAPI_GetGlyphOutline', 'WinAPI_GetGraphicsMode',
1374
+ 'WinAPI_GetGuiResources', 'WinAPI_GetGUIThreadInfo',
1375
+ 'WinAPI_GetGValue', 'WinAPI_GetHandleInformation',
1376
+ 'WinAPI_GetHGlobalFromStream', 'WinAPI_GetIconDimension',
1377
+ 'WinAPI_GetIconInfo', 'WinAPI_GetIconInfoEx', 'WinAPI_GetIdleTime',
1378
+ 'WinAPI_GetKeyboardLayout', 'WinAPI_GetKeyboardLayoutList',
1379
+ 'WinAPI_GetKeyboardState', 'WinAPI_GetKeyboardType',
1380
+ 'WinAPI_GetKeyNameText', 'WinAPI_GetKeyState',
1381
+ 'WinAPI_GetLastActivePopup', 'WinAPI_GetLastError',
1382
+ 'WinAPI_GetLastErrorMessage', 'WinAPI_GetLayeredWindowAttributes',
1383
+ 'WinAPI_GetLocaleInfo', 'WinAPI_GetLogicalDrives',
1384
+ 'WinAPI_GetMapMode', 'WinAPI_GetMemorySize',
1385
+ 'WinAPI_GetMessageExtraInfo', 'WinAPI_GetModuleFileNameEx',
1386
+ 'WinAPI_GetModuleHandle', 'WinAPI_GetModuleHandleEx',
1387
+ 'WinAPI_GetModuleInformation', 'WinAPI_GetMonitorInfo',
1388
+ 'WinAPI_GetMousePos', 'WinAPI_GetMousePosX', 'WinAPI_GetMousePosY',
1389
+ 'WinAPI_GetMUILanguage', 'WinAPI_GetNumberFormat', 'WinAPI_GetObject',
1390
+ 'WinAPI_GetObjectID', 'WinAPI_GetObjectInfoByHandle',
1391
+ 'WinAPI_GetObjectNameByHandle', 'WinAPI_GetObjectType',
1392
+ 'WinAPI_GetOpenFileName', 'WinAPI_GetOutlineTextMetrics',
1393
+ 'WinAPI_GetOverlappedResult', 'WinAPI_GetParent',
1394
+ 'WinAPI_GetParentProcess', 'WinAPI_GetPerformanceInfo',
1395
+ 'WinAPI_GetPEType', 'WinAPI_GetPhysicallyInstalledSystemMemory',
1396
+ 'WinAPI_GetPixel', 'WinAPI_GetPolyFillMode', 'WinAPI_GetPosFromRect',
1397
+ 'WinAPI_GetPriorityClass', 'WinAPI_GetProcAddress',
1398
+ 'WinAPI_GetProcessAffinityMask', 'WinAPI_GetProcessCommandLine',
1399
+ 'WinAPI_GetProcessFileName', 'WinAPI_GetProcessHandleCount',
1400
+ 'WinAPI_GetProcessID', 'WinAPI_GetProcessIoCounters',
1401
+ 'WinAPI_GetProcessMemoryInfo', 'WinAPI_GetProcessName',
1402
+ 'WinAPI_GetProcessShutdownParameters', 'WinAPI_GetProcessTimes',
1403
+ 'WinAPI_GetProcessUser', 'WinAPI_GetProcessWindowStation',
1404
+ 'WinAPI_GetProcessWorkingDirectory', 'WinAPI_GetProfilesDirectory',
1405
+ 'WinAPI_GetPwrCapabilities', 'WinAPI_GetRawInputBuffer',
1406
+ 'WinAPI_GetRawInputBufferLength', 'WinAPI_GetRawInputData',
1407
+ 'WinAPI_GetRawInputDeviceInfo', 'WinAPI_GetRegionData',
1408
+ 'WinAPI_GetRegisteredRawInputDevices',
1409
+ 'WinAPI_GetRegKeyNameByHandle', 'WinAPI_GetRgnBox', 'WinAPI_GetROP2',
1410
+ 'WinAPI_GetRValue', 'WinAPI_GetSaveFileName', 'WinAPI_GetShellWindow',
1411
+ 'WinAPI_GetStartupInfo', 'WinAPI_GetStdHandle',
1412
+ 'WinAPI_GetStockObject', 'WinAPI_GetStretchBltMode',
1413
+ 'WinAPI_GetString', 'WinAPI_GetSysColor', 'WinAPI_GetSysColorBrush',
1414
+ 'WinAPI_GetSystemDefaultLangID', 'WinAPI_GetSystemDefaultLCID',
1415
+ 'WinAPI_GetSystemDefaultUILanguage', 'WinAPI_GetSystemDEPPolicy',
1416
+ 'WinAPI_GetSystemInfo', 'WinAPI_GetSystemMetrics',
1417
+ 'WinAPI_GetSystemPowerStatus', 'WinAPI_GetSystemTimes',
1418
+ 'WinAPI_GetSystemWow64Directory', 'WinAPI_GetTabbedTextExtent',
1419
+ 'WinAPI_GetTempFileName', 'WinAPI_GetTextAlign',
1420
+ 'WinAPI_GetTextCharacterExtra', 'WinAPI_GetTextColor',
1421
+ 'WinAPI_GetTextExtentPoint32', 'WinAPI_GetTextFace',
1422
+ 'WinAPI_GetTextMetrics', 'WinAPI_GetThemeAppProperties',
1423
+ 'WinAPI_GetThemeBackgroundContentRect',
1424
+ 'WinAPI_GetThemeBackgroundExtent', 'WinAPI_GetThemeBackgroundRegion',
1425
+ 'WinAPI_GetThemeBitmap', 'WinAPI_GetThemeBool',
1426
+ 'WinAPI_GetThemeColor', 'WinAPI_GetThemeDocumentationProperty',
1427
+ 'WinAPI_GetThemeEnumValue', 'WinAPI_GetThemeFilename',
1428
+ 'WinAPI_GetThemeFont', 'WinAPI_GetThemeInt', 'WinAPI_GetThemeMargins',
1429
+ 'WinAPI_GetThemeMetric', 'WinAPI_GetThemePartSize',
1430
+ 'WinAPI_GetThemePosition', 'WinAPI_GetThemePropertyOrigin',
1431
+ 'WinAPI_GetThemeRect', 'WinAPI_GetThemeString',
1432
+ 'WinAPI_GetThemeSysBool', 'WinAPI_GetThemeSysColor',
1433
+ 'WinAPI_GetThemeSysColorBrush', 'WinAPI_GetThemeSysFont',
1434
+ 'WinAPI_GetThemeSysInt', 'WinAPI_GetThemeSysSize',
1435
+ 'WinAPI_GetThemeSysString', 'WinAPI_GetThemeTextExtent',
1436
+ 'WinAPI_GetThemeTextMetrics', 'WinAPI_GetThemeTransitionDuration',
1437
+ 'WinAPI_GetThreadDesktop', 'WinAPI_GetThreadErrorMode',
1438
+ 'WinAPI_GetThreadLocale', 'WinAPI_GetThreadUILanguage',
1439
+ 'WinAPI_GetTickCount', 'WinAPI_GetTickCount64',
1440
+ 'WinAPI_GetTimeFormat', 'WinAPI_GetTopWindow',
1441
+ 'WinAPI_GetUDFColorMode', 'WinAPI_GetUpdateRect',
1442
+ 'WinAPI_GetUpdateRgn', 'WinAPI_GetUserDefaultLangID',
1443
+ 'WinAPI_GetUserDefaultLCID', 'WinAPI_GetUserDefaultUILanguage',
1444
+ 'WinAPI_GetUserGeoID', 'WinAPI_GetUserObjectInformation',
1445
+ 'WinAPI_GetVersion', 'WinAPI_GetVersionEx',
1446
+ 'WinAPI_GetVolumeInformation', 'WinAPI_GetVolumeInformationByHandle',
1447
+ 'WinAPI_GetVolumeNameForVolumeMountPoint', 'WinAPI_GetWindow',
1448
+ 'WinAPI_GetWindowDC', 'WinAPI_GetWindowDisplayAffinity',
1449
+ 'WinAPI_GetWindowExt', 'WinAPI_GetWindowFileName',
1450
+ 'WinAPI_GetWindowHeight', 'WinAPI_GetWindowInfo',
1451
+ 'WinAPI_GetWindowLong', 'WinAPI_GetWindowOrg',
1452
+ 'WinAPI_GetWindowPlacement', 'WinAPI_GetWindowRect',
1453
+ 'WinAPI_GetWindowRgn', 'WinAPI_GetWindowRgnBox',
1454
+ 'WinAPI_GetWindowSubclass', 'WinAPI_GetWindowText',
1455
+ 'WinAPI_GetWindowTheme', 'WinAPI_GetWindowThreadProcessId',
1456
+ 'WinAPI_GetWindowWidth', 'WinAPI_GetWorkArea',
1457
+ 'WinAPI_GetWorldTransform', 'WinAPI_GetXYFromPoint',
1458
+ 'WinAPI_GlobalMemoryStatus', 'WinAPI_GradientFill',
1459
+ 'WinAPI_GUIDFromString', 'WinAPI_GUIDFromStringEx', 'WinAPI_HashData',
1460
+ 'WinAPI_HashString', 'WinAPI_HiByte', 'WinAPI_HideCaret',
1461
+ 'WinAPI_HiDWord', 'WinAPI_HiWord', 'WinAPI_InflateRect',
1462
+ 'WinAPI_InitMUILanguage', 'WinAPI_InProcess',
1463
+ 'WinAPI_IntersectClipRect', 'WinAPI_IntersectRect',
1464
+ 'WinAPI_IntToDWord', 'WinAPI_IntToFloat', 'WinAPI_InvalidateRect',
1465
+ 'WinAPI_InvalidateRgn', 'WinAPI_InvertANDBitmap',
1466
+ 'WinAPI_InvertColor', 'WinAPI_InvertRect', 'WinAPI_InvertRgn',
1467
+ 'WinAPI_IOCTL', 'WinAPI_IsAlphaBitmap', 'WinAPI_IsBadCodePtr',
1468
+ 'WinAPI_IsBadReadPtr', 'WinAPI_IsBadStringPtr',
1469
+ 'WinAPI_IsBadWritePtr', 'WinAPI_IsChild', 'WinAPI_IsClassName',
1470
+ 'WinAPI_IsDoorOpen', 'WinAPI_IsElevated', 'WinAPI_IsHungAppWindow',
1471
+ 'WinAPI_IsIconic', 'WinAPI_IsInternetConnected',
1472
+ 'WinAPI_IsLoadKBLayout', 'WinAPI_IsMemory',
1473
+ 'WinAPI_IsNameInExpression', 'WinAPI_IsNetworkAlive',
1474
+ 'WinAPI_IsPathShared', 'WinAPI_IsProcessInJob',
1475
+ 'WinAPI_IsProcessorFeaturePresent', 'WinAPI_IsRectEmpty',
1476
+ 'WinAPI_IsThemeActive',
1477
+ 'WinAPI_IsThemeBackgroundPartiallyTransparent',
1478
+ 'WinAPI_IsThemePartDefined', 'WinAPI_IsValidLocale',
1479
+ 'WinAPI_IsWindow', 'WinAPI_IsWindowEnabled', 'WinAPI_IsWindowUnicode',
1480
+ 'WinAPI_IsWindowVisible', 'WinAPI_IsWow64Process',
1481
+ 'WinAPI_IsWritable', 'WinAPI_IsZoomed', 'WinAPI_Keybd_Event',
1482
+ 'WinAPI_KillTimer', 'WinAPI_LineDDA', 'WinAPI_LineTo',
1483
+ 'WinAPI_LoadBitmap', 'WinAPI_LoadCursor', 'WinAPI_LoadCursorFromFile',
1484
+ 'WinAPI_LoadIcon', 'WinAPI_LoadIconMetric',
1485
+ 'WinAPI_LoadIconWithScaleDown', 'WinAPI_LoadImage',
1486
+ 'WinAPI_LoadIndirectString', 'WinAPI_LoadKeyboardLayout',
1487
+ 'WinAPI_LoadLibrary', 'WinAPI_LoadLibraryEx', 'WinAPI_LoadMedia',
1488
+ 'WinAPI_LoadResource', 'WinAPI_LoadShell32Icon', 'WinAPI_LoadString',
1489
+ 'WinAPI_LoadStringEx', 'WinAPI_LoByte', 'WinAPI_LocalFree',
1490
+ 'WinAPI_LockDevice', 'WinAPI_LockFile', 'WinAPI_LockResource',
1491
+ 'WinAPI_LockWindowUpdate', 'WinAPI_LockWorkStation', 'WinAPI_LoDWord',
1492
+ 'WinAPI_LongMid', 'WinAPI_LookupIconIdFromDirectoryEx',
1493
+ 'WinAPI_LoWord', 'WinAPI_LPtoDP', 'WinAPI_MAKELANGID',
1494
+ 'WinAPI_MAKELCID', 'WinAPI_MakeLong', 'WinAPI_MakeQWord',
1495
+ 'WinAPI_MakeWord', 'WinAPI_MapViewOfFile', 'WinAPI_MapVirtualKey',
1496
+ 'WinAPI_MaskBlt', 'WinAPI_MessageBeep', 'WinAPI_MessageBoxCheck',
1497
+ 'WinAPI_MessageBoxIndirect', 'WinAPI_MirrorIcon',
1498
+ 'WinAPI_ModifyWorldTransform', 'WinAPI_MonitorFromPoint',
1499
+ 'WinAPI_MonitorFromRect', 'WinAPI_MonitorFromWindow',
1500
+ 'WinAPI_Mouse_Event', 'WinAPI_MoveFileEx', 'WinAPI_MoveMemory',
1501
+ 'WinAPI_MoveTo', 'WinAPI_MoveToEx', 'WinAPI_MoveWindow',
1502
+ 'WinAPI_MsgBox', 'WinAPI_MulDiv', 'WinAPI_MultiByteToWideChar',
1503
+ 'WinAPI_MultiByteToWideCharEx', 'WinAPI_NtStatusToDosError',
1504
+ 'WinAPI_OemToChar', 'WinAPI_OffsetClipRgn', 'WinAPI_OffsetPoints',
1505
+ 'WinAPI_OffsetRect', 'WinAPI_OffsetRgn', 'WinAPI_OffsetWindowOrg',
1506
+ 'WinAPI_OpenDesktop', 'WinAPI_OpenFileById', 'WinAPI_OpenFileDlg',
1507
+ 'WinAPI_OpenFileMapping', 'WinAPI_OpenIcon',
1508
+ 'WinAPI_OpenInputDesktop', 'WinAPI_OpenJobObject', 'WinAPI_OpenMutex',
1509
+ 'WinAPI_OpenProcess', 'WinAPI_OpenProcessToken',
1510
+ 'WinAPI_OpenSemaphore', 'WinAPI_OpenThemeData',
1511
+ 'WinAPI_OpenWindowStation', 'WinAPI_PageSetupDlg',
1512
+ 'WinAPI_PaintDesktop', 'WinAPI_PaintRgn', 'WinAPI_ParseURL',
1513
+ 'WinAPI_ParseUserName', 'WinAPI_PatBlt', 'WinAPI_PathAddBackslash',
1514
+ 'WinAPI_PathAddExtension', 'WinAPI_PathAppend',
1515
+ 'WinAPI_PathBuildRoot', 'WinAPI_PathCanonicalize',
1516
+ 'WinAPI_PathCommonPrefix', 'WinAPI_PathCompactPath',
1517
+ 'WinAPI_PathCompactPathEx', 'WinAPI_PathCreateFromUrl',
1518
+ 'WinAPI_PathFindExtension', 'WinAPI_PathFindFileName',
1519
+ 'WinAPI_PathFindNextComponent', 'WinAPI_PathFindOnPath',
1520
+ 'WinAPI_PathGetArgs', 'WinAPI_PathGetCharType',
1521
+ 'WinAPI_PathGetDriveNumber', 'WinAPI_PathIsContentType',
1522
+ 'WinAPI_PathIsDirectory', 'WinAPI_PathIsDirectoryEmpty',
1523
+ 'WinAPI_PathIsExe', 'WinAPI_PathIsFileSpec',
1524
+ 'WinAPI_PathIsLFNFileSpec', 'WinAPI_PathIsRelative',
1525
+ 'WinAPI_PathIsRoot', 'WinAPI_PathIsSameRoot',
1526
+ 'WinAPI_PathIsSystemFolder', 'WinAPI_PathIsUNC',
1527
+ 'WinAPI_PathIsUNCServer', 'WinAPI_PathIsUNCServerShare',
1528
+ 'WinAPI_PathMakeSystemFolder', 'WinAPI_PathMatchSpec',
1529
+ 'WinAPI_PathParseIconLocation', 'WinAPI_PathRelativePathTo',
1530
+ 'WinAPI_PathRemoveArgs', 'WinAPI_PathRemoveBackslash',
1531
+ 'WinAPI_PathRemoveExtension', 'WinAPI_PathRemoveFileSpec',
1532
+ 'WinAPI_PathRenameExtension', 'WinAPI_PathSearchAndQualify',
1533
+ 'WinAPI_PathSkipRoot', 'WinAPI_PathStripPath',
1534
+ 'WinAPI_PathStripToRoot', 'WinAPI_PathToRegion',
1535
+ 'WinAPI_PathUndecorate', 'WinAPI_PathUnExpandEnvStrings',
1536
+ 'WinAPI_PathUnmakeSystemFolder', 'WinAPI_PathUnquoteSpaces',
1537
+ 'WinAPI_PathYetAnotherMakeUniqueName', 'WinAPI_PickIconDlg',
1538
+ 'WinAPI_PlayEnhMetaFile', 'WinAPI_PlaySound', 'WinAPI_PlgBlt',
1539
+ 'WinAPI_PointFromRect', 'WinAPI_PolyBezier', 'WinAPI_PolyBezierTo',
1540
+ 'WinAPI_PolyDraw', 'WinAPI_Polygon', 'WinAPI_PostMessage',
1541
+ 'WinAPI_PrimaryLangId', 'WinAPI_PrintDlg', 'WinAPI_PrintDlgEx',
1542
+ 'WinAPI_PrintWindow', 'WinAPI_ProgIDFromCLSID', 'WinAPI_PtInRect',
1543
+ 'WinAPI_PtInRectEx', 'WinAPI_PtInRegion', 'WinAPI_PtVisible',
1544
+ 'WinAPI_QueryDosDevice', 'WinAPI_QueryInformationJobObject',
1545
+ 'WinAPI_QueryPerformanceCounter', 'WinAPI_QueryPerformanceFrequency',
1546
+ 'WinAPI_RadialGradientFill', 'WinAPI_ReadDirectoryChanges',
1547
+ 'WinAPI_ReadFile', 'WinAPI_ReadProcessMemory', 'WinAPI_Rectangle',
1548
+ 'WinAPI_RectInRegion', 'WinAPI_RectIsEmpty', 'WinAPI_RectVisible',
1549
+ 'WinAPI_RedrawWindow', 'WinAPI_RegCloseKey',
1550
+ 'WinAPI_RegConnectRegistry', 'WinAPI_RegCopyTree',
1551
+ 'WinAPI_RegCopyTreeEx', 'WinAPI_RegCreateKey',
1552
+ 'WinAPI_RegDeleteEmptyKey', 'WinAPI_RegDeleteKey',
1553
+ 'WinAPI_RegDeleteKeyValue', 'WinAPI_RegDeleteTree',
1554
+ 'WinAPI_RegDeleteTreeEx', 'WinAPI_RegDeleteValue',
1555
+ 'WinAPI_RegDisableReflectionKey', 'WinAPI_RegDuplicateHKey',
1556
+ 'WinAPI_RegEnableReflectionKey', 'WinAPI_RegEnumKey',
1557
+ 'WinAPI_RegEnumValue', 'WinAPI_RegFlushKey',
1558
+ 'WinAPI_RegisterApplicationRestart', 'WinAPI_RegisterClass',
1559
+ 'WinAPI_RegisterClassEx', 'WinAPI_RegisterHotKey',
1560
+ 'WinAPI_RegisterPowerSettingNotification',
1561
+ 'WinAPI_RegisterRawInputDevices', 'WinAPI_RegisterShellHookWindow',
1562
+ 'WinAPI_RegisterWindowMessage', 'WinAPI_RegLoadMUIString',
1563
+ 'WinAPI_RegNotifyChangeKeyValue', 'WinAPI_RegOpenKey',
1564
+ 'WinAPI_RegQueryInfoKey', 'WinAPI_RegQueryLastWriteTime',
1565
+ 'WinAPI_RegQueryMultipleValues', 'WinAPI_RegQueryReflectionKey',
1566
+ 'WinAPI_RegQueryValue', 'WinAPI_RegRestoreKey', 'WinAPI_RegSaveKey',
1567
+ 'WinAPI_RegSetValue', 'WinAPI_ReleaseCapture', 'WinAPI_ReleaseDC',
1568
+ 'WinAPI_ReleaseMutex', 'WinAPI_ReleaseSemaphore',
1569
+ 'WinAPI_ReleaseStream', 'WinAPI_RemoveClipboardFormatListener',
1570
+ 'WinAPI_RemoveDirectory', 'WinAPI_RemoveFontMemResourceEx',
1571
+ 'WinAPI_RemoveFontResourceEx', 'WinAPI_RemoveWindowSubclass',
1572
+ 'WinAPI_ReOpenFile', 'WinAPI_ReplaceFile', 'WinAPI_ReplaceTextDlg',
1573
+ 'WinAPI_ResetEvent', 'WinAPI_RestartDlg', 'WinAPI_RestoreDC',
1574
+ 'WinAPI_RGB', 'WinAPI_RotatePoints', 'WinAPI_RoundRect',
1575
+ 'WinAPI_SaveDC', 'WinAPI_SaveFileDlg', 'WinAPI_SaveHBITMAPToFile',
1576
+ 'WinAPI_SaveHICONToFile', 'WinAPI_ScaleWindowExt',
1577
+ 'WinAPI_ScreenToClient', 'WinAPI_SearchPath', 'WinAPI_SelectClipPath',
1578
+ 'WinAPI_SelectClipRgn', 'WinAPI_SelectObject',
1579
+ 'WinAPI_SendMessageTimeout', 'WinAPI_SetActiveWindow',
1580
+ 'WinAPI_SetArcDirection', 'WinAPI_SetBitmapBits',
1581
+ 'WinAPI_SetBitmapDimensionEx', 'WinAPI_SetBkColor',
1582
+ 'WinAPI_SetBkMode', 'WinAPI_SetBoundsRect', 'WinAPI_SetBrushOrg',
1583
+ 'WinAPI_SetCapture', 'WinAPI_SetCaretBlinkTime', 'WinAPI_SetCaretPos',
1584
+ 'WinAPI_SetClassLongEx', 'WinAPI_SetColorAdjustment',
1585
+ 'WinAPI_SetCompression', 'WinAPI_SetCurrentDirectory',
1586
+ 'WinAPI_SetCurrentProcessExplicitAppUserModelID', 'WinAPI_SetCursor',
1587
+ 'WinAPI_SetDCBrushColor', 'WinAPI_SetDCPenColor',
1588
+ 'WinAPI_SetDefaultPrinter', 'WinAPI_SetDeviceGammaRamp',
1589
+ 'WinAPI_SetDIBColorTable', 'WinAPI_SetDIBits',
1590
+ 'WinAPI_SetDIBitsToDevice', 'WinAPI_SetDllDirectory',
1591
+ 'WinAPI_SetEndOfFile', 'WinAPI_SetEnhMetaFileBits',
1592
+ 'WinAPI_SetErrorMode', 'WinAPI_SetEvent', 'WinAPI_SetFileAttributes',
1593
+ 'WinAPI_SetFileInformationByHandleEx', 'WinAPI_SetFilePointer',
1594
+ 'WinAPI_SetFilePointerEx', 'WinAPI_SetFileShortName',
1595
+ 'WinAPI_SetFileValidData', 'WinAPI_SetFocus', 'WinAPI_SetFont',
1596
+ 'WinAPI_SetForegroundWindow', 'WinAPI_SetFRBuffer',
1597
+ 'WinAPI_SetGraphicsMode', 'WinAPI_SetHandleInformation',
1598
+ 'WinAPI_SetInformationJobObject', 'WinAPI_SetKeyboardLayout',
1599
+ 'WinAPI_SetKeyboardState', 'WinAPI_SetLastError',
1600
+ 'WinAPI_SetLayeredWindowAttributes', 'WinAPI_SetLocaleInfo',
1601
+ 'WinAPI_SetMapMode', 'WinAPI_SetMessageExtraInfo', 'WinAPI_SetParent',
1602
+ 'WinAPI_SetPixel', 'WinAPI_SetPolyFillMode',
1603
+ 'WinAPI_SetPriorityClass', 'WinAPI_SetProcessAffinityMask',
1604
+ 'WinAPI_SetProcessShutdownParameters',
1605
+ 'WinAPI_SetProcessWindowStation', 'WinAPI_SetRectRgn',
1606
+ 'WinAPI_SetROP2', 'WinAPI_SetSearchPathMode',
1607
+ 'WinAPI_SetStretchBltMode', 'WinAPI_SetSysColors',
1608
+ 'WinAPI_SetSystemCursor', 'WinAPI_SetTextAlign',
1609
+ 'WinAPI_SetTextCharacterExtra', 'WinAPI_SetTextColor',
1610
+ 'WinAPI_SetTextJustification', 'WinAPI_SetThemeAppProperties',
1611
+ 'WinAPI_SetThreadDesktop', 'WinAPI_SetThreadErrorMode',
1612
+ 'WinAPI_SetThreadExecutionState', 'WinAPI_SetThreadLocale',
1613
+ 'WinAPI_SetThreadUILanguage', 'WinAPI_SetTimer',
1614
+ 'WinAPI_SetUDFColorMode', 'WinAPI_SetUserGeoID',
1615
+ 'WinAPI_SetUserObjectInformation', 'WinAPI_SetVolumeMountPoint',
1616
+ 'WinAPI_SetWindowDisplayAffinity', 'WinAPI_SetWindowExt',
1617
+ 'WinAPI_SetWindowLong', 'WinAPI_SetWindowOrg',
1618
+ 'WinAPI_SetWindowPlacement', 'WinAPI_SetWindowPos',
1619
+ 'WinAPI_SetWindowRgn', 'WinAPI_SetWindowsHookEx',
1620
+ 'WinAPI_SetWindowSubclass', 'WinAPI_SetWindowText',
1621
+ 'WinAPI_SetWindowTheme', 'WinAPI_SetWinEventHook',
1622
+ 'WinAPI_SetWorldTransform', 'WinAPI_SfcIsFileProtected',
1623
+ 'WinAPI_SfcIsKeyProtected', 'WinAPI_ShellAboutDlg',
1624
+ 'WinAPI_ShellAddToRecentDocs', 'WinAPI_ShellChangeNotify',
1625
+ 'WinAPI_ShellChangeNotifyDeregister',
1626
+ 'WinAPI_ShellChangeNotifyRegister', 'WinAPI_ShellCreateDirectory',
1627
+ 'WinAPI_ShellEmptyRecycleBin', 'WinAPI_ShellExecute',
1628
+ 'WinAPI_ShellExecuteEx', 'WinAPI_ShellExtractAssociatedIcon',
1629
+ 'WinAPI_ShellExtractIcon', 'WinAPI_ShellFileOperation',
1630
+ 'WinAPI_ShellFlushSFCache', 'WinAPI_ShellGetFileInfo',
1631
+ 'WinAPI_ShellGetIconOverlayIndex', 'WinAPI_ShellGetImageList',
1632
+ 'WinAPI_ShellGetKnownFolderIDList', 'WinAPI_ShellGetKnownFolderPath',
1633
+ 'WinAPI_ShellGetLocalizedName', 'WinAPI_ShellGetPathFromIDList',
1634
+ 'WinAPI_ShellGetSetFolderCustomSettings', 'WinAPI_ShellGetSettings',
1635
+ 'WinAPI_ShellGetSpecialFolderLocation',
1636
+ 'WinAPI_ShellGetSpecialFolderPath', 'WinAPI_ShellGetStockIconInfo',
1637
+ 'WinAPI_ShellILCreateFromPath', 'WinAPI_ShellNotifyIcon',
1638
+ 'WinAPI_ShellNotifyIconGetRect', 'WinAPI_ShellObjectProperties',
1639
+ 'WinAPI_ShellOpenFolderAndSelectItems', 'WinAPI_ShellOpenWithDlg',
1640
+ 'WinAPI_ShellQueryRecycleBin',
1641
+ 'WinAPI_ShellQueryUserNotificationState',
1642
+ 'WinAPI_ShellRemoveLocalizedName', 'WinAPI_ShellRestricted',
1643
+ 'WinAPI_ShellSetKnownFolderPath', 'WinAPI_ShellSetLocalizedName',
1644
+ 'WinAPI_ShellSetSettings', 'WinAPI_ShellStartNetConnectionDlg',
1645
+ 'WinAPI_ShellUpdateImage', 'WinAPI_ShellUserAuthenticationDlg',
1646
+ 'WinAPI_ShellUserAuthenticationDlgEx', 'WinAPI_ShortToWord',
1647
+ 'WinAPI_ShowCaret', 'WinAPI_ShowCursor', 'WinAPI_ShowError',
1648
+ 'WinAPI_ShowLastError', 'WinAPI_ShowMsg', 'WinAPI_ShowOwnedPopups',
1649
+ 'WinAPI_ShowWindow', 'WinAPI_ShutdownBlockReasonCreate',
1650
+ 'WinAPI_ShutdownBlockReasonDestroy',
1651
+ 'WinAPI_ShutdownBlockReasonQuery', 'WinAPI_SizeOfResource',
1652
+ 'WinAPI_StretchBlt', 'WinAPI_StretchDIBits',
1653
+ 'WinAPI_StrFormatByteSize', 'WinAPI_StrFormatByteSizeEx',
1654
+ 'WinAPI_StrFormatKBSize', 'WinAPI_StrFromTimeInterval',
1655
+ 'WinAPI_StringFromGUID', 'WinAPI_StringLenA', 'WinAPI_StringLenW',
1656
+ 'WinAPI_StrLen', 'WinAPI_StrokeAndFillPath', 'WinAPI_StrokePath',
1657
+ 'WinAPI_StructToArray', 'WinAPI_SubLangId', 'WinAPI_SubtractRect',
1658
+ 'WinAPI_SwapDWord', 'WinAPI_SwapQWord', 'WinAPI_SwapWord',
1659
+ 'WinAPI_SwitchColor', 'WinAPI_SwitchDesktop',
1660
+ 'WinAPI_SwitchToThisWindow', 'WinAPI_SystemParametersInfo',
1661
+ 'WinAPI_TabbedTextOut', 'WinAPI_TerminateJobObject',
1662
+ 'WinAPI_TerminateProcess', 'WinAPI_TextOut', 'WinAPI_TileWindows',
1663
+ 'WinAPI_TrackMouseEvent', 'WinAPI_TransparentBlt',
1664
+ 'WinAPI_TwipsPerPixelX', 'WinAPI_TwipsPerPixelY',
1665
+ 'WinAPI_UnhookWindowsHookEx', 'WinAPI_UnhookWinEvent',
1666
+ 'WinAPI_UnionRect', 'WinAPI_UnionStruct', 'WinAPI_UniqueHardwareID',
1667
+ 'WinAPI_UnloadKeyboardLayout', 'WinAPI_UnlockFile',
1668
+ 'WinAPI_UnmapViewOfFile', 'WinAPI_UnregisterApplicationRestart',
1669
+ 'WinAPI_UnregisterClass', 'WinAPI_UnregisterHotKey',
1670
+ 'WinAPI_UnregisterPowerSettingNotification',
1671
+ 'WinAPI_UpdateLayeredWindow', 'WinAPI_UpdateLayeredWindowEx',
1672
+ 'WinAPI_UpdateLayeredWindowIndirect', 'WinAPI_UpdateResource',
1673
+ 'WinAPI_UpdateWindow', 'WinAPI_UrlApplyScheme',
1674
+ 'WinAPI_UrlCanonicalize', 'WinAPI_UrlCombine', 'WinAPI_UrlCompare',
1675
+ 'WinAPI_UrlCreateFromPath', 'WinAPI_UrlFixup', 'WinAPI_UrlGetPart',
1676
+ 'WinAPI_UrlHash', 'WinAPI_UrlIs', 'WinAPI_UserHandleGrantAccess',
1677
+ 'WinAPI_ValidateRect', 'WinAPI_ValidateRgn', 'WinAPI_VerQueryRoot',
1678
+ 'WinAPI_VerQueryValue', 'WinAPI_VerQueryValueEx',
1679
+ 'WinAPI_WaitForInputIdle', 'WinAPI_WaitForMultipleObjects',
1680
+ 'WinAPI_WaitForSingleObject', 'WinAPI_WideCharToMultiByte',
1681
+ 'WinAPI_WidenPath', 'WinAPI_WindowFromDC', 'WinAPI_WindowFromPoint',
1682
+ 'WinAPI_WordToShort', 'WinAPI_Wow64EnableWow64FsRedirection',
1683
+ 'WinAPI_WriteConsole', 'WinAPI_WriteFile',
1684
+ 'WinAPI_WriteProcessMemory', 'WinAPI_ZeroMemory',
1685
+ 'WinNet_AddConnection', 'WinNet_AddConnection2',
1686
+ 'WinNet_AddConnection3', 'WinNet_CancelConnection',
1687
+ 'WinNet_CancelConnection2', 'WinNet_CloseEnum',
1688
+ 'WinNet_ConnectionDialog', 'WinNet_ConnectionDialog1',
1689
+ 'WinNet_DisconnectDialog', 'WinNet_DisconnectDialog1',
1690
+ 'WinNet_EnumResource', 'WinNet_GetConnection',
1691
+ 'WinNet_GetConnectionPerformance', 'WinNet_GetLastError',
1692
+ 'WinNet_GetNetworkInformation', 'WinNet_GetProviderName',
1693
+ 'WinNet_GetResourceInformation', 'WinNet_GetResourceParent',
1694
+ 'WinNet_GetUniversalName', 'WinNet_GetUser', 'WinNet_OpenEnum',
1695
+ 'WinNet_RestoreConnection', 'WinNet_UseConnection', 'Word_Create',
1696
+ 'Word_DocAdd', 'Word_DocAttach', 'Word_DocClose', 'Word_DocExport',
1697
+ 'Word_DocFind', 'Word_DocFindReplace', 'Word_DocGet',
1698
+ 'Word_DocLinkAdd', 'Word_DocLinkGet', 'Word_DocOpen',
1699
+ 'Word_DocPictureAdd', 'Word_DocPrint', 'Word_DocRangeSet',
1700
+ 'Word_DocSave', 'Word_DocSaveAs', 'Word_DocTableRead',
1701
+ 'Word_DocTableWrite', 'Word_Quit'
1702
+ ),
1703
+ 5 => array(
1704
+ 'ce', 'comments-end', 'comments-start', 'cs'
1705
+ ),
1706
+ 6 => array(
1707
+ 'Au3Stripper_Ignore_Funcs', 'Au3Stripper_Ignore_Variables',
1708
+ 'Au3Stripper_Off', 'Au3Stripper_On', 'Au3Stripper_Parameters',
1709
+ 'AutoIt3Wrapper_Add_Constants', 'AutoIt3Wrapper_Au3Check_Parameters',
1710
+ 'AutoIt3Wrapper_Au3Check_Stop_OnWarning', 'AutoIt3Wrapper_Aut2Exe',
1711
+ 'AutoIt3Wrapper_AutoIt3', 'AutoIt3Wrapper_AutoIt3Dir',
1712
+ 'AutoIt3Wrapper_Change2CUI', 'AutoIt3Wrapper_Compile_Both',
1713
+ 'AutoIt3Wrapper_Compression', 'AutoIt3Wrapper_EndIf',
1714
+ 'AutoIt3Wrapper_Icon', 'AutoIt3Wrapper_If_Compile',
1715
+ 'AutoIt3Wrapper_If_Run', 'AutoIt3Wrapper_Jump_To_First_Error',
1716
+ 'AutoIt3Wrapper_OutFile', 'AutoIt3Wrapper_OutFile_Type',
1717
+ 'AutoIt3Wrapper_OutFile_X64', 'AutoIt3Wrapper_PlugIn_Funcs',
1718
+ 'AutoIt3Wrapper_Res_Comment', 'Autoit3Wrapper_Res_Compatibility',
1719
+ 'AutoIt3Wrapper_Res_Description', 'AutoIt3Wrapper_Res_Field',
1720
+ 'AutoIt3Wrapper_Res_File_Add', 'AutoIt3Wrapper_Res_FileVersion',
1721
+ 'AutoIt3Wrapper_Res_FileVersion_AutoIncrement',
1722
+ 'AutoIt3Wrapper_Res_Icon_Add', 'AutoIt3Wrapper_Res_Language',
1723
+ 'AutoIt3Wrapper_Res_LegalCopyright',
1724
+ 'AutoIt3Wrapper_Res_ProductVersion',
1725
+ 'AutoIt3Wrapper_Res_requestedExecutionLevel',
1726
+ 'AutoIt3Wrapper_Res_SaveSource', 'AutoIt3Wrapper_Run_After',
1727
+ 'AutoIt3Wrapper_Run_Au3Check', 'AutoIt3Wrapper_Run_Au3Stripper',
1728
+ 'AutoIt3Wrapper_Run_Before', 'AutoIt3Wrapper_Run_Debug_Mode',
1729
+ 'AutoIt3Wrapper_Run_SciTE_Minimized',
1730
+ 'AutoIt3Wrapper_Run_SciTE_OutputPane_Minimized',
1731
+ 'AutoIt3Wrapper_Run_Tidy', 'AutoIt3Wrapper_ShowProgress',
1732
+ 'AutoIt3Wrapper_Testing', 'AutoIt3Wrapper_Tidy_Stop_OnError',
1733
+ 'AutoIt3Wrapper_UPX_Parameters', 'AutoIt3Wrapper_UseUPX',
1734
+ 'AutoIt3Wrapper_UseX64', 'AutoIt3Wrapper_Version',
1735
+ 'AutoIt3Wrapper_Versioning', 'AutoIt3Wrapper_Versioning_Parameters',
1736
+ 'Tidy_Off', 'Tidy_On', 'Tidy_Parameters', 'EndRegion', 'Region'
1737
+ ),
1738
+ 7 => array(
1739
+ 'APPSKEY', 'BACKSPACE', 'BROWSER_BACK', 'BROWSER_FAVORITES',
1740
+ 'BROWSER_FORWARD', 'BROWSER_HOME', 'BROWSER_REFRESH', 'BROWSER_SEARCH',
1741
+ 'BROWSER_STOP', 'BS', 'CAPSLOCK', 'DEL', 'DELETE', 'DOWN', 'END', 'ENTER',
1742
+ 'ESC', 'ESCAPE', 'F1', 'F10', 'F11', 'F12', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7',
1743
+ 'F8', 'F9', 'HOME', 'INS', 'INSERT', 'LAUNCH_APP1', 'LAUNCH_APP2',
1744
+ 'LAUNCH_MAIL', 'LAUNCH_MEDIA', 'LEFT', 'MEDIA_NEXT', 'MEDIA_PLAY_PAUSE',
1745
+ 'MEDIA_PREV', 'MEDIA_STOP', 'NUMLOCK', 'NUMPAD0', 'NUMPAD1', 'NUMPAD2',
1746
+ 'NUMPAD3', 'NUMPAD4', 'NUMPAD5', 'NUMPAD6', 'NUMPAD7', 'NUMPAD8',
1747
+ 'NUMPAD9', 'NUMPADADD', 'NUMPADDIV', 'NUMPADDOT', 'NUMPADENTER',
1748
+ 'NUMPADMULT', 'NUMPADSUB', 'PAUSE', 'PGDN', 'PGUP', 'PRINTSCREEN',
1749
+ 'RIGHT', 'SCROLLLOCK', 'SLEEP', 'SPACE', 'TAB', 'UP', 'VOLUME_DOWN',
1750
+ 'VOLUME_MUTE', 'VOLUME_UP'
1751
+ ),
1752
+ 8 => array(
1753
+ 'include', 'include-once', 'NoTrayIcon', 'OnAutoItStartRegister',
1754
+ 'RequireAdmin'
1755
+ ),
1756
+ 9 => array(
1757
+ 'pragma'
1758
+ ),
1759
+ 10 => array(
1760
+ 'forcedef', 'forceref', 'ignorefunc'
1761
+ ),
1762
+ ),
1763
+ 'SYMBOLS' => array(
1764
+ 0 => array('(', ')', '[', ']',
1765
+ '+', '-', '*', '/', '&', '^', ':', '?',
1766
+ '=', '==', '+=', '-=', '*=', '/=', '&=',
1767
+ '<', '<=', '>', '>=',
1768
+ ',', '.'
1769
+ ),
1770
+ 1 => array('_' // Undersore for continuation of strings.
1771
+ ),
1772
+ ),
1773
+ 'CASE_SENSITIVE' => array(
1774
+ GESHI_COMMENTS => false,
1775
+ 1 => false,
1776
+ 2 => false,
1777
+ 3 => false,
1778
+ 4 => false,
1779
+ 5 => false,
1780
+ 6 => false,
1781
+ 7 => false,
1782
+ 8 => false,
1783
+ 9 => false,
1784
+ 10 => false
1785
+ ),
1786
+ 'STYLES' => array(
1787
+ 'KEYWORDS' => array(
1788
+ 1 => 'color: #0000FF;', // Keywords
1789
+ 2 => 'color: #808000;', // Macros
1790
+ 3 => 'color: #000090;', // Native Functions
1791
+ 4 => 'color: #0080FF;', // UDF Functions
1792
+ 5 => 'color: #808000;', // Comments
1793
+ 6 => 'color: #DC143C;', // Directives
1794
+ 7 => 'color: #5A5A5A;', // Keylist
1795
+ 8 => 'color: #808000;', // PreProcessor
1796
+ 9 => 'color: #DC143C;', // Pragma
1797
+ 10 => 'color: #DC143C;' // Au3Check
1798
+ ),
1799
+ 'COMMENTS' => array(
1800
+ 0 => 'color: #FF0000; font-style: italic',
1801
+ 1 => 'color: #008000; font-style: italic;',
1802
+ 2 => 'color: #008000; font-style: italic;',
1803
+ 'MULTI' => 'color: #008000; font-style: italic;',
1804
+ ),
1805
+ 'ESCAPE_CHAR' => array(
1806
+ 0 => ''
1807
+ ),
1808
+ 'BRACKETS' => array(
1809
+ 0 => 'color: #FF8000;'
1810
+ ),
1811
+ 'STRINGS' => array(
1812
+ 0 => 'color: #FF0000;'
1813
+ ),
1814
+ 'NUMBERS' => array(
1815
+ 0 => 'color: #0000FF;'
1816
+ ),
1817
+ 'METHODS' => array(
1818
+ 1 => 'color: #FF0000;'
1819
+ ),
1820
+ 'SYMBOLS' => array(
1821
+ 0 => 'color: #FF8000;',
1822
+ 1 => 'color: #000000;'
1823
+ ),
1824
+ 'REGEXPS' => array(
1825
+ 0 => 'color: #5A5A5A;', // Variables
1826
+ 1 => 'color: #5A5A5A;' // Keylist
1827
+ ),
1828
+ 'SCRIPT' => array()
1829
+ ),
1830
+ 'URLS' => array(
1831
+ 1 => 'https://www.autoitscript.com/autoit3/docs/keywords.htm', // Keywords
1832
+ 2 => 'https://www.autoitscript.com/autoit3/docs/macros.htm#{FNAME}', // Macros
1833
+ 3 => 'https://www.autoitscript.com/autoit3/docs/functions/{FNAME}.htm', // Native Functions
1834
+ 4 => 'https://www.autoitscript.com/autoit3/docs/libfunctions/_{FNAME}.htm', // UDF Functions
1835
+ 5 => 'https://www.autoitscript.com/autoit3/docs/keywords/comments-start.htm', // Comments
1836
+ 6 => 'https://www.autoitscript.com/autoit3/scite/docs/AutoIt3Wrapper.html', // Directives
1837
+ 7 => 'https://www.autoitscript.com/autoit3/docs/appendix/SendKeys.htm#KeysList', // Keylist
1838
+ 8 => 'https://www.autoitscript.com/autoit3/docs/keywords/{FNAME}.htm', // PreProcessor
1839
+ 9 => 'https://www.autoitscript.com/autoit3/docs/keywords/{FNAME}.htm', // Pragma
1840
+ 10 => 'https://www.autoitscript.com/autoit3/docs/intro/au3check.htm' // Au3Check
1841
+ ),
1842
+ 'NUMBERS' =>
1843
+ GESHI_NUMBER_INT_BASIC | GESHI_NUMBER_INT_CSTYLE | GESHI_NUMBER_BIN_PREFIX_0B |
1844
+ GESHI_NUMBER_OCT_PREFIX | GESHI_NUMBER_HEX_PREFIX | GESHI_NUMBER_FLT_NONSCI |
1845
+ GESHI_NUMBER_FLT_NONSCI_F | GESHI_NUMBER_FLT_SCI_SHORT | GESHI_NUMBER_FLT_SCI_ZERO,
1846
+ 'OOLANG' => true,
1847
+ 'OBJECT_SPLITTERS' => array(
1848
+ 1 => '.'
1849
+ ),
1850
+ 'REGEXPS' => array(
1851
+ 0 => '\$[a-zA-Z0-9_]*', // Variables
1852
+ 1 => '\\{[a-zA-Z0-9_]+\\}' // Keylist
1853
+ ),
1854
+ 'STRICT_MODE_APPLIES' => GESHI_MAYBE,
1855
+ 'SCRIPT_DELIMITERS' => array(),
1856
+ 'HIGHLIGHT_STRICT_BLOCK' => array(
1857
+ 0 => true,
1858
+ 1 => true,
1859
+ 2 => true,
1860
+ 3 => true
1861
+ ),
1862
+ 'PARSER_CONTROL' => array(
1863
+ 'KEYWORDS' => array(
1864
+ 4 => array(
1865
+ 'DISALLOWED_BEFORE' => '(?<!\w)\_'
1866
+ ),
1867
+ 5 => array(
1868
+ 'DISALLOWED_BEFORE' => '(?<!\w)\#'
1869
+ ),
1870
+ 6 => array(
1871
+ 'DISALLOWED_BEFORE' => '(?<!\w)\#',
1872
+ 'DISALLOWED_AFTER' => '(?<!=)[^\r\n]*'
1873
+ ),
1874
+ 8 => array(
1875
+ 'DISALLOWED_BEFORE' => '(?<!\w)\#',
1876
+ 'DISALLOWED_AFTER' => '(?<!=)[^\r\n]*'
1877
+ ),
1878
+ 9 => array(
1879
+ 'DISALLOWED_BEFORE' => '(?<!\w)\#',
1880
+ 'DISALLOWED_AFTER' => '(?<!=)[^\r\n]*'
1881
+ ),
1882
+ 10 => array(
1883
+ 'DISALLOWED_BEFORE' => '(?<!\w)\#',
1884
+ 'DISALLOWED_AFTER' => '(?<!=)[^\r\n]*'
1885
+ )
1886
+ )
1887
+ )
1888
+ );
includes/geshi/avisynth.php ADDED
@@ -0,0 +1,193 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*************************************************************************************
3
+ * avisynth.php
4
+ * --------
5
+ * Author: Ryan Jones (sciguyryan@gmail.com)
6
+ * Copyright: (c) 2008 Ryan Jones
7
+ * Release Version: 1.0.9.0
8
+ * Date Started: 2008/10/08
9
+ *
10
+ * AviSynth language file for GeSHi.
11
+ *
12
+ * CHANGES
13
+ * -------
14
+ * 2008/10/08 (1.0.8.1)
15
+ * - First Release
16
+ *
17
+ * TODO (updated 2008/10/08)
18
+ * -------------------------
19
+ * * There are also some special words that can't currently be specified directly in GeSHi as they may
20
+ * also be used as variables which would really mess things up.
21
+ * * Also there is an issue with the escape character as this language uses a muti-character escape system. Escape char should be """ but has been left
22
+ * as empty due to this restiction.
23
+ *
24
+ *************************************************************************************
25
+ *
26
+ * This file is part of GeSHi.
27
+ *
28
+ * GeSHi is free software; you can redistribute it and/or modify
29
+ * it under the terms of the GNU General Public License as published by
30
+ * the Free Software Foundation; either version 2 of the License, or
31
+ * (at your option) any later version.
32
+ *
33
+ * GeSHi is distributed in the hope that it will be useful,
34
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
35
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36
+ * GNU General Public License for more details.
37
+ *
38
+ * You should have received a copy of the GNU General Public License
39
+ * along with GeSHi; if not, write to the Free Software
40
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
41
+ *
42
+ ************************************************************************************/
43
+
44
+ $language_data = array (
45
+ 'LANG_NAME' => 'AviSynth',
46
+ 'COMMENT_SINGLE' => array(1 => '#'),
47
+ 'COMMENT_MULTI' => array('/*' => '*/', '[*' => '*]'),
48
+ 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
49
+ 'QUOTEMARKS' => array('"'),
50
+ 'ESCAPE_CHAR' => '',
51
+ 'KEYWORDS' => array(
52
+ // Reserved words.
53
+ 1 => array(
54
+ 'try', 'cache', 'function', 'global', 'return'
55
+ ),
56
+ // Constants / special variables.
57
+ 2 => array(
58
+ 'true', 'yes', 'false', 'no', '__END__'
59
+ ),
60
+ // Internal Filters.
61
+ 3 => array(
62
+ 'AviSource', 'AviFileSource', 'AddBorders', 'AlignedSplice', 'AssumeFPS', 'AssumeScaledFPS',
63
+ 'AssumeFrameBased', 'AssumeFieldBased', 'AssumeBFF', 'AssumeTFF', 'Amplify', 'AmplifydB',
64
+ 'AssumeSampleRate', 'AudioDub', 'AudioDubEx', 'Animate', 'ApplyRange',
65
+ 'BicubicResize', 'BilinearResize', 'BlackmanResize', 'Blur', 'Bob', 'BlankClip', 'Blackness',
66
+ 'ColorYUV', 'ConvertBackToYUY2', 'ConvertToRGB', 'ConvertToRGB24', 'ConvertToRGB32',
67
+ 'ConvertToYUY2', 'ConvertToY8', 'ConvertToYV411', 'ConvertToYV12', 'ConvertToYV16', 'ConvertToYV24',
68
+ 'ColorKeyMask', 'Crop', 'CropBottom', 'ChangeFPS', 'ConvertFPS', 'ComplementParity', 'ConvertAudioTo8bit',
69
+ 'ConvertAudioTo16bit', 'ConvertAudioTo24bit', 'ConvertAudioTo32bit', 'ConvertAudioToFloat', 'ConvertToMono',
70
+ 'ConditionalFilter', 'ConditionalReader', 'ColorBars', 'Compare',
71
+ 'DirectShowSource', 'DeleteFrame', 'Dissolve', 'DuplicateFrame', 'DoubleWeave', 'DelayAudio',
72
+ 'EnsureVBRMP3Sync',
73
+ 'FixLuminance', 'FlipHorizontal', 'FlipVertical', 'FixBrokenChromaUpsampling', 'FadeIn0', 'FadeIn',
74
+ 'FadeIn2', 'FadeOut0', 'FadeOut', 'FadeOut2', 'FadeIO0', 'FadeIO', 'FadeIO2', 'FreezeFrame', 'FrameEvaluate',
75
+ 'GreyScale', 'GaussResize', 'GeneralConvolution', 'GetChannel', 'GetLeftChannel', 'GetRightChannel',
76
+ 'HorizontalReduceBy2', 'Histogram',
77
+ 'ImageReader', 'ImageSource', 'ImageWriter', 'Invert', 'Interleave', 'Info',
78
+ 'KillAudio', 'KillVideo',
79
+ 'Levels', 'Limiter', 'Layer', 'Letterbox', 'LanczosResize', 'Lanczos4Resize', 'Loop',
80
+ 'MergeARGB', 'MergeRGB', 'MergeChroma', 'MergeLuma', 'Merge', 'Mask', 'MaskHS', 'MergeChannels', 'MixAudio',
81
+ 'MonoToStereo', 'MessageClip',
82
+ 'Normalize',
83
+ 'OpenDMLSource', 'Overlay',
84
+ 'PointResize', 'PeculiarBlend', 'Pulldown',
85
+ 'RGBAdjust', 'ResetMask', 'Reverse', 'ResampleAudio', 'ReduceBy2',
86
+ 'SegmentedAviSource', 'SegmentedDirectShowSource', 'SoundOut', 'ShowAlpha', 'ShowRed', 'ShowGreen',
87
+ 'ShowBlue', 'SwapUV', 'Subtract', 'SincResize', 'Spline16Resize', 'Spline36Resize', 'Spline64Resize',
88
+ 'SelectEven', 'SelectOdd', 'SelectEvery', 'SelectRangeEvery', 'Sharpen', 'SpatialSoften', 'SeparateFields',
89
+ 'ShowFiveVersions', 'ShowFrameNumber', 'ShowSMPTE', 'ShowTime', 'StackHorizontal', 'StackVertical', 'Subtitle',
90
+ 'SwapFields', 'SuperEQ', 'SSRC', 'ScriptClip',
91
+ 'Tweak', 'TurnLeft', 'TurnRight', 'Turn180', 'TemporalSoften', 'TimeStretch', 'TCPServer', 'TCPSource', 'Trim',
92
+ 'Tone',
93
+ 'UToY', 'UToY8', 'UnalignedSplice',
94
+ 'VToY', 'VToY8', 'VerticalReduceBy2', 'Version',
95
+ 'WavSource', 'Weave', 'WriteFile', 'WriteFileIf', 'WriteFileStart', 'WriteFileEnd',
96
+ 'YToUV'
97
+ ),
98
+ // Internal functions.
99
+ 4 => array(
100
+ 'Abs', 'Apply', 'Assert', 'AverageLuma', 'AverageChromaU', 'AverageChromaV',
101
+ 'Ceil', 'Cos', 'Chr', 'ChromaUDifference', 'ChromaVDifference',
102
+ 'Defined', 'Default',
103
+ 'Exp', 'Exist', 'Eval',
104
+ 'Floor', 'Frac', 'Float', 'Findstr', 'GetMTMode',
105
+ 'HexValue',
106
+ 'Int', 'IsBool', 'IsClip', 'IsFloat', 'IsInt', 'IsString', 'Import',
107
+ 'LoadPlugin', 'Log', 'LCase', 'LeftStr', 'LumaDifference', 'LoadVirtualDubPlugin', 'LoadVFAPIPlugin',
108
+ 'LoadCPlugin', 'Load_Stdcall_Plugin',
109
+ 'Max', 'MulDiv', 'MidStr',
110
+ 'NOP',
111
+ 'OPT_AllowFloatAudio', 'OPT_UseWaveExtensible',
112
+ 'Pi', 'Pow',
113
+ 'Round', 'Rand', 'RevStr', 'RightStr', 'RGBDifference', 'RGBDifferenceFromPrevious', 'RGBDifferenceToNext',
114
+ 'Sin', 'Sqrt', 'Sign', 'Spline', 'StrLen', 'String', 'Select', 'SetMemoryMax', 'SetWorkingDir', 'SetMTMode',
115
+ 'SetPlanarLegacyAlignment',
116
+ 'Time',
117
+ 'UCase', 'UDifferenceFromPrevious', 'UDifferenceToNext', 'UPlaneMax', 'UPlaneMin', 'UPlaneMedian',
118
+ 'UPlaneMinMaxDifference',
119
+ 'Value', 'VersionNumber', 'VersionString', 'VDifferenceFromPrevious', 'VDifferenceToNext', 'VPlaneMax',
120
+ 'VPlaneMin', 'VPlaneMedian', 'VPlaneMinMaxDifference',
121
+ 'YDifferenceFromPrevious', 'YDifferenceToNext', 'YPlaneMax', 'YPlaneMin', 'YPlaneMedian',
122
+ 'YPlaneMinMaxDifference'
123
+ )
124
+ ),
125
+ 'SYMBOLS' => array(
126
+ '+', '++', '-', '--', '/', '*', '%',
127
+ '=', '==', '<', '<=', '>', '>=', '<>', '!=',
128
+ '!', '?', ':',
129
+ '|', '||', '&&',
130
+ '\\',
131
+ '(', ')', '{', '}',
132
+ '.', ','
133
+ ),
134
+ 'CASE_SENSITIVE' => array(
135
+ GESHI_COMMENTS => false,
136
+ 1 => false,
137
+ 2 => false,
138
+ 3 => false,
139
+ 4 => true,
140
+ ),
141
+ 'STYLES' => array(
142
+ 'KEYWORDS' => array(
143
+ 1 => 'color:#9966CC; font-weight:bold;',
144
+ 2 => 'color:#0000FF; font-weight:bold;',
145
+ 3 => 'color:#CC3300; font-weight:bold;',
146
+ 4 => 'color:#660000; font-weight:bold;'
147
+