mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Compare commits
	
		
			246 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|  | 6062d3b25c | ||
|  | 3878afa2e0 | ||
|  | fa8998c6b6 | ||
|  | 99dcd501aa | ||
|  | da7d019df3 | ||
|  | 4fc0c90cff | ||
|  | 4ecb6425d2 | ||
|  | 6dfab80df7 | ||
|  | 1ebf1e77e5 | ||
|  | 0c810cc016 | ||
|  | 7e32b45aa8 | ||
|  | 4c1a84716a | ||
|  | fd4111cdbe | ||
|  | 2fac182a90 | ||
|  | f87c3c4996 | ||
|  | 7631db2183 | ||
|  | da5bc18d64 | ||
|  | f2af2156fa | ||
|  | 5bf8cf50ae | ||
|  | dc22b0f869 | ||
|  | 5382c1b795 | ||
|  | dbe851726e | ||
|  | 3720e49618 | ||
|  | 380a51e4a4 | ||
|  | 459b1034a7 | ||
|  | c2f567770c | ||
|  | c94c908d5d | ||
|  | 585d74ecc9 | ||
|  | d8422e63f6 | ||
|  | ca12a99970 | ||
|  | 1fdcafb1ae | ||
|  | 2eede37248 | ||
|  | 6489f7009d | ||
|  | bdfe2aa6e4 | ||
|  | 007de4691b | ||
|  | 141e495447 | ||
|  | 5e68714ae5 | ||
|  | 4ae6455e0e | ||
|  | f393ea307d | ||
|  | 828fc7a19b | ||
|  | accf734a74 | ||
|  | 6bd86ad46b | ||
|  | d7207f3399 | ||
|  | e018b4322e | ||
|  | 415c7d32a2 | ||
|  | 164caa2755 | ||
|  | ec2f0cb82a | ||
|  | 604918b6ad | ||
|  | eb7e72a4a9 | ||
|  | 1ac694f149 | ||
|  | ef49fe417f | ||
|  | d28828b7d7 | ||
|  | 8a42f76f03 | ||
|  | 745ce14d47 | ||
|  | dc41ca23c6 | ||
|  | 9da42fba5b | ||
|  | fac4633337 | ||
|  | 3ab0de831f | ||
|  | 599d146118 | ||
|  | 5cdbb2b113 | ||
|  | 611584a414 | ||
|  | 33478b2d23 | ||
|  | 46ca8e93c2 | ||
|  | da58febc3e | ||
|  | 7ca2384e03 | ||
|  | 6b2bb52dcd | ||
|  | 000a42ef3d | ||
|  | 03e40718ff | ||
|  | 4386fb7f28 | ||
|  | 0db4d05671 | ||
|  | d113e98915 | ||
|  | e9acecf71f | ||
|  | 76b84decfe | ||
|  | 80148ae4e4 | ||
|  | 4af679c27f | ||
|  | ba86d9fff0 | ||
|  | 3a07410569 | ||
|  | b43828db9b | ||
|  | 8251588088 | ||
|  | 22ff4898a5 | ||
|  | 9c4c6d908a | ||
|  | 3f9d98974c | ||
|  | 98a23c6a53 | ||
|  | 3086326d12 | ||
|  | ac4594e3b1 | ||
|  | 47dcca839e | ||
|  | 572078a708 | ||
|  | 0442f4bd06 | ||
|  | 2861a8f19c | ||
|  | 1d0028fd53 | ||
|  | c3288543af | ||
|  | 3c96f9eb53 | ||
|  | 6bd8d3a3b7 | ||
|  | 63e017fbaa | ||
|  | f993b7358b | ||
|  | 4239d5453c | ||
|  | b0e6f17612 | ||
|  | c97c10623b | ||
|  | d566ccd0be | ||
|  | 8b4daefbde | ||
|  | bbea29be55 | ||
|  | f016867e1a | ||
|  | 35f2699eb3 | ||
|  | 3ad66da2bf | ||
|  | 004f9b4710 | ||
|  | 3e06b95f98 | ||
|  | 8591dffcae | ||
|  | 3d69c047f0 | ||
|  | 78a1183c26 | ||
|  | 58ea517b32 | ||
|  | 0722b6855b | ||
|  | a6a745d99d | ||
|  | 7394e9400b | ||
|  | 15f0366e12 | ||
|  | 07e3d9d3b3 | ||
|  | 55eaf03afb | ||
|  | 7a6849b3ac | ||
|  | fa5496eef4 | ||
|  | 893bd7e204 | ||
|  | 8a54ce57a5 | ||
|  | 3851b7c016 | ||
|  | 3dbcfa8af8 | ||
|  | 9936a30879 | ||
|  | 59e935b05d | ||
|  | 53f93f68db | ||
|  | 66f9bd1ab4 | ||
|  | 78d4abe808 | ||
|  | cb97417af8 | ||
|  | d1c94c75ea | ||
|  | 0c8c6c9814 | ||
|  | 3270a8896d | ||
|  | 20f19bf049 | ||
|  | 0cc33fd560 | ||
|  | fa54fc2735 | ||
|  | 216e0457ff | ||
|  | 678f90acf7 | ||
|  | dd0d5c08bb | ||
|  | 3837fed59e | ||
|  | e4ce4edd5c | ||
|  | a0fb54fe70 | ||
|  | e946ceaa6f | ||
|  | 285af6512e | ||
|  | 5ae5108a69 | ||
|  | 02ae60f434 | ||
|  | 03dc4e1ff4 | ||
|  | c39b42abba | ||
|  | 661972f585 | ||
|  | 078aff6ee3 | ||
|  | 4fed108b2c | ||
|  | fc9beb58aa | ||
|  | 4623b4a83e | ||
|  | 2ba6ecefe5 | ||
|  | 91c2a4682d | ||
|  | 738be195ef | ||
|  | 5dcc4d74ec | ||
|  | 4213bec62a | ||
|  | babe733bf4 | ||
|  | ab5f60555e | ||
|  | b61e33a49e | ||
|  | a0d5a8338b | ||
|  | eec321f013 | ||
|  | e538f72b63 | ||
|  | bde843b67f | ||
|  | 44c3d47b30 | ||
|  | f1d3f396bb | ||
|  | 65ae444791 | ||
|  | e9916c644d | ||
|  | 1940a9ea92 | ||
|  | c9f8a2677a | ||
|  | 5b6b3f74b5 | ||
|  | f9ccac4240 | ||
|  | aa7aae7808 | ||
|  | 7c66301583 | ||
|  | a5b0b333b0 | ||
|  | 7df872eb7f | ||
|  | 6a4f4c724c | ||
|  | 76828c45c7 | ||
|  | 27215f148b | ||
|  | 77d52463ad | ||
|  | 0f6c2afbf6 | ||
|  | cbaa3ca6f4 | ||
|  | 63f54bdf06 | ||
|  | b302863a4d | ||
|  | ec46b1a92e | ||
|  | ed65040539 | ||
|  | cc1a420bc5 | ||
|  | 8555b20380 | ||
|  | 6462ba70f9 | ||
|  | 1ac43e0d7d | ||
|  | 6ac51968c6 | ||
|  | cbcadf8e45 | ||
|  | 74b111501d | ||
|  | 67e4212f64 | ||
|  | 55559a1020 | ||
|  | b103232e0e | ||
|  | b587379f4a | ||
|  | ba654b2a1d | ||
|  | ae39475133 | ||
|  | c641ea833f | ||
|  | ebf10c2cd6 | ||
|  | 29ef8beb3f | ||
|  | 2b5f38264b | ||
|  | 5850716eb3 | ||
|  | 3db6c4a5b6 | ||
|  | e79607372b | ||
|  | b5472ab753 | ||
|  | 013188dcd9 | ||
|  | 3cf7bfbee2 | ||
|  | 5f647f2236 | ||
|  | 3bb740fe9f | ||
|  | 50db5c012e | ||
|  | dcb14d0fc7 | ||
|  | 419cfe54e0 | ||
|  | ce1f51a34f | ||
|  | 5fd7992f98 | ||
|  | fda0f2a042 | ||
|  | 6af4ab6db1 | ||
|  | 6aab682728 | ||
|  | a364e4a2dc | ||
|  | 1bb639617c | ||
|  | 068c8a341d | ||
|  | 02ced24751 | ||
|  | ea0145fda5 | ||
|  | b009c85b64 | ||
|  | 781133d0d3 | ||
|  | ef22eee4d9 | ||
|  | b609f24bbc | ||
|  | 83b03df98b | ||
|  | 96c2f86613 | ||
|  | 56c3b8c3fe | ||
|  | 43ee45d9b6 | ||
|  | 02db72515f | ||
|  | af9b5f0e98 | ||
|  | a145bd92f7 | ||
|  | 20204cd9fc | ||
|  | 3445e55744 | ||
|  | 036b9c4094 | ||
|  | ce928d8b64 | ||
|  | edadca9085 | ||
|  | 08290ac49e | ||
|  | 42944660bd | ||
|  | ae5e1c5a85 | ||
|  | f4f5ccb3f5 | ||
|  | ab3f44cb6e | ||
|  | d7757033ab | ||
|  | 8bb9241e6e | 
							
								
								
									
										45
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										45
									
								
								.gitmodules
									
									
									
									
										vendored
									
									
								
							| @@ -96,7 +96,7 @@ | ||||
| 	url = https://github.com/bfad/Sublime-Lasso | ||||
| [submodule "vendor/grammars/chapel-tmbundle"] | ||||
| 	path = vendor/grammars/chapel-tmbundle | ||||
| 	url = https://github.com/bholt/chapel-tmbundle | ||||
| 	url = https://github.com/chapel-lang/chapel-tmbundle | ||||
| [submodule "vendor/grammars/sublime-nginx"] | ||||
| 	path = vendor/grammars/sublime-nginx | ||||
| 	url = https://github.com/brandonwamboldt/sublime-nginx | ||||
| @@ -118,9 +118,6 @@ | ||||
| [submodule "vendor/grammars/cucumber-tmbundle"] | ||||
| 	path = vendor/grammars/cucumber-tmbundle | ||||
| 	url = https://github.com/cucumber/cucumber-tmbundle | ||||
| [submodule "vendor/grammars/Handlebars"] | ||||
| 	path = vendor/grammars/Handlebars | ||||
| 	url = https://github.com/daaain/Handlebars | ||||
| [submodule "vendor/grammars/powershell"] | ||||
| 	path = vendor/grammars/powershell | ||||
| 	url = https://github.com/SublimeText/PowerShell | ||||
| @@ -169,9 +166,6 @@ | ||||
| [submodule "vendor/grammars/Textmate-Gosu-Bundle"] | ||||
| 	path = vendor/grammars/Textmate-Gosu-Bundle | ||||
| 	url = https://github.com/jpcamara/Textmate-Gosu-Bundle | ||||
| [submodule "vendor/grammars/jquery-tmbundle"] | ||||
| 	path = vendor/grammars/jquery-tmbundle | ||||
| 	url = https://github.com/kswedberg/jquery-tmbundle | ||||
| [submodule "vendor/grammars/fish-tmbundle"] | ||||
| 	path = vendor/grammars/fish-tmbundle | ||||
| 	url = https://github.com/l15n/fish-tmbundle | ||||
| @@ -346,9 +340,6 @@ | ||||
| [submodule "vendor/grammars/java.tmbundle"] | ||||
| 	path = vendor/grammars/java.tmbundle | ||||
| 	url = https://github.com/textmate/java.tmbundle | ||||
| [submodule "vendor/grammars/javadoc.tmbundle"] | ||||
| 	path = vendor/grammars/javadoc.tmbundle | ||||
| 	url = https://github.com/textmate/javadoc.tmbundle | ||||
| [submodule "vendor/grammars/javascript-objective-j.tmbundle"] | ||||
| 	path = vendor/grammars/javascript-objective-j.tmbundle | ||||
| 	url = https://github.com/textmate/javascript-objective-j.tmbundle | ||||
| @@ -424,9 +415,6 @@ | ||||
| [submodule "vendor/grammars/ruby-haml.tmbundle"] | ||||
| 	path = vendor/grammars/ruby-haml.tmbundle | ||||
| 	url = https://github.com/textmate/ruby-haml.tmbundle | ||||
| [submodule "vendor/grammars/ruby-on-rails-tmbundle"] | ||||
| 	path = vendor/grammars/ruby-on-rails-tmbundle | ||||
| 	url = https://github.com/textmate/ruby-on-rails-tmbundle | ||||
| [submodule "vendor/grammars/scheme.tmbundle"] | ||||
| 	path = vendor/grammars/scheme.tmbundle | ||||
| 	url = https://github.com/textmate/scheme.tmbundle | ||||
| @@ -445,15 +433,6 @@ | ||||
| [submodule "vendor/grammars/tcl.tmbundle"] | ||||
| 	path = vendor/grammars/tcl.tmbundle | ||||
| 	url = https://github.com/textmate/tcl.tmbundle | ||||
| [submodule "vendor/grammars/text.tmbundle"] | ||||
| 	path = vendor/grammars/text.tmbundle | ||||
| 	url = https://github.com/textmate/text.tmbundle | ||||
| [submodule "vendor/grammars/textile.tmbundle"] | ||||
| 	path = vendor/grammars/textile.tmbundle | ||||
| 	url = https://github.com/textmate/textile.tmbundle | ||||
| [submodule "vendor/grammars/textmate.tmbundle"] | ||||
| 	path = vendor/grammars/textmate.tmbundle | ||||
| 	url = https://github.com/textmate/textmate.tmbundle | ||||
| [submodule "vendor/grammars/thrift.tmbundle"] | ||||
| 	path = vendor/grammars/thrift.tmbundle | ||||
| 	url = https://github.com/textmate/thrift.tmbundle | ||||
| @@ -487,10 +466,6 @@ | ||||
| [submodule "vendor/grammars/sublime-nix"] | ||||
| 	path = vendor/grammars/sublime-nix | ||||
| 	url = https://github.com/wmertens/sublime-nix | ||||
| [submodule "vendor/grammars/ada.tmbundle"] | ||||
| 	path = vendor/grammars/ada.tmbundle | ||||
| 	url = https://github.com/aroben/ada.tmbundle | ||||
| 	branch = better-with-highlighting | ||||
| [submodule "vendor/grammars/oz-tmbundle"] | ||||
| 	path = vendor/grammars/oz-tmbundle | ||||
| 	url = https://github.com/eregon/oz-tmbundle | ||||
| @@ -612,6 +587,9 @@ | ||||
| [submodule "vendor/grammars/mediawiki.tmbundle"] | ||||
| 	path = vendor/grammars/mediawiki.tmbundle | ||||
| 	url = https://github.com/textmate/mediawiki.tmbundle | ||||
| [submodule "vendor/grammars/SublimeClarion"] | ||||
| 	path = vendor/grammars/SublimeClarion | ||||
| 	url = https://github.com/fushnisoft/SublimeClarion | ||||
| [submodule "vendor/grammars/oracle.tmbundle"] | ||||
| 	path = vendor/grammars/oracle.tmbundle | ||||
| 	url = https://github.com/mulander/oracle.tmbundle.git | ||||
| @@ -645,3 +623,18 @@ | ||||
| [submodule "vendor/grammars/perl.tmbundle"] | ||||
| 	path = vendor/grammars/perl.tmbundle | ||||
| 	url = https://github.com/textmate/perl.tmbundle | ||||
| [submodule "vendor/grammars/sublime-netlinx"] | ||||
| 	path = vendor/grammars/sublime-netlinx | ||||
| 	url = https://github.com/amclain/sublime-netlinx | ||||
| [submodule "vendor/grammars/Sublime-Red"] | ||||
| 	path = vendor/grammars/Sublime-Red | ||||
| 	url = https://github.com/Oldes/Sublime-Red | ||||
| [submodule "vendor/grammars/jflex.tmbundle"] | ||||
| 	path = vendor/grammars/jflex.tmbundle | ||||
| 	url = https://github.com/jflex-de/jflex.tmbundle.git | ||||
| [submodule "vendor/grammars/ada.tmbundle"] | ||||
| 	path = vendor/grammars/ada.tmbundle | ||||
| 	url = https://github.com/textmate/ada.tmbundle | ||||
| [submodule "vendor/grammars/api-blueprint-sublime-plugin"] | ||||
| 	path = vendor/grammars/api-blueprint-sublime-plugin | ||||
| 	url = https://github.com/apiaryio/api-blueprint-sublime-plugin | ||||
|   | ||||
| @@ -37,7 +37,7 @@ Assuming your code is being detected as the right language, in most cases this i | ||||
|  | ||||
| You can also try to fix the bug yourself and submit a Pull Request. [TextMate's documentation](http://manual.macromates.com/en/language_grammars) offers a good introduction on how to work with TextMate-compatible grammars. You can test grammars using [Lightshow](https://github-lightshow.herokuapp.com). | ||||
|  | ||||
| Once the bug has been fixed upstream, please let us know and we'll pick it up for GitHub. | ||||
| Once the bug has been fixed upstream, we'll pick it up for GitHub in the next release of Linguist. | ||||
|  | ||||
| ## Testing | ||||
|  | ||||
|   | ||||
							
								
								
									
										12
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								README.md
									
									
									
									
									
								
							| @@ -35,7 +35,7 @@ $ cat .gitattributes | ||||
|  | ||||
| Checking code you didn't write, such as JavaScript libraries, into your git repo is a common practice, but this often inflates your project's language stats and may even cause your project to be labeled as another language. By default, Linguist treats all of the paths defined in [lib/linguist/vendor.yml](https://github.com/github/linguist/blob/master/lib/linguist/vendor.yml) as vendored and therefore doesn't include them in the language statistics for a repository. Vendored files are also hidden by default in diffs on github.com. | ||||
|  | ||||
| Use the `linguist-vendored` attribute to vendor or un-vendor paths. | ||||
| Use the `linguist-vendored` attribute to vendor or un-vendor paths. Please note, overriding the vendored (or un-vendored) status of a file only affects the language statistics for the repository and not the behavior in diffs on github.com. | ||||
|  | ||||
| ``` | ||||
| $ cat .gitattributes | ||||
| @@ -53,16 +53,18 @@ project-docs/* linguist-documentation | ||||
| docs/formatter.rb linguist-documentation=false | ||||
| ``` | ||||
|  | ||||
| ### Using Emacs and Vim modelines | ||||
| ### Using Emacs or Vim modelines | ||||
|  | ||||
| Alternatively, you can use Vim and Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com | ||||
| Alternatively, you can use Vim or Emacs style modelines to set the language for a single file. Modelines can be placed anywhere within a file and are respected when determining how to syntax-highlight a file on GitHub.com | ||||
|  | ||||
| ##### Vim | ||||
| ``` | ||||
| Vim | ||||
| vim: set filetype=prolog: | ||||
| vim: set ft=cpp: | ||||
| ``` | ||||
|  | ||||
| Emacs | ||||
| ##### Emacs | ||||
| ``` | ||||
| -*- mode: php;-*- | ||||
| ``` | ||||
|  | ||||
|   | ||||
| @@ -14,13 +14,14 @@ Gem::Specification.new do |s| | ||||
|   s.executables << 'linguist' | ||||
|  | ||||
|   s.add_dependency 'charlock_holmes', '~> 0.7.3' | ||||
|   s.add_dependency 'escape_utils',    '~> 1.0.1' | ||||
|   s.add_dependency 'escape_utils',    '~> 1.1.0' | ||||
|   s.add_dependency 'mime-types',      '>= 1.19' | ||||
|   s.add_dependency 'rugged',          '~> 0.22.0b4' | ||||
|   s.add_dependency 'rugged',          '~> 0.23.0b1' | ||||
|  | ||||
|   s.add_development_dependency 'minitest', '>= 5.0' | ||||
|   s.add_development_dependency 'mocha' | ||||
|   s.add_development_dependency 'pry' | ||||
|   s.add_development_dependency 'rake' | ||||
|   s.add_development_dependency 'yajl-ruby' | ||||
|   s.add_development_dependency 'color-proximity', '~> 0.2.1' | ||||
| end | ||||
|   | ||||
							
								
								
									
										35
									
								
								grammars.yml
									
									
									
									
									
								
							
							
						
						
									
										35
									
								
								grammars.yml
									
									
									
									
									
								
							| @@ -50,8 +50,6 @@ vendor/grammars/G-Code/: | ||||
| - source.gcode | ||||
| vendor/grammars/GDScript-sublime/: | ||||
| - source.gdscript | ||||
| vendor/grammars/Handlebars: | ||||
| - text.html.handlebars | ||||
| vendor/grammars/IDL-Syntax: | ||||
| - source.webidl | ||||
| vendor/grammars/InnoSetup/: | ||||
| @@ -113,6 +111,8 @@ vendor/grammars/Sublime-QML: | ||||
| - source.qml | ||||
| vendor/grammars/Sublime-REBOL: | ||||
| - source.rebol | ||||
| vendor/grammars/Sublime-Red: | ||||
| - source.red | ||||
| vendor/grammars/Sublime-SQF-Language: | ||||
| - source.sqf | ||||
| vendor/grammars/Sublime-Text-2-OpenEdge-ABL: | ||||
| @@ -121,6 +121,8 @@ vendor/grammars/Sublime-VimL: | ||||
| - source.viml | ||||
| vendor/grammars/SublimeBrainfuck: | ||||
| - source.bf | ||||
| vendor/grammars/SublimeClarion/: | ||||
| - source.clarion | ||||
| vendor/grammars/SublimePapyrus/: | ||||
| - source.compiled-papyrus | ||||
| - source.papyrus | ||||
| @@ -152,6 +154,9 @@ vendor/grammars/antlr.tmbundle: | ||||
| vendor/grammars/apache.tmbundle: | ||||
| - source.apache-config | ||||
| - source.apache-config.mod_perl | ||||
| vendor/grammars/api-blueprint-sublime-plugin/: | ||||
| - text.html.markdown.source.gfm.apib | ||||
| - text.html.markdown.source.gfm.mson | ||||
| vendor/grammars/applescript.tmbundle: | ||||
| - source.applescript | ||||
| vendor/grammars/asciidoc.tmbundle/: | ||||
| @@ -289,12 +294,10 @@ vendor/grammars/java.tmbundle: | ||||
| - source.java-properties | ||||
| - text.html.jsp | ||||
| - text.junit-test-report | ||||
| vendor/grammars/javadoc.tmbundle: | ||||
| - text.html.javadoc | ||||
| vendor/grammars/javascript-objective-j.tmbundle: | ||||
| - source.js.objj | ||||
| vendor/grammars/jquery-tmbundle: | ||||
| - source.js.jquery | ||||
| vendor/grammars/jflex.tmbundle: | ||||
| - source.jflex | ||||
| vendor/grammars/json.tmbundle: | ||||
| - source.json | ||||
| vendor/grammars/kotlin-sublime-package: | ||||
| @@ -397,7 +400,7 @@ vendor/grammars/perl.tmbundle/: | ||||
| - source.perl | ||||
| - source.perl.6 | ||||
| vendor/grammars/php-smarty.tmbundle: | ||||
| - source.smarty | ||||
| - text.html.smarty | ||||
| vendor/grammars/php.tmbundle: | ||||
| - text.html.php | ||||
| vendor/grammars/pike-textmate: | ||||
| @@ -424,20 +427,14 @@ vendor/grammars/restructuredtext.tmbundle: | ||||
| - text.restructuredtext | ||||
| vendor/grammars/ruby-haml.tmbundle: | ||||
| - text.haml | ||||
| vendor/grammars/ruby-on-rails-tmbundle: | ||||
| - source.js.erb.rails | ||||
| - source.ruby.rails | ||||
| - source.ruby.rails.rjs | ||||
| - source.sql.ruby | ||||
| - text.html.erb.rails | ||||
| vendor/grammars/ruby-slim.tmbundle: | ||||
| - text.slim | ||||
| vendor/grammars/ruby.tmbundle: | ||||
| - source.ruby | ||||
| - text.html.erb | ||||
| vendor/grammars/sas.tmbundle: | ||||
| - source.SASLog | ||||
| - source.sas | ||||
| - source.sas_log | ||||
| vendor/grammars/sass-textmate-bundle: | ||||
| - source.sass | ||||
| vendor/grammars/scala.tmbundle: | ||||
| @@ -475,6 +472,9 @@ vendor/grammars/sublime-idris: | ||||
| - source.idris | ||||
| vendor/grammars/sublime-mask: | ||||
| - source.mask | ||||
| vendor/grammars/sublime-netlinx: | ||||
| - source.netlinx | ||||
| - source.netlinx.erb | ||||
| vendor/grammars/sublime-nginx: | ||||
| - source.nginx | ||||
| vendor/grammars/sublime-nix: | ||||
| @@ -514,13 +514,6 @@ vendor/grammars/swift.tmbundle: | ||||
| vendor/grammars/tcl.tmbundle: | ||||
| - source.tcl | ||||
| - text.html.tcl | ||||
| vendor/grammars/text.tmbundle: | ||||
| - text.plain | ||||
| vendor/grammars/textile.tmbundle: | ||||
| - text.html.textile | ||||
| vendor/grammars/textmate.tmbundle: | ||||
| - source.regexp.oniguruma | ||||
| - source.tm-properties | ||||
| vendor/grammars/thrift.tmbundle: | ||||
| - source.thrift | ||||
| vendor/grammars/toml.tmbundle: | ||||
|   | ||||
| @@ -53,11 +53,13 @@ module Linguist | ||||
|     def generated? | ||||
|       xcode_file? || | ||||
|       generated_net_designer_file? || | ||||
|       generated_net_specflow_feature_file? || | ||||
|       composer_lock? || | ||||
|       node_modules? || | ||||
|       godeps? || | ||||
|       generated_by_zephir? || | ||||
|       minified_files? || | ||||
|       source_map? || | ||||
|       compiled_coffeescript? || | ||||
|       generated_parser? || | ||||
|       generated_net_docfile? || | ||||
| @@ -66,6 +68,7 @@ module Linguist | ||||
|       generated_protocol_buffer_go? || | ||||
|       generated_protocol_buffer? || | ||||
|       generated_jni_header? || | ||||
|       generated_unity3d_meta? || | ||||
|       vcr_cassette? | ||||
|     end | ||||
|  | ||||
| @@ -96,6 +99,20 @@ module Linguist | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     # Internal: Is the blob a generated source map? | ||||
|     # | ||||
|     # Source Maps usually have .css.map or .js.map extensions. In case they | ||||
|     # are not following the name convention, detect them based on the content. | ||||
|     # | ||||
|     # Returns true or false. | ||||
|     def source_map? | ||||
|       return false unless extname.downcase == '.map' | ||||
|  | ||||
|       name =~ /(\.css|\.js)\.map$/i ||                 # Name convention | ||||
|       lines[0] =~ /^{"version":\d+,/ ||                # Revision 2 and later begin with the version number | ||||
|       lines[0] =~ /^\/\*\* Begin line maps\. \*\*\/{/  # Revision 1 begins with a magic comment | ||||
|     end | ||||
|  | ||||
|     # Internal: Is the blob of JS generated by CoffeeScript? | ||||
|     # | ||||
|     # CoffeeScript is meant to output JS that would be difficult to | ||||
| @@ -163,6 +180,17 @@ module Linguist | ||||
|     def generated_net_designer_file? | ||||
|       name.downcase =~ /\.designer\.cs$/ | ||||
|     end | ||||
|      | ||||
|     # Internal: Is this a codegen file for Specflow feature file? | ||||
|     # | ||||
|     # Visual Studio's SpecFlow extension generates *.feature.cs files | ||||
|     # from *.feature files, they are not meant to be consumed by humans.  | ||||
|     # Let's hide them. | ||||
|     # | ||||
|     # Returns true or false | ||||
|     def generated_net_specflow_feature_file? | ||||
|       name.downcase =~ /\.feature\.cs$/ | ||||
|     end | ||||
|  | ||||
|     # Internal: Is the blob of JS a parser generated by PEG.js? | ||||
|     # | ||||
| @@ -284,5 +312,18 @@ module Linguist | ||||
|       return false unless lines.count > 1 | ||||
|       return lines[0].include?("Generated by Cython") | ||||
|     end | ||||
|  | ||||
|     # Internal: Is this a metadata file from Unity3D? | ||||
|     # | ||||
|     # Unity3D Meta files start with: | ||||
|     #   fileFormatVersion: X | ||||
|     #   guid: XXXXXXXXXXXXXXX | ||||
|     # | ||||
|     # Return true or false | ||||
|     def generated_unity3d_meta? | ||||
|       return false unless extname == '.meta' | ||||
|       return false unless lines.count > 1 | ||||
|       return lines[0].include?("fileFormatVersion: ") | ||||
|     end | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -129,7 +129,7 @@ module Linguist | ||||
|     end | ||||
|  | ||||
|     disambiguate "Common Lisp", "OpenCL", "Cool" do |data| | ||||
|       if data.include?("(defun ") | ||||
|       if /^\s*\((defun|in-package|defpackage) /i.match(data) | ||||
|         Language["Common Lisp"] | ||||
|       elsif /^class/x.match(data) | ||||
|         Language["Cool"] | ||||
| @@ -155,16 +155,16 @@ module Linguist | ||||
|     end | ||||
|  | ||||
|     disambiguate "AsciiDoc", "AGS Script", "Public Key" do |data| | ||||
|       if /^[=-]+(\s|\n)|{{[A-Za-z]/.match(data) | ||||
|       if /^(----[- ]BEGIN|ssh-(rsa|dss)) /.match(data) | ||||
|         Language["Public Key"] | ||||
|       elsif /^[=-]+(\s|\n)|{{[A-Za-z]/.match(data) | ||||
|         Language["AsciiDoc"] | ||||
|       elsif /^(\/\/.+|((import|export)\s+)?(function|int|float|char)\s+((room|repeatedly|on|game)_)?([A-Za-z]+[A-Za-z_0-9]+)\s*[;\(])/.match(data) | ||||
|         Language["AGS Script"] | ||||
|       elsif /^-----BEGIN/.match(data) | ||||
|         Language["Public Key"] | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     disambiguate "FORTRAN", "Forth" do |data| | ||||
|     disambiguate "FORTRAN", "Forth", "Formatted" do |data| | ||||
|       if /^: /.match(data) | ||||
|         Language["Forth"] | ||||
|       elsif /^([c*][^a-z]|      (subroutine|program)\s|\s*!)/i.match(data) | ||||
| @@ -172,17 +172,19 @@ module Linguist | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     disambiguate "F#", "Forth", "GLSL" do |data| | ||||
|     disambiguate "F#", "Forth", "GLSL", "Filterscript" do |data| | ||||
|       if /^(: |new-device)/.match(data) | ||||
|         Language["Forth"] | ||||
|       elsif /^\s*(#light|import|let|module|namespace|open|type)/.match(data) | ||||
|         Language["F#"] | ||||
|       elsif /^\s*(#include|#pragma|precision|uniform|varying|void)/.match(data) | ||||
|       elsif /^\s*(#version|precision|uniform|varying|vec[234])/.match(data) | ||||
|         Language["GLSL"] | ||||
|       elsif /#include|#pragma\s+(rs|version)|__attribute__/.match(data) | ||||
|         Language["Filterscript"] | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     disambiguate "M", "MUF", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| | ||||
|     disambiguate "Limbo", "M", "MUF", "Mathematica", "Matlab", "Mercury", "Objective-C" do |data| | ||||
|       if ObjectiveCRegex.match(data) | ||||
|         Language["Objective-C"] | ||||
|       elsif data.include?(":- module") | ||||
| @@ -195,6 +197,8 @@ module Linguist | ||||
|         Language["Mathematica"] | ||||
|       elsif /^\s*%/.match(data) | ||||
|         Language["Matlab"] | ||||
|       elsif /^\w+\s*:\s*module\s*{/.match(data) | ||||
|         Language["Limbo"] | ||||
|       end | ||||
|     end | ||||
|  | ||||
| @@ -211,7 +215,7 @@ module Linguist | ||||
|     end | ||||
|  | ||||
|     disambiguate "Common Lisp", "NewLisp" do |data| | ||||
|       if /^\s*\((defun|in-package|defpackage) /.match(data) | ||||
|       if /^\s*\((defun|in-package|defpackage) /i.match(data) | ||||
|         Language["Common Lisp"] | ||||
|       elsif /^\s*\(define /.match(data) | ||||
|         Language["NewLisp"] | ||||
| @@ -261,5 +265,29 @@ module Linguist | ||||
|         Language["Makefile"] | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     disambiguate "OCaml", "Standard ML" do |data| | ||||
|       if /(^\s*module)|let rec |match\s+(\S+\s)+with/.match(data) | ||||
|         Language["OCaml"] | ||||
|       elsif /=> |case\s+(\S+\s)+of/.match(data) | ||||
|         Language["Standard ML"] | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     disambiguate "NL", "NewLisp" do |data| | ||||
|       if /^(b|g)[0-9]+ /.match(data) | ||||
|         Language["NL"] | ||||
|       else | ||||
|         Language["NewLisp"] | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     disambiguate "Rust", "RenderScript" do |data| | ||||
|       if data.include?("^(use |fn |mod |pub |macro_rules|impl|#!?\[)") | ||||
|         Language["Rust"] | ||||
|       elsif /#include|#pragma\s+(rs|version)|__attribute__/.match(data) | ||||
|         Language["RenderScript"] | ||||
|       end | ||||
|     end | ||||
|   end | ||||
| end | ||||
|   | ||||
| @@ -541,7 +541,7 @@ module Linguist | ||||
|     if extnames = extensions[name] | ||||
|       extnames.each do |extname| | ||||
|         if !options['extensions'].index { |x| x.downcase.end_with? extname.downcase } | ||||
|           warn "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" unless extname == '.script!' | ||||
|           warn "#{name} has a sample with extension (#{extname.downcase}) that isn't explicitly defined in languages.yml" | ||||
|           options['extensions'] << extname | ||||
|         end | ||||
|       end | ||||
|   | ||||
| @@ -28,6 +28,7 @@ | ||||
|  | ||||
| ABAP: | ||||
|   type: programming | ||||
|   color: "#E8274B" | ||||
|   extensions: | ||||
|   - .abap | ||||
|   ace_mode: abap | ||||
| @@ -45,7 +46,7 @@ AGS Script: | ||||
|  | ||||
| AMPL: | ||||
|   type: programming | ||||
|   color: "#00008B" | ||||
|   color: "#E6EFBB" | ||||
|   extensions: | ||||
|   - .ampl | ||||
|   tm_scope: source.ampl | ||||
| @@ -58,9 +59,17 @@ ANTLR: | ||||
|   - .g4 | ||||
|   ace_mode: text | ||||
|  | ||||
| API Blueprint: | ||||
|   type: markup | ||||
|   color: "#2ACCA8" | ||||
|   ace_mode: markdown | ||||
|   extensions: | ||||
|   - .apib | ||||
|   tm_scope: text.html.markdown.source.gfm.apib | ||||
|  | ||||
| APL: | ||||
|   type: programming | ||||
|   color: "#8a0707" | ||||
|   color: "#5A8164" | ||||
|   extensions: | ||||
|   - .apl | ||||
|   - .dyalog | ||||
| @@ -100,7 +109,7 @@ ATS: | ||||
| ActionScript: | ||||
|   type: programming | ||||
|   tm_scope: source.actionscript.3 | ||||
|   color: "#e3491a" | ||||
|   color: "#882B0F" | ||||
|   search_term: as3 | ||||
|   aliases: | ||||
|   - actionscript 3 | ||||
| @@ -118,12 +127,13 @@ Ada: | ||||
|   - .ada | ||||
|   - .ads | ||||
|   aliases: | ||||
|   - ada95ada2005 | ||||
|   - ada95 | ||||
|   - ada2005 | ||||
|   ace_mode: ada | ||||
|  | ||||
| Agda: | ||||
|   type: programming | ||||
|   color: "#467C91" | ||||
|   color: "#315665" | ||||
|   extensions: | ||||
|   - .agda | ||||
|   ace_mode: text | ||||
| @@ -150,7 +160,6 @@ ApacheConf: | ||||
|   - apache | ||||
|   extensions: | ||||
|   - .apacheconf | ||||
|   - .conf | ||||
|   tm_scope: source.apache-config | ||||
|   ace_mode: apache_conf | ||||
|  | ||||
| @@ -174,7 +183,7 @@ AppleScript: | ||||
|  | ||||
| Arc: | ||||
|   type: programming | ||||
|   color: "#ca2afe" | ||||
|   color: "#aa2afe" | ||||
|   extensions: | ||||
|   - .arc | ||||
|   tm_scope: none | ||||
| @@ -200,7 +209,7 @@ AsciiDoc: | ||||
|  | ||||
| AspectJ: | ||||
|   type: programming | ||||
|   color: "#1957b0" | ||||
|   color: "#a957b0" | ||||
|   extensions: | ||||
|   - .aj | ||||
|   tm_scope: none | ||||
| @@ -239,7 +248,7 @@ AutoHotkey: | ||||
|  | ||||
| AutoIt: | ||||
|   type: programming | ||||
|   color: "#36699B" | ||||
|   color: "#1C3552" | ||||
|   aliases: | ||||
|   - au3 | ||||
|   - AutoIt3 | ||||
| @@ -266,7 +275,6 @@ Awk: | ||||
|  | ||||
| Batchfile: | ||||
|   type: programming | ||||
|   group: Shell | ||||
|   search_term: bat | ||||
|   aliases: | ||||
|   - bat | ||||
| @@ -337,6 +345,7 @@ Boo: | ||||
|  | ||||
| Brainfuck: | ||||
|   type: programming | ||||
|   color: "#2F2530" | ||||
|   extensions: | ||||
|   - .b | ||||
|   - .bf | ||||
| @@ -496,14 +505,22 @@ ChucK: | ||||
|  | ||||
| Cirru: | ||||
|   type: programming | ||||
|   color: "#aaaaff" | ||||
|   color: "#ccccff" | ||||
|   ace_mode: cirru | ||||
|   extensions: | ||||
|   - .cirru | ||||
|  | ||||
| Clarion: | ||||
|   type: programming | ||||
|   color: "#db901e" | ||||
|   ace_mode: text | ||||
|   extensions: | ||||
|   - .clw | ||||
|   tm_scope: source.clarion | ||||
|  | ||||
| Clean: | ||||
|   type: programming | ||||
|   color: "#3a81ad" | ||||
|   color: "#3F85AF" | ||||
|   extensions: | ||||
|   - .icl | ||||
|   - .dcl | ||||
| @@ -516,6 +533,7 @@ Clojure: | ||||
|   color: "#db5855" | ||||
|   extensions: | ||||
|   - .clj | ||||
|   - .boot | ||||
|   - .cl2 | ||||
|   - .cljc | ||||
|   - .cljs | ||||
| @@ -642,6 +660,7 @@ Creole: | ||||
|  | ||||
| Crystal: | ||||
|   type: programming | ||||
|   color: "#776791" | ||||
|   extensions: | ||||
|   - .cr | ||||
|   ace_mode: ruby | ||||
| @@ -699,9 +718,18 @@ D-ObjDump: | ||||
|   tm_scope: objdump.x86asm | ||||
|   ace_mode: assembly_x86 | ||||
|  | ||||
| DIGITAL Command Language: | ||||
|   type: programming | ||||
|   aliases: | ||||
|   - dcl | ||||
|   extensions: | ||||
|   - .com | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| DM: | ||||
|   type: programming | ||||
|   color: "#075ff1" | ||||
|   color: "#447265" | ||||
|   extensions: | ||||
|   - .dm | ||||
|   aliases: | ||||
| @@ -711,6 +739,8 @@ DM: | ||||
|  | ||||
| DTrace: | ||||
|   type: programming | ||||
|   aliases: | ||||
|   - dtrace-script | ||||
|   extensions: | ||||
|   - .d | ||||
|   interpreters: | ||||
| @@ -719,7 +749,7 @@ DTrace: | ||||
|   ace_mode: c_cpp | ||||
|  | ||||
| Darcs Patch: | ||||
|   type: programming | ||||
|   type: data | ||||
|   search_term: dpatch | ||||
|   aliases: | ||||
|   - dpatch | ||||
| @@ -731,18 +761,20 @@ Darcs Patch: | ||||
|  | ||||
| Dart: | ||||
|   type: programming | ||||
|   color: "#98BAD6" | ||||
|   color: "#00B4AB" | ||||
|   extensions: | ||||
|   - .dart | ||||
|   ace_mode: dart | ||||
|  | ||||
| Diff: | ||||
|   type: programming | ||||
|   type: data | ||||
|   color: "#88dddd" | ||||
|   extensions: | ||||
|   - .diff | ||||
|   - .patch | ||||
|   aliases: | ||||
|   - udiff | ||||
|   tm_scope: source.diff | ||||
|   ace_mode: diff | ||||
|  | ||||
| Dockerfile: | ||||
| @@ -764,7 +796,7 @@ Dogescript: | ||||
|  | ||||
| Dylan: | ||||
|   type: programming | ||||
|   color: "#3ebc27" | ||||
|   color: "#6c616e" | ||||
|   extensions: | ||||
|   - .dylan | ||||
|   - .dyl | ||||
| @@ -791,7 +823,7 @@ ECL: | ||||
|  | ||||
| Eagle: | ||||
|   type: markup | ||||
|   color: "#3994bc" | ||||
|   color: "#814C05" | ||||
|   extensions: | ||||
|   - .sch | ||||
|   - .brd | ||||
| @@ -820,6 +852,8 @@ Elixir: | ||||
|   - .ex | ||||
|   - .exs | ||||
|   ace_mode: elixir | ||||
|   filenames: | ||||
|   - mix.lock | ||||
|  | ||||
| Elm: | ||||
|   type: programming | ||||
| @@ -847,7 +881,7 @@ Emacs Lisp: | ||||
|  | ||||
| EmberScript: | ||||
|   type: programming | ||||
|   color: "#f64e3e" | ||||
|   color: "#FFF4F3" | ||||
|   extensions: | ||||
|   - .em | ||||
|   - .emberscript | ||||
| @@ -856,12 +890,16 @@ EmberScript: | ||||
|  | ||||
| Erlang: | ||||
|   type: programming | ||||
|   color: "#0faf8d" | ||||
|   color: "#B83998" | ||||
|   extensions: | ||||
|   - .erl | ||||
|   - .es | ||||
|   - .escript | ||||
|   - .hrl | ||||
|   filenames: | ||||
|   - rebar.config | ||||
|   - rebar.config.lock | ||||
|   - rebar.lock | ||||
|   ace_mode: erlang | ||||
|   interpreters: | ||||
|   - escript | ||||
| @@ -881,7 +919,7 @@ F#: | ||||
|  | ||||
| FLUX: | ||||
|   type: programming | ||||
|   color: "#33CCFF" | ||||
|   color: "#88ccff" | ||||
|   extensions: | ||||
|   - .fx | ||||
|   - .flux | ||||
| @@ -931,6 +969,21 @@ Fantom: | ||||
|   tm_scope: source.fan | ||||
|   ace_mode: text | ||||
|  | ||||
| Filterscript: | ||||
|   type: programming | ||||
|   group: RenderScript | ||||
|   extensions: | ||||
|   - .fs | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| Formatted: | ||||
|   type: data | ||||
|   extensions: | ||||
|   - .for | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| Forth: | ||||
|   type: programming | ||||
|   color: "#341708" | ||||
| @@ -1016,7 +1069,7 @@ GLSL: | ||||
|  | ||||
| Game Maker Language: | ||||
|   type: programming | ||||
|   color: "#8ad353" | ||||
|   color: "#8fb200" | ||||
|   extensions: | ||||
|   - .gml | ||||
|   tm_scope: source.c++ | ||||
| @@ -1090,7 +1143,7 @@ Go: | ||||
|  | ||||
| Golo: | ||||
|   type: programming | ||||
|   color: "#f6a51f" | ||||
|   color: "#88562A" | ||||
|   extensions: | ||||
|   - .golo | ||||
|   tm_scope: source.golo | ||||
| @@ -1129,7 +1182,7 @@ Grammatical Framework: | ||||
|   extensions: | ||||
|   - .gf | ||||
|   searchable: true | ||||
|   color: "#ff0000" | ||||
|   color: "#79aa7a" | ||||
|   tm_scope: source.haskell | ||||
|   ace_mode: haskell | ||||
|  | ||||
| @@ -1149,7 +1202,7 @@ Graphviz (DOT): | ||||
|   ace_mode: text | ||||
|  | ||||
| Groff: | ||||
|   type: programming | ||||
|   type: markup | ||||
|   extensions: | ||||
|   - .man | ||||
|   - '.1' | ||||
| @@ -1259,13 +1312,14 @@ Haml: | ||||
|  | ||||
| Handlebars: | ||||
|   type: markup | ||||
|   color: "#01a9d6" | ||||
|   aliases: | ||||
|   - hbs | ||||
|   - htmlbars | ||||
|   extensions: | ||||
|   - .handlebars | ||||
|   - .hbs | ||||
|   tm_scope: text.html.handlebars | ||||
|   tm_scope: none | ||||
|   ace_mode: handlebars | ||||
|  | ||||
| Harbour: | ||||
| @@ -1296,16 +1350,23 @@ Haxe: | ||||
| Hy: | ||||
|   type: programming | ||||
|   ace_mode: text | ||||
|   color: "#7891b1" | ||||
|   color: "#7790B2" | ||||
|   extensions: | ||||
|   - .hy | ||||
|   aliases: | ||||
|   - hylang | ||||
|   tm_scope: source.hy | ||||
|  | ||||
| HyPhy: | ||||
|   type: programming | ||||
|   ace_mode: text | ||||
|   extensions: | ||||
|   - .bf | ||||
|   tm_scope: none | ||||
|  | ||||
| IDL: | ||||
|   type: programming | ||||
|   color: "#e3592c" | ||||
|   color: "#a3522f" | ||||
|   extensions: | ||||
|   - .pro | ||||
|   - .dlm | ||||
| @@ -1390,7 +1451,7 @@ Ioke: | ||||
|  | ||||
| Isabelle: | ||||
|   type: programming | ||||
|   color: "#fdcd00" | ||||
|   color: "#FEFE00" | ||||
|   extensions: | ||||
|   - .thy | ||||
|   tm_scope: source.isabelle.theory | ||||
| @@ -1398,12 +1459,21 @@ Isabelle: | ||||
|  | ||||
| J: | ||||
|   type: programming | ||||
|   color: "#2d8abd" | ||||
|   color: "#9EEDFF" | ||||
|   extensions: | ||||
|   - .ijs | ||||
|   tm_scope: source.j | ||||
|   ace_mode: text | ||||
|  | ||||
| JFlex: | ||||
|   type: programming | ||||
|   color: "#DBCA00" | ||||
|   extensions: | ||||
|   - .flex | ||||
|   - .jflex | ||||
|   tm_scope: source.jflex | ||||
|   ace_mode: text | ||||
|  | ||||
| JSON: | ||||
|   type: data | ||||
|   tm_scope: source.json | ||||
| @@ -1526,12 +1596,19 @@ Julia: | ||||
|  | ||||
| KRL: | ||||
|   type: programming | ||||
|   color: "#f5c800" | ||||
|   color: "#28431f" | ||||
|   extensions: | ||||
|   - .krl | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| KiCad: | ||||
|   type: programming | ||||
|   extensions: | ||||
|   - .sch | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| Kit: | ||||
|   type: markup | ||||
|   ace_mode: html | ||||
| @@ -1541,6 +1618,7 @@ Kit: | ||||
|  | ||||
| Kotlin: | ||||
|   type: programming | ||||
|   color: "#EA4DFA" | ||||
|   extensions: | ||||
|   - .kt | ||||
|   - .ktm | ||||
| @@ -1589,7 +1667,7 @@ LabVIEW: | ||||
|  | ||||
| Lasso: | ||||
|   type: programming | ||||
|   color: "#2584c3" | ||||
|   color: "#999999" | ||||
|   extensions: | ||||
|   - .lasso | ||||
|   - .las | ||||
| @@ -1607,7 +1685,7 @@ Latte: | ||||
|   group: HTML | ||||
|   extensions: | ||||
|   - .latte | ||||
|   tm_scope: source.smarty | ||||
|   tm_scope: text.html.smarty | ||||
|   ace_mode: smarty | ||||
|  | ||||
| Lean: | ||||
| @@ -1632,6 +1710,24 @@ LilyPond: | ||||
|   - .ily | ||||
|   ace_mode: text | ||||
|  | ||||
| Limbo: | ||||
|   type: programming | ||||
|   extensions: | ||||
|   - .b | ||||
|   - .m | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| Linker Script: | ||||
|   type: data | ||||
|   extensions: | ||||
|   - .ld | ||||
|   - .lds | ||||
|   filenames: | ||||
|   - ld.script | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| Liquid: | ||||
|   type: markup | ||||
|   extensions: | ||||
| @@ -1718,7 +1814,7 @@ LoomScript: | ||||
| Lua: | ||||
|   type: programming | ||||
|   ace_mode: lua | ||||
|   color: "#fa1fa1" | ||||
|   color: "#000080" | ||||
|   extensions: | ||||
|   - .lua | ||||
|   - .fcgi | ||||
| @@ -1741,7 +1837,7 @@ M: | ||||
|  | ||||
| MTML: | ||||
|   type: markup | ||||
|   color: "#0095d9" | ||||
|   color: "#b7e1f4" | ||||
|   extensions: | ||||
|   - .mtml | ||||
|   tm_scope: text.html.basic | ||||
| @@ -1758,6 +1854,7 @@ MUF: | ||||
|  | ||||
| Makefile: | ||||
|   type: programming | ||||
|   color: "#427819" | ||||
|   aliases: | ||||
|   - bsdmake | ||||
|   - make | ||||
| @@ -1835,7 +1932,7 @@ Maven POM: | ||||
|  | ||||
| Max: | ||||
|   type: programming | ||||
|   color: "#ce279c" | ||||
|   color: "#c4a79c" | ||||
|   aliases: | ||||
|   - max/msp | ||||
|   - maxmsp | ||||
| @@ -1859,7 +1956,7 @@ MediaWiki: | ||||
|  | ||||
| Mercury: | ||||
|   type: programming | ||||
|   color: "#abcdef" | ||||
|   color: "#ff2b2b" | ||||
|   ace_mode: prolog | ||||
|   interpreters: | ||||
|   - mmi | ||||
| @@ -1896,6 +1993,17 @@ Modelica: | ||||
|   tm_scope: source.modelica | ||||
|   ace_mode: text | ||||
|  | ||||
| Module Management System: | ||||
|   type: programming | ||||
|   extensions: | ||||
|   - .mms | ||||
|   - .mmk | ||||
|   filenames: | ||||
|   - descrip.mmk | ||||
|   - descrip.mms | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| Monkey: | ||||
|   type: programming | ||||
|   extensions: | ||||
| @@ -1940,14 +2048,32 @@ NSIS: | ||||
|  | ||||
| Nemerle: | ||||
|   type: programming | ||||
|   color: "#0d3c6e" | ||||
|   color: "#3d3c6e" | ||||
|   extensions: | ||||
|   - .n | ||||
|   ace_mode: text | ||||
|  | ||||
| NetLinx: | ||||
|   type: programming | ||||
|   color: "#0aa0ff" | ||||
|   extensions: | ||||
|   - .axs | ||||
|   - .axi | ||||
|   tm_scope: source.netlinx | ||||
|   ace_mode: text | ||||
|  | ||||
| NetLinx+ERB: | ||||
|   type: programming | ||||
|   color: "#747faa" | ||||
|   extensions: | ||||
|   - .axs.erb | ||||
|   - .axi.erb | ||||
|   tm_scope: source.netlinx.erb | ||||
|   ace_mode: text | ||||
|  | ||||
| NetLogo: | ||||
|   type: programming | ||||
|   color: "#ff2b2b" | ||||
|   color: "#ff6375" | ||||
|   extensions: | ||||
|   - .nlogo | ||||
|   tm_scope: source.lisp | ||||
| @@ -1956,7 +2082,7 @@ NetLogo: | ||||
| NewLisp: | ||||
|   type: programming | ||||
|   lexer: NewLisp | ||||
|   color: "#eedd66" | ||||
|   color: "#87AED7" | ||||
|   extensions: | ||||
|   - .nl | ||||
|   - .lisp | ||||
| @@ -1993,7 +2119,7 @@ Ninja: | ||||
|  | ||||
| Nit: | ||||
|   type: programming | ||||
|   color: "#0d8921" | ||||
|   color: "#009917" | ||||
|   extensions: | ||||
|   - .nit | ||||
|   tm_scope: source.nit | ||||
| @@ -2001,7 +2127,7 @@ Nit: | ||||
|  | ||||
| Nix: | ||||
|   type: programming | ||||
|   color: "#7070ff" | ||||
|   color: "#7e7eff" | ||||
|   extensions: | ||||
|   - .nix | ||||
|   aliases: | ||||
| @@ -2045,6 +2171,10 @@ OCaml: | ||||
|   - .mli | ||||
|   - .mll | ||||
|   - .mly | ||||
|   interpreters: | ||||
|   - ocaml | ||||
|   - ocamlrun | ||||
|   tm_scope: source.ocaml | ||||
|  | ||||
| ObjDump: | ||||
|   type: data | ||||
| @@ -2069,7 +2199,7 @@ Objective-C: | ||||
| Objective-C++: | ||||
|   type: programming | ||||
|   tm_scope: source.objc++ | ||||
|   color: "#4886FC" | ||||
|   color: "#6866fb" | ||||
|   aliases: | ||||
|   - obj-c++ | ||||
|   - objc++ | ||||
| @@ -2160,7 +2290,7 @@ Ox: | ||||
|  | ||||
| Oxygene: | ||||
|   type: programming | ||||
|   color: "#5a63a3" | ||||
|   color: "#cdd0e3" | ||||
|   extensions: | ||||
|   - .oxygene | ||||
|   tm_scope: none | ||||
| @@ -2168,7 +2298,7 @@ Oxygene: | ||||
|  | ||||
| Oz: | ||||
|   type: programming | ||||
|   color: "#fcaf3e" | ||||
|   color: "#fab738" | ||||
|   extensions: | ||||
|   - .oz | ||||
|   tm_scope: source.oz | ||||
| @@ -2203,7 +2333,7 @@ PHP: | ||||
|   aliases: | ||||
|   - inc | ||||
|  | ||||
| #Oracle  | ||||
| #Oracle | ||||
| PLSQL: | ||||
|   type: programming | ||||
|   ace_mode: sql | ||||
| @@ -2216,7 +2346,7 @@ PLSQL: | ||||
|   - .plsql | ||||
|   - .sql | ||||
|  | ||||
| #Postgres  | ||||
| #Postgres | ||||
| PLpgSQL: | ||||
|   type: programming | ||||
|   ace_mode: pgsql | ||||
| @@ -2304,7 +2434,7 @@ Perl: | ||||
|  | ||||
| Perl6: | ||||
|   type: programming | ||||
|   color: "#0298c3" | ||||
|   color: "#0000fb" | ||||
|   extensions: | ||||
|   - .6pl | ||||
|   - .6pm | ||||
| @@ -2334,7 +2464,7 @@ PigLatin: | ||||
|  | ||||
| Pike: | ||||
|   type: programming | ||||
|   color: "#066ab2" | ||||
|   color: "#005390" | ||||
|   extensions: | ||||
|   - .pike | ||||
|   - .pmod | ||||
| @@ -2380,7 +2510,7 @@ PowerShell: | ||||
|  | ||||
| Processing: | ||||
|   type: programming | ||||
|   color: "#2779ab" | ||||
|   color: "#0096D8" | ||||
|   extensions: | ||||
|   - .pde | ||||
|   ace_mode: text | ||||
| @@ -2399,7 +2529,7 @@ Prolog: | ||||
|  | ||||
| Propeller Spin: | ||||
|   type: programming | ||||
|   color: "#2b446d" | ||||
|   color: "#7fa2a7" | ||||
|   extensions: | ||||
|   - .spin | ||||
|   tm_scope: source.spin | ||||
| @@ -2425,7 +2555,7 @@ Public Key: | ||||
|  | ||||
| Puppet: | ||||
|   type: programming | ||||
|   color: "#cc5555" | ||||
|   color: "#332A77" | ||||
|   extensions: | ||||
|   - .pp | ||||
|   filenames: | ||||
| @@ -2451,7 +2581,7 @@ PureBasic: | ||||
|  | ||||
| PureScript: | ||||
|   type: programming | ||||
|   color: "#bcdc53" | ||||
|   color: "#1D222D" | ||||
|   extensions: | ||||
|   - .purs | ||||
|   tm_scope: source.haskell | ||||
| @@ -2460,7 +2590,7 @@ PureScript: | ||||
| Python: | ||||
|   type: programming | ||||
|   ace_mode: python | ||||
|   color: "#3581ba" | ||||
|   color: "#3572A5" | ||||
|   extensions: | ||||
|   - .py | ||||
|   - .cgi | ||||
| @@ -2578,18 +2708,20 @@ RMarkdown: | ||||
|  | ||||
| Racket: | ||||
|   type: programming | ||||
|   color: "#ae17ff" | ||||
|   color: "#22228f" | ||||
|   extensions: | ||||
|   - .rkt | ||||
|   - .rktd | ||||
|   - .rktl | ||||
|   - .scrbl | ||||
|   interpreters: | ||||
|   - racket | ||||
|   tm_scope: source.racket | ||||
|   ace_mode: lisp | ||||
|  | ||||
| Ragel in Ruby Host: | ||||
|   type: programming | ||||
|   color: "#ff9c2e" | ||||
|   color: "#e17600" | ||||
|   extensions: | ||||
|   - .rl | ||||
|   aliases: | ||||
| @@ -2618,6 +2750,7 @@ Rebol: | ||||
|   - .r3 | ||||
|   - .rebol | ||||
|   ace_mode: text | ||||
|   tm_scope: source.rebol | ||||
|  | ||||
| Red: | ||||
|   type: programming | ||||
| @@ -2627,7 +2760,7 @@ Red: | ||||
|   - .reds | ||||
|   aliases: | ||||
|   - red/system | ||||
|   tm_scope: none | ||||
|   tm_scope: source.red | ||||
|   ace_mode: text | ||||
|  | ||||
| Redcode: | ||||
| @@ -2637,6 +2770,14 @@ Redcode: | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| RenderScript: | ||||
|   type: programming | ||||
|   extensions: | ||||
|   - .rs | ||||
|   - .rsh | ||||
|   tm_scope: none | ||||
|   ace_mode: text | ||||
|  | ||||
| RobotFramework: | ||||
|   type: programming | ||||
|   extensions: | ||||
| @@ -2680,6 +2821,7 @@ Ruby: | ||||
|   - .rbw | ||||
|   - .rbx | ||||
|   - .ru | ||||
|   - .ruby | ||||
|   - .thor | ||||
|   - .watchr | ||||
|   interpreters: | ||||
| @@ -2691,6 +2833,8 @@ Ruby: | ||||
|   - Appraisals | ||||
|   - Berksfile | ||||
|   - Buildfile | ||||
|   - Deliverfile | ||||
|   - Fastfile | ||||
|   - Gemfile | ||||
|   - Gemfile.lock | ||||
|   - Guardfile | ||||
| @@ -2698,6 +2842,7 @@ Ruby: | ||||
|   - Mavenfile | ||||
|   - Podfile | ||||
|   - Puppetfile | ||||
|   - Snapfile | ||||
|   - Thorfile | ||||
|   - Vagrantfile | ||||
|   - buildfile | ||||
| @@ -2711,7 +2856,7 @@ Rust: | ||||
|  | ||||
| SAS: | ||||
|   type: programming | ||||
|   color: "#1E90FF" | ||||
|   color: "#B34936" | ||||
|   extensions: | ||||
|   - .sas | ||||
|   tm_scope: source.sas | ||||
| @@ -2735,7 +2880,7 @@ SPARQL: | ||||
|  | ||||
| SQF: | ||||
|   type: programming | ||||
|   color: "#FFCB1F" | ||||
|   color: "#3F3F3F" | ||||
|   extensions: | ||||
|   - .sqf | ||||
|   - .hqf | ||||
| @@ -2789,8 +2934,8 @@ Sage: | ||||
|   ace_mode: python | ||||
|  | ||||
| SaltStack: | ||||
|   type: data | ||||
|   group: YAML | ||||
|   type: programming | ||||
|   color: "#646464" | ||||
|   aliases: | ||||
|   - saltstate | ||||
|   - salt | ||||
| @@ -2837,7 +2982,6 @@ Scheme: | ||||
|   - .ss | ||||
|   interpreters: | ||||
|   - guile | ||||
|   - racket | ||||
|   - bigloo | ||||
|   - chicken | ||||
|   ace_mode: scheme | ||||
| @@ -2875,6 +3019,7 @@ Shell: | ||||
|   - .fcgi | ||||
|   - .ksh | ||||
|   - .tmux | ||||
|   - .tool | ||||
|   - .zsh | ||||
|   interpreters: | ||||
|   - bash | ||||
| @@ -2912,7 +3057,7 @@ Slash: | ||||
| Slim: | ||||
|   group: HTML | ||||
|   type: markup | ||||
|   color: "#ff8877" | ||||
|   color: "#ff8f77" | ||||
|   extensions: | ||||
|   - .slim | ||||
|   ace_mode: text | ||||
| @@ -2932,10 +3077,11 @@ Smarty: | ||||
|   extensions: | ||||
|   - .tpl | ||||
|   ace_mode: smarty | ||||
|   tm_scope: text.html.smarty | ||||
|  | ||||
| SourcePawn: | ||||
|   type: programming | ||||
|   color: "#f69e1d" | ||||
|   color: "#5c7611" | ||||
|   aliases: | ||||
|   - sourcemod | ||||
|   extensions: | ||||
| @@ -2946,6 +3092,7 @@ SourcePawn: | ||||
|  | ||||
| Squirrel: | ||||
|   type: programming | ||||
|   color: "#800000" | ||||
|   extensions: | ||||
|   - .nut | ||||
|   tm_scope: source.c++ | ||||
| @@ -3002,7 +3149,7 @@ Swift: | ||||
|  | ||||
| SystemVerilog: | ||||
|   type: programming | ||||
|   color: "#343761" | ||||
|   color: "#DAE1C2" | ||||
|   extensions: | ||||
|   - .sv | ||||
|   - .svh | ||||
| @@ -3078,6 +3225,8 @@ Tea: | ||||
| Text: | ||||
|   type: prose | ||||
|   wrap: true | ||||
|   aliases: | ||||
|   - fundamental | ||||
|   extensions: | ||||
|   - .txt | ||||
|   - .fr | ||||
| @@ -3117,7 +3266,7 @@ Turtle: | ||||
|  | ||||
| Twig: | ||||
|   type: markup | ||||
|   group: PHP | ||||
|   group: HTML | ||||
|   extensions: | ||||
|   - .twig | ||||
|   tm_scope: text.html.twig | ||||
| @@ -3125,7 +3274,7 @@ Twig: | ||||
|  | ||||
| TypeScript: | ||||
|   type: programming | ||||
|   color: "#31859c" | ||||
|   color: "#2b7489" | ||||
|   aliases: | ||||
|   - ts | ||||
|   extensions: | ||||
| @@ -3137,11 +3286,24 @@ Unified Parallel C: | ||||
|   type: programming | ||||
|   group: C | ||||
|   ace_mode: c_cpp | ||||
|   color: "#755223" | ||||
|   color: "#4e3617" | ||||
|   extensions: | ||||
|   - .upc | ||||
|   tm_scope: source.c | ||||
|  | ||||
| Unity3D Asset: | ||||
|   type: data | ||||
|   ace_mode: yaml | ||||
|   color: "#ab69a1" | ||||
|   extensions: | ||||
|   - .anim | ||||
|   - .asset | ||||
|   - .mat | ||||
|   - .meta | ||||
|   - .prefab | ||||
|   - .unity | ||||
|   tm_scope: source.yaml | ||||
|  | ||||
| UnrealScript: | ||||
|   type: programming | ||||
|   color: "#a54c4d" | ||||
| @@ -3151,8 +3313,8 @@ UnrealScript: | ||||
|   ace_mode: java | ||||
|  | ||||
| VCL: | ||||
|   group: Perl | ||||
|   type: programming | ||||
|   color: "#0298c3" | ||||
|   extensions: | ||||
|   - .vcl | ||||
|   tm_scope: source.varnish.vcl | ||||
| @@ -3160,7 +3322,7 @@ VCL: | ||||
|  | ||||
| VHDL: | ||||
|   type: programming | ||||
|   color: "#543978" | ||||
|   color: "#adb2cb" | ||||
|   extensions: | ||||
|   - .vhdl | ||||
|   - .vhd | ||||
| @@ -3174,7 +3336,7 @@ VHDL: | ||||
|  | ||||
| Vala: | ||||
|   type: programming | ||||
|   color: "#ee7d06" | ||||
|   color: "#fbe5cd" | ||||
|   extensions: | ||||
|   - .vala | ||||
|   - .vapi | ||||
| @@ -3182,7 +3344,7 @@ Vala: | ||||
|  | ||||
| Verilog: | ||||
|   type: programming | ||||
|   color: "#848bf3" | ||||
|   color: "#b2b7f8" | ||||
|   extensions: | ||||
|   - .v | ||||
|   - .veo | ||||
| @@ -3190,16 +3352,19 @@ Verilog: | ||||
|  | ||||
| VimL: | ||||
|   type: programming | ||||
|   color: "#199c4b" | ||||
|   color: "#199f4b" | ||||
|   search_term: vim | ||||
|   aliases: | ||||
|   - vim | ||||
|   - nvim | ||||
|   extensions: | ||||
|   - .vim | ||||
|   filenames: | ||||
|   - .nvimrc | ||||
|   - .vimrc | ||||
|   - _vimrc | ||||
|   - gvimrc | ||||
|   - nvimrc | ||||
|   - vimrc | ||||
|   ace_mode: text | ||||
|  | ||||
| @@ -3223,7 +3388,7 @@ Visual Basic: | ||||
|  | ||||
| Volt: | ||||
|   type: programming | ||||
|   color: "#0098db" | ||||
|   color: "#1F1F1F" | ||||
|   extensions: | ||||
|   - .volt | ||||
|   tm_scope: source.d | ||||
| @@ -3231,7 +3396,7 @@ Volt: | ||||
|  | ||||
| Web Ontology Language: | ||||
|   type: markup | ||||
|   color: "#3994bc" | ||||
|   color: "#9cc9dd" | ||||
|   extensions: | ||||
|   - .owl | ||||
|   tm_scope: text.xml | ||||
| @@ -3276,6 +3441,7 @@ XML: | ||||
|   - .fsproj | ||||
|   - .fxml | ||||
|   - .glade | ||||
|   - .gml | ||||
|   - .grxml | ||||
|   - .ivy | ||||
|   - .jelly | ||||
| @@ -3285,6 +3451,7 @@ XML: | ||||
|   - .mxml | ||||
|   - .nproj | ||||
|   - .nuspec | ||||
|   - .odd | ||||
|   - .osm | ||||
|   - .plist | ||||
|   - .pluginspec | ||||
| @@ -3295,6 +3462,7 @@ XML: | ||||
|   - .rss | ||||
|   - .scxml | ||||
|   - .srdf | ||||
|   - .storyboard | ||||
|   - .stTheme | ||||
|   - .sublime-snippet | ||||
|   - .targets | ||||
| @@ -3318,6 +3486,7 @@ XML: | ||||
|   - .x3d | ||||
|   - .xacro | ||||
|   - .xaml | ||||
|   - .xib | ||||
|   - .xlf | ||||
|   - .xliff | ||||
|   - .xmi | ||||
| @@ -3344,7 +3513,7 @@ XProc: | ||||
|  | ||||
| XQuery: | ||||
|   type: programming | ||||
|   color: "#2700e2" | ||||
|   color: "#5232e7" | ||||
|   extensions: | ||||
|   - .xquery | ||||
|   - .xq | ||||
| @@ -3427,7 +3596,7 @@ desktop: | ||||
|  | ||||
| eC: | ||||
|   type: programming | ||||
|   color: "#4A4773" | ||||
|   color: "#913960" | ||||
|   search_term: ec | ||||
|   extensions: | ||||
|   - .ec | ||||
| @@ -3459,7 +3628,7 @@ mupad: | ||||
|  | ||||
| nesC: | ||||
|   type: programming | ||||
|   color: "#ffce3b" | ||||
|   color: "#94B0C7" | ||||
|   extensions: | ||||
|   - .nc | ||||
|   ace_mode: text | ||||
| @@ -3492,7 +3661,7 @@ wisp: | ||||
|  | ||||
| xBase: | ||||
|   type: programming | ||||
|   color: "#3a4040" | ||||
|   color: "#403a40" | ||||
|   extensions: | ||||
|   - .prg | ||||
|   tm_scope: none | ||||
|   | ||||
| @@ -50,16 +50,13 @@ module Linguist | ||||
|             end | ||||
|           else | ||||
|             path = File.join(dirname, filename) | ||||
|  | ||||
|             if File.extname(filename) == "" | ||||
|               raise "#{path} is missing an extension, maybe it belongs in filenames/ subdir" | ||||
|             end | ||||
|             extname = File.extname(filename) | ||||
|  | ||||
|             yield({ | ||||
|               :path     => path, | ||||
|               :language => category, | ||||
|               :interpreter => Shebang.interpreter(File.read(path)), | ||||
|               :extname  => File.extname(filename) | ||||
|               :extname  => extname.empty? ? nil : extname | ||||
|             }) | ||||
|           end | ||||
|         end | ||||
|   | ||||
| @@ -23,17 +23,20 @@ module Linguist | ||||
|       # First line must start with #! | ||||
|       return unless shebang && shebang.start_with?("#!") | ||||
|  | ||||
|       # Get the parts of the shebang without the #! | ||||
|       tokens = shebang.sub(/^#!\s*/, '').strip.split(' ') | ||||
|       s = StringScanner.new(shebang) | ||||
|  | ||||
|       # There was nothing after the #! | ||||
|       return if tokens.empty? | ||||
|       return unless path = s.scan(/^#!\s*\S+/) | ||||
|  | ||||
|       # Get the name of the interpreter | ||||
|       script = File.basename(tokens.first) | ||||
|       # Keep going | ||||
|       script = path.split('/').last | ||||
|  | ||||
|       # Get next argument if interpreter was /usr/bin/env | ||||
|       script = tokens[1] if script == 'env' | ||||
|       # if /usr/bin/env type shebang then walk the string | ||||
|       if script == 'env' | ||||
|         s.scan(/\s+/) | ||||
|         s.scan(/.*=[^\s]+\s+/) # skip over variable arguments e.g. foo=bar | ||||
|         script = s.scan(/\S+/) | ||||
|       end | ||||
|  | ||||
|       # Interpreter was /usr/bin/env with no arguments | ||||
|       return unless script | ||||
| @@ -41,6 +44,9 @@ module Linguist | ||||
|       # "python2.6" -> "python2" | ||||
|       script.sub! /(\.\d+)$/, '' | ||||
|  | ||||
|       # #! perl -> perl | ||||
|       script.sub! /^#!\s*/, '' | ||||
|  | ||||
|       # Check for multiline shebang hacks that call `exec` | ||||
|       if script == 'sh' && | ||||
|         data.lines.first(5).any? { |l| l.match(/exec (\w+).+\$0.+\$@/) } | ||||
|   | ||||
| @@ -3,17 +3,7 @@ module Linguist | ||||
|     # Detects language based on filename and/or extension | ||||
|     class Filename | ||||
|       def self.call(blob, _) | ||||
|         name = blob.name.to_s | ||||
|  | ||||
|         # A bit of an elegant hack. If the file is executable but extensionless, | ||||
|         # append a "magic" extension so it can be classified with other | ||||
|         # languages that have shebang scripts. | ||||
|         extensions = FileBlob.new(name).extensions | ||||
|         if extensions.empty? && blob.mode && (blob.mode.to_i(8) & 05) == 05 | ||||
|           name += ".script!" | ||||
|         end | ||||
|  | ||||
|         Language.find_by_filename(name) | ||||
|         Language.find_by_filename(blob.name.to_s) | ||||
|       end | ||||
|     end | ||||
|   end | ||||
|   | ||||
| @@ -1,8 +1,8 @@ | ||||
| module Linguist | ||||
|   module Strategy | ||||
|     class Modeline | ||||
|       EmacsModeline = /-\*-\s*mode:\s*(\w+);?\s*-\*-/i | ||||
|       VimModeline = /\/\*\s*vim:\s*set\s*(?:ft|filetype)=(\w+):\s*\*\//i | ||||
|       EmacsModeline = /-\*-\s*(?:(?!mode)[\w-]+\s*:\s*(?:[\w+-]+)\s*;?\s*)*(?:mode\s*:)?\s*([\w+-]+)\s*(?:;\s*(?!mode)[\w-]+\s*:\s*[\w+-]+\s*)*;?\s*-\*-/i | ||||
|       VimModeline = /vim:\s*set\s*(?:ft|filetype)=(\w+):/i | ||||
|  | ||||
|       # Public: Detects language based on Vim and Emacs modelines | ||||
|       # | ||||
|   | ||||
| @@ -22,8 +22,10 @@ module Linguist | ||||
|     # Start state on token, ignore anything till the next newline | ||||
|     SINGLE_LINE_COMMENTS = [ | ||||
|       '//', # C | ||||
|       '--', # Ada, Haskell, AppleScript | ||||
|       '#',  # Ruby | ||||
|       '%',  # Tex | ||||
|       '"',  # Vim | ||||
|     ] | ||||
|  | ||||
|     # Start state on opening token, ignore anything until the closing | ||||
| @@ -130,6 +132,9 @@ module Linguist | ||||
|     #   extract_shebang("#!/usr/bin/env node") | ||||
|     #   # => "node" | ||||
|     # | ||||
|     #   extract_shebang("#!/usr/bin/env A=B foo=bar awk -f") | ||||
|     #   # => "awk" | ||||
|     # | ||||
|     # Returns String token or nil it couldn't be parsed. | ||||
|     def extract_shebang(data) | ||||
|       s = StringScanner.new(data) | ||||
| @@ -138,6 +143,7 @@ module Linguist | ||||
|         script = path.split('/').last | ||||
|         if script == 'env' | ||||
|           s.scan(/\s+/) | ||||
|           s.scan(/.*=[^\s]+\s+/) | ||||
|           script = s.scan(/\S+/) | ||||
|         end | ||||
|         script = script[/[^\d]+/, 0] if script | ||||
|   | ||||
| @@ -24,6 +24,9 @@ | ||||
| - (^|/)config.guess$ | ||||
| - (^|/)config.sub$ | ||||
|  | ||||
| # Linters | ||||
| - cpplint.py | ||||
|  | ||||
| # Node dependencies | ||||
| - node_modules/ | ||||
|  | ||||
| @@ -143,6 +146,9 @@ | ||||
|  | ||||
| ## Python ## | ||||
|  | ||||
| # Sphinx | ||||
| - (^|/)docs?/_?(build|themes?|templates?|static)/ | ||||
|  | ||||
| # django | ||||
| - (^|/)admin_media/ | ||||
|  | ||||
| @@ -221,7 +227,7 @@ | ||||
| - ^readme$ | ||||
|  | ||||
| # Test fixtures | ||||
| - ^[Tt]est/fixtures/ | ||||
| - ^[Tt]ests?/fixtures/ | ||||
|  | ||||
| # PhoneGap/Cordova | ||||
| - (^|/)cordova([^.]*)\.js$ | ||||
| @@ -233,7 +239,7 @@ | ||||
| # Vagrant | ||||
| - ^Vagrantfile$ | ||||
|  | ||||
| # .DS_Store's | ||||
| # .DS_Stores | ||||
| - .[Dd][Ss]_[Ss]tore$ | ||||
|  | ||||
| # R packages | ||||
| @@ -252,5 +258,8 @@ | ||||
| - proguard.pro | ||||
| - proguard-rules.pro | ||||
|  | ||||
| # PuPHPet | ||||
| - ^puphpet/ | ||||
|  | ||||
| # Android Google APIs | ||||
| - (^|/)\.google_apis/ | ||||
|   | ||||
| @@ -1,3 +1,3 @@ | ||||
| module Linguist | ||||
|   VERSION = "4.5.1" | ||||
|   VERSION = "4.5.5" | ||||
| end | ||||
|   | ||||
							
								
								
									
										55
									
								
								samples/API Blueprint/actions.apib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								samples/API Blueprint/actions.apib
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,55 @@ | ||||
| FORMAT: 1A | ||||
|  | ||||
| # Advanced Action API | ||||
| A resource action is – in fact – a state transition. This API example demonstrates an action - state transition - to another resource. | ||||
|  | ||||
| ## API Blueprint | ||||
| + [Previous: Resource Model](11.%20Resource%20Model.md) | ||||
| + [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/11.%20Advanced%20Action.md) | ||||
|  | ||||
| # Tasks [/tasks/tasks{?status,priority}] | ||||
|  | ||||
| + Parameters | ||||
|     + status (string) | ||||
|     + priority (number) | ||||
|  | ||||
| ## List All Tasks [GET] | ||||
|  | ||||
| + Response 200 (application/json) | ||||
|  | ||||
|         [ | ||||
|             { | ||||
|                 "id": 123, | ||||
|                 "name": "Exercise in gym", | ||||
|                 "done": false, | ||||
|                 "type": "task" | ||||
|             }, | ||||
|             { | ||||
|                 "id": 124, | ||||
|                 "name": "Shop for groceries", | ||||
|                 "done": true, | ||||
|                 "type": "task" | ||||
|             } | ||||
|         ] | ||||
|  | ||||
| ## Retrieve Task [GET /task/{id}] | ||||
| This is a state transition to another resource | ||||
|  | ||||
| + Parameters | ||||
|     + id (string) | ||||
|  | ||||
| + Response 200 (application/json) | ||||
|  | ||||
|         { | ||||
|             "id": 123, | ||||
|             "name": "Go to gym", | ||||
|             "done": false, | ||||
|             "type": "task" | ||||
|         } | ||||
|  | ||||
| ## Delete Task [DELETE /task/{id}] | ||||
|  | ||||
| + Parameters | ||||
|     + id (string) | ||||
|  | ||||
| + Response 204 | ||||
							
								
								
									
										39
									
								
								samples/API Blueprint/attributes.apib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								samples/API Blueprint/attributes.apib
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,39 @@ | ||||
| FORMAT: 1A | ||||
|  | ||||
| # Attributes API | ||||
| This API example demonstrates how to describe body attributes of a request or response message. | ||||
|  | ||||
| In this case, the description is complementary (and duplicate!) to the provided JSON example in the body section. The [Advanced Attributes](09.%20Advanced%20Attributes.md) API example will demonstrate how to avoid duplicates and how to reuse attributes descriptions. | ||||
|  | ||||
| ## API Blueprint | ||||
| + [Previous: Parameters](07.%20Parameters.md) | ||||
| + [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/08.%20Attributes.md) | ||||
| + [Next: Advanced Attributes](09.%20Advanced%20Attributes.md) | ||||
|  | ||||
| # Group Coupons | ||||
|  | ||||
| ## Coupon [/coupons/{id}] | ||||
| A coupon contains information about a percent-off or amount-off discount you might want to apply to a customer. | ||||
|  | ||||
| ### Retrieve a Coupon [GET] | ||||
| Retrieves the coupon with the given ID. | ||||
|  | ||||
| + Response 200 (application/json) | ||||
|  | ||||
|     + Attributes (object) | ||||
|         + id: 250FF (string) | ||||
|         + created: 1415203908 (number) - Time stamp | ||||
|         + percent_off: 25 (number) | ||||
|  | ||||
|             A positive integer between 1 and 100 that represents the discount the coupon will apply. | ||||
|  | ||||
|         + redeem_by (number) - Date after which the coupon can no longer be redeemed | ||||
|  | ||||
|     + Body | ||||
|  | ||||
|             { | ||||
|                 "id": "250FF", | ||||
|                 "created": 1415203908, | ||||
|                 "percent_off": 25, | ||||
|                 "redeem_by:" null | ||||
|             } | ||||
							
								
								
									
										18
									
								
								samples/API Blueprint/simple.apib
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								samples/API Blueprint/simple.apib
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| FORMAT: 1A | ||||
|  | ||||
| # The Simplest API | ||||
| This is one of the simplest APIs written in the **API Blueprint**. | ||||
| One plain resource combined with a method and that's it! We will explain what is going on in the next installment - [Resource and Actions](02.%20Resource%20and%20Actions.md). | ||||
|  | ||||
| **Note:** As we progress through the examples, do not also forget to view the [Raw](https://raw.github.com/apiaryio/api-blueprint/master/examples/01.%20Simplest%20API.md) code to see what is really going on in the API Blueprint, as opposed to just seeing the output of the Github Markdown parser. | ||||
|  | ||||
| Also please keep in mind that every single example in this course is a **real API Blueprint** and as such you can **parse** it with the [API Blueprint parser](https://github.com/apiaryio/drafter) or one of its [bindings](https://github.com/apiaryio/drafter#bindings). | ||||
|  | ||||
| ## API Blueprint | ||||
| + [This: Raw API Blueprint](https://raw.github.com/apiaryio/api-blueprint/master/examples/01.%20Simplest%20API.md) | ||||
| + [Next: Resource and Actions](02.%20Resource%20and%20Actions.md) | ||||
|  | ||||
| # GET /message | ||||
| + Response 200 (text/plain) | ||||
|  | ||||
|         Hello World! | ||||
| @@ -1,6 +1,9 @@ | ||||
| AsciiDoc Home Page | ||||
| ================== | ||||
|  | ||||
| Title | ||||
| ----- | ||||
|  | ||||
| Example Articles | ||||
| ~~~~~~~~~~~~~~~~ | ||||
| - Item 1 | ||||
|   | ||||
							
								
								
									
										195
									
								
								samples/Brainfuck/factor.b
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										195
									
								
								samples/Brainfuck/factor.b
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,195 @@ | ||||
| * factor an arbitrarily large positive integer | ||||
| * | ||||
| * Copyright (C) 1999 by Brian Raiter | ||||
| * under the GNU General Public License | ||||
|  | ||||
| >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>- | ||||
|  | ||||
| * | ||||
| * read in the number | ||||
| * | ||||
|  | ||||
| <<<<<<<<<+ | ||||
| [-[>>>>>>>>>>][-]<<<<<<<<<<[[->>>>>>>>>>+<<<<<<<<<<]<<<<<<<<<<] | ||||
|   >>>>>>>>>>,----------] | ||||
| >>>>>>>>>>[------------------------------------->>>>>>>>>->] | ||||
| <[+>[>>>>>>>>>+>]<-<<<<<<<<<<]- | ||||
|  | ||||
| * | ||||
| * display the number and initialize the loop variable to two | ||||
| * | ||||
|  | ||||
| [>++++++++++++++++++++++++++++++++++++++++++++++++. | ||||
|   ------------------------------------------------<<<<<<<<<<<] | ||||
| ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++. | ||||
| --------------------------.[-] | ||||
| >>>>>>>>>>>>++<<<<+ | ||||
|  | ||||
| * | ||||
| * the main loop | ||||
| * | ||||
|  | ||||
| [ [-]>> | ||||
|  | ||||
|   * | ||||
|   * make copies of the number and the loop variable | ||||
|   * | ||||
|  | ||||
|   [>>>>[-]>[-]>[-]>[-] | ||||
|     >[-]>[-] | ||||
|     <<<<<<<[->>>+>+<<<<]>>>>>>>>] | ||||
|   <<<<<<<<<<[>>>>>>[-<<<<+>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||||
|   [>[->>>+>>+<<<<<]>>>>>>>>>] | ||||
|   <<<<<<<<<<[>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||||
|  | ||||
|   * | ||||
|   * divide the number by the loop variable | ||||
|   * | ||||
|  | ||||
|   [>>>[-]>>>[-]>[-]>>>]                                  initialize | ||||
|   <<<<<<<<<<[<<<<<<<<<<] | ||||
|   >>>>>>>>>[-]>>>>>>>+<<<<<<<<[+]+ | ||||
|   [ ->>                               double divisor until above dividend | ||||
|     [>>>>>>[->++<]>>>>]<<<<<<<<<< | ||||
|     [>>>>>>>>[-]>[-] | ||||
|        <<<<[->>>++<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> | ||||
|     [>>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< | ||||
|             [->--------->>>>>>>>>+<<<<<<<<<<[->+<]]]]]]]]]]]>>] | ||||
|     <<<<<<<<<<[>>>>>>>>>[-<+<<<+>>>>]<<<<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||||
|     [>>>>>>>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+>[-<+> | ||||
|             [-<--------->>>>>>>>>>>+<<<<<<<<<<[-<+>]]]]]]]]]]]>>>] | ||||
|     <<<<<<<<<< | ||||
|     [>>>>[->>>+>>+<<<<<]<<<<<<<<<<<<<<] | ||||
|     >>>>>>>>>>[>>>>>>>[-<<<+>>>]>>>]<<<<<<<<<< | ||||
|     [>>>>>>>>[->-<]> | ||||
|       [<<<<<<<<<[<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<<] | ||||
|         >>>>>>>>>>>>>>>>>>>] | ||||
|       <<<<<<<<<<<<<<<<<<<] | ||||
|     >>>>>>>>>[+[+[+[+[+[+[+[+[+[+[[-]<+>]]]]]]]]]]]< | ||||
|   ] | ||||
|   >>>>>>>> | ||||
|   [                                   subtract divisor from dividend | ||||
|     <<<<<< | ||||
|     [>>>>>>>>[-]>[-]<<<<<[->>>+>+<<<<]>>>>>>]<<<<<<<<<< | ||||
|     [>>>>>>>>[-<<<<+>>>>]<<<[->>>+>+<<<<]<<<<<<<<<<<<<<<]>>>>>>>>>> | ||||
|     [>>>>>>>>>[-<<<<+>>>>]>]<<<<<<<<<< | ||||
|     [>>>>>>>>[-<->]<<<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||||
|     [>>>>>>>[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+<[->+< | ||||
|             [++++++++++[+>-<]>>>>>>>>>>-<<<<<<<<<<]]]]]]]]]]]>>>] | ||||
|     >>>>>>>+ | ||||
|     [                                 if difference is nonnegative then | ||||
|       [-]<<<<<<<<<<<<<<<<<            replace dividend and increment quotient | ||||
|       [>>>>[-]>>>>[-<<<<+>>>>]<<[->>+<<]<<<<<<<<<<<<<<<<]>>>>>>>>>> | ||||
|       [>>>>>>>>[->+<<<+>>]>>]<<<<<<<<<< | ||||
|       [>>>[->>>>>>+<<<<<<]<<<<<<<<<<<<<]>>>>>>>>>> | ||||
|       [>>>>>>>>>[-<<<<<<+>>>>>>[-<<<<<<+>>>>>> | ||||
|                 [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> | ||||
|                 [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> | ||||
|                 [-<<<<<<+>>>>>>[-<<<<<<+>>>>>> | ||||
|                 [-<<<<<<+>>>>>>[-<<<<<<--------->>>>>>>>>>>>>>>>+<<<<<<<<<< | ||||
|                 [-<<<<<<+>>>>>>]]]]]]]]]]]>] | ||||
|       >>>>>>> | ||||
|     ]                                 halve divisor and loop until zero | ||||
|     <<<<<<<<<<<<<<<<<[<<<<<<<<<<]>>>>>>>>>> | ||||
|     [>>>>>>>>[-]<<[->+<]<[->>>+<<<]>>>>>]<<<<<<<<<< | ||||
|     [+>>>>>>>[-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> | ||||
|              [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> | ||||
|              [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> | ||||
|              [-<<<<<<<+>>>>>>>[-<<<<<<<->>>>>>+> | ||||
|              [-<<<<<<<+>>>>>>>]]]]]]]]]<<<<<<< | ||||
|              [->>>>>>>+<<<<<<<]-<<<<<<<<<<] | ||||
|     >>>>>>> | ||||
|     [-<<<<<<<<<<<+>>>>>>>>>>>] | ||||
|       >>>[>>>>>>>[-<<<<<<<<<<<+++++>>>>>>>>>>>]>>>]<<<<<<<<<< | ||||
|     [+>>>>>>>>[-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> | ||||
|               [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> | ||||
|               [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> | ||||
|               [-<<<<<<<<+>>>>>>>>[-<<<<<<<<->>>>>+>>> | ||||
|               [-<<<<<<<<+>>>>>>>>]]]]]]]]]<<<<<<<< | ||||
|               [->>>>>>>>+<<<<<<<<]-<<<<<<<<<<] | ||||
|     >>>>>>>>[-<<<<<<<<<<<<<+>>>>>>>>>>>>>]>> | ||||
|     [>>>>>>>>[-<<<<<<<<<<<<<+++++>>>>>>>>>>>>>]>>]<<<<<<<<<< | ||||
|     [<<<<<<<<<<]>>>>>>>>>> | ||||
|     >>>>>> | ||||
|   ] | ||||
|   <<<<<< | ||||
|  | ||||
|   * | ||||
|   * make copies of the loop variable and the quotient | ||||
|   * | ||||
|  | ||||
|   [>>>[->>>>+>+<<<<<]>>>>>>>] | ||||
|   <<<<<<<<<< | ||||
|   [>>>>>>>[-<<<<+>>>>]<<<<<[->>>>>+>>+<<<<<<<]<<<<<<<<<<<<] | ||||
|   >>>>>>>>>>[>>>>>>>[-<<<<<+>>>>>]>>>]<<<<<<<<<< | ||||
|  | ||||
|   * | ||||
|   * break out of the loop if the quotient is larger than the loop variable | ||||
|   * | ||||
|  | ||||
|   [>>>>>>>>>[-<->]< | ||||
|     [<<<<<<<< | ||||
|       [<<[-]>>>>>>>>>>[-<<<<<<<<<<+>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] | ||||
|     >>>>>>>>>>>>>>>>>>]<<<<<<<<<<<<<<<<<<] | ||||
|   >>>>>>>>[>-<[+[+[+[+[+[+[+[+[+[[-]>+<]]]]]]]]]]]>+ | ||||
|  | ||||
|   [ [-] | ||||
|  | ||||
|     * | ||||
|     * partially increment the loop variable | ||||
|     * | ||||
|  | ||||
|     <[-]+>>>>+>>>>>>>>[>>>>>>>>>>]<<<<<<<<<< | ||||
|  | ||||
|     * | ||||
|     * examine the remainder for nonzero digits | ||||
|     * | ||||
|  | ||||
|     [<<<<<<[<<<<[<<<<<<<<<<]>>>>+<<<<<<<<<<]<<<<] | ||||
|     >>>>>>>>>>>>>>>>>>>>[>>>>>>>>>>]<<<<<<<<<<[<<<<<<<<<<] | ||||
|     >>>>- | ||||
|  | ||||
|     [ [+] | ||||
|  | ||||
|       * | ||||
|       * decrement the loop variable and replace the number with the quotient | ||||
|       * | ||||
|  | ||||
|       >>>>>>>>-<<[>[-]>>[-<<+>>]>>>>>>>]<<<<<<<<<< | ||||
|  | ||||
|       * | ||||
|       * display the loop variable | ||||
|       * | ||||
|  | ||||
|       [+>>[>>>>>>>>+>>]<<-<<<<<<<<<<]- | ||||
|       [>>++++++++++++++++++++++++++++++++++++++++++++++++. | ||||
|          ------------------------------------------------<<<<<<<<<<<<] | ||||
|       ++++++++++++++++++++++++++++++++.[-]>>>> | ||||
|  | ||||
|     ] | ||||
|  | ||||
|     * | ||||
|     * normalize the loop variable | ||||
|     * | ||||
|  | ||||
|     >>>>>> | ||||
|     [>>[->>>>>+<<<<<[->>>>>+<<<<< | ||||
|        [->>>>>+<<<<<[->>>>>+<<<<< | ||||
|        [->>>>>+<<<<<[->>>>>+<<<<< | ||||
|        [->>>>>+<<<<<[->>>>>+<<<<< | ||||
|        [->>>>>+<<<<<[->>>>>--------->>>>>+<<<<<<<<<< | ||||
|        [->>>>>+<<<<<]]]]]]]]]]]>>>>>>>>] | ||||
|     <<<<<<<<<<[>>>>>>>[-<<<<<+>>>>>]<<<<<<<<<<<<<<<<<] | ||||
|     >>>>>>>>> | ||||
|  | ||||
|   ]< | ||||
|  | ||||
| ]>> | ||||
|  | ||||
| * | ||||
| * display the number and end | ||||
| * | ||||
|  | ||||
| [>>>>>>>>>>]<<<<<<<<<<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]- | ||||
| [>++++++++++++++++++++++++++++++++++++++++++++++++.<<<<<<<<<<<] | ||||
| ++++++++++. | ||||
| @@ -58,6 +58,34 @@ var BA: [BlockSpace] int; | ||||
| forall ba in BA do | ||||
|   ba = here.id; | ||||
|  | ||||
| // | ||||
| // The 'hasSingleLocalSubdomain' method on arrays will return true if the  | ||||
| // index set for a locale can be represented by a single domain. | ||||
| // | ||||
| if !BA.hasSingleLocalSubdomain() then | ||||
|   halt("For a Block distribution, the index set per locale should be \ | ||||
|       represented by a single domain"); | ||||
|  | ||||
| // | ||||
| // If the distribution's subdomains can be represented as single subdomain, | ||||
| // we can use the 'localSubdomain' method to get the index set for the  | ||||
| // current locale. | ||||
| // | ||||
| // Below, we'll use the index set to confirm that the array elements have the  | ||||
| // correct locale id. | ||||
| // | ||||
|  | ||||
| for L in Locales { | ||||
|   on L { | ||||
|     const indices = BA.localSubdomain(); | ||||
|     for i in indices { | ||||
|       if BA[i] != L.id then | ||||
|         halt("Error: incorrect locale id"); | ||||
|     } | ||||
|   } | ||||
| } | ||||
|  | ||||
|  | ||||
| // | ||||
| // Output the Block-distributed array to visually see how the elements | ||||
| // are partitioned across the locales. | ||||
| @@ -104,6 +132,14 @@ writeln("Block Array Index Map"); | ||||
| writeln(BA2); | ||||
| writeln(); | ||||
|  | ||||
| // | ||||
| // We can use the 'targetLocales' method available on an array to get the | ||||
| // locales array used as targets. | ||||
| // | ||||
| for (L, ML) in zip(BA2.targetLocales(), MyLocales) do | ||||
|   if L != ML then | ||||
|     halt("Error: BA2.targetLocales() should equal MyLocales"); | ||||
|  | ||||
|  | ||||
|  | ||||
| // | ||||
| @@ -126,6 +162,18 @@ writeln("Cyclic Array Index Map"); | ||||
| writeln(CA); | ||||
| writeln(); | ||||
|  | ||||
| // | ||||
| // The domain returned by 'localSubdomain' need not be a dense block, as is | ||||
| // the case for the Cyclic Distribution. | ||||
| // | ||||
| on Locales[0] { | ||||
|   const indices = CA.localSubdomain(); | ||||
|   for i in indices { | ||||
|     if CA[i] != 0 then | ||||
|       halt("Error: Cyclic array values on Locale 0 should be zero"); | ||||
|   } | ||||
| } | ||||
|  | ||||
|  | ||||
| // | ||||
| // Next, we'll declare a Block-Cyclic distribution.  These | ||||
| @@ -134,7 +182,7 @@ writeln(); | ||||
| // of indices.  Thus, the BlockCyclic distribution is parameterized | ||||
| // by a starting index (as with Cyclic) and a block size (per | ||||
| // dimension) specifying how large the chunks to be dealt out are. | ||||
| //  | ||||
| // | ||||
| const BlkCycSpace = Space dmapped BlockCyclic(startIdx=Space.low,  | ||||
|                                               blocksize=(2, 3)); | ||||
| var BCA: [BlkCycSpace] int; | ||||
| @@ -146,6 +194,46 @@ writeln("Block-Cyclic Array Index Map"); | ||||
| writeln(BCA); | ||||
| writeln(); | ||||
|  | ||||
| // | ||||
| // A locale's index set for a Block-Cyclic distribution cannot be represented | ||||
| // by a single subdomain. | ||||
| // | ||||
| if BCA.hasSingleLocalSubdomain() then | ||||
|   halt("A Block-Cyclic index set cannot be represented by a single subdomain"); | ||||
|  | ||||
| // | ||||
| // If the local index set cannot be represented by a single subdomain,  | ||||
| // we can use the 'localSubdomains' iterator to yield a number of domains | ||||
| // that represent the whole index set. | ||||
| // | ||||
| // Let's write a function that will use 'localSubdomains' to verify the  | ||||
| // correctness of the array values. | ||||
| // | ||||
|  | ||||
| proc verifyID(Data: []) { | ||||
|   for L in Locales { | ||||
|     on L { | ||||
|       for indices in Data.localSubdomains() { | ||||
|         for i in indices { | ||||
|           if Data[i] != L.id then | ||||
|             halt("Error: incorrect locale id"); | ||||
|         } | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| verifyID(BCA); | ||||
|  | ||||
| // | ||||
| // The 'localSubdomains' iterator is also available on distributions that | ||||
| // can represent a locale's index set with a single domain. This allows us to | ||||
| // write more general code that will work for all distributions. | ||||
| // | ||||
| // This means that we can call the 'verifyID' function on any array, like the | ||||
| // 'BA' array from earlier. | ||||
| // | ||||
| verifyID(BA); | ||||
|  | ||||
|  | ||||
| // | ||||
| // The ReplicatedDist distribution is different: each of the | ||||
|   | ||||
| @@ -292,14 +292,14 @@ proc main() { | ||||
|     LagrangeLeapFrog(); | ||||
|  | ||||
|     if debug { | ||||
|       //      deprint("[[ Forces ]]", fx, fy, fz); | ||||
|       deprintatomic("[[ Forces ]]", fx, fy, fz); | ||||
|       deprint("[[ Positions ]]", x, y, z); | ||||
|       deprint("[[ p, e, q ]]", p, e, q); | ||||
|     } | ||||
|     if showProgress then | ||||
|       writeln("time = ", format("%e", time), ", dt=", format("%e", deltatime), | ||||
|               if doTiming then ", elapsed = " + (getCurrentTime()-iterTime)  | ||||
|                           else ""); | ||||
|       writef("time = %er, dt=%er, %s", time, deltatime, | ||||
|              if doTiming then ", elapsed = " + (getCurrentTime()-iterTime) +"\n" | ||||
|                          else "\n"); | ||||
|   } | ||||
|   if (cycle == maxcycles) { | ||||
|     writeln("Stopped early due to reaching maxnumsteps"); | ||||
| @@ -314,12 +314,10 @@ proc main() { | ||||
|   if printCoords { | ||||
|     var outfile = open("coords.out", iomode.cw); | ||||
|     var writer = outfile.writer(); | ||||
|     var fmtstr = if debug then "%1.9e" else "%1.4e"; | ||||
|     for i in Nodes { | ||||
|       writer.writeln(format(fmtstr, x[i]), " ",  | ||||
|                      format(fmtstr, y[i]), " ",  | ||||
|                      format(fmtstr, z[i])); | ||||
|     } | ||||
|     var fmtstr = if debug then "%1.9re %1.9er %1.9er\n"  | ||||
|                           else "%1.4er %1.4er %1.4er\n"; | ||||
|     for i in Nodes do | ||||
|       writer.writef(fmtstr, x[i], y[i], z[i]); | ||||
|     writer.close(); | ||||
|     outfile.close(); | ||||
|   } | ||||
| @@ -479,7 +477,7 @@ inline proc localizeNeighborNodes(eli: index(Elems), | ||||
|                                   y: [] real, ref y_local: 8*real, | ||||
|                                   z: [] real, ref z_local: 8*real) { | ||||
|  | ||||
|   for param i in 1..nodesPerElem { | ||||
|   for i in 1..nodesPerElem { | ||||
|     const noi = elemToNode[eli][i]; | ||||
|  | ||||
|     x_local[i] = x[noi]; | ||||
| @@ -670,7 +668,7 @@ proc SumElemStressesToNodeForces(b_x: 8*real, b_y: 8*real, b_z: 8*real, | ||||
|                                  ref fx: 8*real, | ||||
|                                  ref fy: 8*real, | ||||
|                                  ref fz: 8*real) { | ||||
|   for param i in 1..8 { | ||||
|   for i in 1..8 { | ||||
|     fx[i] = -(stress_xx * b_x[i]); | ||||
|     fy[i] = -(stress_yy * b_y[i]); | ||||
|     fz[i] = -(stress_zz * b_z[i]); | ||||
| @@ -725,17 +723,17 @@ inline proc CalcElemFBHourglassForce(xd: 8*real, yd: 8*real, zd: 8*real, | ||||
|   var hx, hy, hz: 4*real; | ||||
|  | ||||
|   // reduction | ||||
|   for param i in 1..4 { | ||||
|     for param j in 1..8 { | ||||
|   for i in 1..4 { | ||||
|     for j in 1..8 { | ||||
|       hx[i] += hourgam[j][i] * xd[j]; | ||||
|       hy[i] += hourgam[j][i] * yd[j]; | ||||
|       hz[i] += hourgam[j][i] * zd[j]; | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   for param i in 1..8 { | ||||
|   for i in 1..8 { | ||||
|     var shx, shy, shz: real; | ||||
|     for param j in 1..4 { | ||||
|     for j in 1..4 { | ||||
|       shx += hourgam[i][j] * hx[j]; | ||||
|       shy += hourgam[i][j] * hy[j]; | ||||
|       shz += hourgam[i][j] * hz[j]; | ||||
| @@ -1088,16 +1086,16 @@ proc CalcFBHourglassForceForElems(determ, x8n, y8n, z8n, dvdx, dvdy, dvdz) { | ||||
|  | ||||
|     /* TODO: Can we enable this local block? */ | ||||
|     // local { | ||||
|       for param i in 1..4 { | ||||
|       for i in 1..4 { | ||||
|         var hourmodx, hourmody, hourmodz: real; | ||||
|         // reduction | ||||
|         for param j in 1..8 { | ||||
|         for j in 1..8 { | ||||
|           hourmodx += x8n[eli][j] * gammaCoef[i][j]; | ||||
|           hourmody += y8n[eli][j] * gammaCoef[i][j]; | ||||
|           hourmodz += z8n[eli][j] * gammaCoef[i][j]; | ||||
|         } | ||||
|  | ||||
|         for param j in 1..8 { | ||||
|         for j in 1..8 { | ||||
|           hourgam[j][i] = gammaCoef[i][j] - volinv *  | ||||
|             (dvdx[eli][j] * hourmodx + | ||||
|              dvdy[eli][j] * hourmody + | ||||
| @@ -1221,7 +1219,7 @@ proc CalcKinematicsForElems(dxx, dyy, dzz, const dt: real) { | ||||
|       arealg[k] = CalcElemCharacteristicLength(x_local, y_local, z_local, | ||||
|                                                volume); | ||||
|  | ||||
|       for param i in 1..8 { | ||||
|       for i in 1..8 { | ||||
|         x_local[i] -= dt2 * xd_local[i]; | ||||
|         y_local[i] -= dt2 * yd_local[i]; | ||||
|         z_local[i] -= dt2 * zd_local[i]; | ||||
| @@ -1669,7 +1667,7 @@ proc CalcSoundSpeedForElems(vnewc, rho0:real, enewc, pnewc, pbvc, bvc) { | ||||
|  | ||||
|  | ||||
| iter elemToNodes(elem) { | ||||
|   for param i in 1..nodesPerElem do | ||||
|   for i in 1..nodesPerElem do | ||||
|     yield elemToNode[elem][i]; | ||||
| } | ||||
|                                   | ||||
| @@ -1679,14 +1677,19 @@ iter elemToNodesTuple(e) { | ||||
| } | ||||
|  | ||||
|  | ||||
| proc deprint(title:string, x:[?D] real, y:[D]real, z:[D]real) { | ||||
| proc deprint(title:string, x:[?D] real, y:[D] real, z:[D] real) { | ||||
|   writeln(title); | ||||
|   for i in D { | ||||
|     writeln(format("%3d", i), ": ",  | ||||
|             format("%3.4e", x[i]), " ",  | ||||
|             format("%3.4e", y[i]), " ",  | ||||
|             format("%3.4e", z[i])); | ||||
|   } | ||||
|   for i in D do | ||||
|     writef("%3i: %3.4er %3.4er %3.4er\n",  | ||||
|            if use3DRepresentation then idx3DTo1D(i, D.dim(1).size) else i,  | ||||
|            x[i], y[i], z[i]); | ||||
| } | ||||
|  | ||||
|  | ||||
| proc deprintatomic(title:string, x:[?D] atomic real, y:[] atomic real, z:[] atomic real) { | ||||
|   writeln(title); | ||||
|   for i in D do | ||||
|     writef("%3i: %3.4er %3.4er %3.4er\n",  | ||||
|            if use3DRepresentation then idx3DTo1D(i, D.dim(1).size) else i,  | ||||
|            x[i].peek(), y[i].peek(), z[i].peek()); | ||||
| } | ||||
|   | ||||
							
								
								
									
										172
									
								
								samples/Clarion/CStringClass.clw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										172
									
								
								samples/Clarion/CStringClass.clw
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,172 @@ | ||||
|       Member() | ||||
|          omit('***$***',_VER_C55) | ||||
| _ABCDllMode_  EQUATE(0) | ||||
| _ABCLinkMode_ EQUATE(1) | ||||
|          ***$*** | ||||
|       Include('Equates.CLW'),ONCE | ||||
|       Include('Keycodes.CLW'),ONCE | ||||
|       Include('Errors.CLW'),ONCE | ||||
|       Map | ||||
|       End ! map | ||||
|       Include('CStringClass.inc'),ONCE | ||||
| CStringClass.Construct PROCEDURE                       ! Declare Procedure | ||||
|   CODE | ||||
|   SELF.bufferSize  = DEFAULT_CS_BUFFER_SIZE | ||||
|   SELF.CS         &= New(CSTRING(SELF.bufferSize)) | ||||
| CStringClass.Destruct PROCEDURE                        ! Declare Procedure | ||||
|   CODE | ||||
|   Dispose(SELF.cs) | ||||
| CStringClass.Cat PROCEDURE  (STRING pStr) !,*CSTRING,PROC ! Declare Procedure | ||||
| newLen                       LONG,AUTO | ||||
| oldCS                        &CSTRING | ||||
|   CODE | ||||
|   newLen = Len(pStr) | ||||
|   IF (newLen+SELF.strLength+2) > SELF.newStrSize | ||||
|     ! Only grow the internal string if the result of the cat will be larger than the string currently is. | ||||
|     ! The reason for the "+2" is because this is used in the string slicing outside this IF. Without this matching +2 there is potential for an out of bounds slice which would be bad! | ||||
|  | ||||
|     ! Save a temporary copy of the old string so we can us it in the concatination after we have grown it! | ||||
|     oldCS &= New(CSTRING(SELF.strLength+1)) | ||||
|     oldCS = SELF.CS | ||||
|     Dispose(SELF.CS) | ||||
|  | ||||
|     SELF.newStrSize = newLen + SELF.strLength + 1 + SELF.bufferSize | ||||
|     SELF.CS &= New(CSTRING(SELF.newStrSize)) | ||||
|     SELF.CS = oldCS | ||||
|     Dispose(oldCS) | ||||
|   END | ||||
|  | ||||
|   ! Append the new string directly to the end of the old one. | ||||
|   SELF.CS[SELF.strLength+1 : SELF.strLength+newLen] = pStr | ||||
|   ! And terminate the CSTRING manually | ||||
|   SELF.CS[SELF.strLength+newLen+1] = '<0>' | ||||
|  | ||||
|   ! This is the same as doing "SELF.strLength = Len(SELF.CS)" but the Len() is _really_ slow on large strings. This is much faster! | ||||
|   SELF.strLength += newLen | ||||
|  | ||||
|   ! This is what it used to be: | ||||
|   ! SELF.Str(SELF.Str() & s) | ||||
|   ! It is a nice and neat solution but performance, especially on large strings was terrible! | ||||
|  | ||||
|   RETURN SELF.Str() | ||||
| CStringClass.Str PROCEDURE  (STRING pStr) !,*CSTRING, PROC   ! Declare Procedure | ||||
|   CODE | ||||
|   IF Len(pStr) > SELF.newStrSize | ||||
|     ! Only Dispose/New the internal string if the new one requires it. | ||||
|     ! This might be slightly innefficient in terms of memory usage when the string gets smaller | ||||
|     ! But it is _vasty_ better for performance when the string gets added to a lot. | ||||
|     Dispose(SELF.CS) | ||||
|     SELF.newStrSize = Len(pStr) + 1 + SELF.bufferSize | ||||
|     SELF.CS &= New(CSTRING(SELF.newStrSize)) | ||||
|   END | ||||
|  | ||||
|   SELF.CS        = pStr | ||||
|   SELF.strLength = Len(SELF.CS) | ||||
|  | ||||
|   RETURN SELF.CS | ||||
| CStringClass.Len PROCEDURE  !,LONG                     ! Declare Procedure | ||||
|   CODE | ||||
|   RETURN SELF.strLength | ||||
| CStringClass.Replace PROCEDURE  (STRING pFind, STRING pReplace) !,*CSTRING,PROC ! Declare Procedure | ||||
| ! FindString , ReplaceWith | ||||
| locate                       LONG,AUTO | ||||
| lastLocate                   LONG | ||||
|   CODE | ||||
|   LOOP | ||||
|     locate = InString(Upper(pFind), Upper(SELF.Str()), 1, lastLocate+1) | ||||
|     IF ~locate | ||||
|       BREAK | ||||
|     END | ||||
|  | ||||
|     ! So we dont end up having recursive replacement. | ||||
|     lastLocate = locate + Len(pReplace)-1 | ||||
|  | ||||
|     SELF.Str(Sub(SELF.Str(), 1, locate-1)                  & | | ||||
|              pReplace                                      & | | ||||
|              Sub(SELF.Str(), locate+Len(pFind), SELF.Len())    | | ||||
|              ) | ||||
|   END | ||||
|  | ||||
|   RETURN SELF.Str() | ||||
| CStringClass.Str PROCEDURE  () !,*CSTRING              ! Declare Procedure 3 | ||||
|   CODE | ||||
|   RETURN SELF.CS | ||||
| !------------------------------------------------------------------------------ | ||||
| CStringClass.Contains PROCEDURE  (STRING pFind, BYTE pCaseSensitive=TRUE) !,BYTE ! Declare Procedure | ||||
| ! Returns a value (TRUE) indicating whether the specified String occurs within this string. | ||||
| ! Second parameter defaults to a case sensitive search. | ||||
|   CODE | ||||
|   IF pCaseSensitive = TRUE | ||||
|     IF InString(pFind, SELF.Str(), 1 , 1) > 0 | ||||
|       RETURN TRUE | ||||
|     END | ||||
|   ELSE | ||||
|     IF InString(Lower(pFind), SELF.Lower(), 1 , 1) > 0 | ||||
|       RETURN TRUE | ||||
|     END | ||||
|   END | ||||
|  | ||||
|   RETURN FALSE | ||||
| CStringClass.Lower PROCEDURE  () !,STRING              ! Declare Procedure | ||||
| ! Returns a "Lowered" version of the self.cs doesnt change the self.cs | ||||
|   CODE | ||||
|   RETURN Lower(SELF.CS) | ||||
| CStringClass.SubString PROCEDURE  (LONG pPosition, LONG pLength) !,STRING,PROC ! Declare Procedure | ||||
|   CODE | ||||
|   RETURN Sub(SELF.Str(), pPosition, pLength) | ||||
| CStringClass.ToLower PROCEDURE  () !,*CSTRING,PROC     ! Declare Procedure | ||||
| ! Converts this string to lowercase and returns the converted string | ||||
|  | ||||
|   CODE | ||||
|   RETURN SELF.Str(SELF.Lower()) | ||||
| CStringClass.ToUpper PROCEDURE  () !,*CSTRING,PROC     ! Declare Procedure | ||||
| ! Converts this string to uppercase and returns the converted string | ||||
|  | ||||
|   CODE | ||||
|   RETURN SELF.Str(SELF.Upper()) | ||||
| CStringClass.Trim PROCEDURE  () !,*CSTRING,PROC        ! Declare Procedure | ||||
|   CODE | ||||
|   SELF.Str(Left(SELF.Str())) | ||||
|   SELF.Str(Clip(SELF.Str())) | ||||
|   RETURN SELF.Str() | ||||
| CStringClass.Upper PROCEDURE  () !,STRING              ! Declare Procedure | ||||
|   CODE | ||||
|   RETURN Upper(SELF.Str()) | ||||
| CStringClass.IndexOf PROCEDURE  (STRING pLookIn, BYTE pCaseSensitive=TRUE) !,LONG ! Declare Procedure | ||||
| ! Returns the index of the first parameter (pLookIn) is found within the SELF.CS | ||||
| ! zero if it is not found | ||||
|   CODE | ||||
|   IF pCaseSensitive = TRUE | ||||
|     RETURN InString(SELF.Str(), pLookIn, 1 , 1) | ||||
|   ELSE | ||||
|     RETURN InString(SELF.Lower(), Lower(pLookIn), 1 , 1) | ||||
|   END | ||||
| CStringClass.FoundIn PROCEDURE  (STRING pLookIn, BYTE pCaseSensitive=TRUE) !,BYTE ! Declare Procedure | ||||
| ! Returns TRUE if the first parameter (pLookIn) is found within the SELF.CS | ||||
| ! FALSE if it is no | ||||
|   CODE | ||||
|   IF SELF.IndexOf(pLookIn, pCaseSensitive) > 0 | ||||
|     RETURN TRUE | ||||
|   ELSE | ||||
|     RETURN FALSE | ||||
|   END | ||||
| CStringClass.SetBuffer PROCEDURE  (LONG pNewBuffer)    ! Declare Procedure | ||||
|   CODE | ||||
|   SELF.bufferSize = pNewBuffer | ||||
| CStringClass.EscapeXml PROCEDURE  (<STRING pStr>) !,STRING ! Declare Procedure | ||||
| CS CStringClass | ||||
|   CODE | ||||
|   IF Omitted(pStr)=FALSE | ||||
|     CS.Str(pStr) | ||||
|   ELSE | ||||
|     ! Make a copy so we don't alter the original | ||||
|     CS.Str(SELF.Str()) | ||||
|   END | ||||
|   CS.Replace('&', '&') | ||||
|   CS.Replace('<', '<') | ||||
|   CS.Replace('>', '>') | ||||
|   CS.Replace('"', '"') | ||||
|   CS.Replace('''', ''') | ||||
|  | ||||
|   RETURN CS.Str() | ||||
|  | ||||
							
								
								
									
										68
									
								
								samples/Clarion/ConsoleSupport.clw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										68
									
								
								samples/Clarion/ConsoleSupport.clw
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,68 @@ | ||||
|       Member() | ||||
|       Include('ConsoleSupport.inc'),ONCE | ||||
| 	  Map | ||||
|         MODULE('32-bit Windows API') | ||||
|             ! General functions | ||||
|             GetLastError(),DWORD,PASCAL | ||||
|   | ||||
|             ! Console functions | ||||
|             GetStdHandle(DWORD),HANDLE,PASCAL,PROC,RAW | ||||
|             WriteConsole(Handle,Long,Dword,long,long),bool,Raw,Pascal,name('WriteConsoleA') | ||||
|             ReadConsole(Handle,Long,Dword,long,long),bool,Raw,Pascal,name('ReadConsoleA') | ||||
|             SetConsoleTitle(Long),Bool,Raw,Pascal,name('SetConsoleTitleA') | ||||
|             GetConsoleTitle(Long,dword),Bool,Raw,Pascal,name('GetConsoleTitleA') | ||||
|             SetConsoleMode(Handle,dWord),BOOL,RAW,PASCAL | ||||
|             GetConsoleMode(Handle,Long),BOOL,RAW,PASCAL | ||||
|         End | ||||
|       End  | ||||
|        | ||||
| ConsoleSupport.Construct PROCEDURE | ||||
|  | ||||
|   CODE | ||||
|  | ||||
| ConsoleSupport.Destruct PROCEDURE | ||||
|  | ||||
|   CODE | ||||
|  | ||||
| ConsoleSupport.Init				   PROCEDURE () !,BYTE,VIRTUAL  | ||||
|   CODE | ||||
|  | ||||
|     SELF.OutputHandle = GetStdHandle(STD_OUTPUT_HANDLE) | ||||
|     If SELF.OutputHandle = INVALID_HANDLE_VALUE | ||||
|         Halt(1,'Unable to get output handle (' & GetLastError() & ')') | ||||
|         RETURN INVALID_HANDLE_VALUE | ||||
|     End | ||||
|   | ||||
|     SELF.InputHandle = GetStdHandle(STD_INPUT_HANDLE) | ||||
|     if SELF.InputHandle = INVALID_HANDLE_VALUE | ||||
|         Halt(2,'Unable to get console input handle (' & GetLastError() & ')') | ||||
|         RETURN INVALID_HANDLE_VALUE | ||||
|     End | ||||
|   | ||||
|     If ~SetConsoleMode(SELF.InputHandle,ENABLE_PROCESSED_INPUT ) | ||||
|         Halt(3,'Unable to set console mode (' & GetLastError() & ')') | ||||
|         RETURN INVALID_OTHER | ||||
|     End | ||||
|  | ||||
|     RETURN FALSE | ||||
|  | ||||
| ConsoleSupport.WriteLine			   PROCEDURE (STRING pText) !,BYTE,PROC,VIRTUAL  | ||||
|   CODE | ||||
|     SELF.TextBuffer = SELF.Prefix & pText & '<13,10>' | ||||
|     If WriteConsole(SELF.OutputHandle, ADDRESS(SELF.TextBuffer), LEN(SELF.TextBuffer),ADDRESS(SELF.BytesWritten), NULL) = 0 | ||||
|         Halt(4,'WriteConsoleError (' & GetLastError() & ')') | ||||
|         RETURN -1 | ||||
|     End | ||||
|     RETURN FALSE | ||||
|  | ||||
| Consolesupport.ReadKey  			   PROCEDURE () !,STRING,PROC,VIRTUAL  | ||||
|   CODE | ||||
|   SELF.WriteLine('Press any key to continue...') | ||||
|   Clear(SELF.InBuffer) | ||||
|   Loop | ||||
|     IF ReadConsole(SELF.InputHandle,Address(SELF.InBuffer),100,Address(SELF.BytesRead),NULL) = 0 THEN | ||||
|       Halt(5,'Error on read console (' & GetLastError() & ')') | ||||
|       Break | ||||
|     End | ||||
|   Until SELF.BytesRead > 0 | ||||
|   RETURN SELF.InBuffer | ||||
							
								
								
									
										10
									
								
								samples/Clarion/HelloWorld.clw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								samples/Clarion/HelloWorld.clw
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
|   PROGRAM | ||||
|  | ||||
|   MAP | ||||
|   END | ||||
|  | ||||
|   CODE | ||||
|  | ||||
|   MESSAGE('Hello World!') | ||||
|  | ||||
|   RETURN | ||||
							
								
								
									
										12
									
								
								samples/Clarion/hello.clw
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								samples/Clarion/hello.clw
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
|   MEMBER() | ||||
|   INCLUDE('HelloClass.inc'),ONCE | ||||
|   MAP | ||||
|   END | ||||
|  | ||||
| HelloClass.Construct              PROCEDURE | ||||
|   CODE | ||||
| HelloClass.Destruct               PROCEDURE() !,VIRTUAL | ||||
|   CODE | ||||
| HelloClass.SayHello               PROCEDURE | ||||
|   CODE | ||||
|   MESSAGE('Hello World!') | ||||
							
								
								
									
										15
									
								
								samples/Clojure/build.boot
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								samples/Clojure/build.boot
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,15 @@ | ||||
| ;; from: https://github.com/boot-clj/boot#configure-task-options | ||||
|  | ||||
| (set-env! | ||||
|   :source-paths #{"src"} | ||||
|   :dependencies '[[me.raynes/conch "0.8.0"]]) | ||||
|  | ||||
| (task-options! | ||||
|   pom {:project 'my-project | ||||
|        :version "0.1.0"} | ||||
|   jar {:manifest {"Foo" "bar"}}) | ||||
|  | ||||
| (deftask build | ||||
|   "Build my project." | ||||
|   [] | ||||
|   (comp (pom) (jar) (install))) | ||||
							
								
								
									
										2
									
								
								samples/Common Lisp/hello.lisp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								samples/Common Lisp/hello.lisp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,2 @@ | ||||
| (DEFUN HELLO () | ||||
|   (PRINT 'HELLO)) | ||||
							
								
								
									
										443
									
								
								samples/DIGITAL Command Language/fis_gtm_kitinstal.com
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										443
									
								
								samples/DIGITAL Command Language/fis_gtm_kitinstal.com
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,443 @@ | ||||
| $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||||
| $!								! | ||||
| $!	Copyright 2001, 2011 Fidelity Information Services, Inc	! | ||||
| $!								! | ||||
| $!	This source code contains the intellectual property	! | ||||
| $!	of its copyright holder(s), and is made available	! | ||||
| $!	under a license.  If you do not know the terms of	! | ||||
| $!	the license, please stop and do not read further.	! | ||||
| $!								! | ||||
| $!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||||
| $! | ||||
| $! | ||||
| $!	KITINSTAL.COM PROCEDURE FOR THE GT.M PRODUCT | ||||
| $! | ||||
| $ ON CONTROL_Y THEN VMI$CALLBACK CONTROL_Y | ||||
| $! ON WARNING THEN EXIT $STATUS !! allow warning errors for INSTALL REPLACE | ||||
| $ IF P1 .EQS. "VMI$_INSTALL" THEN GOTO INSTALL | ||||
| $ IF P1 .EQS. "VMI$_POSTINSTALL" THEN GOTO POSTINSTALL | ||||
| $ IF P1 .EQS. "VMI$_IVP" THEN GOTO IVP | ||||
| $ EXIT VMI$_UNSUPPORTED | ||||
| $! | ||||
| $INSTALL: | ||||
| $ TYPE SYS$INPUT | ||||
|  | ||||
|   GT.M  (c)  COPYRIGHT 1985 - 2000  by  Sanchez Computer Associates | ||||
|                             ALL RIGHTS RESERVED | ||||
|  | ||||
| $!  the following 2 lines must be maintained | ||||
| $ GTM$VMS_VERSION :== 072	! Minimum VMS version required | ||||
| $ ALPHA = (f$getsyi("arch_name") .eqs. "Alpha") | ||||
| $ IF ALPHA | ||||
| $  THEN | ||||
| $   GTM$DISK_SPACE == 28000	! Minumum disk space on system disk required | ||||
| $  ELSE | ||||
| $   GTM$DISK_SPACE == 16000	! Minumum disk space on system disk required | ||||
| $ ENDIF | ||||
| $ IF F$ELEMENT(0,",",VMI$VMS_VERSION) .EQS. "RELEASED" | ||||
| $  THEN | ||||
| $   GTM$VMS_IS == F$ELEMENT(1,",",VMI$VMS_VERSION) | ||||
| $   IF GTM$VMS_IS .LTS. GTM$VMS_VERSION | ||||
| $    THEN | ||||
| $     VMI$CALLBACK MESSAGE E VMSMISMATCH "This GT.M kit requires an existing VMS''GTM$VMS_VERSION' system." | ||||
| $     EXIT VMI$_FAILURE | ||||
| $   ENDIF | ||||
| $  ELSE | ||||
| $   GTM$VMS_IS :== | ||||
| $   WRITE SYS$OUTPUT "  No VMS version checking performed for field test versions." | ||||
| $ ENDIF | ||||
| $ IF (GTM$VMS_IS .GES. "052") THEN T1 = F$VERIFY(VMI$KIT_DEBUG) | ||||
| $ VMI$CALLBACK CHECK_NET_UTILIZATION GTM$ROOM 'GTM$DISK_SPACE' | ||||
| $ IF .NOT. GTM$ROOM | ||||
| $  THEN | ||||
| $   VMI$CALLBACK MESSAGE E NOSPACE "There is not enough disk space -- GT.M needs ''GTM$DISK_SPACE' blocks." | ||||
| $   EXIT VMI$_FAILURE | ||||
| $ ENDIF | ||||
| $!  setup default answers | ||||
| $ GTM$DOPURGE :== YES | ||||
| $ GTM$RUN_IVP :== YES | ||||
| $ GTM$STD_CNF :== YES | ||||
| $ GTM$DST_OWN :== SYSTEM | ||||
| $ IF F$IDENTIFIER(GTM$DST_OWN,"NAME_TO_NUMBER") .EQ. 0 THEN GTM$DST_OWN :== 1,4 | ||||
| $ GTM$SYS_DST :== YES | ||||
| $ GTM$DST_DIR :== GTM_DIST | ||||
| $ GTM$DST_CRE == GTM$DST_DIR | ||||
| $ GTM$DST_DEV :== | ||||
| $ GTM$STARTDB :== YES | ||||
| $ GTM$MGR_COM :== YES | ||||
| $ GTM$HLP_DIR :== NO | ||||
| $ GTM$DEF_DCL :== YES | ||||
| $ GTM$DEF_SYS :== YES | ||||
| $ GTM$LNK_LOG :== YES | ||||
| $ GTM$INSTALL :== YES | ||||
| $ GTM$DEF_GLD :== YES | ||||
| $ GTM$GBL_DIR :== MUMPS.GLD | ||||
| $ GTM$DEF_RTN :== YES | ||||
| $ GTM$RTN_DIR :== [],GTM$DIST: | ||||
| $ GTM$PCT_RTN :== YES | ||||
| $ VMI$CALLBACK ASK GTM$DOPURGE "Do you want to purge files replaced by this installation" 'GTM$DOPURGE' B - | ||||
|   "@VMI$KWD:GTMKITHLP HELP_PURGE" | ||||
| $ IF .NOT. GTM$DOPURGE THEN VMI$CALLBACK SET PURGE NO | ||||
| $ VMI$CALLBACK ASK GTM$STD_CNF "Do you want the standard GT.M configuration (performs INSTALL)" 'GTM$STD_CNF' B - | ||||
|   "@VMI$KWD:GTMKITHLP HELP_STD_CNF" | ||||
| $ IF GTM$STD_CNF | ||||
| $  THEN | ||||
| $   GTM$SYS_DST == 1 | ||||
| $   GTM$STARTDB == 1 | ||||
| $   GTM$MGR_COM == 1 | ||||
| $   GTM$HLP_DIR == 0 | ||||
| $   GTM$DEF_DCL == 1 | ||||
| $   GTM$DEF_SYS == 1 | ||||
| $   GTM$INSTALL == 1 | ||||
| $   GTM$LNK_LOG == 1 | ||||
| $   GTM$INSTALL == 1 | ||||
| $   GTM$DEF_GLD == 1 | ||||
| $   GTM$DEF_RTN == 1 | ||||
| $   GTM$PCT_RTN == 1 | ||||
| $   GTM$DST_LOG :== SYS$COMMON:['GTM$DST_DIR'] | ||||
| $   GTM$DIR_TYPE :== COMMON | ||||
| $  ELSE ! Not standard configuration | ||||
| $   VMI$CALLBACK ASK GTM$DST_OWN "What UIC should own the GT.M distribution" 'GTM$DST_OWN' S "@VMI$KWD:GTMKITHLP HELP_DST_OWN" | ||||
| $   GTM$DST_OWN == GTM$DST_OWN - "[" - "]" | ||||
| $   VMI$CALLBACK ASK GTM$SYS_DST "Do you want the GT.M distribution to go into a System Directory" 'GTM$SYS_DST' B - | ||||
|     "@VMI$KWD:GTMKITHLP HELP_SYS_DST" | ||||
| $   IF GTM$SYS_DST | ||||
| $    THEN | ||||
| $     VMI$CALLBACK ASK GTM$DST_DIR "In what System Directory do you want to place GT.M" 'GTM$DST_DIR' S - | ||||
|       "@VMI$KWD:GTMKITHLP HELP_SYS_DIR" | ||||
| $     GTM$DST_DIR == GTM$DST_DIR - "[" - "]" | ||||
| $     GTM$DST_CRE == GTM$DST_DIR | ||||
| $     GTM$DST_LOG :== SYS$COMMON:['GTM$DST_DIR'] | ||||
| $     GTM$DIR_TYPE :== COMMON | ||||
| $    ELSE ! Not system disk | ||||
| $     VMI$CALLBACK ASK GTM$DST_DEV "On which device do you want to place GT.M" "''GTM$DST_DEV'" S "@VMI$KWD:GTMKITHLP HELP_DST_DEV" | ||||
| $     VMI$CALLBACK ASK GTM$DST_DIR "In what directory on that device do you want to place GT.M" 'GTM$DST_DIR' S - | ||||
|       "@VMI$KWD:GTMKITHLP HELP_DST_DIR" | ||||
| $     GTM$DST_DEV == GTM$DST_DEV - ":" | ||||
| $     GTM$DST_DIR == GTM$DST_DIR - "[" - "]" | ||||
| $     GTM$DST_LOG :== 'GTM$DST_DEV':['GTM$DST_DIR'] | ||||
| $     GTM$DST_CRE == GTM$DST_LOG | ||||
| $     GTM$DIR_TYPE :== USER | ||||
| $   ENDIF ! system disk | ||||
| $   VMI$CALLBACK ASK GTM$STARTDB "Do you want GTMSTART.COM in the startup database" 'GTM$STARTDB' B - | ||||
|     "@VMI$KWD:GTMKITHLP HELP_STARTDB" | ||||
| $   IF .NOT. GTM$STARTDB | ||||
| $    THEN | ||||
| $     VMI$CALLBACK ASK GTM$MGR_COM "Do you want the GT.M .COM files in SYS$MANAGER" 'GTM$MGR_COM' B - | ||||
|       "@VMI$KWD:GTMKITHLP HELP_MGR_COM" | ||||
| $   ENDIF | ||||
| $   VMI$CALLBACK ASK GTM$HLP_DIR "Do you want the GT.M help files in SYS$HELP" 'GTM$HLP_DIR' B "@VMI$KWD:GTMKITHLP HELP_HLP_DIR" | ||||
| $   VMI$CALLBACK ASK GTM$DEF_DCL "Do you want to define GT.M commands to the system" 'GTM$DEF_DCL' B - | ||||
|     "@VMI$KWD:GTMKITHLP HELP_DEF_DCL" | ||||
| $   VMI$CALLBACK ASK GTM$DEF_SYS "Do you want to define GT.M logical names in the System Table" 'GTM$DEF_SYS' B - | ||||
|     "@VMI$KWD:GTMKITHLP HELP_DEF_SYS" | ||||
| $   VMI$CALLBACK ASK GTM$LNK_LOG "Do you want to define the LNK$LIBRARY logical names" 'GTM$LNK_LOG' B - | ||||
|     "@VMI$KWD:GTMKITHLP HELP_LNK_LOG" | ||||
| $   VMI$CALLBACK ASK GTM$RUN_IVP "Do you want to run the IVP (performs INSTALL)" 'GTM$RUN_IVP' B - | ||||
|     "@VMI$KWD:GTMKITHLP HELP_RUN_IVP" | ||||
| $   IF GTM$RUN_IVP | ||||
| $    THEN | ||||
| $     GTM$PCT_RTN == 1 | ||||
| $    ELSE | ||||
| $     VMI$CALLBACK ASK GTM$PCT_RTN "Do you want to compile the GT.M percent routines (performs INSTALL)" 'GTM$PCT_RTN' B - | ||||
|       "@VMI$KWD:GTMKITHLP HELP_PCT_RTN" | ||||
| $   ENDIF | ||||
| $   IF (GTM$RUN_IVP .OR. GTM$PCT_RTN) | ||||
| $    THEN | ||||
| $     GTM$INSTALL == 1 | ||||
| $    ELSE | ||||
| $     VMI$CALLBACK ASK GTM$INSTALL "Do you want to INSTALL the GT.M shareable images now" 'GTM$INSTALL' B - | ||||
|       "@VMI$KWD:GTMKITHLP HELP_INSTALL" | ||||
| $   ENDIF | ||||
| $   VMI$CALLBACK ASK GTM$DEF_RTN "Do you want to have a default definition for GTM$ROUTINES" 'GTM$DEF_RTN' B - | ||||
|     "@VMI$KWD:GTMKITHLP HELP_DEF_RTN" | ||||
| $   IF GTM$DEF_RTN | ||||
| $    THEN | ||||
| $     VMI$CALLBACK ASK GTM$RTN_DIR "What is the search specification for GTM$ROUTINES" 'GTM$RTN_DIR' S - | ||||
|       "@VMI$KWD:GTMKITHLP HELP_RTN_DIR" | ||||
| $   ENDIF | ||||
| $   VMI$CALLBACK ASK GTM$DEF_GLD "Do you want to have a default definition for GTM$GBLDIR" 'GTM$DEF_GLD' B - | ||||
|     "@VMI$KWD:GTMKITHLP HELP_DEF_GLD" | ||||
| $   IF GTM$DEF_GLD | ||||
| $    THEN | ||||
| $     VMI$CALLBACK ASK GTM$GBL_DIR "What is the file specification for GTM$GBLDIR" 'GTM$GBL_DIR' S - | ||||
|       "@VMI$KWD:GTMKITHLP HELP_GBL_DIR" | ||||
| $   ENDIF | ||||
| $ ENDIF ! standard configuration | ||||
| $!  tell them what's happening | ||||
| $ IF GTM$MGR_COM | ||||
| $  THEN | ||||
| $   WRITE SYS$OUTPUT "  The following command files are created and copied to SYS$MANAGER:" | ||||
| $  ELSE | ||||
| $   WRITE SYS$OUTPUT "  The following command files are created:" | ||||
| $ ENDIF | ||||
| $ TYPE SYS$INPUT | ||||
|  | ||||
|         GTMINSTALL.COM | ||||
|         GTMLOGICALS.COM | ||||
|         GTMLOGIN.COM | ||||
|         GTMSTART.COM | ||||
|         GTMSTOP.COM | ||||
|  | ||||
|   Each file contains its own user documentation. | ||||
|  | ||||
|   All the questions have been asked.   Installation now proceeds  without your | ||||
|   manual intervention for about 10-15 minutes. | ||||
| $ IF GTM$RUN_IVP THEN WRITE SYS$OUTPUT "  Finally the Installation Verification Procedure tests the installation." | ||||
| $ WRITE SYS$OUTPUT "" | ||||
| $ VMI$CALLBACK CREATE_DIRECTORY 'GTM$DIR_TYPE' 'GTM$DST_CRE' "/OWNER_UIC=[''GTM$DST_OWN'] /PROTECTION=(WO:RE)" | ||||
| $ VMI$CALLBACK RESTORE_SAVESET B | ||||
| $ VMI$CALLBACK RESTORE_SAVESET C | ||||
| $ WRITE SYS$OUTPUT "" | ||||
| $ VMI$CALLBACK MESSAGE I CRECOM "Creating command files." | ||||
| $!  Create GTMINSTALL.COM | ||||
| $ OPEN /WRITE OUFILE VMI$KWD:GTMINSTALL.COM | ||||
| $ WRITE OUFILE "$!" | ||||
| $ WRITE OUFILE "$!	GTMINSTALL.COM installs GTMSECSHR and other GT.M images." | ||||
| $ WRITE OUFILE "$!      GTMSECSHR is a small protected image and must be installed." | ||||
| $ WRITE OUFILE "$!      GTMSHR is the run-time library and is installed for performance." | ||||
| $ WRITE OUFILE "$!      GTM$DMOD and MCOMPILE are small images frequently used in development." | ||||
| $ WRITE OUFILE "$!" | ||||
| $ WRITE OUFILE "$ INSTALL" | ||||
| $ WRITE OUFILE "REPLACE  /OPEN/SHARED/HEADER/PROTECTED	GTMSECSHR" | ||||
| $ WRITE OUFILE "REPLACE  /OPEN/SHARED/HEADER		GTMSHR" | ||||
| $ WRITE OUFILE "REPLACE  /OPEN/SHARED/HEADER		GTM$DMOD" | ||||
| $ WRITE OUFILE "REPLACE  /OPEN/SHARED/HEADER		MCOMPILE" | ||||
| $ WRITE OUFILE "$ EXIT" | ||||
| $ CLOSE OUFILE | ||||
| $!  Create GTMLOGICALS.COM | ||||
| $ GTM$HLP_LOG :== GTM$DIST | ||||
| $ IF GTM$HLP_DIR THEN GTM$HLP_LOG :== SYS$HELP | ||||
| $ OPEN /WRITE OUFILE VMI$KWD:GTMLOGICALS.COM | ||||
| $ WRITE OUFILE "$!" | ||||
| $ WRITE OUFILE "$!	GTMLOGICALS.COM defines the logical names required to use GT.M." | ||||
| $ WRITE OUFILE "$!	By default the definitions are placed in the PROCESS table." | ||||
| $ WRITE OUFILE "$!	Parameter 1, if supplied should be the name of a logical name table" | ||||
| $ WRITE OUFILE "$!	and/or the mode of definition." | ||||
| $ WRITE OUFILE "$!      Assignments in a ""permanent"" table reduce GT.M activation time." | ||||
| $ WRITE OUFILE "$!" | ||||
| $ IF GTM$LNK_LOG THEN WRITE OUFILE "$!	The LNK$LIBRARY names many require adjustment to your environment." | ||||
| $ IF GTM$DEF_GLD THEN WRITE OUFILE "$!	GTM$GBLDIR is defined to provide default access to a global directory." | ||||
| $ IF GTM$DEF_RTN THEN WRITE OUFILE "$!	GTM$ROUTINES is defined to provide access to the GT.M utilities." | ||||
| $ IF GTM$DEF_RTN THEN WRITE OUFILE "$!	You may wish to define a different structure for $ZROUTINES." | ||||
| $ WRITE OUFILE "$!" | ||||
| $ WRITE OUFILE "$ IF (P1 .NES. """") .AND. (F$EXTRACT(0,1,P1) .NES. ""/"") THEN P1 := /'P1" | ||||
| $ WRITE OUFILE "$ DEFINE 'P1' GTM$DIST		''GTM$DST_LOG'" | ||||
| $ IF GTM$DEF_GLD THEN WRITE OUFILE "$ DEFINE 'P1' GTM$GBLDIR	''GTM$GBL_DIR'" | ||||
| $ IF GTM$DEF_RTN THEN WRITE OUFILE "$ DEFINE 'P1' GTM$ROUTINES	""''GTM$RTN_DIR'""" | ||||
| $ WRITE OUFILE "$ DEFINE 'P1' GTM$HELP		''GTM$HLP_LOG'" | ||||
| $ WRITE OUFILE "$ DEFINE 'P1' GTMSHR		GTM$DIST:GTMSHR.EXE" | ||||
| $ WRITE OUFILE "$ DEFINE 'P1' GTMSECSHR		GTM$DIST:GTMSECSHR.EXE" | ||||
| $ WRITE OUFILE "$ DEFINE 'P1' GTM$DMOD		GTM$DIST:GTM$DMOD.EXE" | ||||
| $ WRITE OUFILE "$ DEFINE 'P1' MCOMPILE		GTM$DIST:MCOMPILE.EXE" | ||||
| $ IF GTM$LNK_LOG | ||||
| $  THEN | ||||
| $   N1 = 0 | ||||
| $   DN = 0 | ||||
| $   T1 = F$TRNLNM("LNK$LIBRARY") | ||||
| $   IF  (T1 .EQS. "") .OR. (F$LOCATE("GTMLIB",T1) .NE. F$LENGTH(T1)) .OR. (F$LOCATE("GTMSHR",T1) .NE. F$LENGTH(T1)) | ||||
| $    THEN | ||||
| $     WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY	GTM$DIST:GTMLIB.OLB" | ||||
| $     DN = 1 | ||||
| $    ELSE ! lnk$library is in use | ||||
| $LNK_LOOP: | ||||
| $     N1 = N1 + 1 | ||||
| $     T1 = F$TRNLNM("LNK$LIBRARY_''N1'") | ||||
| $     IF  (T1 .EQS. "") .OR. (F$LOCATE("GTMLIB",T1) .NE. F$LENGTH(T1)) .OR. (F$LOCATE("GTMSHR",T1) .NE. F$LENGTH(T1)) | ||||
| $      THEN | ||||
| $       WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY_''N1'	GTM$DIST:GTMLIB.OLB" | ||||
| $       DN = 1 | ||||
| $     ENDIF | ||||
| $     IF  (.NOT. DN) .AND. (N1 .LT. 998)  THEN  GOTO LNK_LOOP | ||||
| $   ENDIF ! gtmlib handling | ||||
| $   IF  DN ! placed gtmlib | ||||
| $    THEN | ||||
| $     N1 = N1 + 1 | ||||
| $     WRITE OUFILE "$ DEFINE 'P1' LNK$LIBRARY_''N1'	GTM$DIST:GTMSHR.OLB" | ||||
| $    ELSE | ||||
| $     VMI$CALLBACK MESSAGE I NOLNKLOG "No LNK$LIBRARY logical names available" | ||||
| $   ENDIF | ||||
| $ ENDIF ! setting up LNK$LIBRARYs | ||||
| $ WRITE OUFILE "$ EXIT" | ||||
| $ CLOSE OUFILE | ||||
| $!  Create GTMLOGIN.COM | ||||
| $ OPEN /WRITE OUFILE VMI$KWD:GTMLOGIN.COM | ||||
| $ WRITE OUFILE "$!" | ||||
| $ WRITE OUFILE "$!	GTMLOGIN.COM performs process specific setup for GT.M." | ||||
| $ WRITE OUFILE "$!	It calls GTMLOGICALS.COM if the logical names are not" | ||||
| $ WRITE OUFILE "$!      in the SYSTEM table." | ||||
| $ WRITE OUFILE "$!	It defines symbols to access GT.M images." | ||||
| $ WRITE OUFILE "$!	It defines GT.M commands locally if they are not defined to the system." | ||||
| $ WRITE OUFILE "$!      When the command and logical names are not defined on a process level," | ||||
| $ WRITE OUFILE "$!      a production user may save start-up time by not using GTMLOGIN." | ||||
| $ WRITE OUFILE "$!      CCE is infrequently used, but may be defined as a foreign command." | ||||
| $ WRITE OUFILE "$!" | ||||
| $ IF .NOT. GTM$DEF_SYS | ||||
| $  THEN | ||||
| $   WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" | ||||
| $   WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" | ||||
| $   WRITE OUFILE "$ @'dir'GTMLOGICALS.COM" | ||||
| $ ENDIF | ||||
| $ IF .NOT. GTM$DEF_DCL THEN WRITE OUFILE "$ SET COMMAND GTM$DIST:GTMCOMMANDS.CLD" | ||||
| $ WRITE OUFILE "$ DSE :== $GTM$DIST:DSE.EXE	! Database System Editor" | ||||
| $ WRITE OUFILE "$ GDE :== $GTM$DIST:GDE.EXE	! Global Directory Editor" | ||||
| $ WRITE OUFILE "$ GTM :== MUMPS/DIRECT		! Direct Mode MUMPS" | ||||
| $ WRITE OUFILE "$ LKE :== $GTM$DIST:LKE.EXE	! Lock Editor" | ||||
| $ WRITE OUFILE "$ MUPI*P :== $GTM$DIST:MUPIP.EXE	! MUMPS Peripheral Interchange Program" | ||||
| $ WRITE OUFILE "$ EXIT" | ||||
| $ WRITE OUFILE "$ CCE :== $GTM$DIST:CCE.EXE	! GT.CX Operator Interface Program" | ||||
| $ WRITE OUFILE "$ EXIT" | ||||
| $ CLOSE OUFILE | ||||
| $!  Create GTMSTART.COM | ||||
| $ OPEN /WRITE OUFILE VMI$KWD:GTMSTART.COM | ||||
| $ WRITE OUFILE "$!" | ||||
| $ WRITE OUFILE "$!	GTMSTART.COM should be placed in the VMS startup database." | ||||
| $ WRITE OUFILE "$!	It invokes GTMLOGICALS.COM and GTMINSTALL.COM." | ||||
| $ WRITE OUFILE "$!" | ||||
| $ WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" | ||||
| $ WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" | ||||
| $ IF GTM$DEF_SYS THEN WRITE OUFILE "$ IF P1 .EQS. """" .OR. (P1 .EQS. ""FULL"") THEN P1 := SYSTEM/EXEC" | ||||
| $ WRITE OUFILE "$ @'dir'GTMLOGICALS 'P1'" | ||||
| $ WRITE OUFILE "$ @'dir'GTMINSTALL" | ||||
| $ WRITE OUFILE "$ EXIT" | ||||
| $ CLOSE OUFILE | ||||
| $!  Create GTMSTOP.COM | ||||
| $ OPEN /WRITE OUFILE VMI$KWD:GTMSTOP.COM | ||||
| $ WRITE OUFILE "$!" | ||||
| $ WRITE OUFILE "$!	GTMSTOP.COM stops all the active GT.M processes and does a RUNDOWN." | ||||
| $ WRITE OUFILE "$!	Place an invocation or copy of this procedure in the site specific" | ||||
| $ WRITE OUFILE "$!	 shutdown: SYS$MANAGER:SYSHUTDWN to ensure all GT.M databases are" | ||||
| $ WRITE OUFILE "$!	 properly closed before VMS terminates.  GTMSTOP should follow" | ||||
| $ WRITE OUFILE "$!	 GTCMSTOP and precede GTCXSTOP, if they are used." | ||||
| $ WRITE OUFILE "$!	If GTMSTOP is not intended to disable subsequent use of GT.M," | ||||
| $ WRITE OUFILE "$!	 add a comment (!) before the INSTALL REMOVE GTMSECSHR." | ||||
| $ WRITE OUFILE "$!" | ||||
| $ IF .NOT. GTM$DEF_SYS | ||||
| $  THEN | ||||
| $   WRITE OUFILE "$ dir = F$ENVIRONMENT(""PROCEDURE"")" | ||||
| $   WRITE OUFILE "$ dir = F$PARSE(dir,,,""DEVICE"") + F$PARSE(dir,,,""DIRECTORY"")" | ||||
| $   WRITE OUFILE "$ @'dir'GTMLOGICALS.COM" | ||||
| $ ENDIF | ||||
| $ WRITE OUFILE "$ MUPIP := $GTM$DIST:MUPIP.EXE" | ||||
| $ WRITE OUFILE "$ STOP := $GTM$DIST:GTM$STOP" | ||||
| $ WRITE OUFILE "$ STOP 'P1'" | ||||
| $ WRITE OUFILE "$ MUPIP RUNDOWN" | ||||
| $ WRITE OUFILE "$ INSTALL REMOVE GTMSECSHR" | ||||
| $ WRITE OUFILE "$ EXIT" | ||||
| $ IF GTM$DEF_SYS THEN WRITE OUFILE "$ IF P2 .EQS. """" THEN P2 := /SYSTEM/EXEC" | ||||
| $ WRITE OUFILE "$ DEASSIGN 'P2' GTMSECSHR" | ||||
| $ CLOSE OUFILE | ||||
| $ VMI$CALLBACK MESSAGE I PREINS "Preparing files for installation." | ||||
| $!  GTMFILES.KIT must be maintained as kit contents change | ||||
| $ GTM$HLP_LOG == GTM$DST_LOG | ||||
| $ IF GTM$HLP_DIR THEN GTM$HLP_LOG :== VMI$ROOT:[SYSHLP] | ||||
| $ OPEN /WRITE OUFILE VMI$KWD:GTMFILES.KIT | ||||
| $ IF GTM$MGR_COM | ||||
| $  THEN | ||||
| $   WRITE OUFILE "GTM$ GTMINSTALL.COM VMI$ROOT:[SYSMGR] C" | ||||
| $   WRITE OUFILE "GTM$ GTMLOGICALS.COM VMI$ROOT:[SYSMGR] C" | ||||
| $   WRITE OUFILE "GTM$ GTMLOGIN.COM VMI$ROOT:[SYSMGR] C" | ||||
| $   WRITE OUFILE "GTM$ GTMSTART.COM VMI$ROOT:[SYSMGR] C" | ||||
| $   WRITE OUFILE "GTM$ GTMSTOP.COM VMI$ROOT:[SYSMGR] C" | ||||
| $ ENDIF | ||||
| $ WRITE OUFILE "GTM$ GTMINSTALL.COM ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMLOGICALS.COM ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMLOGIN.COM ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMSTART.COM ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMSTOP.COM ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ DSE.HLB ''GTM$HLP_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GDE.HLB ''GTM$HLP_LOG'" | ||||
| $ WRITE OUFILE "GTM$ LKE.HLB ''GTM$HLP_LOG'" | ||||
| $ WRITE OUFILE "GTM$ MUMPS.HLB ''GTM$HLP_LOG'" | ||||
| $ WRITE OUFILE "GTM$ MUPIP.HLB ''GTM$HLP_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMLIB.OLB ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMSHR.OLB ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMZCALL.MLB ''GTM$DST_LOG'" | ||||
| $ IF ALPHA | ||||
| $  THEN | ||||
| $   WRITE OUFILE "GTM$ GTM$DEFAULTS.M64 ''GTM$DST_LOG'" | ||||
| $  ELSE | ||||
| $   WRITE OUFILE "GTM$ GTM$DEFAULTS.MAR ''GTM$DST_LOG'" | ||||
| $ ENDIF | ||||
| $ WRITE OUFILE "GTM$ GTM$CE.H ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMCOLLECT.OPT ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMCOMMANDS.CLD ''GTM$DST_LOG' C" | ||||
| $ WRITE OUFILE "GTM$ *.M ''GTM$DST_LOG'" | ||||
| $ CLOSE OUFILE | ||||
| $!  GTMIMAGES.KIT must be maintained as kit contents change | ||||
| $ OPEN /WRITE OUFILE VMI$KWD:GTMIMAGES.KIT | ||||
| $ WRITE OUFILE "GTM$ GTMSECSHR.EXE ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTMSHR.EXE ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ DSE.EXE ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GDE.EXE ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTM$DMOD.EXE ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ LKE.EXE ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ MCOMPILE.EXE ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ MUPIP.EXE ''GTM$DST_LOG'" | ||||
| $ WRITE OUFILE "GTM$ GTM$STOP.EXE ''GTM$DST_LOG'" | ||||
| $ CLOSE OUFILE | ||||
| $!  Provide with file.KITs | ||||
| $ VMI$CALLBACK PROVIDE_FILE "" VMI$KWD:GTMFILES.KIT "" T | ||||
| $ VMI$CALLBACK PROVIDE_IMAGE "" VMI$KWD:GTMIMAGES.KIT "" T | ||||
| $ VMI$CALLBACK MESSAGE I FININS "Finalizing the installation." | ||||
| $ IF GTM$DEF_DCL THEN VMI$CALLBACK PROVIDE_DCL_COMMAND GTMCOMMANDS.CLD | ||||
| $ IF GTM$STARTDB THEN VMI$CALLBACK MODIFY_STARTUP_DB ADD GTMSTART.COM LPMAIN | ||||
| $!  GTM$INSTALL is TRUE if GTM$RUN_IVP or GTM$PCT_RTN | ||||
| $ IF GTM$INSTALL THEN VMI$CALLBACK SET POSTINSTALL YES | ||||
| $ IF GTM$RUN_IVP THEN VMI$CALLBACK SET IVP YES | ||||
| $ EXIT VMI$_SUCCESS | ||||
| $! | ||||
| $POSTINSTALL: | ||||
| $ ON CONTROL_Y THEN EXIT VMI$_FAILURE | ||||
| $! remove MUPIP from command tables for change from V2.4 to V2.5 | ||||
| $ SET NOON | ||||
| $ DEFINE /USER_MODE SYS$OUTPUT NL: | ||||
| $ DEFINE /USER_MODE SYS$ERROR NL: | ||||
| $ SET COMMAND /TABLE=SYS$COMMON:[SYSLIB]DCLTABLES /OUTPUT=SYS$COMMON:[SYSLIB]DCLTABLES /DELETE=MUPIP | ||||
| $ DEFINE /USER_MODE SYS$OUTPUT NL: | ||||
| $ DEFINE /USER_MODE SYS$ERROR NL: | ||||
| $ SET COMMAND /DELETE=MUPIP | ||||
| $ SET ON | ||||
| $ IF GTM$MGR_COM | ||||
| $  THEN | ||||
| $   T1 := SYS$MANAGER: | ||||
| $  ELSE | ||||
| $   T1 = GTM$DST_LOG | ||||
| $ ENDIF | ||||
| $ @'T1'GTMSTART | ||||
| $ @'T1'GTMLOGIN | ||||
| $ ON CONTROL_Y THEN EXIT VMI$_FAILURE | ||||
| $ SET DEFAULT GTM$DIST | ||||
| $ T2 = F$ENVIRONMENT("PROTECTION") | ||||
| $ SET PROTECTION=(S=REWD,O=REWD,G=REWD,W=RE)/DEFAULT | ||||
| $ MUMPS GTM$DMOD.M | ||||
| $ IF GTM$LNK_LOG | ||||
| $  THEN | ||||
| $   T1 := | ||||
| $  ELSE | ||||
| $   T1 :=,GTMLIB.OLB/LIB,GTMSHR.OLB/LIB | ||||
| $ ENDIF | ||||
| $ LINK GTM$DMOD.OBJ/NOTRACE'T1 | ||||
| $ IF GTM$PCT_RTN | ||||
| $  THEN | ||||
| $   TYPE SYS$INPUT | ||||
|  | ||||
|   Compiling the GT.M percent (%) routines. | ||||
| $   MUMPS * | ||||
| $   IF GTM$DOPURGE THEN PURGE *.* | ||||
| $   SET DEFAULT VMI$KWD | ||||
| $ ENDIF ! percent routines | ||||
| $ SET PROTECTION=('T2')/DEFAULT | ||||
| $ EXIT VMI$_SUCCESS | ||||
| $! | ||||
| $IVP: | ||||
| $!	The real Installation Verification Procedure. | ||||
| $ TYPE SYS$INPUT | ||||
|  | ||||
|   GT.M  Installation Verification Procedure | ||||
|  | ||||
| $!	Extract the IVP .COM file from the text library. | ||||
| $ LIBRARIAN /EXTRACT=GTM$IVP /OUTPUT=GTM$IVP.COM	GTM$IVP.TLB | ||||
| $ @GTM$IVP | ||||
| $ EXIT $STATUS | ||||
| $! | ||||
							
								
								
									
										867
									
								
								samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										867
									
								
								samples/DIGITAL Command Language/ghostpdl_zlib_make_vms.com
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,867 @@ | ||||
| $! make libz under VMS written by | ||||
| $! Martin P.J. Zinser | ||||
| $! | ||||
| $! In case of problems with the install you might contact me at | ||||
| $! zinser@zinser.no-ip.info(preferred) or | ||||
| $! martin.zinser@eurexchange.com (work) | ||||
| $! | ||||
| $! Make procedure history for Zlib | ||||
| $! | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! Version history | ||||
| $! 0.01 20060120 First version to receive a number | ||||
| $! 0.02 20061008 Adapt to new Makefile.in | ||||
| $! 0.03 20091224 Add support for large file check | ||||
| $! 0.04 20100110 Add new gzclose, gzlib, gzread, gzwrite | ||||
| $! 0.05 20100221 Exchange zlibdefs.h by zconf.h.in | ||||
| $! 0.06 20120111 Fix missing amiss_err, update zconf_h.in, fix new exmples | ||||
| $!               subdir path, update module search in makefile.in | ||||
| $! 0.07 20120115 Triggered by work done by Alexey Chupahin completly redesigned | ||||
| $!               shared image creation | ||||
| $! 0.08 20120219 Make it work on VAX again, pre-load missing symbols to shared | ||||
| $!               image | ||||
| $! 0.09 20120305 SMS.  P1 sets builder ("MMK", "MMS", " " (built-in)). | ||||
| $!               "" -> automatic, preference: MMK, MMS, built-in. | ||||
| $! | ||||
| $ on error then goto err_exit | ||||
| $! | ||||
| $ true  = 1 | ||||
| $ false = 0 | ||||
| $ tmpnam = "temp_" + f$getjpi("","pid") | ||||
| $ tt = tmpnam + ".txt" | ||||
| $ tc = tmpnam + ".c" | ||||
| $ th = tmpnam + ".h" | ||||
| $ define/nolog tconfig 'th' | ||||
| $ its_decc = false | ||||
| $ its_vaxc = false | ||||
| $ its_gnuc = false | ||||
| $ s_case   = False | ||||
| $! | ||||
| $! Setup variables holding "config" information | ||||
| $! | ||||
| $ Make    = "''p1'" | ||||
| $ name     = "Zlib" | ||||
| $ version  = "?.?.?" | ||||
| $ v_string = "ZLIB_VERSION" | ||||
| $ v_file   = "zlib.h" | ||||
| $ ccopt   = "/include = []" | ||||
| $ lopts   = "" | ||||
| $ dnsrl   = "" | ||||
| $ aconf_in_file = "zconf.h.in#zconf.h_in#zconf_h.in" | ||||
| $ conf_check_string = "" | ||||
| $ linkonly = false | ||||
| $ optfile  = name + ".opt" | ||||
| $ mapfile  = name + ".map" | ||||
| $ libdefs  = "" | ||||
| $ vax      = f$getsyi("HW_MODEL").lt.1024 | ||||
| $ axp      = f$getsyi("HW_MODEL").ge.1024 .and. f$getsyi("HW_MODEL").lt.4096 | ||||
| $ ia64     = f$getsyi("HW_MODEL").ge.4096 | ||||
| $! | ||||
| $! 2012-03-05 SMS. | ||||
| $! Why is this needed?  And if it is needed, why not simply ".not. vax"? | ||||
| $! | ||||
| $!!! if axp .or. ia64 then  set proc/parse=extended | ||||
| $! | ||||
| $ whoami = f$parse(f$environment("Procedure"),,,,"NO_CONCEAL") | ||||
| $ mydef  = F$parse(whoami,,,"DEVICE") | ||||
| $ mydir  = f$parse(whoami,,,"DIRECTORY") - "][" | ||||
| $ myproc = f$parse(whoami,,,"Name") + f$parse(whoami,,,"type") | ||||
| $! | ||||
| $! Check for MMK/MMS | ||||
| $! | ||||
| $ if (Make .eqs. "") | ||||
| $ then | ||||
| $   If F$Search ("Sys$System:MMS.EXE") .nes. "" Then Make = "MMS" | ||||
| $   If F$Type (MMK) .eqs. "STRING" Then Make = "MMK" | ||||
| $ else | ||||
| $   Make = f$edit( Make, "trim") | ||||
| $ endif | ||||
| $! | ||||
| $ gosub find_version | ||||
| $! | ||||
| $  open/write topt tmp.opt | ||||
| $  open/write optf 'optfile' | ||||
| $! | ||||
| $ gosub check_opts | ||||
| $! | ||||
| $! Look for the compiler used | ||||
| $! | ||||
| $ gosub check_compiler | ||||
| $ close topt | ||||
| $ close optf | ||||
| $! | ||||
| $ if its_decc | ||||
| $ then | ||||
| $   ccopt = "/prefix=all" + ccopt | ||||
| $   if f$trnlnm("SYS") .eqs. "" | ||||
| $   then | ||||
| $     if axp | ||||
| $     then | ||||
| $       define sys sys$library: | ||||
| $     else | ||||
| $       ccopt = "/decc" + ccopt | ||||
| $       define sys decc$library_include: | ||||
| $     endif | ||||
| $   endif | ||||
| $! | ||||
| $! 2012-03-05 SMS. | ||||
| $! Why /NAMES = AS_IS?  Why not simply ".not. vax"?  And why not on VAX? | ||||
| $! | ||||
| $   if axp .or. ia64 | ||||
| $   then | ||||
| $       ccopt = ccopt + "/name=as_is/opt=(inline=speed)" | ||||
| $       s_case = true | ||||
| $   endif | ||||
| $ endif | ||||
| $ if its_vaxc .or. its_gnuc | ||||
| $ then | ||||
| $    if f$trnlnm("SYS").eqs."" then define sys sys$library: | ||||
| $ endif | ||||
| $! | ||||
| $! Build a fake configure input header | ||||
| $! | ||||
| $ open/write conf_hin config.hin | ||||
| $ write conf_hin "#undef _LARGEFILE64_SOURCE" | ||||
| $ close conf_hin | ||||
| $! | ||||
| $! | ||||
| $ i = 0 | ||||
| $FIND_ACONF: | ||||
| $ fname = f$element(i,"#",aconf_in_file) | ||||
| $ if fname .eqs. "#" then goto AMISS_ERR | ||||
| $ if f$search(fname) .eqs. "" | ||||
| $ then | ||||
| $   i = i + 1 | ||||
| $   goto find_aconf | ||||
| $ endif | ||||
| $ open/read/err=aconf_err aconf_in 'fname' | ||||
| $ open/write aconf zconf.h | ||||
| $ACONF_LOOP: | ||||
| $ read/end_of_file=aconf_exit aconf_in line | ||||
| $ work = f$edit(line, "compress,trim") | ||||
| $ if f$extract(0,6,work) .nes. "#undef" | ||||
| $ then | ||||
| $   if f$extract(0,12,work) .nes. "#cmakedefine" | ||||
| $   then | ||||
| $       write aconf line | ||||
| $   endif | ||||
| $ else | ||||
| $   cdef = f$element(1," ",work) | ||||
| $   gosub check_config | ||||
| $ endif | ||||
| $ goto aconf_loop | ||||
| $ACONF_EXIT: | ||||
| $ write aconf "" | ||||
| $ write aconf "/* VMS specifics added by make_vms.com: */" | ||||
| $ write aconf "#define VMS 1" | ||||
| $ write aconf "#include <unistd.h>" | ||||
| $ write aconf "#include <unixio.h>" | ||||
| $ write aconf "#ifdef _LARGEFILE" | ||||
| $ write aconf "# define off64_t __off64_t" | ||||
| $ write aconf "# define fopen64 fopen" | ||||
| $ write aconf "# define fseeko64 fseeko" | ||||
| $ write aconf "# define lseek64 lseek" | ||||
| $ write aconf "# define ftello64 ftell" | ||||
| $ write aconf "#endif" | ||||
| $ write aconf "#if !defined( __VAX) && (__CRTL_VER >= 70312000)" | ||||
| $ write aconf "# define HAVE_VSNPRINTF" | ||||
| $ write aconf "#endif" | ||||
| $ close aconf_in | ||||
| $ close aconf | ||||
| $ if f$search("''th'") .nes. "" then delete 'th';* | ||||
| $! Build the thing plain or with mms | ||||
| $! | ||||
| $ write sys$output "Compiling Zlib sources ..." | ||||
| $ if make.eqs."" | ||||
| $ then | ||||
| $   if (f$search( "example.obj;*") .nes. "") then delete example.obj;* | ||||
| $   if (f$search( "minigzip.obj;*") .nes. "") then delete minigzip.obj;* | ||||
| $   CALL MAKE adler32.OBJ "CC ''CCOPT' adler32" - | ||||
|                 adler32.c zlib.h zconf.h | ||||
| $   CALL MAKE compress.OBJ "CC ''CCOPT' compress" - | ||||
|                 compress.c zlib.h zconf.h | ||||
| $   CALL MAKE crc32.OBJ "CC ''CCOPT' crc32" - | ||||
|                 crc32.c zlib.h zconf.h | ||||
| $   CALL MAKE deflate.OBJ "CC ''CCOPT' deflate" - | ||||
|                 deflate.c deflate.h zutil.h zlib.h zconf.h | ||||
| $   CALL MAKE gzclose.OBJ "CC ''CCOPT' gzclose" - | ||||
|                 gzclose.c zutil.h zlib.h zconf.h | ||||
| $   CALL MAKE gzlib.OBJ "CC ''CCOPT' gzlib" - | ||||
|                 gzlib.c zutil.h zlib.h zconf.h | ||||
| $   CALL MAKE gzread.OBJ "CC ''CCOPT' gzread" - | ||||
|                 gzread.c zutil.h zlib.h zconf.h | ||||
| $   CALL MAKE gzwrite.OBJ "CC ''CCOPT' gzwrite" - | ||||
|                 gzwrite.c zutil.h zlib.h zconf.h | ||||
| $   CALL MAKE infback.OBJ "CC ''CCOPT' infback" - | ||||
|                 infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h | ||||
| $   CALL MAKE inffast.OBJ "CC ''CCOPT' inffast" - | ||||
|                 inffast.c zutil.h zlib.h zconf.h inffast.h | ||||
| $   CALL MAKE inflate.OBJ "CC ''CCOPT' inflate" - | ||||
|                 inflate.c zutil.h zlib.h zconf.h infblock.h | ||||
| $   CALL MAKE inftrees.OBJ "CC ''CCOPT' inftrees" - | ||||
|                 inftrees.c zutil.h zlib.h zconf.h inftrees.h | ||||
| $   CALL MAKE trees.OBJ "CC ''CCOPT' trees" - | ||||
|                 trees.c deflate.h zutil.h zlib.h zconf.h | ||||
| $   CALL MAKE uncompr.OBJ "CC ''CCOPT' uncompr" - | ||||
|                 uncompr.c zlib.h zconf.h | ||||
| $   CALL MAKE zutil.OBJ "CC ''CCOPT' zutil" - | ||||
|                 zutil.c zutil.h zlib.h zconf.h | ||||
| $   write sys$output "Building Zlib ..." | ||||
| $   CALL MAKE libz.OLB "lib/crea libz.olb *.obj" *.OBJ | ||||
| $   write sys$output "Building example..." | ||||
| $   CALL MAKE example.OBJ "CC ''CCOPT' [.test]example" - | ||||
|                 [.test]example.c zlib.h zconf.h | ||||
| $   call make example.exe "LINK example,libz.olb/lib" example.obj libz.olb | ||||
| $   write sys$output "Building minigzip..." | ||||
| $   CALL MAKE minigzip.OBJ "CC ''CCOPT' [.test]minigzip" - | ||||
|               [.test]minigzip.c zlib.h zconf.h | ||||
| $   call make minigzip.exe - | ||||
|               "LINK minigzip,libz.olb/lib" - | ||||
|               minigzip.obj libz.olb | ||||
| $ else | ||||
| $   gosub crea_mms | ||||
| $   write sys$output "Make ''name' ''version' with ''Make' " | ||||
| $   'make' | ||||
| $ endif | ||||
| $! | ||||
| $! Create shareable image | ||||
| $! | ||||
| $ gosub crea_olist | ||||
| $ write sys$output "Creating libzshr.exe" | ||||
| $ call map_2_shopt 'mapfile' 'optfile' | ||||
| $ LINK_'lopts'/SHARE=libzshr.exe modules.opt/opt,'optfile'/opt | ||||
| $ write sys$output "Zlib build completed" | ||||
| $ delete/nolog tmp.opt;* | ||||
| $ exit | ||||
| $AMISS_ERR: | ||||
| $ write sys$output "No source for config.hin found." | ||||
| $ write sys$output "Tried any of ''aconf_in_file'" | ||||
| $ goto err_exit | ||||
| $CC_ERR: | ||||
| $ write sys$output "C compiler required to build ''name'" | ||||
| $ goto err_exit | ||||
| $ERR_EXIT: | ||||
| $ set message/facil/ident/sever/text | ||||
| $ close/nolog optf | ||||
| $ close/nolog topt | ||||
| $ close/nolog aconf_in | ||||
| $ close/nolog aconf | ||||
| $ close/nolog out | ||||
| $ close/nolog min | ||||
| $ close/nolog mod | ||||
| $ close/nolog h_in | ||||
| $ write sys$output "Exiting..." | ||||
| $ exit 2 | ||||
| $! | ||||
| $! | ||||
| $MAKE: SUBROUTINE   !SUBROUTINE TO CHECK DEPENDENCIES | ||||
| $ V = 'F$Verify(0) | ||||
| $! P1 = What we are trying to make | ||||
| $! P2 = Command to make it | ||||
| $! P3 - P8  What it depends on | ||||
| $ | ||||
| $ If F$Search(P1) .Eqs. "" Then Goto Makeit | ||||
| $ Time = F$CvTime(F$File(P1,"RDT")) | ||||
| $arg=3 | ||||
| $Loop: | ||||
| $       Argument = P'arg | ||||
| $       If Argument .Eqs. "" Then Goto Exit | ||||
| $       El=0 | ||||
| $Loop2: | ||||
| $       File = F$Element(El," ",Argument) | ||||
| $       If File .Eqs. " " Then Goto Endl | ||||
| $       AFile = "" | ||||
| $Loop3: | ||||
| $       OFile = AFile | ||||
| $       AFile = F$Search(File) | ||||
| $       If AFile .Eqs. "" .Or. AFile .Eqs. OFile Then Goto NextEl | ||||
| $       If F$CvTime(F$File(AFile,"RDT")) .Ges. Time Then Goto Makeit | ||||
| $       Goto Loop3 | ||||
| $NextEL: | ||||
| $       El = El + 1 | ||||
| $       Goto Loop2 | ||||
| $EndL: | ||||
| $ arg=arg+1 | ||||
| $ If arg .Le. 8 Then Goto Loop | ||||
| $ Goto Exit | ||||
| $ | ||||
| $Makeit: | ||||
| $ VV=F$VERIFY(0) | ||||
| $ write sys$output P2 | ||||
| $ 'P2 | ||||
| $ VV='F$Verify(VV) | ||||
| $Exit: | ||||
| $ If V Then Set Verify | ||||
| $ENDSUBROUTINE | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Check command line options and set symbols accordingly | ||||
| $! | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! Version history | ||||
| $! 0.01 20041206 First version to receive a number | ||||
| $! 0.02 20060126 Add new "HELP" target | ||||
| $ CHECK_OPTS: | ||||
| $ i = 1 | ||||
| $ OPT_LOOP: | ||||
| $ if i .lt. 9 | ||||
| $ then | ||||
| $   cparm = f$edit(p'i',"upcase") | ||||
| $! | ||||
| $! Check if parameter actually contains something | ||||
| $! | ||||
| $   if f$edit(cparm,"trim") .nes. "" | ||||
| $   then | ||||
| $     if cparm .eqs. "DEBUG" | ||||
| $     then | ||||
| $       ccopt = ccopt + "/noopt/deb" | ||||
| $       lopts = lopts + "/deb" | ||||
| $     endif | ||||
| $     if f$locate("CCOPT=",cparm) .lt. f$length(cparm) | ||||
| $     then | ||||
| $       start = f$locate("=",cparm) + 1 | ||||
| $       len   = f$length(cparm) - start | ||||
| $       ccopt = ccopt + f$extract(start,len,cparm) | ||||
| $       if f$locate("AS_IS",f$edit(ccopt,"UPCASE")) .lt. f$length(ccopt) - | ||||
|           then s_case = true | ||||
| $     endif | ||||
| $     if cparm .eqs. "LINK" then linkonly = true | ||||
| $     if f$locate("LOPTS=",cparm) .lt. f$length(cparm) | ||||
| $     then | ||||
| $       start = f$locate("=",cparm) + 1 | ||||
| $       len   = f$length(cparm) - start | ||||
| $       lopts = lopts + f$extract(start,len,cparm) | ||||
| $     endif | ||||
| $     if f$locate("CC=",cparm) .lt. f$length(cparm) | ||||
| $     then | ||||
| $       start  = f$locate("=",cparm) + 1 | ||||
| $       len    = f$length(cparm) - start | ||||
| $       cc_com = f$extract(start,len,cparm) | ||||
|         if (cc_com .nes. "DECC") .and. - | ||||
|            (cc_com .nes. "VAXC") .and. - | ||||
|            (cc_com .nes. "GNUC") | ||||
| $       then | ||||
| $         write sys$output "Unsupported compiler choice ''cc_com' ignored" | ||||
| $         write sys$output "Use DECC, VAXC, or GNUC instead" | ||||
| $       else | ||||
| $         if cc_com .eqs. "DECC" then its_decc = true | ||||
| $         if cc_com .eqs. "VAXC" then its_vaxc = true | ||||
| $         if cc_com .eqs. "GNUC" then its_gnuc = true | ||||
| $       endif | ||||
| $     endif | ||||
| $     if f$locate("MAKE=",cparm) .lt. f$length(cparm) | ||||
| $     then | ||||
| $       start  = f$locate("=",cparm) + 1 | ||||
| $       len    = f$length(cparm) - start | ||||
| $       mmks = f$extract(start,len,cparm) | ||||
| $       if (mmks .eqs. "MMK") .or. (mmks .eqs. "MMS") | ||||
| $       then | ||||
| $         make = mmks | ||||
| $       else | ||||
| $         write sys$output "Unsupported make choice ''mmks' ignored" | ||||
| $         write sys$output "Use MMK or MMS instead" | ||||
| $       endif | ||||
| $     endif | ||||
| $     if cparm .eqs. "HELP" then gosub bhelp | ||||
| $   endif | ||||
| $   i = i + 1 | ||||
| $   goto opt_loop | ||||
| $ endif | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Look for the compiler used | ||||
| $! | ||||
| $! Version history | ||||
| $! 0.01 20040223 First version to receive a number | ||||
| $! 0.02 20040229 Save/set value of decc$no_rooted_search_lists | ||||
| $! 0.03 20060202 Extend handling of GNU C | ||||
| $! 0.04 20090402 Compaq -> hp | ||||
| $CHECK_COMPILER: | ||||
| $ if (.not. (its_decc .or. its_vaxc .or. its_gnuc)) | ||||
| $ then | ||||
| $   its_decc = (f$search("SYS$SYSTEM:DECC$COMPILER.EXE") .nes. "") | ||||
| $   its_vaxc = .not. its_decc .and. (F$Search("SYS$System:VAXC.Exe") .nes. "") | ||||
| $   its_gnuc = .not. (its_decc .or. its_vaxc) .and. (f$trnlnm("gnu_cc") .nes. "") | ||||
| $ endif | ||||
| $! | ||||
| $! Exit if no compiler available | ||||
| $! | ||||
| $ if (.not. (its_decc .or. its_vaxc .or. its_gnuc)) | ||||
| $ then goto CC_ERR | ||||
| $ else | ||||
| $   if its_decc | ||||
| $   then | ||||
| $     write sys$output "CC compiler check ... hp C" | ||||
| $     if f$trnlnm("decc$no_rooted_search_lists") .nes. "" | ||||
| $     then | ||||
| $       dnrsl = f$trnlnm("decc$no_rooted_search_lists") | ||||
| $     endif | ||||
| $     define/nolog decc$no_rooted_search_lists 1 | ||||
| $   else | ||||
| $     if its_vaxc then write sys$output "CC compiler check ... VAX C" | ||||
| $     if its_gnuc | ||||
| $     then | ||||
| $         write sys$output "CC compiler check ... GNU C" | ||||
| $         if f$trnlnm(topt) then write topt "gnu_cc:[000000]gcclib.olb/lib" | ||||
| $         if f$trnlnm(optf) then write optf "gnu_cc:[000000]gcclib.olb/lib" | ||||
| $         cc = "gcc" | ||||
| $     endif | ||||
| $     if f$trnlnm(topt) then write topt "sys$share:vaxcrtl.exe/share" | ||||
| $     if f$trnlnm(optf) then write optf "sys$share:vaxcrtl.exe/share" | ||||
| $   endif | ||||
| $ endif | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! If MMS/MMK are available dump out the descrip.mms if required | ||||
| $! | ||||
| $CREA_MMS: | ||||
| $ write sys$output "Creating descrip.mms..." | ||||
| $ create descrip.mms | ||||
| $ open/append out descrip.mms | ||||
| $ copy sys$input: out | ||||
| $ deck | ||||
| # descrip.mms: MMS description file for building zlib on VMS | ||||
| # written by Martin P.J. Zinser | ||||
| # <zinser@zinser.no-ip.info or martin.zinser@eurexchange.com> | ||||
|  | ||||
| OBJS = adler32.obj, compress.obj, crc32.obj, gzclose.obj, gzlib.obj\ | ||||
|        gzread.obj, gzwrite.obj, uncompr.obj, infback.obj\ | ||||
|        deflate.obj, trees.obj, zutil.obj, inflate.obj, \ | ||||
|        inftrees.obj, inffast.obj | ||||
|  | ||||
| $ eod | ||||
| $ write out "CFLAGS=", ccopt | ||||
| $ write out "LOPTS=", lopts | ||||
| $ write out "all : example.exe minigzip.exe libz.olb" | ||||
| $ copy sys$input: out | ||||
| $ deck | ||||
|         @ write sys$output " Example applications available" | ||||
|  | ||||
| libz.olb : libz.olb($(OBJS)) | ||||
| 	@ write sys$output " libz available" | ||||
|  | ||||
| example.exe : example.obj libz.olb | ||||
|               link $(LOPTS) example,libz.olb/lib | ||||
|  | ||||
| minigzip.exe : minigzip.obj libz.olb | ||||
|               link $(LOPTS) minigzip,libz.olb/lib | ||||
|  | ||||
| clean : | ||||
| 	delete *.obj;*,libz.olb;*,*.opt;*,*.exe;* | ||||
|  | ||||
|  | ||||
| # Other dependencies. | ||||
| adler32.obj  : adler32.c zutil.h zlib.h zconf.h | ||||
| compress.obj : compress.c zlib.h zconf.h | ||||
| crc32.obj    : crc32.c zutil.h zlib.h zconf.h | ||||
| deflate.obj  : deflate.c deflate.h zutil.h zlib.h zconf.h | ||||
| example.obj  : [.test]example.c zlib.h zconf.h | ||||
| gzclose.obj  : gzclose.c zutil.h zlib.h zconf.h | ||||
| gzlib.obj    : gzlib.c zutil.h zlib.h zconf.h | ||||
| gzread.obj   : gzread.c zutil.h zlib.h zconf.h | ||||
| gzwrite.obj  : gzwrite.c zutil.h zlib.h zconf.h | ||||
| inffast.obj  : inffast.c zutil.h zlib.h zconf.h inftrees.h inffast.h | ||||
| inflate.obj  : inflate.c zutil.h zlib.h zconf.h | ||||
| inftrees.obj : inftrees.c zutil.h zlib.h zconf.h inftrees.h | ||||
| minigzip.obj : [.test]minigzip.c zlib.h zconf.h | ||||
| trees.obj    : trees.c deflate.h zutil.h zlib.h zconf.h | ||||
| uncompr.obj  : uncompr.c zlib.h zconf.h | ||||
| zutil.obj    : zutil.c zutil.h zlib.h zconf.h | ||||
| infback.obj  : infback.c zutil.h inftrees.h inflate.h inffast.h inffixed.h | ||||
| $ eod | ||||
| $ close out | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Read list of core library sources from makefile.in and create options | ||||
| $! needed to build shareable image | ||||
| $! | ||||
| $CREA_OLIST: | ||||
| $ open/read min makefile.in | ||||
| $ open/write mod modules.opt | ||||
| $ src_check_list = "OBJZ =#OBJG =" | ||||
| $MRLOOP: | ||||
| $ read/end=mrdone min rec | ||||
| $ i = 0 | ||||
| $SRC_CHECK_LOOP: | ||||
| $ src_check = f$element(i, "#", src_check_list) | ||||
| $ i = i+1 | ||||
| $ if src_check .eqs. "#" then goto mrloop | ||||
| $ if (f$extract(0,6,rec) .nes. src_check) then goto src_check_loop | ||||
| $ rec = rec - src_check | ||||
| $ gosub extra_filnam | ||||
| $ if (f$element(1,"\",rec) .eqs. "\") then goto mrloop | ||||
| $MRSLOOP: | ||||
| $ read/end=mrdone min rec | ||||
| $ gosub extra_filnam | ||||
| $ if (f$element(1,"\",rec) .nes. "\") then goto mrsloop | ||||
| $MRDONE: | ||||
| $ close min | ||||
| $ close mod | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Take record extracted in crea_olist and split it into single filenames | ||||
| $! | ||||
| $EXTRA_FILNAM: | ||||
| $ myrec = f$edit(rec - "\", "trim,compress") | ||||
| $ i = 0 | ||||
| $FELOOP: | ||||
| $ srcfil = f$element(i," ", myrec) | ||||
| $ if (srcfil .nes. " ") | ||||
| $ then | ||||
| $   write mod f$parse(srcfil,,,"NAME"), ".obj" | ||||
| $   i = i + 1 | ||||
| $   goto feloop | ||||
| $ endif | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Find current Zlib version number | ||||
| $! | ||||
| $FIND_VERSION: | ||||
| $ open/read h_in 'v_file' | ||||
| $hloop: | ||||
| $ read/end=hdone h_in rec | ||||
| $ rec = f$edit(rec,"TRIM") | ||||
| $ if (f$extract(0,1,rec) .nes. "#") then goto hloop | ||||
| $ rec = f$edit(rec - "#", "TRIM") | ||||
| $ if f$element(0," ",rec) .nes. "define" then goto hloop | ||||
| $ if f$element(1," ",rec) .eqs. v_string | ||||
| $ then | ||||
| $   version = 'f$element(2," ",rec)' | ||||
| $   goto hdone | ||||
| $ endif | ||||
| $ goto hloop | ||||
| $hdone: | ||||
| $ close h_in | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $CHECK_CONFIG: | ||||
| $! | ||||
| $ in_ldef = f$locate(cdef,libdefs) | ||||
| $ if (in_ldef .lt. f$length(libdefs)) | ||||
| $ then | ||||
| $   write aconf "#define ''cdef' 1" | ||||
| $   libdefs = f$extract(0,in_ldef,libdefs) + - | ||||
|               f$extract(in_ldef + f$length(cdef) + 1, - | ||||
|                         f$length(libdefs) - in_ldef - f$length(cdef) - 1, - | ||||
|                         libdefs) | ||||
| $ else | ||||
| $   if (f$type('cdef') .eqs. "INTEGER") | ||||
| $   then | ||||
| $     write aconf "#define ''cdef' ", 'cdef' | ||||
| $   else | ||||
| $     if (f$type('cdef') .eqs. "STRING") | ||||
| $     then | ||||
| $       write aconf "#define ''cdef' ", """", '''cdef'', """" | ||||
| $     else | ||||
| $       gosub check_cc_def | ||||
| $     endif | ||||
| $   endif | ||||
| $ endif | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Check if this is a define relating to the properties of the C/C++ | ||||
| $! compiler | ||||
| $! | ||||
| $ CHECK_CC_DEF: | ||||
| $ if (cdef .eqs. "_LARGEFILE64_SOURCE") | ||||
| $ then | ||||
| $   copy sys$input: 'tc' | ||||
| $   deck | ||||
| #include "tconfig" | ||||
| #define _LARGEFILE | ||||
| #include <stdio.h> | ||||
|  | ||||
| int main(){ | ||||
| FILE *fp; | ||||
|   fp = fopen("temp.txt","r"); | ||||
|   fseeko(fp,1,SEEK_SET); | ||||
|   fclose(fp); | ||||
| } | ||||
|  | ||||
| $   eod | ||||
| $   test_inv = false | ||||
| $   comm_h = false | ||||
| $   gosub cc_prop_check | ||||
| $   return | ||||
| $ endif | ||||
| $ write aconf "/* ", line, " */" | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Check for properties of C/C++ compiler | ||||
| $! | ||||
| $! Version history | ||||
| $! 0.01 20031020 First version to receive a number | ||||
| $! 0.02 20031022 Added logic for defines with value | ||||
| $! 0.03 20040309 Make sure local config file gets not deleted | ||||
| $! 0.04 20041230 Also write include for configure run | ||||
| $! 0.05 20050103 Add processing of "comment defines" | ||||
| $CC_PROP_CHECK: | ||||
| $ cc_prop = true | ||||
| $ is_need = false | ||||
| $ is_need = (f$extract(0,4,cdef) .eqs. "NEED") .or. (test_inv .eq. true) | ||||
| $ if f$search(th) .eqs. "" then create 'th' | ||||
| $ set message/nofac/noident/nosever/notext | ||||
| $ on error then continue | ||||
| $ cc 'tmpnam' | ||||
| $ if .not. ($status)  then cc_prop = false | ||||
| $ on error then continue | ||||
| $! The headers might lie about the capabilities of the RTL | ||||
| $ link 'tmpnam',tmp.opt/opt | ||||
| $ if .not. ($status)  then cc_prop = false | ||||
| $ set message/fac/ident/sever/text | ||||
| $ on error then goto err_exit | ||||
| $ delete/nolog 'tmpnam'.*;*/exclude='th' | ||||
| $ if (cc_prop .and. .not. is_need) .or. - | ||||
|      (.not. cc_prop .and. is_need) | ||||
| $ then | ||||
| $   write sys$output "Checking for ''cdef'... yes" | ||||
| $   if f$type('cdef_val'_yes) .nes. "" | ||||
| $   then | ||||
| $     if f$type('cdef_val'_yes) .eqs. "INTEGER" - | ||||
|          then call write_config f$fao("#define !AS !UL",cdef,'cdef_val'_yes) | ||||
| $     if f$type('cdef_val'_yes) .eqs. "STRING" - | ||||
|          then call write_config f$fao("#define !AS !AS",cdef,'cdef_val'_yes) | ||||
| $   else | ||||
| $     call write_config f$fao("#define !AS 1",cdef) | ||||
| $   endif | ||||
| $   if (cdef .eqs. "HAVE_FSEEKO") .or. (cdef .eqs. "_LARGE_FILES") .or. - | ||||
|        (cdef .eqs. "_LARGEFILE64_SOURCE") then - | ||||
|       call write_config f$string("#define _LARGEFILE 1") | ||||
| $ else | ||||
| $   write sys$output "Checking for ''cdef'... no" | ||||
| $   if (comm_h) | ||||
| $   then | ||||
|       call write_config f$fao("/* !AS */",line) | ||||
| $   else | ||||
| $     if f$type('cdef_val'_no) .nes. "" | ||||
| $     then | ||||
| $       if f$type('cdef_val'_no) .eqs. "INTEGER" - | ||||
|            then call write_config f$fao("#define !AS !UL",cdef,'cdef_val'_no) | ||||
| $       if f$type('cdef_val'_no) .eqs. "STRING" - | ||||
|            then call write_config f$fao("#define !AS !AS",cdef,'cdef_val'_no) | ||||
| $     else | ||||
| $       call write_config f$fao("#undef !AS",cdef) | ||||
| $     endif | ||||
| $   endif | ||||
| $ endif | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Check for properties of C/C++ compiler with multiple result values | ||||
| $! | ||||
| $! Version history | ||||
| $! 0.01 20040127 First version | ||||
| $! 0.02 20050103 Reconcile changes from cc_prop up to version 0.05 | ||||
| $CC_MPROP_CHECK: | ||||
| $ cc_prop = true | ||||
| $ i    = 1 | ||||
| $ idel = 1 | ||||
| $ MT_LOOP: | ||||
| $ if f$type(result_'i') .eqs. "STRING" | ||||
| $ then | ||||
| $   set message/nofac/noident/nosever/notext | ||||
| $   on error then continue | ||||
| $   cc 'tmpnam'_'i' | ||||
| $   if .not. ($status)  then cc_prop = false | ||||
| $   on error then continue | ||||
| $! The headers might lie about the capabilities of the RTL | ||||
| $   link 'tmpnam'_'i',tmp.opt/opt | ||||
| $   if .not. ($status)  then cc_prop = false | ||||
| $   set message/fac/ident/sever/text | ||||
| $   on error then goto err_exit | ||||
| $   delete/nolog 'tmpnam'_'i'.*;* | ||||
| $   if (cc_prop) | ||||
| $   then | ||||
| $     write sys$output "Checking for ''cdef'... ", mdef_'i' | ||||
| $     if f$type(mdef_'i') .eqs. "INTEGER" - | ||||
|          then call write_config f$fao("#define !AS !UL",cdef,mdef_'i') | ||||
| $     if f$type('cdef_val'_yes) .eqs. "STRING" - | ||||
|          then call write_config f$fao("#define !AS !AS",cdef,mdef_'i') | ||||
| $     goto msym_clean | ||||
| $   else | ||||
| $     i = i + 1 | ||||
| $     goto mt_loop | ||||
| $   endif | ||||
| $ endif | ||||
| $ write sys$output "Checking for ''cdef'... no" | ||||
| $ call write_config f$fao("#undef !AS",cdef) | ||||
| $ MSYM_CLEAN: | ||||
| $ if (idel .le. msym_max) | ||||
| $ then | ||||
| $   delete/sym mdef_'idel' | ||||
| $   idel = idel + 1 | ||||
| $   goto msym_clean | ||||
| $ endif | ||||
| $ return | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Write configuration to both permanent and temporary config file | ||||
| $! | ||||
| $! Version history | ||||
| $! 0.01 20031029 First version to receive a number | ||||
| $! | ||||
| $WRITE_CONFIG: SUBROUTINE | ||||
| $  write aconf 'p1' | ||||
| $  open/append confh 'th' | ||||
| $  write confh 'p1' | ||||
| $  close confh | ||||
| $ENDSUBROUTINE | ||||
| $!------------------------------------------------------------------------------ | ||||
| $! | ||||
| $! Analyze the project map file and create the symbol vector for a shareable | ||||
| $! image from it | ||||
| $! | ||||
| $! Version history | ||||
| $! 0.01 20120128 First version | ||||
| $! 0.02 20120226 Add pre-load logic | ||||
| $! | ||||
| $ MAP_2_SHOPT: Subroutine | ||||
| $! | ||||
| $ SAY := "WRITE_ SYS$OUTPUT" | ||||
| $! | ||||
| $ IF F$SEARCH("''P1'") .EQS. "" | ||||
| $ THEN | ||||
| $    SAY "MAP_2_SHOPT-E-NOSUCHFILE:  Error, inputfile ''p1' not available" | ||||
| $    goto exit_m2s | ||||
| $ ENDIF | ||||
| $ IF "''P2'" .EQS. "" | ||||
| $ THEN | ||||
| $    SAY "MAP_2_SHOPT:  Error, no output file provided" | ||||
| $    goto exit_m2s | ||||
| $ ENDIF | ||||
| $! | ||||
| $ module1 = "deflate#deflateEnd#deflateInit_#deflateParams#deflateSetDictionary" | ||||
| $ module2 = "gzclose#gzerror#gzgetc#gzgets#gzopen#gzprintf#gzputc#gzputs#gzread" | ||||
| $ module3 = "gzseek#gztell#inflate#inflateEnd#inflateInit_#inflateSetDictionary" | ||||
| $ module4 = "inflateSync#uncompress#zlibVersion#compress" | ||||
| $ open/read map 'p1 | ||||
| $ if axp .or. ia64 | ||||
| $ then | ||||
| $     open/write aopt a.opt | ||||
| $     open/write bopt b.opt | ||||
| $     write aopt " CASE_SENSITIVE=YES" | ||||
| $     write bopt "SYMBOL_VECTOR= (-" | ||||
| $     mod_sym_num = 1 | ||||
| $ MOD_SYM_LOOP: | ||||
| $     if f$type(module'mod_sym_num') .nes. "" | ||||
| $     then | ||||
| $         mod_in = 0 | ||||
| $ MOD_SYM_IN: | ||||
| $         shared_proc = f$element(mod_in, "#", module'mod_sym_num') | ||||
| $         if shared_proc .nes. "#" | ||||
| $         then | ||||
| $             write aopt f$fao(" symbol_vector=(!AS/!AS=PROCEDURE)",- | ||||
|         		       f$edit(shared_proc,"upcase"),shared_proc) | ||||
| $             write bopt f$fao("!AS=PROCEDURE,-",shared_proc) | ||||
| $             mod_in = mod_in + 1 | ||||
| $             goto mod_sym_in | ||||
| $         endif | ||||
| $         mod_sym_num = mod_sym_num + 1 | ||||
| $         goto mod_sym_loop | ||||
| $     endif | ||||
| $MAP_LOOP: | ||||
| $     read/end=map_end map line | ||||
| $     if (f$locate("{",line).lt. f$length(line)) .or. - | ||||
|          (f$locate("global:", line) .lt. f$length(line)) | ||||
| $     then | ||||
| $         proc = true | ||||
| $         goto map_loop | ||||
| $     endif | ||||
| $     if f$locate("}",line).lt. f$length(line) then proc = false | ||||
| $     if f$locate("local:", line) .lt. f$length(line) then proc = false | ||||
| $     if proc | ||||
| $     then | ||||
| $         shared_proc = f$edit(line,"collapse") | ||||
| $         chop_semi = f$locate(";", shared_proc) | ||||
| $         if chop_semi .lt. f$length(shared_proc) then - | ||||
|               shared_proc = f$extract(0, chop_semi, shared_proc) | ||||
| $         write aopt f$fao(" symbol_vector=(!AS/!AS=PROCEDURE)",- | ||||
|         			 f$edit(shared_proc,"upcase"),shared_proc) | ||||
| $         write bopt f$fao("!AS=PROCEDURE,-",shared_proc) | ||||
| $     endif | ||||
| $     goto map_loop | ||||
| $MAP_END: | ||||
| $     close/nolog aopt | ||||
| $     close/nolog bopt | ||||
| $     open/append libopt 'p2' | ||||
| $     open/read aopt a.opt | ||||
| $     open/read bopt b.opt | ||||
| $ALOOP: | ||||
| $     read/end=aloop_end aopt line | ||||
| $     write libopt line | ||||
| $     goto aloop | ||||
| $ALOOP_END: | ||||
| $     close/nolog aopt | ||||
| $     sv = "" | ||||
| $BLOOP: | ||||
| $     read/end=bloop_end bopt svn | ||||
| $     if (svn.nes."") | ||||
| $     then | ||||
| $        if (sv.nes."") then write libopt sv | ||||
| $        sv = svn | ||||
| $     endif | ||||
| $     goto bloop | ||||
| $BLOOP_END: | ||||
| $     write libopt f$extract(0,f$length(sv)-2,sv), "-" | ||||
| $     write libopt ")" | ||||
| $     close/nolog bopt | ||||
| $     delete/nolog/noconf a.opt;*,b.opt;* | ||||
| $ else | ||||
| $     if vax | ||||
| $     then | ||||
| $     open/append libopt 'p2' | ||||
| $     mod_sym_num = 1 | ||||
| $ VMOD_SYM_LOOP: | ||||
| $     if f$type(module'mod_sym_num') .nes. "" | ||||
| $     then | ||||
| $         mod_in = 0 | ||||
| $ VMOD_SYM_IN: | ||||
| $         shared_proc = f$element(mod_in, "#", module'mod_sym_num') | ||||
| $         if shared_proc .nes. "#" | ||||
| $         then | ||||
| $     	      write libopt f$fao("UNIVERSAL=!AS",- | ||||
|       	  			     f$edit(shared_proc,"upcase")) | ||||
| $             mod_in = mod_in + 1 | ||||
| $             goto vmod_sym_in | ||||
| $         endif | ||||
| $         mod_sym_num = mod_sym_num + 1 | ||||
| $         goto vmod_sym_loop | ||||
| $     endif | ||||
| $VMAP_LOOP: | ||||
| $     	  read/end=vmap_end map line | ||||
| $     	  if (f$locate("{",line).lt. f$length(line)) .or. - | ||||
|    	      (f$locate("global:", line) .lt. f$length(line)) | ||||
| $     	  then | ||||
| $     	      proc = true | ||||
| $     	      goto vmap_loop | ||||
| $     	  endif | ||||
| $     	  if f$locate("}",line).lt. f$length(line) then proc = false | ||||
| $     	  if f$locate("local:", line) .lt. f$length(line) then proc = false | ||||
| $     	  if proc | ||||
| $     	  then | ||||
| $     	      shared_proc = f$edit(line,"collapse") | ||||
| $     	      chop_semi = f$locate(";", shared_proc) | ||||
| $     	      if chop_semi .lt. f$length(shared_proc) then - | ||||
|       	  	  shared_proc = f$extract(0, chop_semi, shared_proc) | ||||
| $     	      write libopt f$fao("UNIVERSAL=!AS",- | ||||
|       	  			     f$edit(shared_proc,"upcase")) | ||||
| $     	  endif | ||||
| $     	  goto vmap_loop | ||||
| $VMAP_END: | ||||
| $     else | ||||
| $         write sys$output "Unknown Architecture (Not VAX, AXP, or IA64)" | ||||
| $         write sys$output "No options file created" | ||||
| $     endif | ||||
| $ endif | ||||
| $ EXIT_M2S: | ||||
| $ close/nolog map | ||||
| $ close/nolog libopt | ||||
| $ endsubroutine | ||||
							
								
								
									
										342
									
								
								samples/DIGITAL Command Language/libxslt_build.com
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										342
									
								
								samples/DIGITAL Command Language/libxslt_build.com
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,342 @@ | ||||
| $! BUILD_XSLT.COM | ||||
| $! | ||||
| $! Build the XSLT library | ||||
| $! | ||||
| $! Arguments: | ||||
| $! | ||||
| $!	p1	- "DEBUG" is you want to build with debug | ||||
| $! | ||||
| $! This package requires libxml to have already been installed.  You need | ||||
| $! to ensure that the logical name LIBXML is defined and points to the  | ||||
| $! directory containing libxml's .h files | ||||
| $! | ||||
| $! This procedure creates the object libraries | ||||
| $! | ||||
| $!	XML_LIBDIR:LIBXSLT.OLB | ||||
| $!	XML_LIBDIR:LIBEXSLT.OLB | ||||
| $! | ||||
| $! and the program | ||||
| $! | ||||
| $!	XSLTPROC | ||||
| $! | ||||
| $! After the library is built, you can link these routines into | ||||
| $! your code with the command   | ||||
| $! | ||||
| $! 	LINK your_modules,XML_LIBDIR:LIBEXSLT/LIB,LIBXSLT/LIBRARY,LIBXML/LIB | ||||
| $! | ||||
| $! Change History | ||||
| $! -------------- | ||||
| $! Command file author : John A Fotheringham (jaf@jafsoft.com) | ||||
| $! Last update         : 2 Nov 2001 | ||||
| $!  | ||||
| $!- configuration ------------------------------------------------------------- | ||||
| $! | ||||
| $!- compile command. | ||||
| $! | ||||
| $   cc_opts = "/INCLUDE=([],XML_SRCDIR:,[-.libxslt])/NAMES=(SHORTENED)/FLOAT=IEEE/IEEE_MODE=DENORM_RESULTS" | ||||
| $! | ||||
| $   if p1.eqs."DEBUG" | ||||
| $   then | ||||
| $     debug = "Y" | ||||
| $     cc_command = "CC''cc_opts'/DEBUG/NOOPTIMIZE/LIST/SHOW=ALL" | ||||
| $   else | ||||
| $     debug = "N" | ||||
| $     cc_command = "CC''cc_opts'" | ||||
| $   endif | ||||
| $! | ||||
| $!- configure multiple build passes for each library. ------------------------- | ||||
| $! | ||||
| $!  For each pass: | ||||
| $! | ||||
| $!  "libname" is the name of the library or module being created | ||||
| $! | ||||
| $!  "progname" is the name of the program being created | ||||
| $! | ||||
| $!  "src" is the list of sources to be built into the library  or program | ||||
| $!	- This should be compared to the definition of  | ||||
| $!	  "<NAME>_la_SOURCES" in the MAKEFILE.IN file in  | ||||
| $!	  corresponding directory. | ||||
| $! | ||||
| $   num_passes = 3	! two libraries and a program | ||||
| $! | ||||
| $!- pass 1 - library LIBXSLT | ||||
| $! | ||||
| $   libname_1  = "LIBXSLT" | ||||
| $   h_file_1   = "xslt.h" | ||||
| $   progname_1 = "" | ||||
| $! | ||||
| $   ! see "libxslt_la_SOURCES" in [.libxslt]makefile.in | ||||
| $   src_1 = "xslt.c xsltutils.c pattern.c templates.c variables.c keys.c" | ||||
| $   src_1 = src_1 + " numbers.c extensions.c extra.c functions.c" | ||||
| $   src_1 = src_1 + " namespaces.c imports.c attributes.c documents.c" | ||||
| $   src_1 = src_1 + " preproc.c transform.c security.c" | ||||
| $! | ||||
| $!- pass 2 - library LIBEXSLT | ||||
| $! | ||||
| $   libname_2  = "LIBEXSLT" | ||||
| $   h_file_2   = "exslt.h" | ||||
| $   progname_2 = "" | ||||
| $! | ||||
| $   ! see "libexslt_la_SOURCES" in [.libexslt]makefile.in | ||||
| $   src_2   = "exslt.c common.c math.c sets.c functions.c strings.c date.c saxon.c dynamic.c" | ||||
| $! | ||||
| $!- pass 3 - program XSLTPROC | ||||
| $! | ||||
| $   libname_3  = "" | ||||
| $   h_file_3   = "" | ||||
| $   progname_3 = "XSLTPROC" | ||||
| $! | ||||
| $   ! see "xsltproc_SOURCES" in [.xsltproc]makefile.in | ||||
| $   src_3   = "xsltproc.c" | ||||
| $! | ||||
| $!- set up and check logicals  ----------------------------------------------- | ||||
| $! | ||||
| $!  XML_LIBDIR - object library directory | ||||
| $!  XML_SRCDIR - top-level build directory of libxml package -- needed for config.h and trio.h | ||||
| $!  LIBXML - source directory containing .h files for libxml package | ||||
| $! | ||||
| $   if f$trnlnm("XML_LIBDIR").eqs."" | ||||
| $   then | ||||
| $     on error then continue | ||||
| $     globfile = f$search("[--...]libxml.olb") | ||||
| $     if globfile.eqs."" | ||||
| $     then | ||||
| $       write sys$output "" | ||||
| $       write sys$output "	You need to define the XML_LIBDIR logical name to" | ||||
| $       write sys$output "	point to the directory containing your object" | ||||
| $       write sys$output "	libraries.  This should already contain LIBXML.OLB" | ||||
| $       write sys$output "	from the libxml package, and will be the directory" | ||||
| $       write sys$output "	the new LIBXSLT.OLB library will be placed in" | ||||
| $       write sys$output "" | ||||
| $       exit | ||||
| $     else | ||||
| $	srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") | ||||
| $	define/process XML_LIBDIR "''srcdir'" | ||||
| $       write sys$output "Defining XML_LIBDIR as ""''srcdir'""" | ||||
| $     endif | ||||
| $   endif | ||||
| $! | ||||
| $   if f$trnlnm("libxml").eqs."" | ||||
| $   then | ||||
| $     ! look for globals.h in a directory installed paralle to this one | ||||
| $     on error then continue | ||||
| $     globfile = f$search("[--...]globals.h") | ||||
| $     if globfile.eqs."" | ||||
| $     then | ||||
| $       write sys$output "" | ||||
| $       write sys$output "	You need to define a LIBXML logical directory to" | ||||
| $       write sys$output "	point to the directory containing the .h files" | ||||
| $       write sys$output "	for the libxml package" | ||||
| $       write sys$output "" | ||||
| $       exit | ||||
| $     else | ||||
| $	srcdir = f$element(0,"]",globfile)+ "]" | ||||
| $	define/process LIBXML "''srcdir'" | ||||
| $       write sys$output "Defining LIBXML as ""''srcdir'""" | ||||
| $     endif | ||||
| $   endif | ||||
| $! | ||||
| $   if f$trnlnm("XML_SRCDIR").eqs."" | ||||
| $   then | ||||
| $     globfile = f$search("[--...]globals.c") | ||||
| $     if globfile.eqs."" | ||||
| $     then | ||||
| $	write sys$output "Can't locate globals.c.  You need to manually define a XML_SRCDIR logical" | ||||
| $	exit | ||||
| $     else | ||||
| $	srcdir = f$parse(globfile,,,"DEVICE") + f$parse(globfile,,,"DIRECTORY") | ||||
| $	define/process XML_SRCDIR "''srcdir'" | ||||
| $       write sys$output "Defining XML_SRCDIR as ""''srcdir'""" | ||||
| $     endif | ||||
| $   endif | ||||
| $! | ||||
| $!- set up some working logicals ------------------- | ||||
| $! | ||||
| $ pass_no = 1 | ||||
| $ set_pass_logical: | ||||
| $! | ||||
| $   if pass_no.le.num_passes | ||||
| $   then | ||||
| $! | ||||
| $     Libname  = libname_'pass_no' | ||||
| $     progname = progname_'pass_no' | ||||
| $     if libname.nes."" | ||||
| $     then | ||||
| $       logname  = "''libname'_SRCDIR" | ||||
| $     else | ||||
| $       logname  = "''progname'_SRCDIR" | ||||
| $     endif | ||||
| $     findfile = f$element(0," ",src_'pass_no') | ||||
| $! | ||||
| $!--- set up a source directory logical | ||||
| $! | ||||
| $     if f$trnlnm("''logname'").eqs."" | ||||
| $     then | ||||
| $       ! look for the target file in a parallel subdirectory | ||||
| $       globfile = f$search("[-...]''findfile'") | ||||
| $       if globfile.eqs."" | ||||
| $       then | ||||
| $  	  write sys$output "Can't locate ''findfile'.  You need to manually define a ''logname' logical" | ||||
| $	  exit | ||||
| $       else | ||||
| $  	  srcdir = f$element(0,"]",globfile)+ "]" | ||||
| $	  define/process 'logname' "''srcdir'" | ||||
| $         write sys$output "Defining ''logname' as ""''srcdir'""" | ||||
| $       endif | ||||
| $     endif | ||||
| $! | ||||
| $!--- if it's a library, set up a logical pointing to the .h files | ||||
| $! | ||||
| $     if libname.nes.""  | ||||
| $     then | ||||
| $	if f$trnlnm("''libname'").eqs.""  | ||||
| $       then  | ||||
| $         ! look for the target .h file in a parallel subdirectory | ||||
| $  	  h_file = h_file_'pass_no' | ||||
| $         globfile = f$search("[-...]''h_file'") | ||||
| $         if globfile.eqs."" | ||||
| $         then | ||||
| $	    write sys$output "Can't locate ''h_file'.  You need to manually define a ''libname' logical" | ||||
| $	    exit | ||||
| $         else | ||||
| $	    includedir = f$element(0,"]",globfile)+ "]" | ||||
| $	    define/process 'libname' "''includedir'" | ||||
| $           write sys$output "Defining ''libname' as ""''includedir'""" | ||||
| $	  endif | ||||
| $       endif | ||||
| $     endif | ||||
| $! | ||||
| $     pass_no = pass_no +1 | ||||
| $     goto set_pass_logical | ||||
| $! | ||||
| $   endif	! for each pass | ||||
| $! | ||||
| $!- set up error handling (such as it is) ------------------------------------- | ||||
| $! | ||||
| $ exit_status = 1 | ||||
| $ saved_default = f$environment("default") | ||||
| $ on error then goto ERROR_OUT  | ||||
| $ on control_y then goto ERROR_OUT  | ||||
| $! | ||||
| $ goto start_here | ||||
| $ start_here:	  ! move this line to debug/rerun parts of this command file | ||||
| $! | ||||
| $!- compile modules into the library ------------------------------------------ | ||||
| $! | ||||
| $! | ||||
| $ pass_no = 1	! make three passes, one for each library, one for XSLTPROC | ||||
| $ pass_loop: | ||||
| $! | ||||
| $ if pass_no.le.num_passes | ||||
| $ then | ||||
| $   Libname  = libname_'pass_no' | ||||
| $   progname = progname_'pass_no' | ||||
| $   if libname.nes."" | ||||
| $   then | ||||
| $     logname  = "''libname'_SRCDIR" | ||||
| $     pass_description = "the XML_LIBDIR:''libname'.OLB object library" | ||||
| $   else | ||||
| $     logname  = "''progname'_SRCDIR" | ||||
| $     pass_description = "the programs in ''progname'" | ||||
| $   endif | ||||
| $   src  = src_'pass_no' | ||||
| $! | ||||
| $!- create the library if need | ||||
| $! | ||||
| $   if libname.nes.""  | ||||
| $   then | ||||
| $     if f$search("XML_LIBDIR:''libname'.OLB").eqs.""  | ||||
| $     then | ||||
| $       write sys$output "Creating new object library XML_LIBDIR:''libname'.OLB..." | ||||
| $       library/create XML_LIBDIR:'libname'.OLB | ||||
| $     endif | ||||
| $   endif | ||||
| $! | ||||
| $!- move to the source directory  | ||||
| $! | ||||
| $   set def 'logname' | ||||
| $! | ||||
| $!- define the library and link commands (link command not used as is) | ||||
| $! | ||||
| $   if libname.nes."" | ||||
| $   then | ||||
| $     lib_command  = "LIBRARY/REPLACE XML_LIBDIR:''libname'.OLB" | ||||
| $     link_command = "" | ||||
| $   else | ||||
| $     lib_command  = "" | ||||
| $     link_command = "LINK" | ||||
| $   endif | ||||
| $! | ||||
| $   write sys$output "" | ||||
| $   write sys$output "Building ''pass_description' | ||||
| $   write sys$output "" | ||||
| $! | ||||
| $   s_no = 0 | ||||
| $   src = f$edit(src,"COMPRESS") | ||||
| $! | ||||
| $ source_loop: | ||||
| $! | ||||
| $     next_source = f$element (S_no," ",src) | ||||
| $     if next_source.nes."" .and. next_source.nes." " | ||||
| $     then | ||||
| $       call build 'next_source' | ||||
| $       s_no = s_no + 1 | ||||
| $       goto source_loop | ||||
| $     endif | ||||
| $! | ||||
| $     pass_no = pass_no + 1 | ||||
| $     goto pass_loop | ||||
| $! | ||||
| $   endif	! for each pass | ||||
| $! | ||||
| $!- Th-th-th-th-th-that's all folks! ------------------------------------------ | ||||
| $! | ||||
| $EXIT_OUT: | ||||
| $! | ||||
| $ set def 'saved_default | ||||
| $ exit 'exit_status | ||||
| $! | ||||
| $ | ||||
| $ERROR_OUT: | ||||
| $ exit_status = $status | ||||
| $ write sys$output "''f$message(exit_status)'" | ||||
| $ goto EXIT_OUT | ||||
| $! | ||||
| $!- the BUILD subroutine.  Compile then insert into library or link as required | ||||
| $! | ||||
| $BUILD: subroutine | ||||
| $   on warning then goto EXIT_BUILD | ||||
| $   source_file = p1 | ||||
| $   name = f$element(0,".",source_file) | ||||
| $   object_file = f$fao("XML_LIBDIR:!AS.OBJ",name) | ||||
| $! | ||||
| $!- compile | ||||
| $   write sys$output "Compiling ",p1,p2,"..." | ||||
| $   cc_command /object='object_file 'source_file' 'p2' | ||||
| $! | ||||
| $!- insert into library if command defined | ||||
| $! | ||||
| $   if lib_command.nes.""   | ||||
| $   then  | ||||
| $     lib_command 'object_file' | ||||
| $     delete/nolog 'object_file';* | ||||
| $   endif | ||||
| $! | ||||
| $!- link module if command defined | ||||
| $! | ||||
| $   if link_command.nes.""  | ||||
| $   then | ||||
| $	text = f$element(0,".",p1)	! lose the ".c" | ||||
| $	write sys$output "Linking ",text,"..." | ||||
| $	dbgopts = "" | ||||
| $	if debug then dbgopts = "/DEBUG" | ||||
| $	link_command'dbgopts' 'object_file',- | ||||
|       		XML_LIBDIR:libexslt/lib,- | ||||
|       		XML_LIBDIR:libxslt/lib,- | ||||
|       		XML_LIBDIR:libxml/library | ||||
| $   endif | ||||
| $! | ||||
| $EXIT_BUILD: | ||||
| $   exit $status | ||||
| $! | ||||
| $endsubroutine | ||||
							
								
								
									
										10
									
								
								samples/DIGITAL Command Language/vmsbackup_build.com
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								samples/DIGITAL Command Language/vmsbackup_build.com
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| $! Compiling with VAXC is said to work, but it requires the usual cruft | ||||
| $! (vaxcrtl and all), and to avoid hair we don't supply said cruft here. | ||||
| $ CC/DECC/PREFIX=all VMSBACKUP.C/DEFINE=(HAVE_MT_IOCTLS=0,HAVE_UNIXIO_H=1) | ||||
| $ CC/DECC/PREFIX=all DCLMAIN.C | ||||
| $! Probably we don't want match as it probably doesn't implement VMS-style | ||||
| $! matching, but I haven't looking into the issues yet. | ||||
| $ CC/DECC/PREFIX=all match | ||||
| $ LINK/exe=VMSBACKUP.EXE - | ||||
| vmsbackup.obj,dclmain.obj,match.obj,sys$input/opt | ||||
| identification="VMSBACKUP4.1.1" | ||||
| @@ -1,4 +1,4 @@ | ||||
| /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | ||||
| /* -*- Mode: dtrace-script; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ | ||||
| /* ***** BEGIN LICENSE BLOCK ***** | ||||
|  * Version: MPL 1.1/GPL 2.0/LGPL 2.1 | ||||
|  * | ||||
|   | ||||
							
								
								
									
										10
									
								
								samples/Elixir/filenames/mix.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								samples/Elixir/filenames/mix.lock
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| %{"cowboy": {:hex, :cowboy, "1.0.0"}, | ||||
|   "cowlib": {:hex, :cowlib, "1.0.1"}, | ||||
|   "hackney": {:hex, :hackney, "0.14.3"}, | ||||
|   "hound": {:hex, :hound, "0.6.0"}, | ||||
|   "httpoison": {:hex, :httpoison, "0.5.0"}, | ||||
|   "idna": {:hex, :idna, "1.0.1"}, | ||||
|   "phoenix": {:hex, :phoenix, "0.10.0"}, | ||||
|   "plug": {:hex, :plug, "0.11.1"}, | ||||
|   "poison": {:hex, :poison, "1.3.1"}, | ||||
|   "ranch": {:hex, :ranch, "1.0.0"}} | ||||
							
								
								
									
										260
									
								
								samples/Erlang/filenames/rebar.config
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										260
									
								
								samples/Erlang/filenames/rebar.config
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,260 @@ | ||||
| %% -*- mode: erlang;erlang-indent-level: 4;indent-tabs-mode: nil -*- | ||||
| %% ex: ts=4 sw=4 ft=erlang et | ||||
| %% This is a sample rebar.conf file that shows examples of some of rebar's | ||||
| %% options. | ||||
|  | ||||
| %% == Core == | ||||
|  | ||||
| %% Extend list of always recursive commands | ||||
| {recursive_cmds, []}. | ||||
|  | ||||
| %% Check required ERTS or OTP release version | ||||
| {require_erts_vsn, ".*"}. | ||||
| {require_otp_vsn, ".*"}. | ||||
| {require_min_otp_vsn, ".*"}. | ||||
|  | ||||
| %% Additional library directories to add to the code path | ||||
| {lib_dirs, []}. | ||||
|  | ||||
| %% == Erlang Compiler == | ||||
|  | ||||
| %% Erlang files to compile before the rest. Rebar automatically compiles | ||||
| %% parse_transforms and custom behaviours before anything other than the files | ||||
| %% in this list. | ||||
| {erl_first_files, ["src/mymib1.erl", "src/mymib2.erl"]}. | ||||
|  | ||||
| %% Erlang compiler options | ||||
| {erl_opts, [no_debug_info, | ||||
|             {i, "myinclude"}, | ||||
|             {src_dirs, ["src", "src2", "src3"]}, | ||||
|             {platform_define, | ||||
|              "(linux|solaris|freebsd|darwin)", 'HAVE_SENDFILE'}, | ||||
|             {platform_define, "(linux|freebsd)", 'BACKLOG', 128}, | ||||
|             {platform_define, "R13", 'old_inets'}]}. | ||||
|  | ||||
| %% MIB Options? | ||||
| {mib_opts, []}. | ||||
|  | ||||
| %% SNMP mibs to compile first? | ||||
| {mib_first_files, []}. | ||||
|  | ||||
| %% leex options | ||||
| {xrl_opts, []}. | ||||
|  | ||||
| %% leex files to compile first | ||||
| {xrl_first_files, []}. | ||||
|  | ||||
| %% yecc options | ||||
| {yrl_opts, []}. | ||||
|  | ||||
| %% yecc files to compile first | ||||
| {yrl_first_files, []}. | ||||
|  | ||||
| %% == EDoc == | ||||
|  | ||||
| %% EDoc options | ||||
| {edoc_opts, []}. | ||||
|  | ||||
| %% == Port Compiler == | ||||
|  | ||||
| %% Port compilation environment variables. See rebar_port_compiler.erl for | ||||
| %% more info. Default is `[]' | ||||
| {port_env, [{"CFLAGS", "$CFLAGS -Ifoo"}, | ||||
|             {"freebsd", "LDFLAGS", "$LDFLAGS -lfoo"}]}. | ||||
|  | ||||
| %% port_specs | ||||
| %% List of filenames or wildcards to be compiled. May also contain a tuple | ||||
| %% consisting of a regular expression to be applied against the system | ||||
| %% architecture as a filter. | ||||
| {port_specs, [{"priv/so_name.so", ["c_src/*.c"]}, | ||||
|               {"linux", "priv/hello_linux", ["c_src/hello_linux.c"]}, | ||||
|               {"linux", "priv/hello_linux", ["c_src/*.c"], [{env, []}]}]}. | ||||
|  | ||||
| %% == escriptize == | ||||
| {escript_name, "application"}. | ||||
| {escript_incl_apps, []}. | ||||
| {escript_shebang, "#!/usr/bin/env escript\n"}. | ||||
| {escript_comment, "%%\n"}. | ||||
| {escript_emu_args, "%%! -pa application/application/ebin\n"}. | ||||
|  | ||||
| %% == LFE Compiler == | ||||
|  | ||||
| %% LFE files to compile before the rest | ||||
| {lfe_first_files, []}. | ||||
|  | ||||
| %% Options for the LFE compiler: reuse {erl_opts, []} | ||||
|  | ||||
| %% == ErlyDTL Compiler == | ||||
|  | ||||
| %% Options for the ErlyDTL compiler | ||||
| {erlydtl_opts, []}. | ||||
|  | ||||
| %% == Proto compiler == | ||||
| {proto_opts, [ | ||||
|     {compiler, protobuffs}, | ||||
|     {src_dirs, ["src"]} | ||||
| ]}. | ||||
| %% Available compilers for protocol buffer files (*.proto): | ||||
| %%   protobuffs  (default) | ||||
| %%   gpb | ||||
| %% Optional src_dirs which is a list of directories where | ||||
| %% to look for .proto files, default is src | ||||
|  | ||||
| %% Options for the gpb protocol buffer compiler, | ||||
| %% if selected by the proto_compiler option | ||||
| {gpb_opts, []}. | ||||
|  | ||||
| %% == EUnit == | ||||
|  | ||||
| %% Options for eunit:test() | ||||
| {eunit_opts, []}. | ||||
|  | ||||
| %% Additional compile options for eunit. erl_opts is also used | ||||
| {eunit_compile_opts, []}. | ||||
|  | ||||
| %% Same as erl_first_files, but used only when running 'eunit' | ||||
| {eunit_first_files, []}. | ||||
|  | ||||
| %% == Cover == | ||||
|  | ||||
| %% Whether to enable coverage reporting. Default is `false' | ||||
| {cover_enabled, false}. | ||||
|  | ||||
| %% Whether to print coverage report to console. Default is `false' | ||||
| {cover_print_enabled, false}. | ||||
|  | ||||
| %% Whether to export coverage report to file. Default is `false' | ||||
| {cover_export_enabled, false}. | ||||
|  | ||||
| %% == Common Test == | ||||
|  | ||||
| %% Override the default "test" directory in which SUITEs are located | ||||
| {ct_dir, "itest"}. | ||||
|  | ||||
| %% Override the default "logs" directory in which SUITEs are logged | ||||
| {ct_log_dir, "test/logs"}. | ||||
|  | ||||
| %% Option to pass extra parameters when launching Common Test | ||||
| {ct_extra_params, "-boot start_sasl -s myapp"}. | ||||
|  | ||||
| %% Option to use short names (i.e., -sname test) when starting ct | ||||
| {ct_use_short_names, true}. | ||||
|  | ||||
| %% == QuickCheck == | ||||
|  | ||||
| %% If qc_mod is unspecified, rebar tries to detect Triq or EQC | ||||
| {qc_opts, [{qc_mod, module()}, Options]}. | ||||
|  | ||||
| %% Additional compile options for qc. erl_opts is also used | ||||
| {qc_compile_opts, []}. | ||||
|  | ||||
| %% Same as erl_first_files, but used only when running 'qc' | ||||
| {qc_first_files, []}. | ||||
|  | ||||
| %% == Cleanup == | ||||
|  | ||||
| %% Which files to cleanup | ||||
| {clean_files, ["file", "file2"]}. | ||||
|  | ||||
| %% == OTP Applications == | ||||
|  | ||||
| %% Enable validation of the OTP app module list. Default is 'true' | ||||
| {validate_app_modules, true}. | ||||
|  | ||||
| %% == Dependencies == | ||||
|  | ||||
| %% Where to put any downloaded dependencies. Default is "deps" | ||||
| {deps_dir, "deps"}. | ||||
|  | ||||
| %% What dependencies we have, dependencies can be of 3 forms, an application | ||||
| %% name as an atom, eg. mochiweb, a name and a version (from the .app file), or | ||||
| %% an application name, a version and the SCM details on how to fetch it (SCM | ||||
| %% type, location and revision). | ||||
| %% Rebar currently supports git, hg, bzr, svn, rsync, fossil, and p4. | ||||
| {deps, [app_name, | ||||
|         {rebar, "1.0.*"}, | ||||
|         {rebar, ".*", | ||||
|          {git, "git://github.com/rebar/rebar.git"}}, | ||||
|         {rebar, ".*", | ||||
|          {git, "git://github.com/rebar/rebar.git", "Rev"}}, | ||||
|         {rebar, "1.0.*", | ||||
|          {git, "git://github.com/rebar/rebar.git", {branch, "master"}}}, | ||||
|         {rebar, "1.0.0", | ||||
|          {git, "git://github.com/rebar/rebar.git", {tag, "1.0.0"}}}, | ||||
|         %% Dependencies can be marked as 'raw'. Rebar does not require | ||||
|         %% such dependencies to have a standard Erlang/OTP layout | ||||
|         %% which assumes the presence of either | ||||
|         %% "src/dependency_name.app.src" or "ebin/dependency_name.app" | ||||
|         %% files. | ||||
|         %% | ||||
|         %% 'raw' dependencies can still contain 'rebar.config' and | ||||
|         %% even can have the proper OTP directory layout, but they | ||||
|         %% won't be compiled. | ||||
|         %% | ||||
|         %% Only a subset of rebar commands will be executed on the | ||||
|         %% 'raw' subdirectories: get-deps, update-deps, check-deps, | ||||
|         %% list-deps and delete-deps. | ||||
|         {rebar, "", | ||||
|          {git, "git://github.com/rebar/rebar.git", {branch, "master"}}, | ||||
|          [raw]}, | ||||
|         {app_name, ".*", {hg, "https://www.example.org/url"}}, | ||||
|         {app_name, ".*", {rsync, "Url"}}, | ||||
|         {app_name, ".*", {svn, "https://www.example.org/url"}}, | ||||
|         {app_name, ".*", {svn, "svn://svn.example.org/url"}}, | ||||
|         {app_name, ".*", {bzr, "https://www.example.org/url", "Rev"}}, | ||||
|         {app_name, ".*", {fossil, "https://www.example.org/url"}}, | ||||
|         {app_name, ".*", {fossil, "https://www.example.org/url", "Vsn"}}, | ||||
|         {app_name, ".*", {p4, "//depot/subdir/app_dir"}}]}. | ||||
|  | ||||
| %% == Subdirectories == | ||||
|  | ||||
| %% Subdirectories? | ||||
| {sub_dirs, ["dir1", "dir2"]}. | ||||
|  | ||||
| %% == Plugins == | ||||
|  | ||||
| %% Plugins you wish to include. | ||||
| %% These can include any module on the code path, including deps. | ||||
| %% Alternatively, plugins can be placed as source files in the plugin_dir, in | ||||
| %% which case they will be compiled and loaded dynamically at runtime. | ||||
| {plugins, [plugin1, plugin2]}. | ||||
|  | ||||
| %% Override the directory in which plugin sources can be found. | ||||
| %% Defaults to ./plugins | ||||
| {plugin_dir, "some_other_directory"}. | ||||
|  | ||||
|  | ||||
| %% == Pre/Post Command Hooks == | ||||
|  | ||||
| {pre_hooks, [{clean, "./prepare_package_files.sh"}, | ||||
|              {"linux", compile, "c_src/build_linux.sh"}, | ||||
|              {compile, "escript generate_headers"}, | ||||
|              {compile, "escript check_headers"}]}. | ||||
|  | ||||
| {post_hooks, [{clean, "touch file1.out"}, | ||||
|               {"freebsd", compile, "c_src/freebsd_tweaks.sh"}, | ||||
|               {eunit, "touch file2.out"}, | ||||
|               {compile, "touch postcompile.out"}]}. | ||||
|  | ||||
| %% == xref == | ||||
|  | ||||
| {xref_warnings, false}. | ||||
|  | ||||
| %% optional extra paths to include in xref:set_library_path/2. | ||||
| %% specified relative location of rebar.config. | ||||
| %% e.g. {xref_extra_paths,["../gtknode/src"]} | ||||
| {xref_extra_paths,[]}. | ||||
|  | ||||
| %% xref checks to run | ||||
| {xref_checks, [undefined_function_calls, undefined_functions, | ||||
|                locals_not_used, exports_not_used, | ||||
|                deprecated_function_calls, deprecated_functions]}. | ||||
|  | ||||
| %% Optional custom xref queries (xref manual has details) specified as | ||||
| %%     {xref_queries, [{query_string(), expected_query_result()},...]} | ||||
| %% The following for example removes all references to mod:*foo/4 | ||||
| %% functions from undefined external function calls as those are in a | ||||
| %% generated module | ||||
| {xref_queries, | ||||
|  [{"(XC - UC) || (XU - X - B" | ||||
|    " - (\"mod\":\".*foo\"/\"4\"))",[]}]}. | ||||
							
								
								
									
										158
									
								
								samples/Erlang/filenames/rebar.config.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								samples/Erlang/filenames/rebar.config.lock
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,158 @@ | ||||
| %% THIS FILE IS GENERATED. DO NOT EDIT IT MANUALLY %% | ||||
|  | ||||
| {sub_dirs,["rel","apps/riak"]}. | ||||
| {require_otp_vsn,"R16|17"}. | ||||
| {cover_enabled,true}. | ||||
| {lib_dirs,["apps/riak"]}. | ||||
| {erl_opts,[debug_info,fail_on_warning]}. | ||||
| {eunit_opts,[verbose]}. | ||||
| {erlydtl_opts,[{compiler_options,[report,return,debug_info]}]}. | ||||
| {deps,[{rebar_lock_deps_plugin,".*", | ||||
|                                {git,"git://github.com/seth/rebar_lock_deps_plugin.git", | ||||
|                                     "7a5835029c42b8138325405237ea7e8516a84800"}}, | ||||
|        {node_package,".*", | ||||
|                      {git,"git://github.com/basho/node_package.git", | ||||
|                           "a829631eccebe3c1d7657a0075584f55bf342977"}}, | ||||
|        {goldrush,".*", | ||||
|                  {git,"git://github.com/DeadZen/goldrush.git", | ||||
|                       "71e63212f12c25827e0c1b4198d37d5d018a7fec"}}, | ||||
|        {lager,".*", | ||||
|               {git,"git://github.com/basho/lager.git", | ||||
|                    "b6b6cebcb27ccff8acc59ae775acebc2f52e4926"}}, | ||||
|        {syslog,".*", | ||||
|                {git,"git://github.com/Vagabond/erlang-syslog.git", | ||||
|                     "918c9b453e0811b24f2c99b35b712b0ef9f29c7e"}}, | ||||
|        {lager_syslog,".*", | ||||
|                      {git,"git://github.com/basho/lager_syslog.git", | ||||
|                           "fa2e7e3daee0d0a59dadb820fd3381eac4a65770"}}, | ||||
|        {cluster_info,".*", | ||||
|                      {git,"git://github.com/basho/cluster_info.git", | ||||
|                           "e231144ca32dc83317be3360a4a259c73826b08a"}}, | ||||
|        {sidejob,".*", | ||||
|                 {git,"git://github.com/basho/sidejob.git", | ||||
|                      "c5aabba2d7daa80c340e110902bbcfcb552ccdcf"}}, | ||||
|        {erlang_js,".*", | ||||
|                   {git,"git://github.com/basho/erlang_js.git", | ||||
|                        "07467d899ab90a2b719ad19ab0be0048c1c8d873"}}, | ||||
|        {meck,".*", | ||||
|              {git,"git://github.com/basho/meck.git", | ||||
|                   "dde759050eff19a1a80fd854d7375174b191665d"}}, | ||||
|        {getopt,".*", | ||||
|                {git,"git://github.com/jcomellas/getopt.git", | ||||
|                     "659a28f4145bc9843598972854299dc4ea77e4cb"}}, | ||||
|        {neotoma,".*", | ||||
|                 {git,"git://github.com/seancribbs/neotoma.git", | ||||
|                      "760928ec8870da02eb11bccb501e2700925d06c6"}}, | ||||
|        {cuttlefish,".*", | ||||
|                    {git,"git://github.com/basho/cuttlefish.git", | ||||
|                         "c92c8325aeaea6b6ba7516bbd434f8e408f87d60"}}, | ||||
|        {bitcask,".*", | ||||
|                 {git,"git://github.com/basho/bitcask.git", | ||||
|                      "c74d0c43fdefdd435f7621ddf1fc2995b5bd123c"}}, | ||||
|        {eper,".*", | ||||
|              {git,"git://github.com/basho/eper.git", | ||||
|                   "7222ecaebceb5422e74a9c1503043bbc6036f6b7"}}, | ||||
|        {edown,".*", | ||||
|               {git,"git://github.com/uwiger/edown.git", | ||||
|                    "d62ec85281e451a46ba30045917c119d65b72a84"}}, | ||||
|        {sext,".*", | ||||
|              {git,"git://github.com/basho/sext.git", | ||||
|                   "846b9cc22456287a572efd4c924203d77778670f"}}, | ||||
|        {poolboy,".*", | ||||
|                 {git,"git://github.com/basho/poolboy.git", | ||||
|                      "8bb45fbc715c5f493642a1cc572ec7017d0d5fa3"}}, | ||||
|        {basho_stats,".*", | ||||
|                     {git,"git://github.com/basho/basho_stats.git", | ||||
|                          "19c532af235ae675439d491b329c55c2f9b02deb"}}, | ||||
|        {riak_sysmon,".*", | ||||
|                     {git,"git://github.com/basho/riak_sysmon.git", | ||||
|                          "26a58bcaba96d07df885f7b3db4d4306f995ce14"}}, | ||||
|        {eleveldb,".*", | ||||
|                  {git,"git://github.com/basho/eleveldb.git", | ||||
|                       "0e4e4e7cf3ddc26523a77f853ea9409c1707b26c"}}, | ||||
|        {riak_ensemble,".*", | ||||
|                       {git,"git://github.com/basho/riak_ensemble", | ||||
|                            "78dc8f623353a212ca3cf12236d1e9ac824bde16"}}, | ||||
|        {pbkdf2,".*", | ||||
|                {git,"git://github.com/basho/erlang-pbkdf2.git", | ||||
|                     "7076584f5377e98600a7e2cb81980b2992fb2f71"}}, | ||||
|        {parse_trans,".*", | ||||
|                     {git,"git://github.com/uwiger/parse_trans.git", | ||||
|                          "82cc00264aa1bad8fc5c0739b7541feb4a843432"}}, | ||||
|        {bear,".*", | ||||
|              {git,"git://github.com/basho/bear.git", | ||||
|                   "da820a13c607c3f816ee8b83c587266da5389761"}}, | ||||
|        {folsom,".*", | ||||
|                {git,"git://github.com/basho/folsom.git", | ||||
|                     "72944523b6467c9f7add5f1c96dd5020424a2681"}}, | ||||
|        {setup,".*", | ||||
|               {git,"git://github.com/uwiger/setup.git", | ||||
|                    "51ee7c9f64d2bbe9dcbb58c278e8fbfd4d0ca5e2"}}, | ||||
|        {exometer_core,".*", | ||||
|                       {git,"git://github.com/basho/exometer_core.git", | ||||
|                            "b47a5d65d9500c2b8f6ccc50e34005503589ef77"}}, | ||||
|        {clique,".*", | ||||
|                {git,"git://github.com/basho/clique.git", | ||||
|                     "3af4db8ea0f74aca42f6713446dcd5915c795a74"}}, | ||||
|        {riak_core,".*", | ||||
|                   {git,"git://github.com/basho/riak_core.git", | ||||
|                        "044c4e7f8dbfe8c49c45f2f7090adff4cd5aba50"}}, | ||||
|        {riak_pipe,".*", | ||||
|                   {git,"git://github.com/basho/riak_pipe.git", | ||||
|                        "3c0abc7ba301d57940c5a9c5de368b70429c28ff"}}, | ||||
|        {protobuffs,".*", | ||||
|                    {git,"git://github.com/basho/erlang_protobuffs.git", | ||||
|                         "f88fc3c6881687432ddd5546b3c7b08009dfb26f"}}, | ||||
|        {riak_pb,".*", | ||||
|                 {git,"git://github.com/basho/riak_pb.git", | ||||
|                      "78c50efa698f33f7d6ab1c7f5fa4666ec03b46b4"}}, | ||||
|        {mochiweb,".*", | ||||
|                  {git,"git://github.com/basho/mochiweb.git", | ||||
|                       "ade2a9b29a11034eb550c1d79b4f991bf5ca05ba"}}, | ||||
|        {webmachine,".*", | ||||
|                    {git,"git://github.com/basho/webmachine.git", | ||||
|                         "7677c240f4a7ed020f4bab48278224966bb42311"}}, | ||||
|        {riak_api,".*", | ||||
|                  {git,"git://github.com/basho/riak_api.git", | ||||
|                       "2781e66796903bc6847bffcf71a6ba7a05d69275"}}, | ||||
|        {riak_dt,".*", | ||||
|                 {git,"git://github.com/basho/riak_dt.git", | ||||
|                      "f7981d4ad7407ddc085f133f204dd71bf9d50c56"}}, | ||||
|        {eunit_formatters,".*", | ||||
|                          {git,"git://github.com/seancribbs/eunit_formatters", | ||||
|                               "96b6ced4d45ba641cbf2c8a8ae9b350dd300bc10"}}, | ||||
|        {riak_kv,".*", | ||||
|                 {git,"git://github.com/basho/riak_kv.git", | ||||
|                      "404619cb57574cd43e2dc0dc0453884ec6732a99"}}, | ||||
|        {merge_index,".*", | ||||
|                     {git,"git://github.com/basho/merge_index.git", | ||||
|                          "b701dde5c28956c3b629411e5ff7e50cbb5cb4b3"}}, | ||||
|        {riak_search,".*", | ||||
|                     {git,"git://github.com/basho/riak_search.git", | ||||
|                          "8fe4a8c020a74c52ee877bf6dd410824b4f79f8b"}}, | ||||
|        {erlydtl,".*", | ||||
|                 {git,"git://github.com/evanmiller/erlydtl.git", | ||||
|                      "d20b53f04837a1053ed18987f645cb60eae82453"}}, | ||||
|        {riak_control,".*", | ||||
|                      {git,"git://github.com/basho/riak_control.git", | ||||
|                           "09073ce672260e1ec0ba3999fabed7f319624ba1"}}, | ||||
|        {riaknostic,".*", | ||||
|                    {git,"git://github.com/basho/riaknostic.git", | ||||
|                         "101d95bddff4b70afcd1dd5442b8c6651887e0a4"}}, | ||||
|        {kvc,".*", | ||||
|             {git,"git://github.com/etrepum/kvc.git", | ||||
|                  "5565fe51857747662410cc3c06362ebcf48a2f04"}}, | ||||
|        {ibrowse,".*", | ||||
|                 {git,"git://github.com/cmullaparthi/ibrowse.git", | ||||
|                      "e8ae353c16d4f0897abb9f80025b52925b974dd1"}}, | ||||
|        {yokozuna,".*", | ||||
|                  {git,"git://github.com/basho/yokozuna.git", | ||||
|                       "5868266b11f131d14c85495e50f899f3fe8158ba"}}, | ||||
|        {canola,".*", | ||||
|                {git,"git://github.com/basho/canola.git", | ||||
|                     "9bdfee88fce20b3a01b7003696b53eb21913d6fb"}}, | ||||
|        {riak_auth_mods,".*", | ||||
|                        {git,"git://github.com/basho/riak_auth_mods.git", | ||||
|                             "31b8b30e6c215418522eaa615264ae9769a87410"}}]}. | ||||
| {plugins,[rebar_lock_deps_plugin]}. | ||||
|  | ||||
							
								
								
									
										16
									
								
								samples/Erlang/filenames/rebar.lock
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								samples/Erlang/filenames/rebar.lock
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,16 @@ | ||||
| [{<<"goldrush">>, | ||||
|   {git,"git://github.com/DeadZen/goldrush.git", | ||||
|        {ref,"71e63212f12c25827e0c1b4198d37d5d018a7fec"}}, | ||||
|   1}, | ||||
|  {<<"riak_dt">>, | ||||
|   {git,"git://github.com/helium/riak_dt.git", | ||||
|        {ref,"15d66cb26c2028c1ad1271c359b1d5da213825c3"}}, | ||||
|   0}, | ||||
|  {<<"lager">>, | ||||
|   {git,"git://github.com/basho/lager.git", | ||||
|        {ref,"d33ccf3b69de09a628fe38b4d7981bb8671b8a4f"}}, | ||||
|   0}, | ||||
|  {<<"eleveldb">>, | ||||
|   {git,"git://github.com/helium/eleveldb.git", | ||||
|        {ref,"29a5360dc0365b3330dd0cd45b0b8166f3b854be"}}, | ||||
|   0}]. | ||||
							
								
								
									
										35
									
								
								samples/Filterscript/colormatrix.fs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								samples/Filterscript/colormatrix.fs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,35 @@ | ||||
| /* | ||||
|  * Copyright (C) 2012 The Android Open Source Project | ||||
|  * | ||||
|  * Licensed under the Apache License, Version 2.0 (the "License"); | ||||
|  * you may not use this file except in compliance with the License. | ||||
|  * You may obtain a copy of the License at | ||||
|  * | ||||
|  *      http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  * | ||||
|  * Unless required by applicable law or agreed to in writing, software | ||||
|  * distributed under the License is distributed on an "AS IS" BASIS, | ||||
|  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
|  * See the License for the specific language governing permissions and | ||||
|  * limitations under the License. | ||||
|  */ | ||||
|  | ||||
| #include "ip.rsh" | ||||
|  | ||||
| static rs_matrix4x4 Mat; | ||||
|  | ||||
| void init() { | ||||
|     rsMatrixLoadIdentity(&Mat); | ||||
| } | ||||
|  | ||||
| void setMatrix(rs_matrix4x4 m) { | ||||
|     Mat = m; | ||||
| } | ||||
|  | ||||
| uchar4 __attribute__((kernel)) root(uchar4 in) { | ||||
|     float4 f = convert_float4(in); | ||||
|     f = rsMatrixMultiply(&Mat, f); | ||||
|     f = clamp(f, 0.f, 255.f); | ||||
|     return convert_uchar4(f); | ||||
| } | ||||
|  | ||||
							
								
								
									
										18
									
								
								samples/Filterscript/fs_kernel.fs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								samples/Filterscript/fs_kernel.fs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| #pragma version(1) | ||||
| #pragma rs java_package_name(foo) | ||||
|  | ||||
| int __attribute__((kernel)) root(uint32_t ain) { | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| void __attribute__((kernel)) in_only(uint32_t ain) { | ||||
| } | ||||
|  | ||||
| int __attribute__((kernel)) out_only() { | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
| int __attribute__((kernel)) everything(uint32_t ain, uint32_t x, uint32_t y) { | ||||
|   return 0; | ||||
| } | ||||
|  | ||||
							
								
								
									
										919
									
								
								samples/Formatted/long_seq.for
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										919
									
								
								samples/Formatted/long_seq.for
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,919 @@ | ||||
| ACCEPTABLE LEFT PRIMERS | ||||
|                                   1-based     #                self   self hair-  qual- | ||||
|    # sequence                       start ln  N   GC%     Tm any_th end_th   pin   lity | ||||
|    0 tgctagctaggcgatgctag             411 20  0 55.00 60.028 23.16 23.16 38.59  0.028 | ||||
|    1 actgatacgcgatgctagct             476 20  0 50.00 59.957 17.69  1.35  0.00  0.043 | ||||
|    2 gatcgatgctagctaggcga             405 20  0 55.00 60.100 16.30 16.30  0.00  0.100 | ||||
|    3 tcgatcgatgctagctaggc             403 20  0 55.00 60.100 18.63  8.45  0.00  0.100 | ||||
|    4 tagctgatcgatcgtagcgg             565 20  0 55.00 60.101 25.02 17.36  0.00  0.101 | ||||
|    5 gctgactgatcgatcgatgc             113 20  0 55.00 59.826 24.08 17.09 35.21  0.174 | ||||
|    6 tatcatctctgcgcgatcga             361 20  0 50.00 59.747 22.07  1.72 38.48  0.253 | ||||
|    7 agctaggcgatgctagctag             415 20  0 55.00 59.742 17.46 17.46 41.54  0.258 | ||||
|    8 ctagctaggcgatgctagct             413 20  0 55.00 59.742 18.68 17.35 43.53  0.258 | ||||
|    9 ggcgatctagctagctgact             583 20  0 55.00 59.671 17.44  7.44 37.58  0.329 | ||||
|   10 tcgatgctagctaggcgatg             407 20  0 55.00 60.382 14.03  0.00  0.00  0.382 | ||||
|   11 gctgatcgatcgatgctagc             398 20  0 55.00 59.618 25.97 24.79 35.21  0.382 | ||||
|   12 gctagctgatcgatcgatgc             394 20  0 55.00 59.618 24.08 21.09 35.21  0.382 | ||||
|   13 atcatctctgcgcgatcgat             362 20  0 50.00 60.382 22.07  5.02 38.48  0.382 | ||||
|   14 gactgatacgcgatgctagc             475 20  0 55.00 59.551  8.61  8.61  0.00  0.449 | ||||
|   15 atcgatgctagctaggcgat             406 20  0 50.00 59.452 18.43 18.43  0.00  0.548 | ||||
|   16 gctagctgactgatacgcga             468 20  0 55.00 60.589 16.29  0.00  0.00  0.589 | ||||
|   17 agctagctgactgatacgcg             467 20  0 55.00 60.590 17.99  3.89  0.00  0.590 | ||||
|   18 atgctagctaggcgatgcta             410 20  0 50.00 59.375 10.59  8.91  0.00  0.625 | ||||
|   19 ctatcatctctgcgcgatcg             360 20  0 55.00 59.347 12.19 12.19 39.07  0.653 | ||||
|   20 gatgctagctaggcgatgct             409 20  0 55.00 60.668  7.01  7.53  0.00  0.668 | ||||
|   21 gctactatcatctctgcgcg             356 20  0 55.00 59.273  0.00  0.00  0.00  0.727 | ||||
|   22 cgtagcggcgatctagctag             577 20  0 60.00 60.791 15.64 15.64 37.58  0.791 | ||||
|   23 cggcgatctagctagctgac             582 20  0 60.00 61.003 14.84  7.25 38.70  1.003 | ||||
|   24 gctagctgatcgatcgtagc             563 20  0 55.00 58.995 23.70 23.70  0.00  1.005 | ||||
|   25 gatcgatcgatgtgcggcta              81 20  0 55.00 61.006 19.16  0.00 41.65  1.006 | ||||
|   26 atcgatcgatgtgcggctag              82 20  0 55.00 61.008 29.65  0.00 41.65  1.008 | ||||
|   27 gctgactgatacgcgatgc              472 19  0 57.89 60.025  0.00  0.00  0.00  1.025 | ||||
|   28 agctagctgatcatcgatgct            190 21  0 47.62 60.035 17.99 11.09  0.00  1.035 | ||||
|   29 gctagctagctgactgatcga            105 21  0 52.38 60.037 34.38  0.00 46.11  1.037 | ||||
|   30 tcatctctgcgcgatcgat              363 19  0 52.63 59.946 22.07  0.12 38.48  1.054 | ||||
|   31 atcatctctgcgcgatcga              362 19  0 52.63 59.946 22.07  1.72 38.48  1.054 | ||||
|   32 atcgatcgatgtgcggcta               82 19  0 52.63 59.945 29.65  0.00 41.65  1.055 | ||||
|   33 gtagcggcgatctagctagc             578 20  0 60.00 61.071 16.97  7.15 39.86  1.071 | ||||
|   34 gctagctgactgatcgatcg             109 20  0 55.00 58.924 16.84 13.89  0.00  1.076 | ||||
|   35 gctgatcgatcgatgtgcg               78 19  0 57.89 60.097 29.87 18.15 42.69  1.097 | ||||
|   36 tatcatctctgcgcgatcgat            361 21  0 47.62 60.172 22.07 11.47 38.48  1.172 | ||||
|   37 gctagctagctgatcgatcga            390 21  0 52.38 60.172 34.38 22.52 46.11  1.172 | ||||
|   38 gctagctagctgatcgatcga             70 21  0 52.38 60.172 34.38 22.52 46.11  1.172 | ||||
|   39 catctctgcgcgatcgatg              364 19  0 57.89 59.810 13.74 13.74 38.48  1.190 | ||||
|   40 tcgtagcggcgatctagcta             576 20  0 55.00 61.231 11.55  9.27 36.40  1.231 | ||||
|   41 actgatacgcgatgctagcta            476 21  0 47.62 59.765 17.69  3.08  0.00  1.235 | ||||
|   42 actgatcgatcgatgctagct            117 21  0 47.62 59.763 23.29 11.70 35.21  1.237 | ||||
|   43 agctagctgatcgatcgatgt             73 21  0 47.62 59.763 17.99  2.62 35.21  1.237 | ||||
|   44 tagcggcgatctagctagct             579 20  0 55.00 61.243 23.74 23.74 46.60  1.243 | ||||
|   45 cgtagcggcgatctagcta              577 19  0 57.89 59.729 11.55  9.27 37.58  1.271 | ||||
|   46 ctagctgatcgatcgtagcg             564 20  0 55.00 58.727 25.02 15.05  0.00  1.273 | ||||
|   47 tagcggcgatctagctagc              579 19  0 57.89 59.725 16.97  9.14 39.86  1.275 | ||||
|   48 catcgatcgatgcatgcatg             442 20  0 50.00 58.722 37.80 23.31 44.93  1.278 | ||||
|   49 tcatctctgcgcgatcgatg             363 20  0 55.00 61.279 18.01 18.01 38.48  1.279 | ||||
|   50 gctagctagctgatcgatcg             559 20  0 55.00 58.714 34.38 11.90 46.11  1.286 | ||||
|   51 gctagctagctgatcgatcg             390 20  0 55.00 58.714 34.38 11.90 46.11  1.286 | ||||
|   52 gctagctagctgatcgatcg              70 20  0 55.00 58.714 34.38 11.90 46.11  1.286 | ||||
|   53 agcatcggattagctagctga              3 21  0 47.62 59.689 28.29 20.88  0.00  1.311 | ||||
|   54 agctgatcgatcgtagcgg              566 19  0 57.89 60.315 25.02 17.36  0.00  1.315 | ||||
|   55 cggcgatctagctagctga              582 19  0 57.89 59.650 21.57 16.66 38.70  1.350 | ||||
|   56 ctagctgatcgatcgatgtgc             75 21  0 52.38 59.643 31.83 30.04 35.21  1.357 | ||||
|   57 gctagctgatcgatcgatgtg             74 21  0 52.38 59.643 12.06  6.93 35.21  1.357 | ||||
|   58 gctagctaggcgatgctagc             412 20  0 60.00 61.357 30.41 30.41 46.19  1.357 | ||||
|   59 tagctagctgactgatacgcg            466 21  0 52.38 60.373 28.29  3.89  0.00  1.373 | ||||
|   60 gctagctgactgatcgatcga            109 21  0 52.38 60.374 22.52 22.52  0.00  1.374 | ||||
|   61 agctagctgactgatcgatcg            108 21  0 52.38 60.374 17.99 13.89  0.00  1.374 | ||||
|   62 cgatcgatgctagctaggcg             404 20  0 60.00 61.409 15.59  9.14  0.00  1.409 | ||||
|   63 gctagctagctgactgatcg             105 20  0 55.00 58.563 34.38  1.84 46.11  1.437 | ||||
|   64 atgctagctaggcgatgct              410 19  0 52.63 59.561 10.59  7.53  0.00  1.439 | ||||
|   65 agctagctgatcgatcgtagc            562 21  0 52.38 60.441 26.87 26.87  0.00  1.441 | ||||
|   66 gctagctagctgatcgatcgt            559 21  0 52.38 60.441 34.38  2.65 46.11  1.441 | ||||
|   67 tagctaggcgatgctagctag            414 21  0 52.38 59.559 18.42 17.46 42.44  1.441 | ||||
|   68 ctagctaggcgatgctagcta            413 21  0 52.38 59.559 18.69 17.64 42.44  1.441 | ||||
|   69 tagctgatcgatcgatgtgc              76 20  0 50.00 58.558 31.83 30.04 35.21  1.442 | ||||
|   70 gatgctagctaggcgatgcta            409 21  0 52.38 60.444  9.82  8.91  0.00  1.444 | ||||
|   71 atgctagctaggcgatgctag            410 21  0 52.38 60.444 23.16 23.16 38.59  1.444 | ||||
|   72 gctagctgatcatcgatgct             191 20  0 50.00 58.539 16.29 12.14  0.00  1.461 | ||||
|   73 agctagctgatcatcgatgc             190 20  0 50.00 58.539 21.42  9.22  0.00  1.461 | ||||
|   74 gctgactgatacgcgatgct             472 20  0 55.00 61.494  2.33  0.00  0.00  1.494 | ||||
|   75 agctgactgatacgcgatgc             471 20  0 55.00 61.494  3.47  0.00  0.00  1.494 | ||||
|   76 ggcgatctagctagctgacta            583 21  0 52.38 59.491 17.44  5.40 37.58  1.509 | ||||
|   77 gatcgatgctagctaggcgat            405 21  0 52.38 60.510 21.61 21.61  0.00  1.510 | ||||
|   78 atcgatcgatgctagctaggc            402 21  0 52.38 60.510 29.65  8.45 33.56  1.510 | ||||
|   79 ctgatcgatcgatgtgcgg               79 19  0 57.89 59.447 15.54  5.83 41.65  1.553 | ||||
|   80 agctgatcgatcgatgtgcg              77 20  0 55.00 61.556 31.92 20.26 42.69  1.556 | ||||
|   81 cgatcatcgatgctagctagc            548 21  0 52.38 59.444 34.89 34.89 46.99  1.556 | ||||
|   82 tagctaggcgatgctagcta             414 20  0 50.00 58.433 19.37 17.81 42.44  1.567 | ||||
|   83 agctagctactgatcgatgct            303 21  0 47.62 59.415 17.56 11.51  0.00  1.585 | ||||
|   84 tcgatcgatgtgcggctag               83 19  0 57.89 60.606 18.63  0.00 41.65  1.606 | ||||
|   85 gactgatcgatcgatgctagc            116 21  0 52.38 59.378 15.86  8.45 35.21  1.622 | ||||
|   86 agctagctgactgatcgatca            260 21  0 47.62 59.347 26.99 26.99 35.44  1.653 | ||||
|   87 ctgactgatacgcgatgctag            473 21  0 52.38 59.312  1.70  0.00  0.00  1.688 | ||||
|   88 ctagctgactgatacgcgatg            469 21  0 52.38 59.312  0.00  0.00  0.00  1.688 | ||||
|   89 gctactatcatctctgcgcga            356 21  0 52.38 60.707  2.71  2.71  0.00  1.707 | ||||
|   90 agctactatcatctctgcgcg            355 21  0 52.38 60.709  0.00  0.00  0.00  1.709 | ||||
|   91 actatcatctctgcgcgatc             359 20  0 50.00 58.270  4.99  0.00  0.00  1.730 | ||||
|   92 actgatcgatcgatgctagc             117 20  0 50.00 58.270 23.29 13.61 35.21  1.730 | ||||
|   93 gctagctgatcgatcgatgt              74 20  0 50.00 58.270 14.29  2.62 35.21  1.730 | ||||
|   94 ctatcatctctgcgcgatcga            360 21  0 52.38 60.771 22.07  1.72 38.48  1.771 | ||||
|   95 atcgatgctagctaggcgatg            406 21  0 52.38 60.779 21.16  4.37  0.00  1.779 | ||||
|   96 tgactgatacgcgatgctag             474 20  0 50.00 58.207  1.70  0.00  0.00  1.793 | ||||
|   97 ctgactgatacgcgatgcta             473 20  0 50.00 58.207  2.33  0.00  0.00  1.793 | ||||
|   98 tagctgactgatacgcgatg             470 20  0 50.00 58.207  0.00  0.00  0.00  1.793 | ||||
|   99 ctgactgatcgatcgatgct             114 20  0 50.00 58.197 26.44 12.40 35.21  1.803 | ||||
|  100 agctgactgatcgatcgatg             112 20  0 50.00 58.197 23.05 13.21 35.21  1.803 | ||||
|  101 tcggattagctagctgatgc               7 20  0 50.00 58.176 17.46 17.46 40.05  1.824 | ||||
|  102 gcatcggattagctagctga               4 20  0 50.00 58.176 28.29 20.88  0.00  1.824 | ||||
|  103 agcatcggattagctagctg               3 20  0 50.00 58.171 28.29 10.80  0.00  1.829 | ||||
|  104 gatgctagctaggcgatgc              409 19  0 57.89 59.141  4.18  0.00  0.00  1.859 | ||||
|  105 ctgatacgcgatgctagctag            477 21  0 52.38 59.113 17.46 17.46  0.00  1.887 | ||||
|  106 gctagctgactgatacgcg              468 19  0 57.89 59.086  8.21  3.89  0.00  1.914 | ||||
|  107 ctctgcgcgatcgatgctag             367 20  0 60.00 61.946 21.94 18.16 38.48  1.946 | ||||
|  108 tctgcgcgatcgatgctag              368 19  0 57.89 60.966 21.94 18.16 38.48  1.966 | ||||
|  109 ctctgcgcgatcgatgcta              367 19  0 57.89 60.966 26.61 17.10 38.48  1.966 | ||||
|  110 cgatgctagctaggcgatgc             408 20  0 60.00 61.968 11.09  0.00  0.00  1.968 | ||||
|  111 gactgatacgcgatgctagct            475 21  0 52.38 60.975 17.69  1.35  0.00  1.975 | ||||
|  112 gctagctgactgatacgcgat            468 21  0 52.38 60.975  8.21  0.00  0.00  1.975 | ||||
|  113 tgatacgcgatgctagctag             478 20  0 50.00 57.994 17.46 17.46  0.00  2.006 | ||||
|  114 ctgatacgcgatgctagcta             477 20  0 50.00 57.994 17.69  3.08  0.00  2.006 | ||||
|  115 cgcgatcgatgctagctagc             372 20  0 60.00 62.011 34.89 34.89 43.67  2.011 | ||||
|  116 gcgcgatcgatgctagctag             371 20  0 60.00 62.011 21.66 17.46 38.48  2.011 | ||||
|  117 ctgatcgatcgatgctagct             399 20  0 50.00 57.983 19.70  2.01 35.21  2.017 | ||||
|  118 agctgatcgatcgatgctag             397 20  0 50.00 57.983 27.33 18.05 34.69  2.017 | ||||
|  119 ctagctgatcgatcgatgct             395 20  0 50.00 57.983 33.87 33.38 38.16  2.017 | ||||
|  120 agctagctgatcgatcgatg             393 20  0 50.00 57.983 21.99 11.03 35.21  2.017 | ||||
|  121 ctgatcgatcgatgctagct             118 20  0 50.00 57.983 19.70  2.01 35.21  2.017 | ||||
|  122 agctagctgatcgatcgatg              73 20  0 50.00 57.983 21.99 11.03 35.21  2.017 | ||||
|  123 catcggattagctagctgatgc             5 22  0 50.00 59.982 24.41 24.41 40.05  2.018 | ||||
|  124 gcatcggattagctagctgatg             4 22  0 50.00 59.982 27.81 27.81 33.28  2.018 | ||||
|  125 tcgatgctagctaggcgat              407 19  0 52.63 58.964 14.03  3.01  0.00  2.036 | ||||
|  126 atcgatgctagctaggcga              406 19  0 52.63 58.964 16.30 16.30  0.00  2.036 | ||||
|  127 actatcatctctgcgcgatcg            359 21  0 52.38 61.037 12.19 12.19 39.07  2.037 | ||||
|  128 gcgcgatcgatgctagcta              371 19  0 57.89 61.037 21.66  3.08 38.48  2.037 | ||||
|  129 gctgatcgatcgatgctagct            398 21  0 52.38 61.044 27.88 12.70 35.21  2.044 | ||||
|  130 agctgatcgatcgatgctagc            397 21  0 52.38 61.044 27.33 27.90 34.69  2.044 | ||||
|  131 gctagctgatcgatcgatgct            394 21  0 52.38 61.044 33.87 33.38 38.16  2.044 | ||||
|  132 agctagctgatcgatcgatgc            393 21  0 52.38 61.044 24.08 21.09 35.21  2.044 | ||||
|  133 cgcgatcgatgctagctag              372 19  0 57.89 58.947 22.07 17.46 38.48  2.053 | ||||
|  134 tcgtagcggcgatctagc               576 18  0 61.11 59.936  4.70  0.00 36.40  2.064 | ||||
|  135 cgtagcggcgatctagct               577 18  0 61.11 59.935 11.03 11.03 37.58  2.065 | ||||
|  136 gcggcgatctagctagct               581 18  0 61.11 59.933 23.74 23.74 38.05  2.067 | ||||
|  137 agcggcgatctagctagc               580 18  0 61.11 59.933 16.97  7.15 39.86  2.067 | ||||
|  138 ctagctgactgatacgcgat             469 20  0 50.00 57.918  1.43  0.00  0.00  2.082 | ||||
|  139 ctagctgatcgatcgtagcgg            564 21  0 57.14 61.096 20.31 16.15  0.00  2.096 | ||||
|  140 agctactatcatctctgcgc             355 20  0 50.00 57.898  0.00  0.00  0.00  2.102 | ||||
|  141 gctagctactgatcgatgct             304 20  0 50.00 57.898 11.51 11.51  0.00  2.102 | ||||
|  142 agctagctactgatcgatgc             303 20  0 50.00 57.898 17.56  1.76  0.00  2.102 | ||||
|  143 agcatcggattagctagctgat             3 22  0 45.45 60.108 17.84 15.13  0.00  2.108 | ||||
|  144 tgctagctaggcgatgcta              411 19  0 52.63 58.881 17.69  8.91  0.00  2.119 | ||||
|  145 aagcatcggattagctagctg              2 21  0 47.62 58.879 28.29 10.80  0.00  2.121 | ||||
|  146 tctgcgcgatcgatgcta               368 18  0 55.56 59.857 26.61 16.13 38.48  2.143 | ||||
|  147 cgatgctagctaggcgatg              408 19  0 57.89 58.856 11.09  0.00  0.00  2.144 | ||||
|  148 agctagctgatcatcgatgcta           190 22  0 45.45 59.845 17.99 13.09  0.00  2.155 | ||||
|  149 tagctagctgatcatcgatgct           189 22  0 45.45 59.845 16.29 15.30  0.00  2.155 | ||||
|  150 atcgatcgatgtgcggct                82 18  0 55.56 60.166 29.65  4.36 41.65  2.166 | ||||
|  151 gctagctgactgatcgatca             261 20  0 50.00 57.829 26.99 26.99 35.44  2.171 | ||||
|  152 tagctagctgactgatcgatcg           107 22  0 50.00 60.174 28.29 13.89  0.00  2.174 | ||||
|  153 agctgatcatcatcgatgct             515 20  0 45.00 57.788 11.25  0.72 40.32  2.212 | ||||
|  154 agctagctgactgatcgatcat           260 22  0 45.45 59.778 26.67 18.02 36.62  2.222 | ||||
|  155 tgactgatacgcgatgctagc            474 21  0 52.38 61.238  8.61  8.61  0.00  2.238 | ||||
|  156 gctgactgatacgcgatgcta            472 21  0 52.38 61.238  2.33  0.00  0.00  2.238 | ||||
|  157 tagctgactgatacgcgatgc            470 21  0 52.38 61.238  3.47  0.00  0.00  2.238 | ||||
|  158 tagctagctgatcgatcgtagc           561 22  0 50.00 60.238 26.87 26.87  0.00  2.238 | ||||
|  159 gctagctagctgatcgatcgta           559 22  0 50.00 60.238 34.38  3.07 46.11  2.238 | ||||
|  160 tgatcgatcgatgctagctagg           400 22  0 50.00 60.239 26.44  6.29 35.21  2.239 | ||||
|  161 gctgactgatcgatcgatgct            113 21  0 52.38 61.244 26.44 12.40 35.21  2.244 | ||||
|  162 agctgactgatcgatcgatgc            112 21  0 52.38 61.244 24.08 19.43 35.21  2.244 | ||||
|  163 gatcgatcgatgtgcggct               81 19  0 57.89 61.263 19.16  0.00 41.65  2.263 | ||||
|  164 gctgatcatcgatgctactagc           195 22  0 50.00 59.727 18.08 16.44 45.61  2.273 | ||||
|  165 gctagctgatcatcgatgctac           191 22  0 50.00 59.727  9.57  5.47  0.00  2.273 | ||||
|  166 gatcgatcgatgtgcggc                81 18  0 61.11 59.714 18.10  0.95 41.65  2.286 | ||||
|  167 ctagctagctgactgatacgc            465 21  0 52.38 58.703 14.90  0.00  0.00  2.297 | ||||
|  168 tagctgatcgatcgatgtgcg             76 21  0 52.38 61.299 31.92 20.26 42.69  2.299 | ||||
|  169 agctgatcgatcgatgtgc               77 19  0 52.63 58.698 31.83 30.04 35.21  2.302 | ||||
|  170 gctgatcatcatcgatgctagc           516 22  0 50.00 60.302 10.80 10.34 40.32  2.302 | ||||
|  171 gctagctgatcatcatcgatgc           512 22  0 50.00 60.302 21.42  7.40 40.32  2.302 | ||||
|  172 aagcatcggattagctagctga             2 22  0 45.45 60.306 28.29 20.88  0.00  2.306 | ||||
|  173 gatcgatcgtagcggcga               570 18  0 61.11 60.318 13.01  8.51 45.59  2.318 | ||||
|  174 atcggattagctagctgatgc              6 21  0 47.62 58.673 17.46 17.46 40.05  2.327 | ||||
|  175 gcatcggattagctagctgat              4 21  0 47.62 58.673 17.84 15.13  0.00  2.327 | ||||
|  176 gcggcgatctagctagctg              581 19  0 63.16 61.329 17.07  8.17 38.05  2.329 | ||||
|  177 tgctagtgatgcatgctagt              24 20  0 45.00 57.636 24.96 11.17 35.89  2.364 | ||||
|  178 ctactatcatctctgcgcga             357 20  0 50.00 57.636  2.71  2.71  0.00  2.364 | ||||
|  179 actagctagctgactgatacgc           464 22  0 50.00 60.368 21.52  0.00  0.00  2.368 | ||||
|  180 gctagctagctgatcatcga             187 20  0 50.00 57.613 34.38  0.24 46.11  2.387 | ||||
|  181 tctctgcgcgatcgatgcta             366 20  0 55.00 62.413 26.61 17.10 38.48  2.413 | ||||
|  182 tgatcgatcgatgctagctagt           119 22  0 45.45 59.586 26.44  5.69 35.21  2.414 | ||||
|  183 actgatcgatcgatgctagcta           117 22  0 45.45 59.586 23.29  7.65 35.21  2.414 | ||||
|  184 tagctagctgatcgatcgatgt            72 22  0 45.45 59.586 14.29  2.62 35.21  2.414 | ||||
|  185 agctaggcgatgctagcta              415 19  0 52.63 58.572 17.69  3.08 41.54  2.428 | ||||
|  186 tagctaggcgatgctagct              414 19  0 52.63 58.572 17.35 17.35 43.53  2.428 | ||||
|  187 gatcgatcgatgctagctagg            401 21  0 52.38 58.567 23.89  6.29 35.21  2.433 | ||||
|  188 gctagctagctgactgatcgat           105 22  0 50.00 60.434 34.38  0.00 46.11  2.434 | ||||
|  189 gatcgatgctagctaggcg              405 19  0 57.89 58.563 15.59  9.02  0.00  2.437 | ||||
|  190 cgatcgatgctagctaggc              404 19  0 57.89 58.563 14.87  8.45  0.00  2.437 | ||||
|  191 tagctagctgactgatacgc             466 20  0 50.00 57.549 28.29  0.00  0.00  2.451 | ||||
|  192 agctagctgactgatcgatc             260 20  0 50.00 57.536 19.32 19.32  0.00  2.464 | ||||
|  193 agctagctgactgatcgatc             108 20  0 50.00 57.536 19.32 19.32  0.00  2.464 | ||||
|  194 aaagcatcggattagctagctg             1 22  0 45.45 59.524 28.29 10.80  0.00  2.476 | ||||
|  195 gctgactgatcgatcatcatgc           265 22  0 50.00 60.493 25.66 25.12 41.77  2.493 | ||||
|  196 tagctactatcatctctgcgcg           354 22  0 50.00 60.495  0.00  0.00  0.00  2.495 | ||||
|  197 ctgatcgatcgatgtgcggc              79 20  0 60.00 62.497 15.54  4.15 41.65  2.497 | ||||
|  198 gctgatcgatcgatgtgcgg              78 20  0 60.00 62.497 29.87 22.23 41.65  2.497 | ||||
|  199 tcgtagcggcgatctagct              576 19  0 57.89 61.503 11.03 11.03 36.40  2.503 | ||||
|  200 agcggcgatctagctagct              580 19  0 57.89 61.519 23.74 23.74 42.96  2.519 | ||||
|  201 ctagctagctgatcatcgatgc           188 22  0 50.00 59.470 21.42  9.22  0.00  2.530 | ||||
|  202 gctagctagctgatcatcgatg           187 22  0 50.00 59.470 34.38 20.23 46.11  2.530 | ||||
|  203 tcatctctgcgcgatcga               363 18  0 55.56 59.468 22.07  0.00 38.48  2.532 | ||||
|  204 tcgatcgatgtgcggcta                83 18  0 55.56 59.465 18.63  0.00 41.65  2.535 | ||||
|  205 tgatcgatcgatgtgcggc               80 19  0 57.89 61.549 21.27  8.44 41.65  2.549 | ||||
|  206 ctagctaggcgatgctagctag           413 22  0 54.55 60.561 22.99 22.99 46.84  2.561 | ||||
|  207 gctagctagctgatcgatcgat           390 22  0 50.00 60.561 34.38 30.53 46.11  2.561 | ||||
|  208 gctagctagctgatcgatcgat            70 22  0 50.00 60.561 34.38 30.53 46.11  2.561 | ||||
|  209 ctgcgcgatcgatgctag               369 18  0 61.11 59.415 19.79 13.97 38.48  2.585 | ||||
|  210 aagcatcggattagctagct               2 20  0 45.00 57.413 23.74 23.74  0.00  2.587 | ||||
|  211 gctagctgatcatcgatgcta            191 21  0 47.62 58.410 16.61 13.09  0.00  2.590 | ||||
|  212 tagctagctgatcatcgatgc            189 21  0 47.62 58.410 21.42  9.22  0.00  2.590 | ||||
|  213 actgatacgcgatgctagc              476 19  0 52.63 58.407  8.61  8.61  0.00  2.593 | ||||
|  214 gctagctgactgatcgatcatc           261 22  0 50.00 59.406 23.93 21.92 36.62  2.594 | ||||
|  215 atcgatcgatgctagctagg             402 20  0 50.00 57.396 29.65  6.29 33.56  2.604 | ||||
|  216 atctctgcgcgatcgatgc              365 19  0 57.89 61.618 22.01 22.01 38.48  2.618 | ||||
|  217 tgatcgatcgtagcggcg               569 18  0 61.11 60.621 20.58  0.86  0.00  2.621 | ||||
|  218 atcatctctgcgcgatcgatg            362 21  0 52.38 61.633 18.01 18.01 38.48  2.633 | ||||
|  219 agctagctgatcgatcgtag             562 20  0 50.00 57.344 17.99 16.86  0.00  2.656 | ||||
|  220 ctagctagctgatcgatcgt             560 20  0 50.00 57.344 16.40  2.65  0.00  2.656 | ||||
|  221 gctagctgactgatcgatcat            261 21  0 47.62 58.339 26.67 18.02 36.62  2.661 | ||||
|  222 ctgatcgatcgtagcggcg              568 19  0 63.16 61.664 14.21  0.86  0.00  2.664 | ||||
|  223 ctgactgatacgcgatgct              473 19  0 52.63 58.330  2.33  0.00  0.00  2.670 | ||||
|  224 agctgactgatacgcgatg              471 19  0 52.63 58.330  0.00  0.00  0.00  2.670 | ||||
|  225 gctagctgatcgatcgtagcg            563 21  0 57.14 61.676 24.18 16.49  0.00  2.676 | ||||
|  226 ctagctgactgatcgatcga             110 20  0 50.00 57.276 22.52 22.52  0.00  2.724 | ||||
|  227 agctagctactgatcgatgcta           303 22  0 45.45 59.252 17.56 12.23  0.00  2.748 | ||||
|  228 tagctagctactgatcgatgct           302 22  0 45.45 59.252 27.80 11.51  0.00  2.748 | ||||
|  229 gactgatacgcgatgctagcta           475 22  0 50.00 60.751 17.69  3.08  0.00  2.751 | ||||
|  230 actgatacgcgatgctagctag           476 22  0 50.00 60.752 17.46 17.46  0.00  2.752 | ||||
|  231 gactgatcgatcgatgctagct           116 22  0 50.00 60.753 18.04  9.56 35.21  2.753 | ||||
|  232 gctagctgactgatcgatcgat           109 22  0 50.00 60.753 30.53 30.53 37.90  2.753 | ||||
|  233 tgcgcgatcgatgctagcta             370 20  0 55.00 62.756 26.61  9.85 38.48  2.756 | ||||
|  234 gcggcgatctagctagctga             581 20  0 60.00 62.765 21.57 16.66 38.70  2.765 | ||||
|  235 agcggcgatctagctagctg             580 20  0 60.00 62.771 17.07  8.17 44.87  2.771 | ||||
|  236 ctactatcatctctgcgcgatc           357 22  0 50.00 59.220  4.99  0.00  0.00  2.780 | ||||
|  237 tatcatctctgcgcgatcg              361 19  0 52.63 58.199 12.19 12.19 39.07  2.801 | ||||
|  238 tactatcatctctgcgcgatcg           358 22  0 50.00 60.811 12.19 12.19 39.07  2.811 | ||||
|  239 tagctagctgactgatcgatca           259 22  0 45.45 59.187 28.29 26.99 35.44  2.813 | ||||
|  240 gctgatcgatcgatgctagcta           398 22  0 50.00 60.816 27.88 12.57 35.21  2.816 | ||||
|  241 tagctgatcgatcgatgctagc           396 22  0 50.00 60.816 30.84 27.90 36.80  2.816 | ||||
|  242 gctagctgatcgatcgatgcta           394 22  0 50.00 60.816 34.11 32.56 36.80  2.816 | ||||
|  243 tagctagctgatcgatcgatgc           392 22  0 50.00 60.816 24.08 21.09 35.21  2.816 | ||||
|  244 gctaggcgatgctagctag              416 19  0 57.89 58.179 17.46 17.46 35.42  2.821 | ||||
|  245 ctagctaggcgatgctagc              413 19  0 57.89 58.179 18.68  9.44 36.95  2.821 | ||||
|  246 gctagctaggcgatgctag              412 19  0 57.89 58.179 23.16 23.16 38.59  2.821 | ||||
|  247 catctctgcgcgatcgatgc             364 20  0 60.00 62.823 22.01 22.01 38.48  2.823 | ||||
|  248 aaagcatcggattagctagct              1 21  0 42.86 58.168 23.74 23.74  0.00  2.832 | ||||
|  249 ctgactgatcgatcgatgctag           114 22  0 50.00 59.155 22.81 19.44 35.21  2.845 | ||||
|  250 ctagctgactgatcgatcgatg           110 22  0 50.00 59.155 23.05 13.21 35.21  2.845 | ||||
|  251 tactatcatctctgcgcgatc            358 21  0 47.62 58.155  4.99  0.00  0.00  2.845 | ||||
|  252 gctagctactgatcgatgctac           304 22  0 50.00 59.151  8.57  4.26  0.00  2.849 | ||||
|  253 ctactatcatctctgcgcgat            357 21  0 47.62 58.150  4.99  2.52  0.00  2.850 | ||||
|  254 agctgatcatcgatgctact             194 20  0 45.00 57.134 17.14  8.95  0.00  2.866 | ||||
|  255 gctagctagctgatcatcgat            187 21  0 47.62 58.132 34.38  0.00 46.11  2.868 | ||||
|  256 ctgatacgcgatgctagct              477 19  0 52.63 58.107 17.69  1.35  0.00  2.893 | ||||
|  257 ggcgatctagctagctgac              583 19  0 57.89 58.106 14.84  7.25 37.58  2.894 | ||||
|  258 tgactgatcgatcgatgctag            115 21  0 47.62 58.084 22.81 19.44 35.21  2.916 | ||||
|  259 ctgactgatcgatcgatgcta            114 21  0 47.62 58.084 26.44 14.64 35.21  2.916 | ||||
|  260 tagctgactgatcgatcgatg            111 21  0 47.62 58.084 23.05 13.21 35.21  2.916 | ||||
|  261 actgatcgatcatcatgctagc           269 22  0 45.45 59.071 26.67  8.61 41.77  2.929 | ||||
|  262 agctgactgatcgatcatca             264 20  0 45.00 57.064 26.49 26.49 39.98  2.936 | ||||
|  263 ctagctagctgatcgatcga             391 20  0 50.00 57.060 22.52 22.52  0.00  2.940 | ||||
|  264 ctagctagctgatcgatcga              71 20  0 50.00 57.060 22.52 22.52  0.00  2.940 | ||||
|  265 gatcgatcgatgtgcggctag             81 21  0 57.14 61.947 19.16  0.00 41.65  2.947 | ||||
|  266 tgctagctaggcgatgct               411 18  0 55.56 59.050 17.69  7.53  0.00  2.950 | ||||
|  267 gctgatcgatcgtagcggc              567 19  0 63.16 61.960 20.49 19.38  0.00  2.960 | ||||
|  268 cgatcgatgtgcggctag                84 18  0 61.11 59.032 10.82  0.00 41.65  2.968 | ||||
|  269 tgatcgatcgatgtgcggct              80 20  0 55.00 62.987 22.21  0.00 41.65  2.987 | ||||
|  270 ctgactgatcgatcatcatgct           266 22  0 45.45 59.004 20.99  6.82 41.77  2.996 | ||||
|  271 agctgactgatcgatcatcatg           264 22  0 45.45 59.004 22.70 19.51 41.77  2.996 | ||||
|  272 agctagctgactgatacgcga            467 21  0 52.38 62.000 17.99  0.00  0.00  3.000 | ||||
|  273 tgactgatcgatcgatgctagc           115 22  0 50.00 61.008 18.17 12.52 35.21  3.008 | ||||
|  274 gctgactgatcgatcgatgcta           113 22  0 50.00 61.008 26.44 14.64 35.21  3.008 | ||||
|  275 tagctgactgatcgatcgatgc           111 22  0 50.00 61.008 24.08 19.43 35.21  3.008 | ||||
|  276 agctagctgatcgatcgatgtg            73 22  0 50.00 61.010 17.99  6.93 35.21  3.010 | ||||
|  277 ctgatcgatcgatgctagctag           399 22  0 50.00 58.963 19.70 17.46 35.21  3.037 | ||||
|  278 ctagctgatcgatcgatgctag           395 22  0 50.00 58.963 37.86 37.86 43.17  3.037 | ||||
|  279 ctagctagctgatcgatcgatg           391 22  0 50.00 58.963 21.99 11.03 35.21  3.037 | ||||
|  280 ctgatcgatcgatgctagctag           118 22  0 50.00 58.963 19.70 17.46 35.21  3.037 | ||||
|  281 ctagctagctgatcgatcgatg            71 22  0 50.00 58.963 21.99 11.03 35.21  3.037 | ||||
|  282 gactgatcgatcatcatgctagc          268 23  0 47.83 60.053 24.51  9.03 41.77  3.053 | ||||
|  283 gctagtgatgcatgctagtagtg           25 23  0 47.83 59.929 24.96 10.54  0.00  3.071 | ||||
|  284 gctactatcatctctgcgcgat           356 22  0 50.00 61.073  4.99  2.52  0.00  3.073 | ||||
|  285 gtagcggcgatctagctag              578 19  0 57.89 57.903 15.64 15.64 37.58  3.097 | ||||
|  286 tgactgatcgatcatcatgct            267 21  0 42.86 57.900 26.79 12.28 41.77  3.100 | ||||
|  287 ctagctactatcatctctgcgc           353 22  0 50.00 58.892  0.00  0.00  0.00  3.108 | ||||
|  288 gctagctactatcatctctgcg           352 22  0 50.00 58.892  8.21  0.00  0.00  3.108 | ||||
|  289 ctagctagctactgatcgatgc           301 22  0 50.00 58.892 14.00  1.76  0.00  3.108 | ||||
|  290 gctagctagctactgatcgatg           300 22  0 50.00 58.892 34.38  7.78 46.11  3.108 | ||||
|  291 catcgatcgatgctagtatgct           325 22  0 45.45 58.885 37.80 10.02 44.93  3.115 | ||||
|  292 tgatcgatcgatgctagctag            400 21  0 47.62 57.879 26.44 17.46 35.21  3.121 | ||||
|  293 ctgatcgatcgatgctagcta            399 21  0 47.62 57.879 19.70  3.77 35.21  3.121 | ||||
|  294 tagctgatcgatcgatgctag            396 21  0 47.62 57.879 34.03 27.12 36.80  3.121 | ||||
|  295 ctagctgatcgatcgatgcta            395 21  0 47.62 57.879 34.11 32.56 36.80  3.121 | ||||
|  296 tagctagctgatcgatcgatg            392 21  0 47.62 57.879 21.99 11.03 35.21  3.121 | ||||
|  297 tgatcgatcgatgctagctag            119 21  0 47.62 57.879 26.44 17.46 35.21  3.121 | ||||
|  298 ctgatcgatcgatgctagcta            118 21  0 47.62 57.879 19.70  3.77 35.21  3.121 | ||||
|  299 tagctagctgatcgatcgatg             72 21  0 47.62 57.879 21.99 11.03 35.21  3.121 | ||||
|  300 gatcgatcgatgctagctagt            120 21  0 47.62 57.878 23.89  3.56 35.21  3.122 | ||||
|  301 ctatcatctctgcgcgatcgat           360 22  0 50.00 61.132 22.07 11.47 38.48  3.132 | ||||
|  302 tgatcgatcgtagcggcga              569 19  0 57.89 62.144 20.58  8.51 45.59  3.144 | ||||
|  303 tcgtagcggcgatctagctag            576 21  0 57.14 62.173 15.64 15.64 36.40  3.173 | ||||
|  304 tactagctagctgactgatacgc          463 23  0 47.83 60.176 13.17  0.00  0.00  3.176 | ||||
|  305 ctgatcatcatcgatgctagct           517 22  0 45.45 58.807 17.69  1.76 40.32  3.193 | ||||
|  306 agctgatcatcatcgatgctag           515 22  0 45.45 58.807  5.93  2.76 40.32  3.193 | ||||
|  307 ctagctgatcatcatcgatgct           513 22  0 45.45 58.807 14.14  8.34 40.32  3.193 | ||||
|  308 agctagctgatcatcatcgatg           511 22  0 45.45 58.807 20.23 20.23 41.48  3.193 | ||||
|  309 ctgatcgatcatcatgctagct           270 22  0 45.45 58.807 26.67  0.00 41.77  3.193 | ||||
|  310 ctagctgactgatcgatcgat            110 21  0 47.62 57.806 30.53 30.53 37.90  3.194 | ||||
|  311 ttagctagctgactgatcgatca          258 23  0 43.48 59.798 28.29 26.99 35.44  3.202 | ||||
|  312 tagctactatcatctctgcgc            354 21  0 47.62 57.798  0.00  0.00  0.00  3.202 | ||||
|  313 gctagctactgatcgatgcta            304 21  0 47.62 57.798 12.99 12.23  0.00  3.202 | ||||
|  314 tagctagctactgatcgatgc            302 21  0 47.62 57.798 27.80  1.76  0.00  3.202 | ||||
|  315 tctctgcgcgatcgatgc               366 18  0 61.11 61.229 22.01 22.01 38.48  3.229 | ||||
|  316 ctctgcgcgatcgatgct               367 18  0 61.11 61.232 26.61  0.00 38.48  3.232 | ||||
|  317 agctagctactatcatctctgcg          351 23  0 47.83 60.238 17.56  0.00  0.00  3.238 | ||||
|  318 ctagctagctactgatcgatgct          301 23  0 47.83 60.238 14.00 11.51  0.00  3.238 | ||||
|  319 ctgatcgatcgtagcggc               568 18  0 61.11 58.727 14.21  0.00  0.00  3.273 | ||||
|  320 gctgatcgatcgtagcgg               567 18  0 61.11 58.727 20.49 15.03  0.00  3.273 | ||||
|  321 agctaggcgatgctagct               415 18  0 55.56 58.725 17.69 13.00 39.84  3.275 | ||||
|  322 tgctagtgatgcatgctagtagt           24 23  0 43.48 60.302 24.96 12.98 35.89  3.302 | ||||
|  323 gcgcgatcgatgctagct               371 18  0 61.11 61.306 21.66  1.35 38.48  3.306 | ||||
|  324 tgatcatcatcgatgctagct            518 21  0 42.86 57.691 17.69  1.76 40.32  3.309 | ||||
|  325 agctgatcatcatcgatgcta            515 21  0 42.86 57.691  0.24  0.00 40.32  3.309 | ||||
|  326 tagctgatcatcatcgatgct            514 21  0 42.86 57.691 14.14  8.34 40.32  3.309 | ||||
|  327 tgatcgatcatcatgctagct            271 21  0 42.86 57.691 27.48  0.00 37.38  3.309 | ||||
|  328 ctagctagctgactgatacgcg           465 22  0 54.55 61.313 14.90  3.89  0.00  3.313 | ||||
|  329 tgctagtgatgcatgctagtag            24 22  0 45.45 58.673 24.96 19.76 35.89  3.327 | ||||
|  330 gctagtgatgcatgctagtagt            25 22  0 45.45 58.672 24.96 12.98  0.00  3.328 | ||||
|  331 tagctagctgatcatcgatgcta          189 23  0 43.48 59.671 17.82 15.89  0.00  3.329 | ||||
|  332 agctagctgactgatacgc              467 19  0 52.63 57.642 17.99  0.00  0.00  3.358 | ||||
|  333 tatcatctctgcgcgatcgatg           361 22  0 50.00 61.383 18.01 18.01 38.48  3.383 | ||||
|  334 agctgactgatcgatcatcat            264 21  0 42.86 57.616 26.31 18.90 41.77  3.384 | ||||
|  335 actagctagctgatcatcatcga          508 23  0 43.48 59.607 22.43  0.00  0.00  3.393 | ||||
|  336 tagctagctgactgatcgatcat          259 23  0 43.48 59.607 28.29 18.02 36.62  3.393 | ||||
|  337 gatgctagctaggcgatgctag           409 22  0 54.55 61.393 23.16 23.16 38.59  3.393 | ||||
|  338 cggcgatctagctagctgact            582 21  0 57.14 62.394 17.44  7.44 38.70  3.394 | ||||
|  339 ctagctagctgatcgatcgat            391 21  0 47.62 57.600 30.53 30.53 37.90  3.400 | ||||
|  340 ctagctagctgatcgatcgat             71 21  0 47.62 57.600 30.53 30.53 37.90  3.400 | ||||
|  341 actgatcgatcatcatgctagct          269 23  0 43.48 60.428 26.67  4.70 41.77  3.428 | ||||
|  342 ctagctagctgactgatcgatc           106 22  0 50.00 58.567 19.32 19.32  0.00  3.433 | ||||
|  343 ctgactgatcgatcatcatgc            266 21  0 47.62 57.562 20.99 12.19 41.77  3.438 | ||||
|  344 gctgactgatcgatcatcatg            265 21  0 47.62 57.562 22.70 19.51 41.77  3.438 | ||||
|  345 gatcgatcgatgctagctaggc           401 22  0 54.55 61.448 23.89  8.45 35.21  3.448 | ||||
|  346 gtgatgcatgctagtagtgatgt           29 23  0 43.48 59.551 11.60  0.00  0.00  3.449 | ||||
|  347 tgctagtgatgcatgctagta             24 21  0 42.86 57.546 24.96 21.25 35.89  3.454 | ||||
|  348 tagcggcgatctagctagctg            579 21  0 57.14 62.457 18.98  9.30 45.57  3.457 | ||||
|  349 gtagcggcgatctagctagct            578 21  0 57.14 62.458 23.74 23.74 46.60  3.458 | ||||
|  350 tagctgatcgatcgtagcg              565 19  0 52.63 57.539 25.02 11.96  0.00  3.461 | ||||
|  351 gctagctagctactgatcgat            300 21  0 47.62 57.517 34.38  0.00 46.11  3.483 | ||||
|  352 agctagctactgatcgatgctac          303 23  0 47.83 60.487 17.56  7.81  0.00  3.487 | ||||
|  353 atcgatcgatgctagtatgct            326 21  0 42.86 57.502 29.65  2.17 33.56  3.498 | ||||
|  354 agctactgatcgatgctacatc           307 22  0 45.45 58.484  7.41  0.00 37.97  3.516 | ||||
|  355 agtgatgcatgctagtagtga             28 21  0 42.86 57.471  0.00  0.00  0.00  3.529 | ||||
|  356 gactgatcgatcgatgctagcta          116 23  0 47.83 60.546 18.04  4.19 35.21  3.546 | ||||
|  357 ctgatcgatcgatgctagctagt          118 23  0 47.83 60.547 22.18  3.56 35.21  3.547 | ||||
|  358 actgatcgatcgatgctagctag          117 23  0 47.83 60.547 23.29 17.46 35.21  3.547 | ||||
|  359 ctagctagctgatcgatcgatgt           71 23  0 47.83 60.547 14.29  2.62 35.21  3.547 | ||||
|  360 catcgatcgatgctagtatgc            325 21  0 47.62 57.452 37.80  0.00 44.93  3.548 | ||||
|  361 tagctagctgactgatcgatc            259 21  0 47.62 57.451 28.29 19.32  0.00  3.549 | ||||
|  362 tagctagctgactgatcgatc            107 21  0 47.62 57.451 28.29 19.32  0.00  3.549 | ||||
|  363 ctagctagctgactgatcgat            106 21  0 47.62 57.445 14.90  0.00  0.00  3.555 | ||||
|  364 tcgatgctagctaggcga               407 18  0 55.56 58.427 15.59 13.52  0.00  3.573 | ||||
|  365 tgatcgatcgatgctagctagta          119 23  0 43.48 59.424 26.44 18.77 35.21  3.576 | ||||
|  366 ctgcgcgatcgatgctagc              369 19  0 63.16 62.586 20.26 12.12 38.48  3.586 | ||||
|  367 agctagctgatcatcatcgat            511 21  0 42.86 57.405 17.99  0.00  0.00  3.595 | ||||
|  368 tgcgcgatcgatgctagc               370 18  0 61.11 61.605 26.61 17.77 38.48  3.605 | ||||
|  369 ctagctagctgatcgatcgtag           560 22  0 50.00 58.387 16.86 16.86  0.00  3.613 | ||||
|  370 actagctagctgactgatacg            464 21  0 47.62 57.384 21.52  2.77  0.00  3.616 | ||||
|  371 ctagctgactgatacgcga              469 19  0 52.63 57.370 16.29  0.00  0.00  3.630 | ||||
|  372 gctactagctagctgactgat            461 21  0 47.62 57.360 15.96  3.00 44.92  3.640 | ||||
|  373 ctgatcatcatcgatgctagc            517 21  0 47.62 57.358  8.61  8.61 40.32  3.642 | ||||
|  374 gctgatcatcatcgatgctag            516 21  0 47.62 57.358  5.93  2.76 40.32  3.642 | ||||
|  375 ctagctgatcatcatcgatgc            513 21  0 47.62 57.358 21.42  7.40 40.32  3.642 | ||||
|  376 gctagctgatcatcatcgatg            512 21  0 47.62 57.358 20.23 20.23 41.48  3.642 | ||||
|  377 ctgatcgatcatcatgctagc            270 21  0 47.62 57.358 26.67  8.61 41.77  3.642 | ||||
|  378 agctactgatcgatgctacat            307 21  0 42.86 57.344  7.41  0.00  0.00  3.656 | ||||
|  379 tgatcgatcgatgtgcggcta             80 21  0 52.38 62.663 22.21  0.24 41.65  3.663 | ||||
|  380 atctctgcgcgatcgatg               365 18  0 55.56 58.327 12.03  4.19 38.48  3.673 | ||||
|  381 catctctgcgcgatcgat               364 18  0 55.56 58.327 22.07  1.26 38.48  3.673 | ||||
|  382 atcatctctgcgcgatcg               362 18  0 55.56 58.327 12.19 12.19 39.07  3.673 | ||||
|  383 aagcatcggattagctagctgat            2 23  0 43.48 60.682 17.84 15.13  0.00  3.682 | ||||
|  384 agtgatgcatgctagtagtgatg           28 23  0 43.48 59.299  7.49  7.49  0.00  3.701 | ||||
|  385 gatcgatgctagctaggcgatg           405 22  0 54.55 61.702 24.26  6.24  0.00  3.702 | ||||
|  386 atctctgcgcgatcgatgcta            365 21  0 52.38 62.723 26.61 17.10 38.48  3.723 | ||||
|  387 tagctagctgactgatacgcga           466 22  0 50.00 61.730 28.29  0.00  0.00  3.730 | ||||
|  388 tagctagctgatcgatcgtag            561 21  0 47.62 57.269 16.86 16.86  0.00  3.731 | ||||
|  389 ctagctagctgatcgatcgta            560 21  0 47.62 57.269 11.68  3.07  0.00  3.731 | ||||
|  390 tcgatcgatgctagctagtag            122 21  0 47.62 57.269 18.63  2.63  0.00  3.731 | ||||
|  391 gctagctactgatcgatgctaca          304 23  0 47.83 60.734 11.21  0.06  0.00  3.734 | ||||
|  392 agctagctgactgatcgatcatc          260 23  0 47.83 60.736 23.93 21.92 36.62  3.736 | ||||
|  393 agctagctgactgatcgatcga           108 22  0 50.00 61.737 22.52 22.52  0.00  3.737 | ||||
|  394 tctctgcgcgatcgatgct              366 19  0 57.89 62.740 26.61  0.00 38.48  3.740 | ||||
|  395 tgatgcatgctagtagtgatgt            30 22  0 40.91 58.256 11.60  0.00  0.00  3.744 | ||||
|  396 tgatcgatcgatgtgcgg                80 18  0 55.56 58.244 21.27  0.00 41.65  3.756 | ||||
|  397 cgatcgatgctagctaggcga            404 21  0 57.14 62.770 16.30 16.30  0.00  3.770 | ||||
|  398 tcgatcgatgctagctaggcg            403 21  0 57.14 62.770 18.63 11.67  0.00  3.770 | ||||
|  399 atcgatcgatgcatgcatg              443 19  0 47.37 57.226 29.65 23.31 37.30  3.774 | ||||
|  400 catcgatcgatgcatgcat              442 19  0 47.37 57.226 37.80 33.45 44.93  3.774 | ||||
|  401 actagctagctgatcatcatcg           508 22  0 45.45 58.219 22.43  3.40  0.00  3.781 | ||||
|  402 ctgatcatcgatgctactagct           196 22  0 45.45 58.219 10.86  0.00 45.92  3.781 | ||||
|  403 agctgatcatcgatgctactag           194 22  0 45.45 58.219 13.67  9.68  0.00  3.781 | ||||
|  404 ctagctgatcatcgatgctact           192 22  0 45.45 58.219 14.85  7.80  0.00  3.781 | ||||
|  405 tttagctagctgactgatcga            257 21  0 42.86 57.216  0.38  0.00  0.00  3.784 | ||||
|  406 tagctagctgatcgatcgatgtg           72 23  0 47.83 60.793 10.14  4.94 35.21  3.793 | ||||
|  407 gctagctagctgatcatcatct           146 22  0 45.45 58.203 34.38  0.00 46.11  3.797 | ||||
|  408 ctagctagctgatcatcgatgct          188 23  0 47.83 60.799 16.29 15.30  0.00  3.799 | ||||
|  409 agctagctactatcatcgatcga          429 23  0 43.48 59.170 22.52 22.52  0.00  3.830 | ||||
|  410 ttagctagctgactgatcgatc           258 22  0 45.45 58.159 28.29 19.32  0.00  3.841 | ||||
|  411 ctagctgactgatcgatcatca           262 22  0 45.45 58.155 26.49 26.49 39.98  3.845 | ||||
|  412 aaagcatcggattagctagctga            1 23  0 43.48 60.870 28.29 20.88  0.00  3.870 | ||||
|  413 agctgactgatacgcgatgct            471 21  0 52.38 62.876  7.57  2.13  0.00  3.876 | ||||
|  414 tagctagctactgatcgatgcta          302 23  0 43.48 59.102 27.80 12.23  0.00  3.898 | ||||
|  415 tcatcatcgatgctagctagt            521 21  0 42.86 57.067 22.18  3.56 40.32  3.933 | ||||
|  416 tcgatcatcatgctagctact            274 21  0 42.86 57.067  0.00  0.00  0.00  3.933 | ||||
|  417 tgatcatcgatgctactagct            197 21  0 42.86 57.067 17.14  0.00 45.92  3.933 | ||||
|  418 agctgatcatcgatgctacta            194 21  0 42.86 57.067 17.14  4.89  0.00  3.933 | ||||
|  419 tagctgatcatcgatgctact            193 21  0 42.86 57.067 14.85  7.80  0.00  3.933 | ||||
|  420 tcgatcgatgctagtatgctag           327 22  0 45.45 58.044 18.63 13.77 46.09  3.956 | ||||
|  421 gcgatctagctagctgact              584 19  0 52.63 57.034 17.44  7.44  0.00  3.966 | ||||
|  422 gctactgatcgatgctacatc            308 21  0 47.62 57.028  2.44  0.00 37.97  3.972 | ||||
|  423 cggcgatctagctagctg               582 18  0 61.11 58.018 17.07  8.17 37.58  3.982 | ||||
|  424 gctagctgactgatcgatcatca          261 23  0 47.83 60.983 26.49 26.49 39.98  3.983 | ||||
|  425 actatcatctctgcgcgat              359 19  0 47.37 57.015  4.99  2.52  0.00  3.985 | ||||
|  426 catcggattagctagctgatg              5 21  0 47.62 57.003 23.69 23.29  0.00  3.997 | ||||
|  427 tagctgactgatcgatcatca            263 21  0 42.86 57.000 26.49 26.49 39.98  4.000 | ||||
|  428 actagctagctgatcatcatcgat         508 24  0 41.67 59.995 22.43  0.00  0.00  4.005 | ||||
|  429 agtgatgcatgctagtagtgat            28 22  0 40.91 57.984  0.00  0.00  0.00  4.016 | ||||
|  430 ctagctagctgatcatcatcga           509 22  0 45.45 57.958 11.68  0.00  0.00  4.042 | ||||
|  431 gctgatcatcgatgctactagct          195 23  0 47.83 61.046 20.91  5.24 45.92  4.046 | ||||
|  432 agctgatcatcgatgctactagc          194 23  0 47.83 61.046 20.78 20.78 45.61  4.046 | ||||
|  433 gctagctgatcatcgatgctact          191 23  0 47.83 61.046 12.59  8.92  0.00  4.046 | ||||
|  434 agctagctgatcatcgatgctac          190 23  0 47.83 61.046 17.99  7.99  0.00  4.046 | ||||
|  435 tagctagctactatcatctctgcg         350 24  0 45.83 60.058 27.80  0.00  0.00  4.058 | ||||
|  436 ctagctagctactgatcgatgcta         301 24  0 45.83 60.058 14.00 12.23  0.00  4.058 | ||||
|  437 agctactatcatctctgcgcga           355 22  0 50.00 62.058  2.71  2.71  0.00  4.058 | ||||
|  438 gctatttagctagctgactgatcg         253 24  0 45.83 60.060  7.27  0.00 46.11  4.060 | ||||
|  439 tgatcgatcatcatgctagctac          271 23  0 43.48 58.931 27.48  0.00 37.38  4.069 | ||||
|  440 gtgatgcatgctagtagtgatg            29 22  0 45.45 57.921  7.49  7.49  0.00  4.079 | ||||
|  441 ctagctagctgactgatcgatcg          106 23  0 52.17 61.091 16.84 13.89  0.00  4.091 | ||||
|  442 ctagctactgatcgatgctaca           305 22  0 45.45 57.898 13.79  1.61  0.00  4.102 | ||||
|  443 cggcgatctagctagctgacta           582 22  0 54.55 62.109 17.44  5.40 38.70  4.109 | ||||
|  444 atgctagctaggcgatgc               410 18  0 55.56 57.890 10.59  0.00  0.00  4.110 | ||||
|  445 ctgatcgatcatcatgctagctac         270 24  0 45.83 59.882 26.67  0.00 41.77  4.118 | ||||
|  446 gctactagctagctgatcatca           505 22  0 45.45 57.879 14.37  0.00 44.92  4.121 | ||||
|  447 gctactagctagctgatcatca           208 22  0 45.45 57.879 14.37  0.00 44.92  4.121 | ||||
|  448 ctgactgatacgcgatgctagc           473 22  0 54.55 62.128  8.61  8.61  0.00  4.128 | ||||
|  449 gctgactgatacgcgatgctag           472 22  0 54.55 62.128  1.70  0.00  0.00  4.128 | ||||
|  450 ctagctgactgatacgcgatgc           469 22  0 54.55 62.128  3.47  0.00  0.00  4.128 | ||||
|  451 gctagctgactgatacgcgatg           468 22  0 54.55 62.128  8.21  0.00  0.00  4.128 | ||||
|  452 tgactgatcgatcatcatgctag          267 23  0 43.48 58.866 26.79 18.40 41.77  4.134 | ||||
|  453 ctgactgatcgatcatcatgcta          266 23  0 43.48 58.866 20.99  8.89 41.77  4.134 | ||||
|  454 tagctgactgatcgatcatcatg          263 23  0 43.48 58.866 22.70 19.51 41.77  4.134 | ||||
|  455 ctagctagctgatcgatcgtagc          560 23  0 52.17 61.151 26.87 26.87  0.00  4.151 | ||||
|  456 gctagctagctgatcgatcgtag          559 23  0 52.17 61.151 34.38 16.86 46.11  4.151 | ||||
|  457 ctgatcgatcgatgctagctagg          399 23  0 52.17 61.158 22.67  6.29 35.21  4.158 | ||||
|  458 gatcgatcgatgctagctagtag          120 23  0 47.83 58.829 23.89  2.63 35.21  4.171 | ||||
|  459 ttagctagctgactgatcgatcat         258 24  0 41.67 60.177 28.29 18.02 36.62  4.177 | ||||
|  460 ctgactgatcgatcatcatgctag         266 24  0 45.83 59.822 20.99 12.80 41.77  4.178 | ||||
|  461 ctagctgactgatcgatcatcatg         262 24  0 45.83 59.822 22.70 19.51 41.77  4.178 | ||||
|  462 ctagctgatcgatcgatgtgcg            75 22  0 54.55 62.180 31.92 20.85 42.69  4.180 | ||||
|  463 tttagctagctgactgatcgatc          257 23  0 43.48 58.807 19.32 19.32  0.00  4.193 | ||||
|  464 tgactgatcgatcatcatgcta           267 22  0 40.91 57.803 26.79 13.11 41.77  4.197 | ||||
|  465 gctagctactatcatcgatcga           430 22  0 45.45 57.783 22.52 22.52  0.00  4.217 | ||||
|  466 gatcgatcgatgctagctagta           120 22  0 45.45 57.783 23.89 18.77 35.21  4.217 | ||||
|  467 agctagctactatcatcgatcg           429 22  0 45.45 57.777 17.56  9.87  0.00  4.223 | ||||
|  468 atcgatcgatgctagctagtag           121 22  0 45.45 57.777 29.65  2.63 33.56  4.223 | ||||
|  469 tgatcatcatcgatgctagctagt         518 24  0 41.67 60.238 22.18  3.56 40.32  4.238 | ||||
|  470 tgatcgatcatcatgctagctact         271 24  0 41.67 60.238 27.48  0.00 37.38  4.238 | ||||
|  471 actgatcgatcatcatgctagcta         269 24  0 41.67 60.238 26.67  2.76 41.77  4.238 | ||||
|  472 catcgatcgatgctagtatgcta          325 23  0 43.48 58.753 37.80  6.23 44.93  4.247 | ||||
|  473 tttagctagctgactgatcgat           257 22  0 40.91 57.736  0.38  0.00  0.00  4.264 | ||||
|  474 atttagctagctgactgatcga           256 22  0 40.91 57.736  4.16  0.00  0.00  4.264 | ||||
|  475 cgcgatcgatgctagcta               372 18  0 55.56 57.717 22.07  3.08 38.48  4.283 | ||||
|  476 catcgatcgatgctagtatgctag         325 24  0 45.83 59.708 37.80 16.01 44.93  4.292 | ||||
|  477 tagctagctactgatcgatgctac         302 24  0 45.83 60.297 27.80  7.81  0.00  4.297 | ||||
|  478 agcatcggattagctagctgatg            3 23  0 47.83 61.299 27.81 27.81 33.28  4.299 | ||||
|  479 agctagctgactgatacgcgat           467 22  0 50.00 62.317 17.99  0.00  0.00  4.317 | ||||
|  480 tgatcatcatcgatgctagctag          518 23  0 43.48 58.678 17.46 17.46 40.32  4.322 | ||||
|  481 ctgatcatcatcgatgctagcta          517 23  0 43.48 58.678 17.69  2.41 40.32  4.322 | ||||
|  482 tagctgatcatcatcgatgctag          514 23  0 43.48 58.678  9.90  2.76 40.32  4.322 | ||||
|  483 ctagctgatcatcatcgatgcta          513 23  0 43.48 58.678 14.58  9.63 40.32  4.322 | ||||
|  484 tagctagctgatcatcatcgatg          510 23  0 43.48 58.678 20.23 20.23 41.48  4.322 | ||||
|  485 ctgatcgatcatcatgctagcta          270 23  0 43.48 58.678 26.67  2.76 41.77  4.322 | ||||
|  486 gatcatcatcgatgctagctagt          519 23  0 43.48 58.677 22.18  3.56 40.32  4.323 | ||||
|  487 gatcgatcatcatgctagctact          272 23  0 43.48 58.677 21.11  0.00  0.00  4.323 | ||||
|  488 gctagctagctgactgatcgatc          105 23  0 52.17 61.341 34.38 19.32 46.11  4.341 | ||||
|  489 tgatcgatcgatgctagctagtag         119 24  0 45.83 60.356 26.44  2.63 35.21  4.356 | ||||
|  490 ctgatcgatcgatgctagctagta         118 24  0 45.83 60.356 22.18 18.77 35.21  4.356 | ||||
|  491 ctgatcatcatcgatgctagctag         517 24  0 45.83 59.644 17.46 17.46 40.32  4.356 | ||||
|  492 ctagctgatcatcatcgatgctag         513 24  0 45.83 59.644 19.54 18.30 42.07  4.356 | ||||
|  493 ctagctagctgatcatcatcgatg         509 24  0 45.83 59.644 20.23 20.23 41.48  4.356 | ||||
|  494 tttagctagctgactgatcgatca         257 24  0 41.67 60.358 26.99 26.99 35.44  4.358 | ||||
|  495 actatcatctctgcgcgatcga           359 22  0 50.00 62.365 22.07  1.72 38.48  4.365 | ||||
|  496 agctgatcgatcgtagcg               566 18  0 55.56 57.634 25.02 11.96  0.00  4.366 | ||||
|  497 gctactagctagctgactgatac          461 23  0 47.83 58.626 15.96  1.42 44.92  4.374 | ||||
|  498 agctgatcgatcgatgctagct           397 22  0 50.00 62.388 30.32 30.32 38.42  4.388 | ||||
|  499 agctagctgatcgatcgatgct           393 22  0 50.00 62.388 33.87 33.38 38.16  4.388 | ||||
|  500 ctagctgactgatcgatcatcat          262 23  0 43.48 58.612 26.31 20.43 41.77  4.388 | ||||
|  501 agctagctactatcatctctgc           351 22  0 45.45 57.608 17.56  0.00  0.00  4.392 | ||||
|  502 ctagctactatcatctctgcgcg          353 23  0 52.17 61.393  0.00  0.00  0.00  4.393 | ||||
|  503 tgatcatcatcgatgctagcta           518 22  0 40.91 57.602 17.69  3.08 40.32  4.398 | ||||
|  504 tagctgatcatcatcgatgcta           514 22  0 40.91 57.602 15.95  9.16 40.32  4.398 | ||||
|  505 tgatcgatcatcatgctagcta           271 22  0 40.91 57.602 27.48  3.08 37.38  4.398 | ||||
|  506 atcatcatcgatgctagctagt           520 22  0 40.91 57.595 22.18  3.56 40.32  4.405 | ||||
|  507 atcgatcatcatgctagctact           273 22  0 40.91 57.595  0.00  0.00  0.00  4.405 | ||||
|  508 agctagctactatcatcgatcgat         429 24  0 41.67 59.573 25.37 25.37 35.13  4.427 | ||||
|  509 gctagctgatcgatcgatgtgc            74 22  0 54.55 62.443 31.83 30.04 35.21  4.443 | ||||
|  510 tagctgactgatcgatcatcat           263 22  0 40.91 57.531 26.31 20.43 41.77  4.469 | ||||
|  511 tagctagctgactgatcgatcga          107 23  0 47.83 61.487 28.29 22.52  0.00  4.487 | ||||
|  512 atcgatcgatgctagtatgctag          326 23  0 43.48 58.501 29.65 13.77 46.09  4.499 | ||||
|  513 ctagtgatgcatgctagtagtga           26 23  0 43.48 58.483 20.00  1.46  0.00  4.517 | ||||
|  514 tagctagctgactgatcgatcatc         259 24  0 45.83 60.536 28.29 21.92 36.62  4.536 | ||||
|  515 tactagctagctgatcatcatcga         507 24  0 41.67 59.449  0.00  0.00  0.00  4.551 | ||||
|  516 gctagctagctactatcatcga           426 22  0 45.45 57.437 34.38  0.00 46.11  4.563 | ||||
|  517 tgactgatacgcgatgctagct           474 22  0 50.00 62.569 17.69  1.35  0.00  4.569 | ||||
|  518 agctgactgatacgcgatgcta           471 22  0 50.00 62.569  7.57  0.00  0.00  4.569 | ||||
|  519 tagctgactgatacgcgatgct           470 22  0 50.00 62.569 10.87  8.44  0.00  4.569 | ||||
|  520 atcgatcgatgctagtatgcta           326 22  0 40.91 57.423 29.65  0.00 33.56  4.577 | ||||
|  521 ctagctagctgatcatcatcgat          509 23  0 43.48 58.422 11.68  0.00  0.00  4.578 | ||||
|  522 agctgactgatcgatcgatgct           112 22  0 50.00 62.580 26.44 23.13 35.21  4.580 | ||||
|  523 ctagctagctgatcatcgatgcta         188 24  0 45.83 60.596 16.78 15.81  0.00  4.596 | ||||
|  524 gtgatgcatgctagtagtgatgta          29 24  0 41.67 59.398 11.60  8.84  0.00  4.602 | ||||
|  525 gctgatcatcatcgatgctagct          516 23  0 47.83 61.603 20.15  8.14 40.32  4.603 | ||||
|  526 agctgatcatcatcgatgctagc          515 23  0 47.83 61.603 20.04 19.26 40.32  4.603 | ||||
|  527 gctagctgatcatcatcgatgct          512 23  0 47.83 61.603 14.14  8.34 40.32  4.603 | ||||
|  528 agctagctgatcatcatcgatgc          511 23  0 47.83 61.603 21.42  7.40 40.32  4.603 | ||||
|  529 tagtgatgcatgctagtagtga            27 22  0 40.91 57.391  0.01  0.00  0.00  4.609 | ||||
|  530 ctactagctagctgactgatacg          462 23  0 47.83 58.387  3.12  0.00  0.00  4.613 | ||||
|  531 tagctactgatcgatgctacatc          306 23  0 43.48 58.368 13.79  0.00 37.97  4.632 | ||||
|  532 gactgatacgcgatgctagctag          475 23  0 52.17 61.633 17.46 17.46  0.00  4.633 | ||||
|  533 ctagctactgatcgatgctacat          305 23  0 43.48 58.364 13.79  0.09  0.00  4.636 | ||||
|  534 gctagctactatcatctctgcgc          352 23  0 52.17 61.644  8.21  0.00  0.00  4.644 | ||||
|  535 gctagctagctactgatcgatgc          300 23  0 52.17 61.644 34.38 12.71 46.11  4.644 | ||||
|  536 gctactagctagctgatcatcat          505 23  0 43.48 58.350 14.37  0.00 44.92  4.650 | ||||
|  537 gctactagctagctgatcatcat          208 23  0 43.48 58.350 14.37  0.00 44.92  4.650 | ||||
|  538 ctagctactgatcgatgctacatc         305 24  0 45.83 59.349 13.79  0.00 37.97  4.651 | ||||
|  539 gctactagctagctgatcatcatc         505 24  0 45.83 59.343 14.37  0.00 44.92  4.657 | ||||
|  540 gctactagctagctgatcatcatc         208 24  0 45.83 59.343 14.37  0.00 44.92  4.657 | ||||
|  541 gctgatcatcatctagctagtagc         154 24  0 45.83 59.343 15.25 15.25 45.79  4.657 | ||||
|  542 tagctagctgatcatcatcgat           510 22  0 40.91 57.329 10.14  0.00  0.00  4.671 | ||||
|  543 ctactatcatctctgcgcgatcg          357 23  0 52.17 61.686 12.19 12.19 39.07  4.686 | ||||
|  544 tactagctagctgactgatacg           463 22  0 45.45 57.310 13.17  0.00  0.00  4.690 | ||||
|  545 gctgatcgatcgatgctagctag          398 23  0 52.17 61.697 27.88 18.22 35.21  4.697 | ||||
|  546 ctagctgatcgatcgatgctagc          395 23  0 52.17 61.697 38.64 35.38 43.05  4.697 | ||||
|  547 gctagctgatcgatcgatgctag          394 23  0 52.17 61.697 41.07 41.07 46.89  4.697 | ||||
|  548 ctagctagctgatcgatcgatgc          391 23  0 52.17 61.697 24.08 21.09 35.21  4.697 | ||||
|  549 gctagctagctgatcgatcgatg          390 23  0 52.17 61.697 34.38 11.03 46.11  4.697 | ||||
|  550 gctagctagctgatcgatcgatg           70 23  0 52.17 61.697 34.38 11.03 46.11  4.697 | ||||
|  551 gctactagctagctgactgata           461 22  0 45.45 57.286 15.96  3.69 44.92  4.714 | ||||
|  552 gatcgatcatcatgctagctac           272 22  0 45.45 57.284 21.11  0.00  0.00  4.716 | ||||
|  553 cgatgctagctaggcgat               408 18  0 55.56 57.277 10.81  3.01  0.00  4.723 | ||||
|  554 atcgatgctagctaggcg               406 18  0 55.56 57.277 15.59  9.02  0.00  4.723 | ||||
|  555 tagctactgatcgatgctacat           306 22  0 40.91 57.270 13.79  0.09  0.00  4.730 | ||||
|  556 gctagctactatcatcgatcgat          430 23  0 43.48 58.251 25.37 25.37 35.13  4.749 | ||||
|  557 tgcatgctagtagtgatgtatacg          33 24  0 41.67 59.224 20.79  0.00  0.00  4.776 | ||||
|  558 gcatgctagtagtgatgtatacgt          34 24  0 41.67 59.223 11.60  0.00  0.00  4.777 | ||||
|  559 atttagctagctgactgatcgatc         256 24  0 41.67 59.219 19.32 19.32  0.00  4.781 | ||||
|  560 gactgatcgatcatcatgctag           268 22  0 45.45 57.215 24.51 15.87 41.77  4.785 | ||||
|  561 atttagctagctgactgatcgat          256 23  0 39.13 58.215  4.16  0.00  0.00  4.785 | ||||
|  562 gctgactgatcgatcatcatgct          265 23  0 47.83 61.788 27.72 15.10 41.77  4.788 | ||||
|  563 agctgactgatcgatcatcatgc          264 23  0 47.83 61.788 27.74 27.74 41.77  4.788 | ||||
|  564 tagctactatcatctctgcgcga          354 23  0 47.83 61.796  2.71  2.71  0.00  4.796 | ||||
|  565 gctgatcatcgatgctactagcta         195 24  0 45.83 60.834 20.91  7.37 45.92  4.834 | ||||
|  566 tagctgatcatcgatgctactagc         193 24  0 45.83 60.834 20.78 20.78 45.61  4.834 | ||||
|  567 gctagctgatcatcgatgctacta         191 24  0 45.83 60.834 11.65  8.83  0.00  4.834 | ||||
|  568 tagctagctgatcatcgatgctac         189 24  0 45.83 60.834 17.82 12.06  0.00  4.834 | ||||
|  569 tagtgatgcatgctagtagtgatg          27 24  0 41.67 59.155 11.56  7.49  0.00  4.845 | ||||
|  570 agtgatgcatgctagtagtgatgt          28 24  0 41.67 60.846 11.60  0.00  0.00  4.846 | ||||
|  571 tgatgcatgctagtagtgatgta           30 23  0 39.13 58.147 11.60  8.84  0.00  4.853 | ||||
|  572 ctgactgatcgatcgatgctagc          114 23  0 52.17 61.878 18.17 12.52 35.21  4.878 | ||||
|  573 gctgactgatcgatcgatgctag          113 23  0 52.17 61.878 22.81 19.44 35.21  4.878 | ||||
|  574 ctagctgactgatcgatcgatgc          110 23  0 52.17 61.878 24.08 19.43 35.21  4.878 | ||||
|  575 gctagctgactgatcgatcgatg          109 23  0 52.17 61.878 23.05 13.21 35.21  4.878 | ||||
|  576 tcatcatcgatgctagctagtag          521 23  0 43.48 58.114  2.81  0.00 40.32  4.886 | ||||
|  577 tactagctagctgatcatcatcg          507 23  0 43.48 58.114  0.00  0.00  0.00  4.886 | ||||
|  578 tcgatcatcatgctagctactag          274 23  0 43.48 58.114  0.00  0.00 37.62  4.886 | ||||
|  579 tgatcatcgatgctactagctag          197 23  0 43.48 58.114 20.04 20.04 45.92  4.886 | ||||
|  580 ctgatcatcgatgctactagcta          196 23  0 43.48 58.114 10.86  0.00 45.92  4.886 | ||||
|  581 tagctgatcatcgatgctactag          193 23  0 43.48 58.114 13.67  9.68  0.00  4.886 | ||||
|  582 ctagctgatcatcgatgctacta          192 23  0 43.48 58.114 11.65  8.83  0.00  4.886 | ||||
|  583 ctactagctagctgatcatcatcg         506 24  0 45.83 59.110  1.08  0.00  0.00  4.890 | ||||
|  584 ctgatcatcgatgctactagctag         196 24  0 45.83 59.110 20.04 20.04 45.92  4.890 | ||||
|  585 ctagctgatcatcgatgctactag         192 24  0 45.83 59.110 15.68 15.68  0.00  4.890 | ||||
|  586 gctagctagctgatcatcatctag         146 24  0 45.83 59.102 34.38 13.13 44.71  4.898 | ||||
|  587 gctagctagctgatcatcatcta          146 23  0 43.48 58.097 34.38  0.00 46.11  4.903 | ||||
|  588 ctagtgatgcatgctagtagtg            26 22  0 45.45 57.072 20.00  3.96  0.00  4.928 | ||||
|  589 gctactatcatctctgcgcgatc          356 23  0 52.17 61.936  4.99  0.00  0.00  4.936 | ||||
|  590 gctgatcgatcgatgtgc                78 18  0 55.56 57.052 29.71 26.38 35.21  4.948 | ||||
|  591 tagctagctactatcatcgatcga         428 24  0 41.67 59.031 27.80 22.52  0.00  4.969 | ||||
|  592 agctagctgatcgatcgtagcg           562 22  0 54.55 62.971 27.20 18.31  0.00  4.971 | ||||
|  593 tgactgatacgcgatgct               474 18  0 50.00 57.028  2.33  0.00  0.00  4.972 | ||||
|  594 gatcatcatcgatgctagctag           519 22  0 45.45 57.019 17.46 17.46 40.32  4.981 | ||||
|  595 tcatcatcgatgctagctagta           521 22  0 40.91 57.005 22.18 18.77 40.32  4.995 | ||||
|  596 tcgatcatcatgctagctacta           274 22  0 40.91 57.005  0.00  0.00  0.00  4.995 | ||||
|  597 tgatcatcgatgctactagcta           197 22  0 40.91 57.005 17.14  1.01 45.92  4.995 | ||||
|  598 tagctgatcatcgatgctacta           193 22  0 40.91 57.005 12.62  8.42  0.00  4.995 | ||||
|  599 tagctagctgactgatacgcgat          466 23  0 47.83 62.044 28.29  0.00  0.00  5.044 | ||||
|  600 ctagctagctactatcatcgatcga        427 25  0 44.00 59.949 27.80 22.52  0.00  5.051 | ||||
|  601 agctagctgactgatcgatcgat          108 23  0 47.83 62.053 30.53 30.53 37.90  5.053 | ||||
|  602 ctactagctagctgactgatacgc         462 24  0 50.00 61.062  3.61  0.00  0.00  5.062 | ||||
|  603 gctactagctagctgactgatacg         461 24  0 50.00 61.062 14.37  0.00 44.92  5.062 | ||||
|  604 tgatcatcatcgatgctagctagta        518 25  0 40.00 60.062 22.18 18.77 40.32  5.062 | ||||
|  605 tgatcgatcatcatgctagctacta        271 25  0 40.00 60.062 27.48  0.00 37.38  5.062 | ||||
|  606 ctagtgatgcatgctagtagtgatg         26 25  0 44.00 60.064 20.00  7.49  0.00  5.064 | ||||
|  607 gctagctagctactatcatcgatc         426 24  0 45.83 58.932 34.38  4.20 46.11  5.068 | ||||
|  608 gctagctactgatcgatgctacat         304 24  0 45.83 61.072 11.21  0.00  0.00  5.072 | ||||
|  609 gctagctagctactatcatcgat          426 23  0 43.48 57.922 34.38  0.00 46.11  5.078 | ||||
|  610 ctagtgatgcatgctagtagtgat          26 24  0 41.67 58.911 20.00  4.64  0.00  5.089 | ||||
|  611 tactatcatctctgcgcgatcga          358 23  0 47.83 62.092 22.07  1.72 38.48  5.092 | ||||
|  612 agctgatcgatcgatgctagcta          397 23  0 47.83 62.111 31.26 14.51 40.03  5.111 | ||||
|  613 tagctgatcgatcgatgctagct          396 23  0 47.83 62.111 33.22 33.22 42.08  5.111 | ||||
|  614 agctagctgatcgatcgatgcta          393 23  0 47.83 62.111 34.11 32.56 36.80  5.111 | ||||
|  615 tagctagctgatcgatcgatgct          392 23  0 47.83 62.111 33.87 33.38 38.16  5.111 | ||||
|  616 tagtgatgcatgctagtagtgat           27 23  0 39.13 57.886 11.56  0.00  0.00  5.114 | ||||
|  617 tactagctagctgatcatcatcgat        507 25  0 40.00 59.828  0.00  0.00  0.00  5.172 | ||||
|  618 gctagctagctgatcatcgatgc          187 23  0 52.17 62.193 34.38  9.22 46.11  5.193 | ||||
|  619 gctagtgatgcatgctagtagtga          25 24  0 45.83 61.195 24.96  4.57  0.00  5.195 | ||||
|  620 aaagcatcggattagctagctgat           1 24  0 41.67 61.209 17.84 15.13  0.00  5.209 | ||||
|  621 gtgatgcatgctagtagtgatgtat         29 25  0 40.00 59.774  1.07  1.07  0.00  5.226 | ||||
|  622 ctatcatctctgcgcgatcgatg          360 23  0 52.17 62.227 18.01 18.01 38.48  5.227 | ||||
|  623 tgactgatacgcgatgctagcta          474 23  0 47.83 62.287 17.69  3.08  0.00  5.287 | ||||
|  624 tagctgactgatacgcgatgcta          470 23  0 47.83 62.287 12.64  9.09  0.00  5.287 | ||||
|  625 tgctagtagtgatgtatacgtagct         37 25  0 40.00 59.713  9.37  8.73  0.00  5.287 | ||||
|  626 tgactgatcgatcgatgctagct          115 23  0 47.83 62.296 20.19 11.59 35.21  5.296 | ||||
|  627 agctgactgatcgatcgatgcta          112 23  0 47.83 62.296 26.44 14.64 35.21  5.296 | ||||
|  628 tagctgactgatcgatcgatgct          111 23  0 47.83 62.296 31.98 30.27 35.21  5.296 | ||||
|  629 ctagctagctactatcatcgatcg         427 24  0 45.83 58.703 12.49  9.87  0.00  5.297 | ||||
|  630 tagctagctactatcatcgatcg          428 23  0 43.48 57.691 27.80  9.87  0.00  5.309 | ||||
|  631 gactgatcgatcatcatgctagct         268 24  0 45.83 61.313 24.51  7.81 41.77  5.313 | ||||
|  632 gctagctgactgatcgatcatcat         261 24  0 45.83 61.313 26.31 20.43 41.77  5.313 | ||||
|  633 ctatttagctagctgactgatcga         254 24  0 41.67 58.679  0.00  0.00  0.00  5.321 | ||||
|  634 gcatgctagtagtgatgtatacg           34 23  0 43.48 57.659 11.60  0.00  0.00  5.341 | ||||
|  635 tatttagctagctgactgatcga          255 23  0 39.13 57.650  0.00  0.00  0.00  5.350 | ||||
|  636 ctactagctagctgatcatcatcga        506 25  0 44.00 60.352  1.08  0.00  0.00  5.352 | ||||
|  637 agctactatcatctctgcgcgat          355 23  0 47.83 62.360  4.99  2.52  0.00  5.360 | ||||
|  638 gctgatcatcatcgatgctagcta         516 24  0 45.83 61.370 20.15  8.49 40.32  5.370 | ||||
|  639 tagctgatcatcatcgatgctagc         514 24  0 45.83 61.370 20.04 19.26 40.32  5.370 | ||||
|  640 gctagctgatcatcatcgatgcta         512 24  0 45.83 61.370 14.58  9.63 40.32  5.370 | ||||
|  641 tagctagctgatcatcatcgatgc         510 24  0 45.83 61.370 21.42  7.40 40.32  5.370 | ||||
|  642 atgcatgctagtagtgatgtatacg         32 25  0 40.00 59.604 11.70  0.00  0.00  5.396 | ||||
|  643 tgatgcatgctagtagtgatgtat          30 24  0 37.50 58.592 12.66 12.66  0.00  5.408 | ||||
|  644 gactgatcgatcgatgctagctag         116 24  0 50.00 61.409 18.04 17.46 35.21  5.409 | ||||
|  645 gctatttagctagctgactgatc          253 23  0 43.48 57.572  7.27  0.00 46.11  5.428 | ||||
|  646 tgctagtgatgcatgctagtagtg          24 24  0 45.83 61.434 24.96 10.54 35.89  5.434 | ||||
|  647 ctagctagctactatcatctctgc         349 24  0 45.83 58.562 27.80  0.00  0.00  5.438 | ||||
|  648 gctagctagctactatcatctctg         348 24  0 45.83 58.562 34.38  6.79 46.11  5.438 | ||||
|  649 gatcatcatcgatgctagctagta         519 24  0 41.67 58.557 22.18 18.77 40.32  5.443 | ||||
|  650 gatcgatcatcatgctagctacta         272 24  0 41.67 58.557 21.11  0.00  0.00  5.443 | ||||
|  651 atcatcatcgatgctagctagtag         520 24  0 41.67 58.554  2.13  0.00 40.32  5.446 | ||||
|  652 atcgatcatcatgctagctactag         273 24  0 41.67 58.554  0.00  0.00 37.62  5.446 | ||||
|  653 tagctagctactatcatctctgc          350 23  0 43.48 57.527 27.80  0.00  0.00  5.473 | ||||
|  654 atcatcatcgatgctagctagta          520 23  0 39.13 57.514 22.18 18.77 40.32  5.486 | ||||
|  655 atcgatcatcatgctagctacta          273 23  0 39.13 57.514  0.00  0.00  0.00  5.486 | ||||
|  656 gatcatcatcgatgctagctagtag        519 25  0 44.00 59.494  0.21  0.00 40.32  5.506 | ||||
|  657 gatcgatcatcatgctagctactag        272 25  0 44.00 59.494 21.11  0.00 37.62  5.506 | ||||
|  658 actagctagctgatcatcatctact        211 25  0 40.00 59.471 22.43  6.99  0.00  5.529 | ||||
|  659 tgactgatcgatcatcatgctagc         267 24  0 45.83 61.547 26.79 14.13 41.77  5.547 | ||||
|  660 gctgactgatcgatcatcatgcta         265 24  0 45.83 61.547 27.72 16.42 41.77  5.547 | ||||
|  661 tagctgactgatcgatcatcatgc         263 24  0 45.83 61.547 27.74 27.74 41.77  5.547 | ||||
|  662 tgctagtagtgatgtatacgtagc          37 24  0 41.67 58.446  4.93  4.93  0.00  5.554 | ||||
|  663 ctagctagctgactgatacgcga          465 23  0 52.17 62.571 14.90  0.00  0.00  5.571 | ||||
|  664 tagctagctactatcatcgatcgat        428 25  0 40.00 59.423 27.80 25.37 35.13  5.577 | ||||
|  665 gctactagctagctgatcatcatct        208 25  0 44.00 60.585 14.37  0.00 44.92  5.585 | ||||
|  666 agctgatcatcatctagctagtagc        153 25  0 44.00 60.585 15.25 15.25 40.45  5.585 | ||||
|  667 ctagctagctgatcgatcgatgtg          71 24  0 50.00 61.642 11.68  4.94 35.21  5.642 | ||||
|  668 agtgatgcatgctagtagtgatgta         28 25  0 40.00 60.646 11.60  8.84  0.00  5.646 | ||||
|  669 tagtgatgcatgctagtagtgatgt         27 25  0 40.00 60.646 11.60  0.00  0.00  5.646 | ||||
|  670 actatcatctctgcgcgatcgat          359 23  0 47.83 62.652 22.07 11.47 38.48  5.652 | ||||
|  671 ctatttagctagctgactgatcg          254 23  0 43.48 57.339  0.00  0.00  0.00  5.661 | ||||
|  672 tagctagctgatcgatcgtagcg          561 23  0 52.17 62.677 27.20 18.31  0.00  5.677 | ||||
|  673 gcatcggattagctagctgatgc            4 23  0 52.17 62.687 34.10 34.10 41.15  5.687 | ||||
|  674 tgcatgctagtagtgatgtatacgt         33 25  0 40.00 60.700 20.79  0.00  0.00  5.700 | ||||
|  675 tttagctagctgactgatcgatcat        257 25  0 40.00 60.702 26.67 18.02 36.62  5.702 | ||||
|  676 atttagctagctgactgatcgatca        256 25  0 40.00 60.702 26.99 26.99 35.44  5.702 | ||||
|  677 gctagctagctactatcatctct          348 23  0 43.48 57.266 34.38  0.00 46.11  5.734 | ||||
|  678 aagcatcggattagctagctgatg           2 24  0 45.83 61.794 27.81 27.81 33.28  5.794 | ||||
|  679 agtgatgtatacgtagctagtagc          44 24  0 41.67 58.201 15.25 15.25 45.79  5.799 | ||||
|  680 gctagtagtgatgtatacgtagct          38 24  0 41.67 58.201  5.92  5.92  0.00  5.799 | ||||
|  681 tagctagctgactgatcgatcgat         107 24  0 45.83 61.800 30.53 30.53 37.90  5.800 | ||||
|  682 actagctagctgactgatacgcg          464 23  0 52.17 62.816 21.52  3.89  0.00  5.816 | ||||
|  683 actagctagctgatcatcatctac         211 24  0 41.67 58.178 22.43  0.00  0.00  5.822 | ||||
|  684 tagctgatcgatcgatgctagcta         396 24  0 45.83 61.857 34.98 33.55 41.05  5.857 | ||||
|  685 tagctagctgatcgatcgatgcta         392 24  0 45.83 61.857 34.11 32.56 36.80  5.857 | ||||
|  686 tatttagctagctgactgatcgat         255 24  0 37.50 58.112  1.68  0.00  0.00  5.888 | ||||
|  687 gcatgctagtagtgatgtatacgta         34 25  0 40.00 59.089 11.60  0.00  0.00  5.911 | ||||
|  688 tatttagctagctgactgatcgatc        255 25  0 40.00 59.084 19.32 19.32  0.00  5.916 | ||||
|  689 ctatttagctagctgactgatcgat        254 25  0 40.00 59.082  0.00  0.00  0.00  5.918 | ||||
|  690 ctagctagctactatcatctctgcg        349 25  0 48.00 60.920 27.80  5.75  0.00  5.920 | ||||
|  691 tgatcgatcgatgctagctaggc          400 23  0 52.17 62.955 26.44 12.49 35.21  5.955 | ||||
|  692 agctagctactgatcgatgctaca         303 24  0 45.83 61.988 17.56  3.03  0.00  5.988 | ||||
|  693 tgactgatcgatcgatgctagcta         115 24  0 45.83 62.034 20.19 11.16 35.21  6.034 | ||||
|  694 tagctgactgatcgatcgatgcta         111 24  0 45.83 62.034 33.43 30.74 35.21  6.034 | ||||
|  695 catgctagtagtgatgtatacgtagc        35 26  0 42.31 59.961  4.93  4.93  0.00  6.039 | ||||
|  696 gcatgctagtagtgatgtatacgtag        34 26  0 42.31 59.961 11.60  0.00  0.00  6.039 | ||||
|  697 actgatcgatcgatgctagctagt         117 24  0 45.83 62.039 23.29 15.07 35.21  6.039 | ||||
|  698 ctatttagctagctgactgatcgatc       254 26  0 42.31 59.960 19.32 19.32  0.00  6.040 | ||||
|  699 ttagctagctgactgatcgatcatc        258 25  0 44.00 61.041 28.29 21.92 36.62  6.041 | ||||
|  700 atgctagtagtgatgtatacgtagct        36 26  0 38.46 60.068  9.37  8.73  0.00  6.068 | ||||
|  701 ctagctagctgatcatcatctact         212 24  0 41.67 57.930 11.68  6.99  0.00  6.070 | ||||
|  702 ctactagctagctgatcatcatct         209 24  0 41.67 57.930  1.08  0.00  0.00  6.070 | ||||
|  703 agctgatcatcatctagctagtag         153 24  0 41.67 57.930  7.49  3.73 40.45  6.070 | ||||
|  704 ctagctgatcatcatctagctagt         151 24  0 41.67 57.930 21.70  5.56 46.15  6.070 | ||||
|  705 tagctactatcatctctgcgcgat         354 24  0 45.83 62.096  4.99  2.52  0.00  6.096 | ||||
|  706 gactgatcgatcatcatgctagcta        268 25  0 44.00 61.099 24.51  4.57 41.77  6.099 | ||||
|  707 ctgatcatcatcgatgctagctagt        517 25  0 44.00 61.101 22.18  3.56 40.32  6.101 | ||||
|  708 actagctagctgatcatcatcgatg        508 25  0 44.00 61.101 22.43 20.23 41.48  6.101 | ||||
|  709 ctgatcgatcatcatgctagctact        270 25  0 44.00 61.101 26.67  0.00 41.77  6.101 | ||||
|  710 atgctagtagtgatgtatacgtagc         36 25  0 40.00 58.855  4.93  4.93  0.00  6.145 | ||||
|  711 ctagctagctactgatcgatgctac        301 25  0 48.00 61.145 14.00  7.81  0.00  6.145 | ||||
|  712 gctagctagctactatcatctctgc        348 25  0 48.00 61.152 34.38 11.74 46.11  6.152 | ||||
|  713 agctagctgatcatcatctactatca       214 26  0 38.46 59.840 17.99  0.00  0.00  6.160 | ||||
|  714 ctgatcgatcgatgctagctagtag        118 25  0 48.00 61.197 19.70  5.49 35.21  6.197 | ||||
|  715 agctagctgactgatcgatcatca         260 24  0 45.83 62.232 26.49 26.49 39.98  6.232 | ||||
|  716 gctagctagctactatcatcgatcg        426 25  0 48.00 61.252 34.38  9.87 46.11  6.252 | ||||
|  717 gctatttagctagctgactgatcga        253 25  0 44.00 61.268  7.27  0.00 46.11  6.268 | ||||
|  718 ctagctagctactatcatcgatcgat       427 26  0 42.31 60.291 27.80 25.37 35.13  6.291 | ||||
|  719 agctgatcatcgatgctactagct         194 24  0 45.83 62.294 24.11 23.60 45.92  6.294 | ||||
|  720 agctagctgatcatcgatgctact         190 24  0 45.83 62.294 17.99 10.88  0.00  6.294 | ||||
|  721 ctagctagctgactgatcgatcga         106 24  0 50.00 62.312 22.52 22.52  0.00  6.312 | ||||
|  722 actgatcgatcatcatgctagctac        269 25  0 44.00 61.328 26.67  0.00 41.77  6.328 | ||||
|  723 tgatgcatgctagtagtgatgtatac        30 26  0 38.46 59.623  9.19  6.43  0.00  6.377 | ||||
|  724 gtgatgcatgctagtagtgatgtata        29 26  0 38.46 59.623  4.23  0.00  0.00  6.377 | ||||
|  725 tactatcatctctgcgcgatcgat         358 24  0 45.83 62.379 22.07 11.47 38.48  6.379 | ||||
|  726 gctagctgatcatcatctactatca        215 25  0 40.00 58.607  8.21  0.00  0.00  6.393 | ||||
|  727 gctactagctagctgatcatcatcta       208 26  0 42.31 60.404 14.37  0.00 44.92  6.404 | ||||
|  728 tagctgatcatcatctagctagtagc       152 26  0 42.31 60.404 15.25 15.25 41.48  6.404 | ||||
|  729 tgctagtagtgatgtatacgtagcta        37 26  0 38.46 59.564 10.00  8.05  0.00  6.436 | ||||
|  730 gatgcatgctagtagtgatgtatacg        31 26  0 42.31 60.453  7.40  0.00  0.00  6.453 | ||||
|  731 tagtgatgcatgctagtagtgatgta        27 26  0 38.46 60.461 11.60  8.84  0.00  6.461 | ||||
|  732 gctagtgatgcatgctagtagtgat         25 25  0 44.00 61.506 24.96  8.51  0.00  6.506 | ||||
|  733 tgcatgctagtagtgatgtatacgta        33 26  0 38.46 60.515 20.79  0.00  0.00  6.515 | ||||
|  734 tatttagctagctgactgatcgatca       255 26  0 38.46 60.516 26.99 26.99 35.44  6.516 | ||||
|  735 tgatgcatgctagtagtgatgtata         30 25  0 36.00 58.479  4.13  0.00  0.00  6.521 | ||||
|  736 tactagctagctgactgatacgcg         463 24  0 50.00 62.538 13.17  3.89  0.00  6.538 | ||||
|  737 ctagctactatcatctctgcgcga         353 24  0 50.00 62.603  2.71  2.71  0.00  6.603 | ||||
|  738 agctagctgatcatcatctactatc        214 25  0 40.00 58.369 17.99  0.00  0.00  6.631 | ||||
|  739 agctagctgatcatcatctactat         214 24  0 37.50 57.345 17.99  0.00  0.00  6.655 | ||||
|  740 gctactagctagctgatcatcatcg        505 25  0 48.00 61.656 14.37  0.00 44.92  6.656 | ||||
|  741 gctgatcatcgatgctactagctag        195 25  0 48.00 61.656 20.91 20.04 45.92  6.656 | ||||
|  742 ctagctgatcatcgatgctactagc        192 25  0 48.00 61.656 20.78 20.78 45.61  6.656 | ||||
|  743 gctagctgatcatcgatgctactag        191 25  0 48.00 61.656 20.13 20.13  0.00  6.656 | ||||
|  744 ctagctagctgatcatcgatgctac        188 25  0 48.00 61.656 17.82 12.06  0.00  6.656 | ||||
|  745 actagctagctgatcatcatctacta       211 26  0 38.46 59.328 22.43  8.11  0.00  6.672 | ||||
|  746 tactagctagctgatcatcatctact       210 26  0 38.46 59.328  6.99  6.99  0.00  6.672 | ||||
|  747 ctactagctagctgatcatcatcgat       506 26  0 42.31 60.681  1.08  0.00  0.00  6.681 | ||||
|  748 tagctagctactgatcgatgctaca        302 25  0 44.00 61.746 27.80  5.02  0.00  6.746 | ||||
|  749 gtagtgatgtatacgtagctagtagc        42 26  0 42.31 59.249 15.25 15.25 45.79  6.751 | ||||
|  750 actgatcgatcgatgctagctagta        117 25  0 44.00 61.797 23.29 18.77 35.21  6.797 | ||||
|  751 gatgcatgctagtagtgatgtatac         31 25  0 40.00 58.175 20.79  1.70  0.00  6.825 | ||||
|  752 agctgatcatcatcgatgctagct         515 24  0 45.83 62.835 23.00 22.41 41.74  6.835 | ||||
|  753 agctagctgatcatcatcgatgct         511 24  0 45.83 62.835 17.99  8.34 40.32  6.835 | ||||
|  754 ctagctagctgactgatacgcgat         465 24  0 50.00 62.838 14.90  0.00  0.00  6.838 | ||||
|  755 atgcatgctagtagtgatgtatac          32 24  0 37.50 57.161 11.70  0.53  0.00  6.839 | ||||
|  756 agctagctactatcatctctgcgc         351 24  0 50.00 62.858 17.56  0.00  0.00  6.858 | ||||
|  757 gctagctagctactgatcgatgct         300 24  0 50.00 62.858 34.38 11.51 46.11  6.858 | ||||
|  758 ctactatcatctctgcgcgatcga         357 24  0 50.00 62.878 22.07  1.72 38.48  6.878 | ||||
|  759 gctagctactgatcgatgctacatc        304 25  0 48.00 61.879 11.21  4.40 37.97  6.879 | ||||
|  760 tagtgatgtatacgtagctagtagc         43 25  0 40.00 58.104 15.25 15.25 45.79  6.896 | ||||
|  761 gctagtagtgatgtatacgtagcta         38 25  0 40.00 58.104  7.24  5.34  0.00  6.896 | ||||
|  762 tgatcatcatcgatgctagctagtag       518 26  0 42.31 60.902 14.93  0.00 40.32  6.902 | ||||
|  763 ctgatcatcatcgatgctagctagta       517 26  0 42.31 60.902 22.18 18.77 40.32  6.902 | ||||
|  764 tactagctagctgatcatcatcgatg       507 26  0 42.31 60.902 20.23 20.23 41.48  6.902 | ||||
|  765 tgatcgatcatcatgctagctactag       271 26  0 42.31 60.902 27.48  0.00 37.38  6.902 | ||||
|  766 ctgatcgatcatcatgctagctacta       270 26  0 42.31 60.902 26.67  1.37 41.77  6.902 | ||||
|  767 agctgatcgatcgatgctagctag         397 24  0 50.00 62.904 31.26 19.90 40.03  6.904 | ||||
|  768 ctagctgatcgatcgatgctagct         395 24  0 50.00 62.904 35.51 33.22 43.05  6.904 | ||||
|  769 agctagctgatcgatcgatgctag         393 24  0 50.00 62.904 41.07 41.07 46.89  6.904 | ||||
|  770 ctagctagctgatcgatcgatgct         391 24  0 50.00 62.904 33.87 33.38 38.16  6.904 | ||||
|  771 tactagctagctgatcatcatctac        210 25  0 40.00 58.081  0.00  0.00  0.00  6.919 | ||||
|  772 gctagctgatcatcatctactatc         215 24  0 41.67 57.062  8.21  0.00  0.00  6.938 | ||||
|  773 agtgatgcatgctagtagtgatgtat        28 26  0 38.46 60.969  1.07  1.07  0.00  6.969 | ||||
|  774 gctagtagtgatgtatacgtagctag        38 26  0 42.31 59.027  8.99  8.99  0.00  6.973 | ||||
|  775 tagctagctgactgatcgatcatca        259 25  0 44.00 61.981 28.29 26.49 39.98  6.981 | ||||
|  776 ctactagctagctgatcatcatctac       209 26  0 42.31 59.015  1.08  0.00  0.00  6.985 | ||||
|  777 agtagtgatgtatacgtagctagt          41 24  0 37.50 57.012  8.68  8.68  0.00  6.988 | ||||
|  778 gctagctgatcatcatctactatcat       215 26  0 38.46 59.001  8.21  0.00  0.00  6.999 | ||||
|  779 agctgatcatcatctactatcatca        218 25  0 36.00 57.993  0.00  0.00  0.00  7.007 | ||||
|  780 atgcatgctagtagtgatgtatacgt        32 26  0 38.46 61.018 11.70  0.00  0.00  7.018 | ||||
|  781 atttagctagctgactgatcgatcat       256 26  0 38.46 61.022 26.67 18.02 36.62  7.022 | ||||
|  782 agctgatcatcgatgctactagcta        194 25  0 44.00 62.040 24.59  9.79 45.92  7.040 | ||||
|  783 tagctgatcatcgatgctactagct        193 25  0 44.00 62.040 27.00 27.00 45.92  7.040 | ||||
|  784 agctagctgatcatcgatgctacta        190 25  0 44.00 62.040 17.99 11.59  0.00  7.040 | ||||
|  785 tagctagctgatcatcgatgctact        189 25  0 44.00 62.040 17.55 15.53  0.00  7.040 | ||||
|  786 atgctagtagtgatgtatacgtagcta       36 27  0 37.04 59.911 10.00  8.05  0.00  7.089 | ||||
|  787 gctagctgatcatcatctactatcatc      215 27  0 40.74 59.861  8.21  0.00  0.00  7.139 | ||||
|  788 ctagctagctgatcatcatctacta        212 25  0 40.00 57.842 11.68  8.11  0.00  7.158 | ||||
|  789 ctactagctagctgatcatcatcta        209 25  0 40.00 57.842  1.08  0.00  0.00  7.158 | ||||
|  790 tagctgatcatcatctagctagtag        152 25  0 40.00 57.842 13.40  3.73 41.48  7.158 | ||||
|  791 ctagctgatcatcatctagctagta        151 25  0 40.00 57.842 21.70  7.13 46.15  7.158 | ||||
|  792 gctgatcatcatcgatgctagctag        516 25  0 48.00 62.165 20.15 17.46 40.32  7.165 | ||||
|  793 ctagctgatcatcatcgatgctagc        513 25  0 48.00 62.165 19.27 19.26 41.96  7.165 | ||||
|  794 gctagctgatcatcatcgatgctag        512 25  0 48.00 62.165 23.70 23.70 45.51  7.165 | ||||
|  795 ctagctagctgatcatcatcgatgc        509 25  0 48.00 62.165 21.42  7.40 40.32  7.165 | ||||
|  796 agctagctgatcatcatctactatcat      214 27  0 37.04 60.181 17.99  0.00  0.00  7.181 | ||||
|  797 ctactagctagctgatcatcatctact      209 27  0 40.74 60.181  6.99  6.99  0.00  7.181 | ||||
|  798 ctagctgatcatcatctagctagtag       151 26  0 42.31 58.789 21.70 10.73 46.15  7.211 | ||||
|  799 aaagcatcggattagctagctgatg          1 25  0 44.00 62.249 27.81 27.81 33.28  7.249 | ||||
|  800 agctagctactgatcgatgctacat        303 25  0 44.00 62.272 17.56  6.16  0.00  7.272 | ||||
|  801 tagctagctgatcatcatctactatca      213 27  0 37.04 59.689  8.31  0.00  0.00  7.311 | ||||
|  802 actagctagctgatcatcatctactat      211 27  0 37.04 59.688 22.43  2.36  0.00  7.312 | ||||
|  803 ctgactgatcgatcatcatgctagc        266 25  0 48.00 62.333 20.99  8.86 41.77  7.333 | ||||
|  804 gctgactgatcgatcatcatgctag        265 25  0 48.00 62.333 27.72 21.73 41.77  7.333 | ||||
|  805 ctagctgactgatcgatcatcatgc        262 25  0 48.00 62.333 27.74 27.74 41.77  7.333 | ||||
|  806 gctagctgactgatcgatcatcatg        261 25  0 48.00 62.333 22.70 19.51 41.77  7.333 | ||||
|  807 tgctagtagtgatgtatacgtagctag       37 27  0 40.74 60.395  8.99  8.99  0.00  7.395 | ||||
|  808 agtagtgatgtatacgtagctagtagc       41 27  0 40.74 60.395 15.25 15.25 45.79  7.395 | ||||
|  809 gctagtagtgatgtatacgtagctagt       38 27  0 40.74 60.395 15.55 15.55  0.00  7.395 | ||||
|  810 ctagtgatgcatgctagtagtgatgt        26 26  0 42.31 61.460 20.00  0.00  0.00  7.460 | ||||
|  811 gctgatcatcatctactatcatcatca      219 27  0 37.04 59.533  0.00  0.00  0.00  7.467 | ||||
|  812 agctagctgactgatcgatcatcat        260 25  0 44.00 62.507 26.31 20.43 41.77  7.507 | ||||
|  813 tttagctagctgactgatcgatcatc       257 26  0 42.31 61.507 23.93 21.92 36.62  7.507 | ||||
|  814 catgctagtagtgatgtatacgtag         35 25  0 40.00 57.441  4.74  0.00  0.00  7.559 | ||||
|  815 agctgatcatcatcgatgctagcta        515 25  0 44.00 62.561 23.50 10.90 43.19  7.561 | ||||
|  816 tagctgatcatcatcgatgctagct        514 25  0 44.00 62.561 26.21 26.21 44.79  7.561 | ||||
|  817 agctagctgatcatcatcgatgcta        511 25  0 44.00 62.561 17.99  9.63 40.32  7.561 | ||||
|  818 tagctagctgatcatcatcgatgct        510 25  0 44.00 62.561 14.14 10.38 40.32  7.561 | ||||
|  819 gctatttagctagctgactgatcgat       253 26  0 42.31 61.564  7.27  0.00 46.11  7.564 | ||||
|  820 ctagctagctgactgatcgatcgat        106 25  0 48.00 62.579 30.53 30.53 37.90  7.579 | ||||
|  821 agctgatcatcatctactatcatcat       218 26  0 34.62 58.415  0.00  0.00  0.00  7.585 | ||||
|  822 tagctagctactatcatctctgcgc        350 25  0 48.00 62.587 27.80  0.00  0.00  7.587 | ||||
|  823 gctagctagctactgatcgatgcta        300 25  0 48.00 62.587 34.38 12.23 46.11  7.587 | ||||
|  824 tgctagtgatgcatgctagtagtga         24 25  0 44.00 62.622 24.96 13.57 35.89  7.622 | ||||
|  825 tagctgatcgatcgatgctagctag        396 25  0 48.00 62.632 33.71 21.46 41.05  7.632 | ||||
|  826 ctagctgatcgatcgatgctagcta        395 25  0 48.00 62.632 35.51 32.61 43.05  7.632 | ||||
|  827 tagctagctgatcgatcgatgctag        392 25  0 48.00 62.632 41.07 41.07 46.89  7.632 | ||||
|  828 ctagctagctgatcgatcgatgcta        391 25  0 48.00 62.632 34.11 32.56 36.80  7.632 | ||||
|  829 gtgatgcatgctagtagtgatgtatac       29 27  0 40.74 60.659  9.56  7.17  0.00  7.659 | ||||
|  830 agctgatcatcatctactatcatcatc      218 27  0 37.04 59.314  0.00  0.00  0.00  7.686 | ||||
|  831 tagctagctgatcatcatctactat        213 25  0 36.00 57.279  8.31  0.00  0.00  7.721 | ||||
|  832 tagctagctgatcatcatctactatc       213 26  0 38.46 58.269  8.31  0.00  0.00  7.731 | ||||
|  833 tgactgatcgatcatcatgctagct        267 25  0 44.00 62.733 26.79 10.55 41.77  7.733 | ||||
|  834 agctgactgatcgatcatcatgcta        264 25  0 44.00 62.733 30.60 18.10 41.77  7.733 | ||||
|  835 tagctgactgatcgatcatcatgct        263 25  0 44.00 62.733 32.31 32.31 41.77  7.733 | ||||
|  836 ctagctagctgatcatcatctactat       212 26  0 38.46 58.265  9.41  0.00  0.00  7.735 | ||||
|  837 agtgatgcatgctagtagtgatgtata       28 27  0 37.04 60.779  4.23  0.00  0.00  7.779 | ||||
|  838 tagtgatgcatgctagtagtgatgtat       27 27  0 37.04 60.779 11.56  0.00  0.00  7.779 | ||||
|  839 tgactgatcgatcgatgctagctag        115 25  0 48.00 62.800 20.19 17.46 35.21  7.800 | ||||
|  840 ctgactgatcgatcgatgctagcta        114 25  0 48.00 62.800 20.19 11.97 35.21  7.800 | ||||
|  841 tagctgactgatcgatcgatgctag        111 25  0 48.00 62.800 31.45 26.34 35.21  7.800 | ||||
|  842 ctagctgactgatcgatcgatgcta        110 25  0 48.00 62.800 31.54 29.68 35.21  7.800 | ||||
|  843 tagctagctgactgatcgatcgatg        107 25  0 48.00 62.800 28.29 13.21 35.21  7.800 | ||||
|  844 gactgatcgatcgatgctagctagt        116 25  0 48.00 62.802 22.18 12.64 35.21  7.802 | ||||
|  845 tactagctagctgatcatcatctacta      210 27  0 37.04 59.196  8.79  8.11  0.00  7.804 | ||||
|  846 tagctgatcatcgatgctactagcta       193 26  0 42.31 61.805 28.86 27.39 45.92  7.805 | ||||
|  847 tagctagctgatcatcgatgctacta       189 26  0 42.31 61.805 18.93 16.03  0.00  7.805 | ||||
|  848 atgcatgctagtagtgatgtatacgta       32 27  0 37.04 60.828 11.70  0.00  0.00  7.828 | ||||
|  849 tatttagctagctgactgatcgatcat      255 27  0 37.04 60.831 26.67 18.02 36.62  7.831 | ||||
|  850 ctagctagctgatcatcatctactatc      212 27  0 40.74 59.162  9.41  0.06  0.00  7.838 | ||||
|  851 tagctactatcatctctgcgcgatc        354 25  0 48.00 62.854  0.00  0.00  0.00  7.854 | ||||
|  852 gctgatcatcatctactatcatcat        219 25  0 36.00 57.142  0.00  0.00  0.00  7.858 | ||||
|  853 ctagctactatcatctctgcgcgat        353 25  0 48.00 62.859  4.99  2.52  0.00  7.859 | ||||
|  854 gctgatcatcatctactatcatcatc       219 26  0 38.46 58.126  0.00  0.00  0.00  7.874 | ||||
|  855 tagctagctactgatcgatgctacat       302 26  0 42.31 62.028 27.80  3.08  0.00  8.028 | ||||
|  856 agtagtgatgtatacgtagctagtag        41 26  0 38.46 57.950  9.92  1.30  0.00  8.050 | ||||
|  857 ctagtagtgatgtatacgtagctagt        39 26  0 38.46 57.950 15.52 15.52  0.00  8.050 | ||||
|  858 catgctagtagtgatgtatacgtagct       35 27  0 40.74 61.089  9.37  8.73  0.00  8.089 | ||||
|  859 gactgatcgatcatcatgctagctac       268 26  0 46.15 62.094 24.51  8.36 41.77  8.094 | ||||
|  860 tagctgatcatcatctactatcatca       217 26  0 34.62 57.906  0.00  0.00  0.00  8.094 | ||||
|  861 ctagctgatcatcatctactatcatca      216 27  0 37.04 58.826  0.00  0.00  0.00  8.174 | ||||
|  862 ctagctgatcatcatctagctagtagc      151 27  0 44.44 61.196 21.70 15.25 46.15  8.196 | ||||
|  863 tagctagctgactgatcgatcatcat       259 26  0 42.31 62.255 28.29 20.43 41.77  8.255 | ||||
|  864 ctagtgatgcatgctagtagtgatgta       26 27  0 40.74 61.255 20.00  8.84  0.00  8.255 | ||||
|  865 tgcatgctagtagtgatgtatacgtag       33 27  0 40.74 61.300 20.79  0.00  0.00  8.300 | ||||
|  866 ctatttagctagctgactgatcgatca      254 27  0 40.74 61.304 26.99 26.99 35.44  8.304 | ||||
|  867 tagctgatcatcatcgatgctagcta       514 26  0 42.31 62.307 28.23 26.63 43.19  8.307 | ||||
|  868 tagctagctgatcatcatcgatgcta       510 26  0 42.31 62.307 14.58 11.03 40.32  8.307 | ||||
|  869 gctagctagctactatcatcgatcga       426 26  0 46.15 62.381 34.38 22.52 46.11  8.381 | ||||
|  870 gctactagctagctgatcatcatctac      208 27  0 44.44 61.407 14.37  0.00 44.92  8.407 | ||||
|  871 ttagctagctgactgatcgatcatca       258 26  0 42.31 62.416 28.29 26.49 39.98  8.416 | ||||
|  872 tgactgatcgatcatcatgctagcta       267 26  0 42.31 62.472 26.79 11.24 41.77  8.472 | ||||
|  873 tagctgactgatcgatcatcatgcta       263 26  0 42.31 62.472 33.83 32.61 41.77  8.472 | ||||
|  874 actgatcgatcatcatgctagctact       269 26  0 42.31 62.478 26.67  0.00 41.77  8.478 | ||||
|  875 gctagtgatgcatgctagtagtgatg        25 26  0 46.15 62.484 24.96  9.07  0.00  8.484 | ||||
|  876 ctagctagctactgatcgatgctaca       301 26  0 46.15 62.503 14.00  5.87  0.00  8.503 | ||||
|  877 gactgatcgatcgatgctagctagta       116 26  0 46.15 62.543 22.18 18.77 35.21  8.543 | ||||
|  878 actgatcgatcgatgctagctagtag       117 26  0 46.15 62.548 23.29 12.42 35.21  8.548 | ||||
|  879 ctagctgatcatcatctactatcatc       216 26  0 38.46 57.395  0.00  0.00  0.00  8.605 | ||||
|  880 ctgatcatcatcgatgctagctagtag      517 27  0 44.44 61.665 10.30  1.36 40.32  8.665 | ||||
|  881 ctactagctagctgatcatcatcgatg      506 27  0 44.44 61.665 20.23 20.23 41.48  8.665 | ||||
|  882 ctgatcgatcatcatgctagctactag      270 27  0 44.44 61.665 26.67  8.14 41.77  8.665 | ||||
|  883 tagctgatcatcatctactatcatcat      217 27  0 33.33 58.315  0.00  0.00  0.00  8.685 | ||||
|  884 tgatgcatgctagtagtgatgtatacg       30 27  0 40.74 61.778  9.81  0.00  0.00  8.778 | ||||
|  885 gatgcatgctagtagtgatgtatacgt       31 27  0 40.74 61.779  7.40  0.00  0.00  8.779 | ||||
|  886 gctactagctagctgatcatcatcga       505 26  0 46.15 62.779 14.37  0.00 44.92  8.779 | ||||
|  887 agctgatcatcgatgctactagctag       194 26  0 46.15 62.784 24.59 20.04 45.92  8.784 | ||||
|  888 ctagctgatcatcgatgctactagct       192 26  0 46.15 62.784 27.00 27.00 45.92  8.784 | ||||
|  889 agctagctgatcatcgatgctactag       190 26  0 46.15 62.784 20.13 20.13  0.00  8.784 | ||||
|  890 ctagctagctgatcatcgatgctact       188 26  0 46.15 62.784 17.55 15.53  0.00  8.784 | ||||
|  891 atttagctagctgactgatcgatcatc      256 27  0 40.74 61.785 23.93 21.92 36.62  8.785 | ||||
|  892 tctactatcatcatcatctactagct       230 26  0 34.62 57.155  0.00  0.00  0.00  8.845 | ||||
|  893 tgctagtgatgcatgctagtagtgat        24 26  0 42.31 62.874 24.96  8.51 35.89  8.874 | ||||
|  894 ctgatcatcatctactatcatcatca       220 26  0 34.62 57.026  0.00  0.00  0.00  8.974 | ||||
|  895 agctagctactgatcgatgctacatc       303 26  0 46.15 62.999 17.56  7.89 37.97  8.999 | ||||
|  896 tagtagtgatgtatacgtagctagtag       40 27  0 37.04 57.869 16.78  1.30  0.00  9.131 | ||||
|  897 ctagtagtgatgtatacgtagctagta       39 27  0 37.04 57.869 16.85 15.97  0.00  9.131 | ||||
|  898 actgatcgatcatcatgctagctacta      269 27  0 40.74 62.236 26.67  1.37 41.77  9.236 | ||||
|  899 gcatgctagtagtgatgtatacgtagc       34 27  0 44.44 62.283 11.60  4.93  0.00  9.283 | ||||
|  900 gctatttagctagctgactgatcgatc      253 27  0 44.44 62.291 19.32 19.32 46.11  9.291 | ||||
|  901 atctactatcatcatcatctactagct      229 27  0 33.33 57.592  0.00  0.00  0.00  9.408 | ||||
|  902 catctactatcatcatcatctactagc      228 27  0 37.04 57.549  0.00  0.00  0.00  9.451 | ||||
|  903 tgatcatcatctactatcatcatcatc      221 27  0 33.33 57.467  0.00  0.00  0.00  9.533 | ||||
|  904 tagctgatcatcgatgctactagctag      193 27  0 44.44 62.534 27.70 20.04 45.92  9.534 | ||||
|  905 ctagctgatcatcgatgctactagcta      192 27  0 44.44 62.534 27.76 26.73 45.92  9.534 | ||||
|  906 tagctagctgatcatcgatgctactag      189 27  0 44.44 62.534 20.13 20.13  0.00  9.534 | ||||
|  907 ctagctagctgatcatcgatgctacta      188 27  0 44.44 62.534 17.74 15.95  0.00  9.534 | ||||
|  908 ctgatcatcatctactatcatcatcat      220 27  0 33.33 57.462  0.00  0.00  0.00  9.538 | ||||
|  909 gctagctagctactatcatcgatcgat      426 27  0 44.44 62.627 34.38 25.37 46.11  9.627 | ||||
|  910 ttagctagctgactgatcgatcatcat      258 27  0 40.74 62.665 28.29 20.43 41.77  9.665 | ||||
|  911 tagctagctactgatcgatgctacatc      302 27  0 44.44 62.742 27.80  7.89 37.97  9.742 | ||||
|  912 ctagctagctactgatcgatgctacat      301 27  0 44.44 62.747 14.00  2.51  0.00  9.747 | ||||
|  913 gatcatcatctactatcatcatcatct      222 27  0 33.33 57.242  0.00  0.00  0.00  9.758 | ||||
|  914 tttagctagctgactgatcgatcatca      257 27  0 40.74 62.820 26.49 26.49 39.98  9.820 | ||||
|  915 tctactatcatcatcatctactagcta      230 27  0 33.33 57.100  0.00  0.00  0.00  9.900 | ||||
							
								
								
									
										1317
									
								
								samples/Formatted/wksst8110.for
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1317
									
								
								samples/Formatted/wksst8110.for
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										114
									
								
								samples/Haskell/HsColour.hs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								samples/Haskell/HsColour.hs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,114 @@ | ||||
| -- | This is a library which colourises Haskell code. | ||||
| --   It currently has six output formats: | ||||
| -- | ||||
| -- * ANSI terminal codes | ||||
| -- | ||||
| -- * LaTeX macros | ||||
| -- | ||||
| -- * HTML 3.2 with font tags | ||||
| -- | ||||
| -- * HTML 4.01 with external CSS. | ||||
| -- | ||||
| -- * XHTML 1.0 with internal CSS. | ||||
| -- | ||||
| -- * mIRC chat client colour codes. | ||||
| -- | ||||
| module Language.Haskell.HsColour (Output(..), ColourPrefs(..), | ||||
|                                   hscolour) where | ||||
|  | ||||
| import Language.Haskell.HsColour.Colourise  (ColourPrefs(..)) | ||||
| import qualified Language.Haskell.HsColour.TTY        as TTY | ||||
| import qualified Language.Haskell.HsColour.HTML       as HTML | ||||
| import qualified Language.Haskell.HsColour.CSS        as CSS | ||||
| import qualified Language.Haskell.HsColour.ACSS       as ACSS  | ||||
| import qualified Language.Haskell.HsColour.InlineCSS  as ICSS | ||||
| import qualified Language.Haskell.HsColour.LaTeX      as LaTeX | ||||
| import qualified Language.Haskell.HsColour.MIRC       as MIRC | ||||
| import Data.List(mapAccumL, isPrefixOf) | ||||
| import Data.Maybe | ||||
| import Language.Haskell.HsColour.Output | ||||
| --import Debug.Trace | ||||
|  | ||||
| -- | Colourise Haskell source code with the given output format. | ||||
| hscolour :: Output      -- ^ Output format. | ||||
|          -> ColourPrefs -- ^ Colour preferences (for formats that support them). | ||||
|          -> Bool        -- ^ Whether to include anchors. | ||||
|          -> Bool        -- ^ Whether output document is partial or complete. | ||||
|          -> String	-- ^ Title for output. | ||||
|          -> Bool        -- ^ Whether input document is literate haskell or not | ||||
|          -> String      -- ^ Haskell source code. | ||||
|          -> String      -- ^ Coloured Haskell source code. | ||||
| hscolour output pref anchor partial title False = | ||||
|         (if partial then id else top'n'tail output title) . | ||||
|         hscolour' output pref anchor | ||||
| hscolour output pref anchor partial title True  = | ||||
|         (if partial then id else top'n'tail output title) . | ||||
|         concatMap chunk . joinL . classify . inlines | ||||
|   where | ||||
|     chunk (Code c) = hscolour' output pref anchor c | ||||
|     chunk (Lit c)  = c | ||||
|  | ||||
| -- | The actual colourising worker, despatched on the chosen output format. | ||||
| hscolour' :: Output      -- ^ Output format. | ||||
|           -> ColourPrefs -- ^ Colour preferences (for formats that support them) | ||||
|           -> Bool        -- ^ Whether to include anchors. | ||||
|           -> String      -- ^ Haskell source code. | ||||
|           -> String      -- ^ Coloured Haskell source code. | ||||
| hscolour' TTY       pref _      = TTY.hscolour     pref | ||||
| hscolour' (TTYg tt) pref _      = TTY.hscolourG tt pref | ||||
| hscolour' MIRC      pref _      = MIRC.hscolour    pref | ||||
| hscolour' LaTeX     pref _      = LaTeX.hscolour   pref | ||||
| hscolour' HTML      pref anchor = HTML.hscolour    pref anchor | ||||
| hscolour' CSS       _    anchor = CSS.hscolour          anchor | ||||
| hscolour' ICSS      pref anchor = ICSS.hscolour    pref anchor | ||||
| hscolour' ACSS      _    anchor = ACSS.hscolour         anchor | ||||
|  | ||||
| -- | Choose the right headers\/footers, depending on the output format. | ||||
| top'n'tail :: Output           -- ^ Output format | ||||
|            -> String           -- ^ Title for output | ||||
|            -> (String->String) -- ^ Output transformer | ||||
| top'n'tail TTY   _     = id | ||||
| top'n'tail (TTYg _) _  = id | ||||
| top'n'tail MIRC  _     = id | ||||
| top'n'tail LaTeX title = LaTeX.top'n'tail title | ||||
| top'n'tail HTML  title = HTML.top'n'tail title | ||||
| top'n'tail CSS   title = CSS.top'n'tail  title | ||||
| top'n'tail ICSS  title = ICSS.top'n'tail title | ||||
| top'n'tail ACSS  title = CSS.top'n'tail  title | ||||
|  | ||||
| -- | Separating literate files into code\/comment chunks. | ||||
| data Lit = Code {unL :: String} | Lit {unL :: String} deriving (Show) | ||||
|  | ||||
| -- Re-implementation of 'lines', for better efficiency (but decreased laziness). | ||||
| -- Also, importantly, accepts non-standard DOS and Mac line ending characters. | ||||
| -- And retains the trailing '\n' character in each resultant string. | ||||
| inlines :: String -> [String] | ||||
| inlines s = lines' s id | ||||
|   where | ||||
|   lines' []             acc = [acc []] | ||||
|   lines' ('\^M':'\n':s) acc = acc ['\n'] : lines' s id	-- DOS | ||||
| --lines' ('\^M':s)      acc = acc ['\n'] : lines' s id	-- MacOS | ||||
|   lines' ('\n':s)       acc = acc ['\n'] : lines' s id	-- Unix | ||||
|   lines' (c:s)          acc = lines' s (acc . (c:)) | ||||
|  | ||||
|  | ||||
| -- | The code for classify is largely stolen from Language.Preprocessor.Unlit. | ||||
| classify ::  [String] -> [Lit] | ||||
| classify []             = [] | ||||
| classify (x:xs) | "\\begin{code}"`isPrefixOf`x | ||||
|                         = Lit x: allProg xs | ||||
|    where allProg []     = []  -- Should give an error message, | ||||
|                               -- but I have no good position information. | ||||
|          allProg (x:xs) | "\\end{code}"`isPrefixOf`x | ||||
|                         = Lit x: classify xs | ||||
|          allProg (x:xs) = Code x: allProg xs | ||||
| classify (('>':x):xs)   = Code ('>':x) : classify xs | ||||
| classify (x:xs)         = Lit x: classify xs | ||||
|  | ||||
| -- | Join up chunks of code\/comment that are next to each other. | ||||
| joinL :: [Lit] -> [Lit] | ||||
| joinL []                  = [] | ||||
| joinL (Code c:Code c2:xs) = joinL (Code (c++c2):xs) | ||||
| joinL (Lit c :Lit c2 :xs) = joinL (Lit  (c++c2):xs) | ||||
| joinL (any:xs)            = any: joinL xs | ||||
|  | ||||
							
								
								
									
										252
									
								
								samples/HyPhy/AAModelComparison.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										252
									
								
								samples/HyPhy/AAModelComparison.bf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,252 @@ | ||||
| if (Rows (modelMatrixList) == 0) | ||||
| { | ||||
| 	modelMatrixList =  | ||||
| 	{ | ||||
| 	{"Equal Input", "EIAA.mdl", "19"} | ||||
| 	{"Dayhoff","Dayhoff.mdl","0"} | ||||
| 	{"Dayhoff+F","Dayhoff_F.mdl","19"} | ||||
| 	{"JTT", "Jones.mdl", "0"} | ||||
| 	{"JTT+F", "Jones_F.mdl", "19"} | ||||
| 	{"WAG", "WAG.mdl", "0"} | ||||
| 	{"WAG+F", "WAG_F.mdl", "19"} | ||||
| 	{"rtREV", "rtREV.mdl", "0"} | ||||
| 	{"rtREV+F", "rtREV_F.mdl", "19"} | ||||
| 	{"mtMAM", 		  "mtMAM.mdl", "0"} | ||||
| 	{"mtMAM+F", 	  "mtMAM_F.mdl", "19"} | ||||
| 	{"mtREV 24",      "mtREV_24.mdl", "0"} | ||||
| 	{"mtREV 24+F",    "mtREV_24_F.mdl", "19"} | ||||
| 	{"HIV within",    "HIVwithin.mdl", "0"} | ||||
| 	{"HIV within+F",  "HIVwithin+F.mdl", "19"} | ||||
| 	{"HIV between",   "HIVbetween.mdl", "0"} | ||||
| 	{"HIV between+F", "HIVbetween+F.mdl", "19"} | ||||
| 	{"REV-1 step", "reducedREV.mdl", "19"} | ||||
| 	{"REV",   "mtREV.mdl",    "19"} | ||||
| 	}; | ||||
| } | ||||
|  | ||||
| /*___________________________________________________________________________________________________________*/ | ||||
|  | ||||
| function runAModel (modelID, fileName, xtraP, midx) | ||||
| { | ||||
| 	ExecuteCommands ("#include \"TemplateModels/"+fileName+"\";");  | ||||
| 	Tree 					givenTree 			= treeString; | ||||
| 	LikelihoodFunction 		lf 					= (filteredData,givenTree); | ||||
| 	 | ||||
| 	GetString (lf_info, lf, -1); | ||||
| 	locals = lf_info["Local Independent"]; | ||||
|  | ||||
| 	if (Columns (branchLengthStash)) | ||||
| 	{ | ||||
| 		USE_LAST_RESULTS = 1; | ||||
| 		for (_iv = 0; _iv < Columns (locals); _iv = _iv+1) | ||||
| 		{ | ||||
| 			ExecuteCommands (locals[_iv] + "=1;\n"); | ||||
| 		} | ||||
| 		currentBL = BranchLength (givenTree,0); | ||||
| 		currentBN = BranchName	 (givenTree,-1); | ||||
| 		for (_iv = 0; _iv < Columns (currentBN); _iv = _iv+1) | ||||
| 		{ | ||||
| 			ExecuteCommands ("givenTree."+currentBN[_iv]+".t="+branchLengthStash[_iv]/currentBL+";"); | ||||
| 			 | ||||
| 		} | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		for (_iv = 0; _iv < Columns (locals); _iv = _iv+1) | ||||
| 		{ | ||||
| 			ExecuteCommands (locals[_iv] + "=0.1;\n"); | ||||
| 		} | ||||
| 		USE_LAST_RESULTS = 1; | ||||
| 	} | ||||
|  | ||||
| 	Optimize (res,lf); | ||||
| 	 | ||||
| 	fprintf (stdout, "| ", modelID); | ||||
| 	for (k=0; k<maxModelWidth-Abs(modelID)-1; k=k+1) | ||||
| 	{ | ||||
| 		fprintf (stdout, " "); | ||||
| 	} | ||||
|  | ||||
| 	params = res[1][1]+xtraP; | ||||
| 	AIC    =  2(-res[1][0]+params); | ||||
| 	 | ||||
| 	if (filteredData.sites-params>1) | ||||
| 	{ | ||||
| 		cAIC   = 2(-res[1][0]+params*(filteredData.sites/(filteredData.sites-params-1))); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		cAIC = 0; | ||||
| 	} | ||||
| 	 | ||||
| 	branchLengths = BranchLength (givenTree,-1); | ||||
| 	TL = 0; | ||||
| 	for (k=Rows(branchLengths)*Columns(branchLengths)-1; k>=0; k=k-1)				   | ||||
| 	{ | ||||
| 		TL = TL + branchLengths[k]; | ||||
| 	} | ||||
|  | ||||
| 	fprintf (stdout, "| ", Format (res[1][0],14,3), " | ", Format (params,5,0), " | ", | ||||
| 						   Format (AIC, 9,3), " | ",); | ||||
| 					 | ||||
| 	if (cAIC > 0) | ||||
| 	{ | ||||
| 		 fprintf (stdout, Format (cAIC,11,3), " | "); | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		 fprintf (stdout, "    N/A     | "); | ||||
| 	} | ||||
| 		    | ||||
| 	fprintf (stdout, Format (TL,11,3), " |\n", sepString); | ||||
| 	 | ||||
| 	resultMatrix[midx][0] = res[1][0]; | ||||
| 	resultMatrix[midx][1] = params; | ||||
| 	resultMatrix[midx][2] = AIC; | ||||
| 	resultMatrix[midx][3] = cAIC; | ||||
| 	resultMatrix[midx][4] = TL; | ||||
| 	 | ||||
| 	if (AIC < bestAIC) | ||||
| 	{ | ||||
| 		bestAIC 	= AIC; | ||||
| 		bestAICidx  = midx; | ||||
| 		branchLengthStash = BranchLength (givenTree,-1); | ||||
| 	} | ||||
| 	 | ||||
| 	if (cAIC > 0) | ||||
| 	{ | ||||
| 		if (bestCAIC > cAIC) | ||||
| 		{ | ||||
| 			bestCAIC = cAIC; | ||||
| 			bestCAICidx = midx; | ||||
| 			 | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
| /*___________________________________________________________________________________________________________*/ | ||||
|  | ||||
|  | ||||
|  | ||||
| maxModelWidth = 7; | ||||
| skipCodeSelectionStep = 0; | ||||
|  | ||||
| ChoiceList (doREV, "Include REV?", 1, SKIP_NONE, "Yes", "Include REV and reduced REV models. CAUTION: these models take a long time to fit.", | ||||
| 												 "No", "Only use empirical models"); | ||||
| 												  | ||||
| if (doREV < 0) | ||||
| { | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
| if (doREV == 0) | ||||
| { | ||||
| 	#include "TemplateModels/chooseGeneticCode.def"; | ||||
| 	skipCodeSelectionStep = 1; | ||||
| } | ||||
|  | ||||
| modelCount    = Rows (modelMatrixList) - 2*doREV; | ||||
|  | ||||
| for (k=0; k<modelCount; k=k+1) | ||||
| { | ||||
| 	maxModelWidth = Max(maxModelWidth,Abs (modelMatrixList[k][0])+2); | ||||
| } | ||||
|  | ||||
| sepString = ""; | ||||
| capString = ""; | ||||
| sepString * 256; | ||||
| sepString * "+"; | ||||
|  | ||||
| capString * 256; | ||||
| capString * "| Model"; | ||||
|  | ||||
| for (k=0; k<maxModelWidth; k=k+1) | ||||
| { | ||||
| 	sepString * "-"; | ||||
| } | ||||
|  | ||||
| for (k=0; k<maxModelWidth-6; k=k+1) | ||||
| { | ||||
| 	capString * " "; | ||||
| } | ||||
|  | ||||
| capString * "| Log Likelihood | #prms | AIC Score | c-AIC Score | Tree Length |\n"; | ||||
| sepString * "+----------------+-------+-----------+-------------+-------------+\n"; | ||||
| sepString * 0; | ||||
| capString * 0; | ||||
|  | ||||
| branchLengthStash = 0; | ||||
|  | ||||
| SKIP_MODEL_PARAMETER_LIST = 0; | ||||
|  | ||||
| #include "TemplateModels/modelParameters2.mdl"; | ||||
| if (modelType == 1) | ||||
| { | ||||
| 	#include "TemplateModels/defineGamma.mdl"; | ||||
| } | ||||
|  | ||||
| if (modelType == 2) | ||||
| { | ||||
| 	#include "TemplateModels/defineHM.mdl"; | ||||
| } | ||||
| SKIP_MODEL_PARAMETER_LIST = 1; | ||||
|  | ||||
| SetDialogPrompt ("Please load an amino-acid data file:"); | ||||
|  | ||||
| DataSet ds = ReadDataFile (PROMPT_FOR_FILE); | ||||
| DataSetFilter filteredData = CreateFilter (ds,1); | ||||
|  | ||||
| fprintf (stdout,"\nRunning aminoacid model comparisons on ", LAST_FILE_PATH, "\n\nThe alignment has ",ds.species, " sequences and ", ds.sites, " sites\n"); | ||||
|  | ||||
| _DO_TREE_REBALANCE_ = 1; | ||||
|  | ||||
| #include "queryTree.bf"; | ||||
|  | ||||
| resultMatrix = {modelCount, 5}; | ||||
|  | ||||
| fprintf (stdout, "\n",sepString,capString,sepString); | ||||
|  | ||||
| bestAIC 	= 1e100; | ||||
| bestCAIC	= 1e100; | ||||
| bestAICidx	= 0; | ||||
| bestCAICidx = -1; | ||||
|  | ||||
| for (mid=0; mid<modelCount; mid=mid+1) | ||||
| { | ||||
| 	runAModel (modelMatrixList[mid][0], modelMatrixList[mid][1], 0+modelMatrixList[mid][2], mid); | ||||
| }	 | ||||
|  | ||||
| fprintf (stdout, "\n\nBest AIC model:\n\t", modelMatrixList[bestAICidx][0], " with the score of ", bestAIC); | ||||
|  | ||||
| if (bestCAICidx>=0) | ||||
| { | ||||
| 	fprintf (stdout, "\n\nBest c-AIC model:\n\t", modelMatrixList[bestCAICidx][0], " with the score of ", bestCAIC); | ||||
| } | ||||
|  | ||||
| labelMatrix  = {{"Log-likelihood","Parameters","AIC","c-AIC","Total tree length",""}}; | ||||
|  | ||||
| aaString = "Model"; | ||||
|  | ||||
| for (fC = 0; fC < modelCount; fC = fC+1) | ||||
| { | ||||
| 	aaString = aaString + ";" + modelMatrixList[fC][0]; | ||||
| } | ||||
|  | ||||
| USE_LAST_RESULTS = 0; | ||||
|  | ||||
| labelMatrix[5] = aaString; | ||||
| skipCodeSelectionStep = 0; | ||||
| OpenWindow (CHARTWINDOW,{{"Model Fits"} | ||||
| 						   {"labelMatrix"}, | ||||
| 						   {"resultMatrix"}, | ||||
| 						   {"Bar Chart"}, | ||||
| 						   {"Index"}, | ||||
| 						   {"c-AIC"}, | ||||
| 						   {"Model Index"}, | ||||
| 						   {""}, | ||||
| 						   {"AIC"} | ||||
| 						   }, | ||||
| 						   "SCREEN_WIDTH-60;SCREEN_HEIGHT-60;30;30"); | ||||
							
								
								
									
										1046
									
								
								samples/HyPhy/CodonModelCompare.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1046
									
								
								samples/HyPhy/CodonModelCompare.bf
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1113
									
								
								samples/HyPhy/MFPositiveSelection.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1113
									
								
								samples/HyPhy/MFPositiveSelection.bf
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										1
									
								
								samples/HyPhy/MatrixIndexing.bf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								samples/HyPhy/MatrixIndexing.bf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| fprintf (stdout, "\n1). Spawning a zero-populated 5x6 matrix and setting it's values to random numbers in [0,1].\n"); | ||||
							
								
								
									
										147
									
								
								samples/HyPhy/MolecularClock.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										147
									
								
								samples/HyPhy/MolecularClock.bf
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,147 @@ | ||||
| #include "molclockBootstrap.bf"; | ||||
|  | ||||
| RESTORE_GLOBALS 	= 1; | ||||
| _DO_TREE_REBALANCE_ = 0; | ||||
| VERBOSITY_LEVEL     = -1; | ||||
|  | ||||
| function RestoreGlobalValues (lfIndex) | ||||
| { | ||||
| 	if (lfIndex==0) | ||||
| 	{ | ||||
| 		for (i=0;i<SAVE_GLOBALS;i=i+1) | ||||
| 		{ | ||||
| 			SetParameter (lf,i,globalSpoolMatrix[i]); | ||||
| 		} | ||||
| 	} | ||||
| 	if (lfIndex==1) | ||||
| 	{ | ||||
| 		for (i=0;i<SAVE_GLOBALS2;i=i+1) | ||||
| 		{ | ||||
| 			SetParameter (lfConstrained,i,globalSpoolMatrix2[i]); | ||||
| 		} | ||||
| 	} | ||||
| 	return 0; | ||||
| } | ||||
|  | ||||
|  | ||||
|  | ||||
| fprintf(stdout,"\n ---- RUNNING MOLECULAR CLOCK ANALYSIS ---- \n"); | ||||
|  | ||||
| ChoiceList (dataType,"Data type",1,SKIP_NONE,"Nucleotide/Protein","Nucleotide or amino-acid (protein).", | ||||
| 				     "Codon","Codon (several available genetic codes)."); | ||||
|  | ||||
| if (dataType<0)  | ||||
| { | ||||
| 	return; | ||||
| } | ||||
| if (dataType) | ||||
| { | ||||
| 	NICETY_LEVEL = 3; | ||||
| 	#include "TemplateModels/chooseGeneticCode.def"; | ||||
| } | ||||
|  | ||||
| SetDialogPrompt ("Choose the data file:"); | ||||
|  | ||||
| DataSet ds = ReadDataFile (PROMPT_FOR_FILE); | ||||
|  | ||||
| fprintf (stdout,"The following data was read:\n",ds,"\n"); | ||||
|  | ||||
| if (dataType) | ||||
| { | ||||
| 	DataSetFilter filteredData = CreateFilter (ds,3,"","",GeneticCodeExclusions); | ||||
| } | ||||
| else | ||||
| { | ||||
| 	DataSetFilter filteredData = CreateFilter (ds,1); | ||||
| } | ||||
|  | ||||
| SelectTemplateModel(filteredData); | ||||
|  | ||||
| #include "queryTree.bf"; | ||||
|  | ||||
| global RelRatio; | ||||
|  | ||||
| RelRatio = 1.0; | ||||
|  | ||||
| relationString = ":=RelRatio*"; | ||||
|  | ||||
| parameter2Constrain = 0; | ||||
|  | ||||
| if (Rows("LAST_MODEL_PARAMETER_LIST")>1) | ||||
| { | ||||
| 	ChoiceList (parameter2Constrain, "Parameter(s) to constrain:",1,SKIP_NONE,LAST_MODEL_PARAMETER_LIST); | ||||
|  | ||||
| 	if (parameter2Constrain<0) | ||||
| 	{ | ||||
| 		return; | ||||
| 	} | ||||
| 	if (parameter2Constrain==0) | ||||
| 	{ | ||||
| 		parameter2ConstrainString = ""; | ||||
| 		for (parameter2Constrain=Rows("LAST_MODEL_PARAMETER_LIST")-1; parameter2Constrain; parameter2Constrain = parameter2Constrain-1) | ||||
| 		{ | ||||
| 			GetString (funnyString,LAST_MODEL_PARAMETER_LIST,parameter2Constrain); | ||||
| 			parameter2ConstrainString = parameter2ConstrainString + funnyString + ","; | ||||
| 		} | ||||
| 		GetString (funnyString,LAST_MODEL_PARAMETER_LIST,0); | ||||
| 		parameter2ConstrainString = parameter2ConstrainString + funnyString; | ||||
| 	} | ||||
| 	else | ||||
| 	{ | ||||
| 		GetString (parameter2ConstrainString,LAST_MODEL_PARAMETER_LIST,parameter2Constrain-1); | ||||
| 	} | ||||
| } | ||||
| else | ||||
| { | ||||
| 	GetString (parameter2ConstrainString,LAST_MODEL_PARAMETER_LIST,0); | ||||
| } | ||||
|  | ||||
| timer = Time(0); | ||||
|  | ||||
| LikelihoodFunction lf = (filteredData,givenTree); | ||||
|  | ||||
| Optimize (res,lf); | ||||
|  | ||||
| separator = "*-----------------------------------------------------------*"; | ||||
|  | ||||
| fprintf (stdout, "\n", separator, "\nRESULTS WITHOUT THE CLOCK:\n",lf); | ||||
|  | ||||
| fullModelLik = res[1][0]; | ||||
|  | ||||
| fullVars = res[1][1]; | ||||
|  | ||||
| /* now specify the constraint */ | ||||
|  | ||||
| Tree clockTree = treeString; | ||||
|  | ||||
| ExecuteCommands ("MolecularClock (clockTree,"+parameter2ConstrainString+");"); | ||||
|  | ||||
| LikelihoodFunction lfConstrained = (filteredData, clockTree); | ||||
|  | ||||
| USE_LAST_RESULTS = 1; | ||||
| Optimize (res1,lfConstrained); | ||||
| USE_LAST_RESULTS = 0; | ||||
|  | ||||
| SAVE_GLOBALS = res1[1][2]; | ||||
|  | ||||
| if (SAVE_GLOBALS) | ||||
| { | ||||
| 	globalSpoolMatrix = {1,SAVE_GLOBALS}; | ||||
|  | ||||
| 	for (i=0;i<SAVE_GLOBALS;i=i+1) | ||||
| 	{ | ||||
| 		globalSpoolMatrix[i]=res1[0][i]; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| fprintf (stdout, "\n", separator,"\n\nRESULTS WITH THE CLOCK:\n",lfConstrained); | ||||
|  | ||||
| lnLikDiff = 2(fullModelLik-res1[1][0]); | ||||
|  | ||||
| degFDiff = fullVars - res1[1][1]; | ||||
|  | ||||
| fprintf (stdout, "\n", separator,"\n\n-2(Ln Likelihood Ratio)=",lnLikDiff,"\n","Constrained parameters:",Format(degFDiff,0,0)); | ||||
|  | ||||
| fprintf (stdout, "\nP-Value:",1-CChi2(lnLikDiff,degFDiff)); | ||||
|  | ||||
| fprintf (stdout, "\nCPU time taken: ", Time(0)-timer, " seconds.\n"); | ||||
							
								
								
									
										1025
									
								
								samples/HyPhy/dNdSDistributionComparison.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1025
									
								
								samples/HyPhy/dNdSDistributionComparison.bf
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										11003
									
								
								samples/HyPhy/hyphy_cmds.bf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11003
									
								
								samples/HyPhy/hyphy_cmds.bf
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1
									
								
								samples/HyPhy/profile_test.bf
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1
									
								
								samples/HyPhy/profile_test.bf
									
									
									
									
									
										Executable file
									
								
							| @@ -0,0 +1 @@ | ||||
| #profile START; | ||||
							
								
								
									
										742
									
								
								samples/JFlex/LexScan.flex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										742
									
								
								samples/JFlex/LexScan.flex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,742 @@ | ||||
| /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||
|  * JFlex 1.7.0-SNAPSHOT                                                    * | ||||
|  * Copyright (C) 1998-2015  Gerwin Klein <lsf@jflex.de>                    * | ||||
|  * All rights reserved.                                                    * | ||||
|  *                                                                         * | ||||
|  * License: BSD                                                            * | ||||
|  *                                                                         * | ||||
|  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | ||||
|  | ||||
| package jflex; | ||||
|  | ||||
| import java_cup.runtime.Symbol; | ||||
| import java.io.*; | ||||
| import java.util.Stack; | ||||
| import java.util.ArrayList; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
| import java.util.HashMap; | ||||
| import jflex.unicode.UnicodeProperties; | ||||
|  | ||||
| %% | ||||
|  | ||||
| %final | ||||
| %public | ||||
| %class LexScan | ||||
| %implements sym, java_cup.runtime.Scanner | ||||
| %function next_token | ||||
|  | ||||
| %type Symbol | ||||
| %unicode | ||||
|  | ||||
| %column | ||||
| %line | ||||
|  | ||||
| %eofclose | ||||
|  | ||||
| %state COMMENT, STATELIST, MACROS, REGEXPSTART | ||||
| %state REGEXP, JAVA_CODE, STATES, STRING_CONTENT | ||||
| %state CHARCLASS, COPY, REPEATEXP, EATWSPNL | ||||
| %state CTOR_ARG, REGEXP_CODEPOINT_SEQUENCE | ||||
| %state STRING_CODEPOINT_SEQUENCE, CHARCLASS_CODEPOINT | ||||
|  | ||||
| %inputstreamctor false | ||||
|  | ||||
| %cupdebug | ||||
|  | ||||
| %{ | ||||
|   int balance = 0; | ||||
|   int commentbalance = 0; | ||||
|   int action_line = 0; | ||||
|   int bufferSize = 16384; | ||||
|  | ||||
|   File file; | ||||
|   Stack<File> files = new Stack<File>(); | ||||
|  | ||||
|   StringBuilder userCode   = new StringBuilder(); | ||||
|  | ||||
|   String classCode; | ||||
|   String initCode; | ||||
|   String initThrow; | ||||
|   String eofCode; | ||||
|   String eofThrow; | ||||
|   String lexThrow; | ||||
|   String eofVal; | ||||
|   String scanErrorException; | ||||
|   String cupSymbol = "sym"; | ||||
|  | ||||
|   StringBuilder actionText = new StringBuilder(); | ||||
|   StringBuilder string     = new StringBuilder(); | ||||
|  | ||||
|   private UnicodeProperties unicodeProperties; | ||||
|  | ||||
|   boolean charCount; | ||||
|   boolean lineCount; | ||||
|   boolean columnCount; | ||||
|   boolean cupCompatible; | ||||
|   boolean cup2Compatible; | ||||
|   boolean cupDebug; | ||||
|   boolean isInteger; | ||||
|   boolean isIntWrap; | ||||
|   boolean isYYEOF; | ||||
|   boolean notUnix; | ||||
|   boolean isPublic; | ||||
|   boolean isFinal; | ||||
|   boolean isAbstract; | ||||
|   boolean bolUsed; | ||||
|   boolean standalone; | ||||
|   boolean debugOption; | ||||
|   boolean caseless; | ||||
|   boolean inclusive_states; | ||||
|   boolean eofclose; | ||||
|   boolean isASCII; | ||||
|   // TODO: In the version of JFlex after 1.6, the InputStream ctor  | ||||
|   // TODO: will never be emitted, and this option will cease to exist. | ||||
|   boolean emitInputStreamCtor = Options.emitInputStreamCtor; | ||||
|  | ||||
|   String isImplementing; | ||||
|   String isExtending; | ||||
|   String className = "Yylex"; | ||||
|   String functionName; | ||||
|   String tokenType; | ||||
|   String visibility = "public"; | ||||
|      | ||||
|   List<String> ctorArgs = new ArrayList<String>(); | ||||
|   List<String> ctorTypes = new ArrayList<String>(); | ||||
|      | ||||
|   LexicalStates states = new LexicalStates(); | ||||
|  | ||||
|   List<Action> actions = new ArrayList<Action>(); | ||||
|  | ||||
|   private int nextState; | ||||
|  | ||||
|   boolean macroDefinition; | ||||
|  | ||||
|   Timer t = new Timer(); | ||||
|  | ||||
|   // CharClasses.init() is delayed until UnicodeProperties.init() has been called, | ||||
|   // since the max char code won't be known until then. | ||||
|   private CharClasses charClasses = new CharClasses(); | ||||
|    | ||||
|   public CharClasses getCharClasses() { | ||||
|     return charClasses; | ||||
|   } | ||||
|  | ||||
|   public int currentLine() { | ||||
|     return yyline; | ||||
|   } | ||||
|  | ||||
|   public void setFile(File file) { | ||||
|     this.file = file; | ||||
|   } | ||||
|  | ||||
|   private Symbol symbol(int type, Object value) { | ||||
|     return new Symbol(type, yyline, yycolumn, value); | ||||
|   } | ||||
|  | ||||
|   private Symbol symbol(int type) { | ||||
|     return new Symbol(type, yyline, yycolumn); | ||||
|   } | ||||
|  | ||||
|   // updates line and column count to the beginning of the first | ||||
|   // non whitespace character in yytext, but leaves yyline+yycolumn | ||||
|   // untouched | ||||
|   private Symbol symbol_countUpdate(int type, Object value) { | ||||
|      int lc = yyline; | ||||
|      int cc = yycolumn; | ||||
|      String text = yytext(); | ||||
|  | ||||
|      for (int i=0; i < text.length(); i++) { | ||||
|       char c = text.charAt(i); | ||||
|  | ||||
|       if (c != '\n' && c != '\r' && c != ' ' && c != '\t' ) | ||||
|         return new Symbol(type, lc, cc, value); | ||||
|  | ||||
|       if (c == '\n') { | ||||
|         lc++; | ||||
|         cc = 0; | ||||
|       } | ||||
|       else | ||||
|         cc++; | ||||
|     } | ||||
|  | ||||
|     return new Symbol(type, yyline, yycolumn, value); | ||||
|   } | ||||
|  | ||||
|   private String makeMacroIdent() { | ||||
|     String matched = yytext().trim(); | ||||
|     return matched.substring(1, matched.length()-1).trim(); | ||||
|   } | ||||
|  | ||||
|   public static String conc(Object a, Object b) { | ||||
|     if (a == null && b == null) return null; | ||||
|     if (a == null) return b.toString(); | ||||
|     if (b == null) return a.toString(); | ||||
|  | ||||
|     return a.toString()+b.toString(); | ||||
|   } | ||||
|  | ||||
|   public static String concExc(Object a, Object b) { | ||||
|     if (a == null && b == null) return null; | ||||
|     if (a == null) return b.toString(); | ||||
|     if (b == null) return a.toString(); | ||||
|  | ||||
|     return a.toString()+", "+b.toString(); | ||||
|   } | ||||
|    | ||||
|   public UnicodeProperties getUnicodeProperties() { | ||||
|     return unicodeProperties; | ||||
|   } | ||||
|    | ||||
|   private void populateDefaultVersionUnicodeProperties() { | ||||
|     try { | ||||
|       unicodeProperties = new UnicodeProperties(); | ||||
|     } catch (UnicodeProperties.UnsupportedUnicodeVersionException e) { | ||||
|       throw new ScannerException | ||||
|         (file, ErrorMessages.UNSUPPORTED_UNICODE_VERSION, yyline); | ||||
|     } | ||||
|     charClasses.init | ||||
|       (Options.jlex ? 127 : unicodeProperties.getMaximumCodePoint(), this); | ||||
|   } | ||||
|    | ||||
|   private void includeFile(String filePath) { | ||||
|     File f = new File(file.getParentFile(), filePath); | ||||
|     if ( !f.canRead() ) | ||||
|       throw new ScannerException(file,ErrorMessages.NOT_READABLE, yyline); | ||||
|     // check for cycle | ||||
|     if (files.search(f) > 0) | ||||
|       throw new ScannerException(file,ErrorMessages.FILE_CYCLE, yyline); | ||||
|     try { | ||||
|       yypushStream( new FileReader(f) ); | ||||
|       files.push(file); | ||||
|       file = f; | ||||
|       Out.println("Including \""+file+"\""); | ||||
|     } | ||||
|     catch (FileNotFoundException e) { | ||||
|       throw new ScannerException(file,ErrorMessages.NOT_READABLE, yyline); | ||||
|     } | ||||
|   } | ||||
| %} | ||||
|  | ||||
| %init{ | ||||
|   states.insert("YYINITIAL", true); | ||||
| %init} | ||||
|  | ||||
|  | ||||
| Digit      = [0-9] | ||||
| HexDigit   = [0-9a-fA-F] | ||||
| OctDigit   = [0-7] | ||||
|  | ||||
| Number     = {Digit}+ | ||||
| HexNumber  = \\ x {HexDigit} {2} | ||||
| OctNumber  = \\ [0-3]? {OctDigit} {1, 2} | ||||
|  | ||||
| // Unicode4 can encode chars only in the BMP with the 16 bits provided by its | ||||
| // 4 hex digits. | ||||
| Unicode4  = \\ u {HexDigit} {4} | ||||
|  | ||||
| // Unicode6 can encode all Unicode chars, both in the BMP and in the | ||||
| // supplementary planes -- only 21 bits are required as of Unicode 5.0, | ||||
| // but its six hex digits provide 24 bits. | ||||
| Unicode6  = \\ U {HexDigit} {6} | ||||
|  | ||||
| // see http://www.unicode.org/unicode/reports/tr18/ | ||||
| WSP        = [ \t\b] | ||||
| WSPNL      = [\u2028\u2029\u000A\u000B\u000C\u000D\u0085\t\b\ ] | ||||
| NWSPNL     = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\t\b\ ] | ||||
| NL         = [\u2028\u2029\u000A\u000B\u000C\u000D\u0085] | \u000D\u000A | ||||
| NNL        = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085] | ||||
|  | ||||
| Ident      = {IdentStart} {IdentPart}* | ||||
| QualIdent  = {Ident} ( {WSP}* "." {WSP}* {Ident} )* | ||||
| QUIL       = {QualIdent} ( {WSP}* "," {WSP}* {QualIdent} )* | ||||
| Array      = "[" {WSP}* "]" | ||||
| ParamPart  = {IdentStart}|{IdentPart}|"<"|">"|","|{WSP}|"&"|"?"|"." | ||||
| GenParam   = "<" {ParamPart}+ ">" | ||||
| ClassT     = {Ident} ({WSP}* {GenParam})? | ||||
| QClassT    = {QualIdent} ({WSP}* {GenParam})? | ||||
| ArrType    = ({GenParam} {WSP}*)? {QClassT} ({WSP}* {Array})* | ||||
|  | ||||
| IdentStart = [:jletter:] | ||||
| IdentPart  = [:jletterdigit:] | ||||
|  | ||||
| JFlexCommentChar = [^*/]|"/"+[^*/]|"*"+[^*/] | ||||
| JFlexComment = {JFlexCommentChar}+ | ||||
|  | ||||
| /* Java comments */ | ||||
| JavaComment = {TraditionalComment}|{EndOfLineComment} | ||||
| TraditionalComment = "/*"{CommentContent}\*+"/" | ||||
| EndOfLineComment = "//".*{NL} | ||||
|  | ||||
| CommentContent = ([^*]|\*+[^*/])* | ||||
|  | ||||
| StringCharacter = [^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\"\\] | ||||
|  | ||||
| CharLiteral = \'([^\u2028\u2029\u000A\u000B\u000C\u000D\u0085\'\\]|{EscapeSequence})\' | ||||
| StringLiteral = \"({StringCharacter}|{EscapeSequence})*\" | ||||
|  | ||||
| EscapeSequence = \\[^\u2028\u2029\u000A\u000B\u000C\u000D\u0085]|\\+u{HexDigit}{4}|\\[0-3]?{OctDigit}{1,2} | ||||
|  | ||||
| /* \\(b|t|n|f|r|\"|\'|\\|[0-3]?{OctDigit}{1,2}|u{HexDigit}{4}) */ | ||||
|  | ||||
| JavaRest = [^\{\}\"\'/]|"/"[^*/] | ||||
| JavaCode = ({JavaRest}|{StringLiteral}|{CharLiteral}|{JavaComment})+ | ||||
|  | ||||
| DottedVersion =  [1-9][0-9]*(\.[0-9]+){0,2} | ||||
|  | ||||
| %% | ||||
|  | ||||
| <YYINITIAL> { | ||||
|   "%%".*{NL}?              { | ||||
|                              t.start(); | ||||
|                              yybegin(MACROS); | ||||
|                              macroDefinition = true; | ||||
|                              return symbol(USERCODE,userCode); | ||||
|                            } | ||||
|   .*{NL} | .+              { userCode.append(yytext()); } | ||||
|   <<EOF>>                  { return symbol(EOF); } | ||||
| } | ||||
|  | ||||
| <MACROS>   ("%{"|"%init{"|"%initthrow{"|"%eof{"|"%eofthrow{"|"%yylexthrow{"|"%eofval{").*{NL} | ||||
|                                      { string.setLength(0); yybegin(COPY); } | ||||
| <COPY> { | ||||
|   "%}".*{NL}                    { classCode = conc(classCode,string);  yybegin(MACROS);  } | ||||
|   "%init}".*{NL}                { initCode = conc(initCode,string);    yybegin(MACROS);  } | ||||
|   "%initthrow}".*{NL}           { initThrow = concExc(initThrow,string);  yybegin(MACROS); } | ||||
|   "%eof}".*{NL}                 { eofCode = conc(eofCode,string); yybegin(MACROS); } | ||||
|   "%eofthrow}".*{NL}            { eofThrow = concExc(eofThrow,string); yybegin(MACROS); } | ||||
|   "%yylexthrow}".*{NL}          { lexThrow = concExc(lexThrow,string); yybegin(MACROS); } | ||||
|   "%eofval}".*{NL}              { eofVal = string.toString(); yybegin(MACROS); } | ||||
|  | ||||
|   .*{NL}                        { string.append(yytext()); } | ||||
|  | ||||
|   <<EOF>>                       { throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); } | ||||
| } | ||||
|  | ||||
|  | ||||
| <MACROS> ^"%s" ("tate" "s"?)? {WSP}+   { inclusive_states = true; yybegin(STATELIST); } | ||||
| <MACROS> ^"%x" ("state" "s"?)? {WSP}+  { inclusive_states = false; yybegin(STATELIST); } | ||||
| <STATELIST> { | ||||
|   {Ident}                             { states.insert(yytext(),inclusive_states); } | ||||
|   ([\ \t]*","[\ \t]*)|([\ \t]+)       { } | ||||
|   {NL}                                { yybegin(MACROS);  } | ||||
|   <<EOF>>                       { throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); } | ||||
| } | ||||
|  | ||||
| <MACROS> { | ||||
|   "%char"                     { charCount = true;  } | ||||
|   "%line"                     { lineCount = true;  } | ||||
|   "%column"                   { columnCount = true; } | ||||
|   "%byaccj"                   { isInteger = true; | ||||
|                                 if (eofVal == null) | ||||
|                                   eofVal = "return 0;"; | ||||
|                                 eofclose = true; | ||||
|                               } | ||||
|   "%cup2"                     { cup2Compatible = true; | ||||
|                                 isImplementing = concExc(isImplementing, "Scanner"); | ||||
|                                 lineCount = true; | ||||
|                                 columnCount = true; | ||||
|                                 if (functionName == null) | ||||
|                                   functionName = "readNextTerminal"; | ||||
|                                 if (tokenType == null) | ||||
|                                   tokenType = "ScannerToken<? extends Object>"; | ||||
|                                 if (eofVal == null) | ||||
|                                   eofVal = "return token(SpecialTerminals.EndOfInputStream);"; | ||||
|                                 if (!Options.jlex) eofclose = true; | ||||
|                                 return symbol(UNICODE); // %unicode | ||||
|                               } | ||||
|   "%cup"                      { cupCompatible = true; | ||||
|                                 isImplementing = concExc(isImplementing, "java_cup.runtime.Scanner"); | ||||
|                                 if (functionName == null) | ||||
|                                   functionName = "next_token"; | ||||
|                                 if (tokenType == null) | ||||
|                                   tokenType = "java_cup.runtime.Symbol"; | ||||
|                                 if (eofVal == null) | ||||
|                                   eofVal = "return new java_cup.runtime.Symbol("+cupSymbol+".EOF);"; | ||||
|                                 if (!Options.jlex) eofclose = true; | ||||
|                               } | ||||
|   "%cupsym"{WSP}+{QualIdent} {WSP}*  { cupSymbol = yytext().substring(8).trim(); | ||||
|                                 if (cupCompatible) Out.warning(ErrorMessages.CUPSYM_AFTER_CUP, yyline); } | ||||
|   "%cupsym"{WSP}+{NNL}*       { throw new ScannerException(file,ErrorMessages.QUIL_CUPSYM, yyline); } | ||||
|   "%cupdebug"                 { cupDebug = true; } | ||||
|   "%eofclose"({WSP}+"true")?  { eofclose = true; } | ||||
|   "%eofclose"({WSP}+"false")  { eofclose = false; } | ||||
|   "%class"{WSP}+{ClassT} {WSP}*     { className = yytext().substring(7).trim();  } | ||||
|   "%ctorarg"{WSP}+{ArrType}{WSP}+   { yybegin(CTOR_ARG); ctorTypes.add(yytext().substring(8).trim()); } | ||||
|   "%function"{WSP}+{Ident} {WSP}*   { functionName = yytext().substring(10).trim(); } | ||||
|   "%type"{WSP}+{ArrType} {WSP}*     { tokenType = yytext().substring(6).trim(); } | ||||
|   "%integer"|"%int"           { isInteger = true;  } | ||||
|   "%intwrap"                  { isIntWrap = true;  } | ||||
|   "%yyeof"                    { isYYEOF = true;  } | ||||
|   "%notunix"                  { notUnix = true;  } | ||||
|   "%7bit"                     { isASCII = true; return symbol(ASCII); } | ||||
|   "%full"|"%8bit"             { return symbol(FULL); } | ||||
|   "%16bit"                    { populateDefaultVersionUnicodeProperties(); | ||||
|                                 return symbol(UNICODE); | ||||
|                               } | ||||
|   "%unicode"({WSP}+{DottedVersion})? { String v = yytext().substring(8).trim(); | ||||
|                                        if (v.length() == 0) { | ||||
|                                          populateDefaultVersionUnicodeProperties(); | ||||
|                                        } else { | ||||
|                                          try { | ||||
|                                            unicodeProperties = new UnicodeProperties(v); | ||||
|                                          } catch (UnicodeProperties.UnsupportedUnicodeVersionException e) { | ||||
|                                            throw new ScannerException | ||||
|                                              (file, ErrorMessages.UNSUPPORTED_UNICODE_VERSION, yyline); | ||||
|                                          } | ||||
|                                          charClasses.init | ||||
|                                            (Options.jlex ? 127 : unicodeProperties.getMaximumCodePoint(), this); | ||||
|                                        } | ||||
|                                        return symbol(UNICODE); | ||||
|                                      } | ||||
|  | ||||
|   "%caseless"|"%ignorecase"   { caseless = true; } | ||||
|   "%implements"{WSP}+.*       { isImplementing = concExc(isImplementing, yytext().substring(12).trim());  } | ||||
|   "%extends"{WSP}+{QClassT}{WSP}* { isExtending = yytext().substring(9).trim(); } | ||||
|   "%public"                   { isPublic = true; } | ||||
|   "%apiprivate"               { visibility = "private"; Skeleton.makePrivate(); } | ||||
|   "%final"                    { isFinal = true; } | ||||
|   "%abstract"                 { isAbstract = true; } | ||||
|   "%debug"                    { debugOption = true; } | ||||
|   "%standalone"               { standalone = true; isInteger = true; } | ||||
|   "%pack"                     { /* no-op - this is the only generation method */ } | ||||
|   "%include" {WSP}+ .*        { includeFile(yytext().substring(9).trim()); } | ||||
|   "%buffer" {WSP}+ {Number} {WSP}*   { bufferSize = Integer.parseInt(yytext().substring(8).trim()); } | ||||
|   "%buffer" {WSP}+ {NNL}*     { throw new ScannerException(file,ErrorMessages.NO_BUFFER_SIZE, yyline); } | ||||
|   "%initthrow" {WSP}+ {QUIL} {WSP}* { initThrow = concExc(initThrow,yytext().substring(11).trim()); } | ||||
|   "%initthrow" {WSP}+ {NNL}*  { throw new ScannerException(file,ErrorMessages.QUIL_INITTHROW, yyline); } | ||||
|   "%eofthrow"  {WSP}+ {QUIL} {WSP}*  { eofThrow = concExc(eofThrow,yytext().substring(10).trim()); } | ||||
|   "%eofthrow"  {WSP}+ {NNL}*  { throw new ScannerException(file,ErrorMessages.QUIL_EOFTHROW, yyline); } | ||||
|   "%yylexthrow"{WSP}+ {QUIL} {WSP}*  { lexThrow = concExc(lexThrow,yytext().substring(12).trim()); } | ||||
|   "%throws"    {WSP}+ {QUIL} {WSP}*  { lexThrow = concExc(lexThrow,yytext().substring(8).trim()); } | ||||
|   "%yylexthrow"{WSP}+ {NNL}*  { throw new ScannerException(file,ErrorMessages.QUIL_YYLEXTHROW, yyline); } | ||||
|   "%throws"    {WSP}+ {NNL}*  { throw new ScannerException(file,ErrorMessages.QUIL_THROW, yyline); } | ||||
|   "%scanerror" {WSP}+ {QualIdent} {WSP}* { scanErrorException = yytext().substring(11).trim(); } | ||||
|   "%scanerror" {WSP}+ {NNL}*  { throw new ScannerException(file,ErrorMessages.QUIL_SCANERROR, yyline); } | ||||
| // TODO: In the version of JFlex after 1.6, the %inputstreamctor directive will become a no-op: the InputStream ctor will never be emitted.   | ||||
|   "%inputstreamctor"({WSP}+"true")? { emitInputStreamCtor = true; }   | ||||
|   "%inputstreamctor"{WSP}+"false"   { emitInputStreamCtor = false; } | ||||
|  | ||||
|   {Ident}                     { return symbol(IDENT, yytext()); } | ||||
|   "="{WSP}*                   { if (null == unicodeProperties && ! isASCII) { | ||||
|                                   populateDefaultVersionUnicodeProperties(); | ||||
|                                 } | ||||
|                                 yybegin(REGEXP);  | ||||
|                                 return symbol(EQUALS);  | ||||
|                               } | ||||
|  | ||||
|   "/*"                        { nextState = MACROS; yybegin(COMMENT); } | ||||
|  | ||||
|   {EndOfLineComment}          { } | ||||
|  | ||||
|   ^"%%" {NNL}*                { if (null == unicodeProperties && ! isASCII) { | ||||
|                                   populateDefaultVersionUnicodeProperties(); | ||||
|                                 } | ||||
|                                 macroDefinition = false;  | ||||
|                                 yybegin(REGEXPSTART); | ||||
|                                 return symbol(DELIMITER);  | ||||
|                               } | ||||
|   "%"{Ident}                  { throw new ScannerException(file,ErrorMessages.UNKNOWN_OPTION, yyline, yycolumn); } | ||||
|   "%"                         { throw new ScannerException(file,ErrorMessages.UNKNOWN_OPTION, yyline, yycolumn); } | ||||
|   ^{WSP}+"%"                  { Out.warning(ErrorMessages.NOT_AT_BOL, yyline); yypushback(1); } | ||||
|  | ||||
|   {WSP}+                      { } | ||||
|   {NL}+                       { } | ||||
|   <<EOF>>                     { if ( yymoreStreams() ) { | ||||
|                                   file = (File) files.pop(); | ||||
|                                   yypopStream(); | ||||
|                                 } | ||||
|                                 else | ||||
|                                   throw new ScannerException(file,ErrorMessages.EOF_IN_MACROS); | ||||
|                               } | ||||
| } | ||||
|  | ||||
| <CTOR_ARG> { | ||||
|   {Ident} {WSP}*   { yybegin(MACROS); ctorArgs.add(yytext().trim()); } | ||||
|   [^]              { throw new ScannerException(file,ErrorMessages.CTOR_ARG,yyline,yycolumn); } | ||||
| } | ||||
|  | ||||
| <REGEXPSTART> { | ||||
|   ^ {WSP}* "%include" {WSP}+ .*  { includeFile(yytext().trim().substring(9).trim()); } | ||||
|   {WSP}* "/*"                    { nextState = REGEXPSTART; yybegin(COMMENT); } | ||||
|   {WSP}* "<"                     { yybegin(STATES); return symbol_countUpdate(LESSTHAN, null); } | ||||
|   {WSP}* "}"                     { return symbol_countUpdate(RBRACE, null); } | ||||
|   {WSP}* "//" {NNL}*             { } | ||||
|   {WSP}* "<<EOF>>" {WSPNL}* "{"  { actionText.setLength(0); yybegin(JAVA_CODE); | ||||
|                                    Symbol s = symbol_countUpdate(EOFRULE, null); | ||||
|                                    action_line = s.left+1; | ||||
|                                    return s; | ||||
|                                  } | ||||
|   ^ {WSP}* {NWSPNL}              { yypushback(yylength()); yybegin(REGEXP); } | ||||
|   {WSP} | {NL}                   { } | ||||
| } | ||||
|  | ||||
| <STATES> { | ||||
|   {Ident}                     { return symbol(IDENT, yytext()); } | ||||
|   ","                         { return symbol(COMMA); } | ||||
|   {WSPNL}+                    { } | ||||
|  | ||||
|   // "{" will be caught in REGEXP | ||||
|   ">"{WSPNL}*                 { yybegin(REGEXP); return symbol(MORETHAN); } | ||||
|  | ||||
|   <<EOF>>                     { throw new ScannerException(file,ErrorMessages.EOF_IN_STATES); } | ||||
| } | ||||
|  | ||||
|  | ||||
| <REGEXP> { | ||||
|   "<<EOF>>" {WSPNL}+ "{"  { actionText.setLength(0); yybegin(JAVA_CODE); action_line = yyline+1; return symbol(EOFRULE); } | ||||
|   "<<EOF>>"               { throw new ScannerException(file,ErrorMessages.EOF_WO_ACTION); } | ||||
|  | ||||
|   {WSPNL}*"|"{WSP}*$      { if (macroDefinition) { | ||||
|                               yybegin(EATWSPNL); | ||||
|                               return symbol(BAR); | ||||
|                             } | ||||
|                             else { | ||||
|                               yybegin(REGEXPSTART); | ||||
|                               return symbol(NOACTION); | ||||
|                             } | ||||
|                           } | ||||
|  | ||||
|   // stategroup | ||||
|   "{"            { yybegin(REGEXPSTART); return symbol(LBRACE); } | ||||
|  | ||||
|   {WSPNL}*"|"    { return symbol(BAR); } | ||||
|  | ||||
|   {WSPNL}*\"     { string.setLength(0); nextState = REGEXP; yybegin(STRING_CONTENT); } | ||||
|   {WSPNL}*"\\u{" { string.setLength(0); yybegin(REGEXP_CODEPOINT_SEQUENCE); } | ||||
|   {WSPNL}*"!"    { return symbol(BANG); } | ||||
|   {WSPNL}*"~"    { return symbol(TILDE); } | ||||
|   {WSPNL}*"("    { return symbol(OPENBRACKET); } | ||||
|   {WSPNL}*")"    { return symbol(CLOSEBRACKET); } | ||||
|   {WSPNL}*"*"    { return symbol(STAR); } | ||||
|   {WSPNL}*"+"    { return symbol(PLUS); } | ||||
|   {WSPNL}*"?"    { return symbol(QUESTION); } | ||||
|   {WSPNL}*"$"    { return symbol(DOLLAR); } | ||||
|   {WSPNL}*"^"    { bolUsed = true; return symbol(HAT); } | ||||
|   {WSPNL}*"."    { return symbol(POINT); } | ||||
|   {WSPNL}*"\\R"  { return symbol(NEWLINE); } | ||||
|   {WSPNL}*"["    { yybegin(CHARCLASS); return symbol(OPENCLASS); } | ||||
|   {WSPNL}*"/"    { return symbol(LOOKAHEAD); } | ||||
|    | ||||
|   {WSPNL}* "{" {WSP}* {Ident} {WSP}* "}" { return symbol_countUpdate(MACROUSE, makeMacroIdent()); } | ||||
|   {WSPNL}* "{" {WSP}* {Number}   { yybegin(REPEATEXP);  | ||||
|                                    return symbol(REPEAT,  | ||||
|                                                  new Integer(yytext().trim().substring(1).trim()));  | ||||
|                                  } | ||||
|  | ||||
|   {WSPNL}+ "{"    { actionText.setLength(0); yybegin(JAVA_CODE); action_line = yyline+1; return symbol(REGEXPEND); } | ||||
|   {NL}            { if (macroDefinition) { yybegin(MACROS); } return symbol(REGEXPEND); } | ||||
|  | ||||
|   {WSPNL}*"/*"    { nextState = REGEXP; yybegin(COMMENT); } | ||||
|  | ||||
|   {WSPNL}*"//"{NNL}*  { } | ||||
|  | ||||
|   {WSP}+          { } | ||||
|  | ||||
|   <CHARCLASS> { | ||||
|     {WSPNL}*"[:jletter:]"      { return symbol(JLETTERCLASS); } | ||||
|     {WSPNL}*"[:jletterdigit:]" { return symbol(JLETTERDIGITCLASS); } | ||||
|     {WSPNL}*"[:letter:]"       { return symbol(LETTERCLASS); } | ||||
|     {WSPNL}*"[:uppercase:]"    { return symbol(UPPERCLASS); } | ||||
|     {WSPNL}*"[:lowercase:]"    { return symbol(LOWERCLASS); } | ||||
|     {WSPNL}*"[:digit:]"        { return symbol(DIGITCLASS); } | ||||
|     {WSPNL}*"\\d"              { return symbol(DIGITCLASS); } | ||||
|     {WSPNL}*"\\D"              { return symbol(DIGITCLASSNOT); } | ||||
|     {WSPNL}*"\\s"              { return symbol(WHITESPACECLASS); } | ||||
|     {WSPNL}*"\\S"              { return symbol(WHITESPACECLASSNOT); } | ||||
|     {WSPNL}*"\\w"              { return symbol(WORDCLASS); } | ||||
|     {WSPNL}*"\\W"              { return symbol(WORDCLASSNOT); } | ||||
|     {WSPNL}*"\\p{"[^}]*"}"     { String trimmedText = yytext().trim(); | ||||
|                                  String propertyValue = trimmedText.substring(3,trimmedText.length()-1); | ||||
|                                  IntCharSet set = unicodeProperties.getIntCharSet(propertyValue); | ||||
|                                  if (null == set) { | ||||
|                                    throw new ScannerException(file,ErrorMessages.INVALID_UNICODE_PROPERTY, yyline, yycolumn + 3); | ||||
|                                  } | ||||
|                                  return symbol(UNIPROPCCLASS, set); | ||||
|                                } | ||||
|     {WSPNL}*"\\P{"[^}]*"}"     { String trimmedText = yytext().trim(); | ||||
|                                  String propertyValue = trimmedText.substring(3,trimmedText.length()-1); | ||||
|                                  IntCharSet set = unicodeProperties.getIntCharSet(propertyValue); | ||||
|                                  if (null == set) { | ||||
|                                    throw new ScannerException(file,ErrorMessages.INVALID_UNICODE_PROPERTY, yyline, yycolumn + 3); | ||||
|                                  } | ||||
|                                  return symbol(UNIPROPCCLASSNOT, set); | ||||
|                                } | ||||
|   } | ||||
|  | ||||
|   . { return symbol(CHAR, yytext().codePointAt(0)); } | ||||
| } | ||||
|  | ||||
| <EATWSPNL> {WSPNL}+  { yybegin(REGEXP); } | ||||
|  | ||||
|  | ||||
| <REPEATEXP> { | ||||
|   "}"          { yybegin(REGEXP); return symbol(RBRACE); } | ||||
|   "," {WSP}* {Number}  { return symbol(REPEAT, new Integer(yytext().substring(1).trim())); } | ||||
|   {WSP}+       { } | ||||
|  | ||||
|   <<EOF>>                 { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } | ||||
| } | ||||
|  | ||||
| <CHARCLASS> { | ||||
|   "{"{Ident}"}" { return symbol(MACROUSE, yytext().substring(1,yylength()-1)); } | ||||
|   "["     { balance++; return symbol(OPENCLASS); } | ||||
|   "]"     { if (balance > 0) balance--; else yybegin(REGEXP); return symbol(CLOSECLASS); } | ||||
|   "^"     { return symbol(HAT); } | ||||
|   "-"     { return symbol(DASH); } | ||||
|   "--"    { return symbol(DIFFERENCE); } | ||||
|   "&&"    { return symbol(INTERSECTION); } | ||||
|   "||"    { /* union is the default operation - '||' can be ignored */ } | ||||
|   "~~"    { return symbol(SYMMETRICDIFFERENCE); } | ||||
|   "\\u{"  { yybegin(CHARCLASS_CODEPOINT); } | ||||
|  | ||||
|   // this is a hack to keep JLex compatibilty with char class | ||||
|   // expressions like [+-] | ||||
|   "-]"    { yypushback(1); yycolumn--; return symbol(CHAR, (int)'-'); } | ||||
|  | ||||
|   \"      { string.setLength(0); nextState = CHARCLASS; yybegin(STRING_CONTENT); } | ||||
|  | ||||
|   .       { return symbol(CHAR, yytext().codePointAt(0)); } | ||||
|  | ||||
|   \n      { throw new ScannerException(file,ErrorMessages.EOL_IN_CHARCLASS,yyline,yycolumn); } | ||||
|  | ||||
|   <<EOF>> { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } | ||||
| } | ||||
|  | ||||
| <STRING_CONTENT> { | ||||
|   \"       { yybegin(nextState); return symbol(STRING, string.toString()); } | ||||
|   \\\"     { string.append('\"'); } | ||||
|   [^\"\\\u2028\u2029\u000A\u000B\u000C\u000D\u0085]+ { string.append(yytext()); } | ||||
|  | ||||
|   {NL}     { throw new ScannerException(file,ErrorMessages.UNTERMINATED_STR, yyline, yycolumn); } | ||||
|  | ||||
|   {HexNumber} { string.append( (char) Integer.parseInt(yytext().substring(2,yylength()), 16)); } | ||||
|   {OctNumber} { string.append( (char) Integer.parseInt(yytext().substring(1,yylength()), 8)); } | ||||
|   {Unicode4}  { string.append( (char) Integer.parseInt(yytext().substring(2,yylength()), 16)); } | ||||
|   {Unicode6}  { int codePoint = Integer.parseInt(yytext().substring(2,yylength()), 16); | ||||
|                 if (codePoint <= unicodeProperties.getMaximumCodePoint()) { | ||||
|                   string.append(Character.toChars(codePoint)); | ||||
|                 } else { | ||||
|                   throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn+2); | ||||
|                 } | ||||
|               } | ||||
|    | ||||
|   "\\u{"      { yybegin(STRING_CODEPOINT_SEQUENCE); } | ||||
|  | ||||
|   \\b { string.append('\b'); } | ||||
|   \\n { string.append('\n'); } | ||||
|   \\t { string.append('\t'); } | ||||
|   \\f { string.append('\f'); } | ||||
|   \\r { string.append('\r'); } | ||||
|  | ||||
|   \\. { string.append(yytext().substring(1, yytext().offsetByCodePoints(1, 1))); } | ||||
|  | ||||
|   <<EOF>>     { throw new ScannerException(file,ErrorMessages.EOF_IN_STRING); } | ||||
| } | ||||
|  | ||||
|  | ||||
| <REGEXP, CHARCLASS> { | ||||
|   {HexNumber} { return symbol(CHAR, Integer.parseInt(yytext().substring(2,yylength()), 16)); } | ||||
|   {OctNumber} { return symbol(CHAR, Integer.parseInt(yytext().substring(1,yylength()), 8)); } | ||||
|   {Unicode4}  { return symbol(CHAR, Integer.parseInt(yytext().substring(2,yylength()), 16)); } | ||||
|   {Unicode6}  { int codePoint = Integer.parseInt(yytext().substring(2,yylength()), 16); | ||||
|                 if (codePoint <= unicodeProperties.getMaximumCodePoint()) { | ||||
|                   return symbol(CHAR, codePoint); | ||||
|                 } else { | ||||
|                   throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn+2); | ||||
|                 } | ||||
|               } | ||||
|  | ||||
|   \\b { return symbol(CHAR, (int)'\b'); } | ||||
|   \\n { return symbol(CHAR, (int)'\n'); } | ||||
|   \\t { return symbol(CHAR, (int)'\t'); } | ||||
|   \\f { return symbol(CHAR, (int)'\f'); } | ||||
|   \\r { return symbol(CHAR, (int)'\r'); } | ||||
|  | ||||
|   \\. { return symbol(CHAR, yytext().codePointAt(1)); } | ||||
| } | ||||
|  | ||||
|  | ||||
| <JAVA_CODE> { | ||||
|   "{"        { balance++; actionText.append('{'); } | ||||
|   "}"        { if (balance > 0) { | ||||
|                  balance--; | ||||
|                  actionText.append('}'); | ||||
|                } | ||||
|                else { | ||||
|                  yybegin(REGEXPSTART); | ||||
|                  Action a = new Action(actionText.toString(), action_line); | ||||
|                  actions.add(a); | ||||
|                  return symbol(ACTION, a); | ||||
|                } | ||||
|              } | ||||
|  | ||||
|   {JavaCode}     { actionText.append(yytext()); } | ||||
|  | ||||
|   <<EOF>>     { throw new ScannerException(file,ErrorMessages.EOF_IN_ACTION, action_line-1); } | ||||
| } | ||||
|  | ||||
| <COMMENT> { | ||||
|  | ||||
|   "/"+ "*"  { commentbalance++; } | ||||
|   "*"+ "/"  { if (commentbalance > 0) | ||||
|                 commentbalance--; | ||||
|               else | ||||
|                 yybegin(nextState); | ||||
|             } | ||||
|  | ||||
|   {JFlexComment} { /* ignore */ } | ||||
|  | ||||
|   <<EOF>>     { throw new ScannerException(file,ErrorMessages.EOF_IN_COMMENT); } | ||||
| } | ||||
|  | ||||
| <REGEXP_CODEPOINT_SEQUENCE> { | ||||
|   "}"             { yybegin(REGEXP); return symbol(STRING, string.toString()); } | ||||
|   {HexDigit}{1,6} { int codePoint = Integer.parseInt(yytext(), 16); | ||||
|                     if (codePoint <= unicodeProperties.getMaximumCodePoint()) { | ||||
|                       string.append(Character.toChars(codePoint)); | ||||
|                     } else { | ||||
|                       throw new ScannerException(file,ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); | ||||
|                     } | ||||
|                   } | ||||
|   {WSPNL}+        { } | ||||
|   <<EOF>>         { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } | ||||
| } | ||||
|  | ||||
| <STRING_CODEPOINT_SEQUENCE> { // Specialized form: newlines disallowed, and doesn't return a symbol | ||||
|   "}"             { yybegin(STRING_CONTENT); } | ||||
|   {HexDigit}{1,6} { int codePoint = Integer.parseInt(yytext(), 16); | ||||
|                     if (codePoint <= unicodeProperties.getMaximumCodePoint()) { | ||||
|                       string.append(Character.toChars(codePoint)); | ||||
|                     } else { | ||||
|                       throw new ScannerException(file, ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); | ||||
|                     } | ||||
|                   } | ||||
|   {NL}            { throw new ScannerException(file,ErrorMessages.UNTERMINATED_STR, yyline, yycolumn); } | ||||
|   {WSP}+          { } | ||||
|   <<EOF>>         { throw new ScannerException(file,ErrorMessages.EOF_IN_STRING); } | ||||
| } | ||||
|  | ||||
| <CHARCLASS_CODEPOINT> { // Specialized form: only one codepoint allowed, no whitespace allowed | ||||
|   {HexDigit}{1,6} "}" { int codePoint = Integer.parseInt(yytext().substring(0, yylength() - 1), 16); | ||||
|                         if (codePoint <= unicodeProperties.getMaximumCodePoint()) { | ||||
|                           yybegin(CHARCLASS); | ||||
|                           return symbol(CHAR, codePoint); | ||||
|                         } else { | ||||
|                           throw new ScannerException(file, ErrorMessages.CODEPOINT_OUT_OF_RANGE, yyline, yycolumn); | ||||
|                         } | ||||
|                       } | ||||
|   <<EOF>>             { throw new ScannerException(file,ErrorMessages.EOF_IN_REGEXP); } | ||||
| } | ||||
|  | ||||
| .  { throw new ScannerException(file,ErrorMessages.UNEXPECTED_CHAR, yyline, yycolumn); } | ||||
| \R { throw new ScannerException(file,ErrorMessages.UNEXPECTED_NL, yyline, yycolumn); } | ||||
|  | ||||
| <<EOF>>  { if ( yymoreStreams() ) { | ||||
|              file = (File) files.pop(); | ||||
|              yypopStream(); | ||||
|            } | ||||
|            else { | ||||
|              return symbol(EOF); | ||||
|            } | ||||
|          } | ||||
							
								
								
									
										305
									
								
								samples/JFlex/java.jflex
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										305
									
								
								samples/JFlex/java.jflex
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,305 @@ | ||||
| /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * | ||||
|  * Copyright (C) 1998-2015  Gerwin Klein <lsf@jflex.de>                    * | ||||
|  * All rights reserved.                                                    * | ||||
|  *                                                                         * | ||||
|  * License: BSD                                                            * | ||||
|  *                                                                         * | ||||
|  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ | ||||
|  | ||||
| /* Java 1.2 language lexer specification */ | ||||
|  | ||||
| /* Use together with unicode.flex for Unicode preprocesssing */ | ||||
| /* and java12.cup for a Java 1.2 parser                      */ | ||||
|  | ||||
| /* Note that this lexer specification is not tuned for speed. | ||||
|    It is in fact quite slow on integer and floating point literals,  | ||||
|    because the input is read twice and the methods used to parse | ||||
|    the numbers are not very fast.  | ||||
|    For a production quality application (e.g. a Java compiler)  | ||||
|    this could be optimized */ | ||||
|  | ||||
|  | ||||
| import java_cup.runtime.*; | ||||
|  | ||||
| %% | ||||
|  | ||||
| %public | ||||
| %class Scanner | ||||
| %implements sym | ||||
|  | ||||
| %unicode | ||||
|  | ||||
| %line | ||||
| %column | ||||
|  | ||||
| %cup | ||||
| %cupdebug | ||||
|  | ||||
| %{ | ||||
|   StringBuilder string = new StringBuilder(); | ||||
|    | ||||
|   private Symbol symbol(int type) { | ||||
|     return new JavaSymbol(type, yyline+1, yycolumn+1); | ||||
|   } | ||||
|  | ||||
|   private Symbol symbol(int type, Object value) { | ||||
|     return new JavaSymbol(type, yyline+1, yycolumn+1, value); | ||||
|   } | ||||
|  | ||||
|   /**  | ||||
|    * assumes correct representation of a long value for  | ||||
|    * specified radix in scanner buffer from <code>start</code>  | ||||
|    * to <code>end</code>  | ||||
|    */ | ||||
|   private long parseLong(int start, int end, int radix) { | ||||
|     long result = 0; | ||||
|     long digit; | ||||
|  | ||||
|     for (int i = start; i < end; i++) { | ||||
|       digit  = Character.digit(yycharat(i),radix); | ||||
|       result*= radix; | ||||
|       result+= digit; | ||||
|     } | ||||
|  | ||||
|     return result; | ||||
|   } | ||||
| %} | ||||
|  | ||||
| /* main character classes */ | ||||
| LineTerminator = \r|\n|\r\n | ||||
| InputCharacter = [^\r\n] | ||||
|  | ||||
| WhiteSpace = {LineTerminator} | [ \t\f] | ||||
|  | ||||
| /* comments */ | ||||
| Comment = {TraditionalComment} | {EndOfLineComment} |  | ||||
|           {DocumentationComment} | ||||
|  | ||||
| TraditionalComment = "/*" [^*] ~"*/" | "/*" "*"+ "/" | ||||
| EndOfLineComment = "//" {InputCharacter}* {LineTerminator}? | ||||
| DocumentationComment = "/*" "*"+ [^/*] ~"*/" | ||||
|  | ||||
| /* identifiers */ | ||||
| Identifier = [:jletter:][:jletterdigit:]* | ||||
|  | ||||
| /* integer literals */ | ||||
| DecIntegerLiteral = 0 | [1-9][0-9]* | ||||
| DecLongLiteral    = {DecIntegerLiteral} [lL] | ||||
|  | ||||
| HexIntegerLiteral = 0 [xX] 0* {HexDigit} {1,8} | ||||
| HexLongLiteral    = 0 [xX] 0* {HexDigit} {1,16} [lL] | ||||
| HexDigit          = [0-9a-fA-F] | ||||
|  | ||||
| OctIntegerLiteral = 0+ [1-3]? {OctDigit} {1,15} | ||||
| OctLongLiteral    = 0+ 1? {OctDigit} {1,21} [lL] | ||||
| OctDigit          = [0-7] | ||||
|      | ||||
| /* floating point literals */         | ||||
| FloatLiteral  = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? [fF] | ||||
| DoubleLiteral = ({FLit1}|{FLit2}|{FLit3}) {Exponent}? | ||||
|  | ||||
| FLit1    = [0-9]+ \. [0-9]*  | ||||
| FLit2    = \. [0-9]+  | ||||
| FLit3    = [0-9]+  | ||||
| Exponent = [eE] [+-]? [0-9]+ | ||||
|  | ||||
| /* string and character literals */ | ||||
| StringCharacter = [^\r\n\"\\] | ||||
| SingleCharacter = [^\r\n\'\\] | ||||
|  | ||||
| %state STRING, CHARLITERAL | ||||
|  | ||||
| %% | ||||
|  | ||||
| <YYINITIAL> { | ||||
|  | ||||
|   /* keywords */ | ||||
|   "abstract"                     { return symbol(ABSTRACT); } | ||||
|   "boolean"                      { return symbol(BOOLEAN); } | ||||
|   "break"                        { return symbol(BREAK); } | ||||
|   "byte"                         { return symbol(BYTE); } | ||||
|   "case"                         { return symbol(CASE); } | ||||
|   "catch"                        { return symbol(CATCH); } | ||||
|   "char"                         { return symbol(CHAR); } | ||||
|   "class"                        { return symbol(CLASS); } | ||||
|   "const"                        { return symbol(CONST); } | ||||
|   "continue"                     { return symbol(CONTINUE); } | ||||
|   "do"                           { return symbol(DO); } | ||||
|   "double"                       { return symbol(DOUBLE); } | ||||
|   "else"                         { return symbol(ELSE); } | ||||
|   "extends"                      { return symbol(EXTENDS); } | ||||
|   "final"                        { return symbol(FINAL); } | ||||
|   "finally"                      { return symbol(FINALLY); } | ||||
|   "float"                        { return symbol(FLOAT); } | ||||
|   "for"                          { return symbol(FOR); } | ||||
|   "default"                      { return symbol(DEFAULT); } | ||||
|   "implements"                   { return symbol(IMPLEMENTS); } | ||||
|   "import"                       { return symbol(IMPORT); } | ||||
|   "instanceof"                   { return symbol(INSTANCEOF); } | ||||
|   "int"                          { return symbol(INT); } | ||||
|   "interface"                    { return symbol(INTERFACE); } | ||||
|   "long"                         { return symbol(LONG); } | ||||
|   "native"                       { return symbol(NATIVE); } | ||||
|   "new"                          { return symbol(NEW); } | ||||
|   "goto"                         { return symbol(GOTO); } | ||||
|   "if"                           { return symbol(IF); } | ||||
|   "public"                       { return symbol(PUBLIC); } | ||||
|   "short"                        { return symbol(SHORT); } | ||||
|   "super"                        { return symbol(SUPER); } | ||||
|   "switch"                       { return symbol(SWITCH); } | ||||
|   "synchronized"                 { return symbol(SYNCHRONIZED); } | ||||
|   "package"                      { return symbol(PACKAGE); } | ||||
|   "private"                      { return symbol(PRIVATE); } | ||||
|   "protected"                    { return symbol(PROTECTED); } | ||||
|   "transient"                    { return symbol(TRANSIENT); } | ||||
|   "return"                       { return symbol(RETURN); } | ||||
|   "void"                         { return symbol(VOID); } | ||||
|   "static"                       { return symbol(STATIC); } | ||||
|   "while"                        { return symbol(WHILE); } | ||||
|   "this"                         { return symbol(THIS); } | ||||
|   "throw"                        { return symbol(THROW); } | ||||
|   "throws"                       { return symbol(THROWS); } | ||||
|   "try"                          { return symbol(TRY); } | ||||
|   "volatile"                     { return symbol(VOLATILE); } | ||||
|   "strictfp"                     { return symbol(STRICTFP); } | ||||
|    | ||||
|   /* boolean literals */ | ||||
|   "true"                         { return symbol(BOOLEAN_LITERAL, true); } | ||||
|   "false"                        { return symbol(BOOLEAN_LITERAL, false); } | ||||
|    | ||||
|   /* null literal */ | ||||
|   "null"                         { return symbol(NULL_LITERAL); } | ||||
|    | ||||
|    | ||||
|   /* separators */ | ||||
|   "("                            { return symbol(LPAREN); } | ||||
|   ")"                            { return symbol(RPAREN); } | ||||
|   "{"                            { return symbol(LBRACE); } | ||||
|   "}"                            { return symbol(RBRACE); } | ||||
|   "["                            { return symbol(LBRACK); } | ||||
|   "]"                            { return symbol(RBRACK); } | ||||
|   ";"                            { return symbol(SEMICOLON); } | ||||
|   ","                            { return symbol(COMMA); } | ||||
|   "."                            { return symbol(DOT); } | ||||
|    | ||||
|   /* operators */ | ||||
|   "="                            { return symbol(EQ); } | ||||
|   ">"                            { return symbol(GT); } | ||||
|   "<"                            { return symbol(LT); } | ||||
|   "!"                            { return symbol(NOT); } | ||||
|   "~"                            { return symbol(COMP); } | ||||
|   "?"                            { return symbol(QUESTION); } | ||||
|   ":"                            { return symbol(COLON); } | ||||
|   "=="                           { return symbol(EQEQ); } | ||||
|   "<="                           { return symbol(LTEQ); } | ||||
|   ">="                           { return symbol(GTEQ); } | ||||
|   "!="                           { return symbol(NOTEQ); } | ||||
|   "&&"                           { return symbol(ANDAND); } | ||||
|   "||"                           { return symbol(OROR); } | ||||
|   "++"                           { return symbol(PLUSPLUS); } | ||||
|   "--"                           { return symbol(MINUSMINUS); } | ||||
|   "+"                            { return symbol(PLUS); } | ||||
|   "-"                            { return symbol(MINUS); } | ||||
|   "*"                            { return symbol(MULT); } | ||||
|   "/"                            { return symbol(DIV); } | ||||
|   "&"                            { return symbol(AND); } | ||||
|   "|"                            { return symbol(OR); } | ||||
|   "^"                            { return symbol(XOR); } | ||||
|   "%"                            { return symbol(MOD); } | ||||
|   "<<"                           { return symbol(LSHIFT); } | ||||
|   ">>"                           { return symbol(RSHIFT); } | ||||
|   ">>>"                          { return symbol(URSHIFT); } | ||||
|   "+="                           { return symbol(PLUSEQ); } | ||||
|   "-="                           { return symbol(MINUSEQ); } | ||||
|   "*="                           { return symbol(MULTEQ); } | ||||
|   "/="                           { return symbol(DIVEQ); } | ||||
|   "&="                           { return symbol(ANDEQ); } | ||||
|   "|="                           { return symbol(OREQ); } | ||||
|   "^="                           { return symbol(XOREQ); } | ||||
|   "%="                           { return symbol(MODEQ); } | ||||
|   "<<="                          { return symbol(LSHIFTEQ); } | ||||
|   ">>="                          { return symbol(RSHIFTEQ); } | ||||
|   ">>>="                         { return symbol(URSHIFTEQ); } | ||||
|    | ||||
|   /* string literal */ | ||||
|   \"                             { yybegin(STRING); string.setLength(0); } | ||||
|  | ||||
|   /* character literal */ | ||||
|   \'                             { yybegin(CHARLITERAL); } | ||||
|  | ||||
|   /* numeric literals */ | ||||
|  | ||||
|   /* This is matched together with the minus, because the number is too big to  | ||||
|      be represented by a positive integer. */ | ||||
|   "-2147483648"                  { return symbol(INTEGER_LITERAL, new Integer(Integer.MIN_VALUE)); } | ||||
|    | ||||
|   {DecIntegerLiteral}            { return symbol(INTEGER_LITERAL, new Integer(yytext())); } | ||||
|   {DecLongLiteral}               { return symbol(INTEGER_LITERAL, new Long(yytext().substring(0,yylength()-1))); } | ||||
|    | ||||
|   {HexIntegerLiteral}            { return symbol(INTEGER_LITERAL, new Integer((int) parseLong(2, yylength(), 16))); } | ||||
|   {HexLongLiteral}               { return symbol(INTEGER_LITERAL, new Long(parseLong(2, yylength()-1, 16))); } | ||||
|   | ||||
|   {OctIntegerLiteral}            { return symbol(INTEGER_LITERAL, new Integer((int) parseLong(0, yylength(), 8))); }   | ||||
|   {OctLongLiteral}               { return symbol(INTEGER_LITERAL, new Long(parseLong(0, yylength()-1, 8))); } | ||||
|    | ||||
|   {FloatLiteral}                 { return symbol(FLOATING_POINT_LITERAL, new Float(yytext().substring(0,yylength()-1))); } | ||||
|   {DoubleLiteral}                { return symbol(FLOATING_POINT_LITERAL, new Double(yytext())); } | ||||
|   {DoubleLiteral}[dD]            { return symbol(FLOATING_POINT_LITERAL, new Double(yytext().substring(0,yylength()-1))); } | ||||
|    | ||||
|   /* comments */ | ||||
|   {Comment}                      { /* ignore */ } | ||||
|  | ||||
|   /* whitespace */ | ||||
|   {WhiteSpace}                   { /* ignore */ } | ||||
|  | ||||
|   /* identifiers */  | ||||
|   {Identifier}                   { return symbol(IDENTIFIER, yytext()); }   | ||||
| } | ||||
|  | ||||
| <STRING> { | ||||
|   \"                             { yybegin(YYINITIAL); return symbol(STRING_LITERAL, string.toString()); } | ||||
|    | ||||
|   {StringCharacter}+             { string.append( yytext() ); } | ||||
|    | ||||
|   /* escape sequences */ | ||||
|   "\\b"                          { string.append( '\b' ); } | ||||
|   "\\t"                          { string.append( '\t' ); } | ||||
|   "\\n"                          { string.append( '\n' ); } | ||||
|   "\\f"                          { string.append( '\f' ); } | ||||
|   "\\r"                          { string.append( '\r' ); } | ||||
|   "\\\""                         { string.append( '\"' ); } | ||||
|   "\\'"                          { string.append( '\'' ); } | ||||
|   "\\\\"                         { string.append( '\\' ); } | ||||
|   \\[0-3]?{OctDigit}?{OctDigit}  { char val = (char) Integer.parseInt(yytext().substring(1),8); | ||||
|                         				   string.append( val ); } | ||||
|    | ||||
|   /* error cases */ | ||||
|   \\.                            { throw new RuntimeException("Illegal escape sequence \""+yytext()+"\""); } | ||||
|   {LineTerminator}               { throw new RuntimeException("Unterminated string at end of line"); } | ||||
| } | ||||
|  | ||||
| <CHARLITERAL> { | ||||
|   {SingleCharacter}\'            { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, yytext().charAt(0)); } | ||||
|    | ||||
|   /* escape sequences */ | ||||
|   "\\b"\'                        { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\b');} | ||||
|   "\\t"\'                        { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\t');} | ||||
|   "\\n"\'                        { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\n');} | ||||
|   "\\f"\'                        { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\f');} | ||||
|   "\\r"\'                        { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\r');} | ||||
|   "\\\""\'                       { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\"');} | ||||
|   "\\'"\'                        { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\'');} | ||||
|   "\\\\"\'                       { yybegin(YYINITIAL); return symbol(CHARACTER_LITERAL, '\\'); } | ||||
|   \\[0-3]?{OctDigit}?{OctDigit}\' { yybegin(YYINITIAL);  | ||||
| 			                              int val = Integer.parseInt(yytext().substring(1,yylength()-1),8); | ||||
| 			                            return symbol(CHARACTER_LITERAL, (char)val); } | ||||
|    | ||||
|   /* error cases */ | ||||
|   \\.                            { throw new RuntimeException("Illegal escape sequence \""+yytext()+"\""); } | ||||
|   {LineTerminator}               { throw new RuntimeException("Unterminated character literal at end of line"); } | ||||
| } | ||||
|  | ||||
| /* error fallback */ | ||||
| [^]                              { throw new RuntimeException("Illegal character \""+yytext()+ | ||||
|                                                               "\" at line "+yyline+", column "+yycolumn); } | ||||
| <<EOF>>                          { return symbol(EOF); } | ||||
							
								
								
									
										714
									
								
								samples/KiCad/Volume.sch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										714
									
								
								samples/KiCad/Volume.sch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,714 @@ | ||||
| EESchema Schematic File Version 2 | ||||
| LIBS:mfk_alps | ||||
| LIBS:mfk_connector | ||||
| LIBS:mfk_interface | ||||
| LIBS:power | ||||
| LIBS:device | ||||
| LIBS:transistors | ||||
| LIBS:conn | ||||
| LIBS:linear | ||||
| LIBS:regul | ||||
| LIBS:74xx | ||||
| LIBS:cmos4000 | ||||
| LIBS:adc-dac | ||||
| LIBS:memory | ||||
| LIBS:xilinx | ||||
| LIBS:special | ||||
| LIBS:microcontrollers | ||||
| LIBS:dsp | ||||
| LIBS:microchip | ||||
| LIBS:analog_switches | ||||
| LIBS:motorola | ||||
| LIBS:texas | ||||
| LIBS:intel | ||||
| LIBS:audio | ||||
| LIBS:interface | ||||
| LIBS:digital-audio | ||||
| LIBS:philips | ||||
| LIBS:display | ||||
| LIBS:cypress | ||||
| LIBS:siliconi | ||||
| LIBS:opto | ||||
| LIBS:atmel | ||||
| LIBS:contrib | ||||
| LIBS:valves | ||||
| LIBS:Volume-AlpsRK16814MG-cache | ||||
| EELAYER 27 0 | ||||
| EELAYER END | ||||
| $Descr A 11000 8500 | ||||
| encoding utf-8 | ||||
| Sheet 1 1 | ||||
| Title "ALPS RK16816MG with H-bridge" | ||||
| Date "4 apr 2015" | ||||
| Rev "" | ||||
| Comp "Mithat Konar" | ||||
| Comment1 "Copyright (C) 2015 Mithat Konar" | ||||
| Comment2 "CERN Open Hardware Licence v1.2" | ||||
| Comment3 "" | ||||
| Comment4 "" | ||||
| $EndDescr | ||||
| $Comp | ||||
| L SN754410 U1 | ||||
| U 1 1 550CA683 | ||||
| P 7600 4650 | ||||
| F 0 "U1" H 7600 5350 60  0000 C CNN | ||||
| F 1 "SN754410" H 7600 4000 60  0000 C CNN | ||||
| F 2 "mfk-DIP-16_AriesC84_e" H 7600 4650 60  0001 C CNN | ||||
| F 3 "~" H 7600 4650 60  0000 C CNN | ||||
| 	1    7600 4650 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| $Comp | ||||
| L DGND #PWR01 | ||||
| U 1 1 550CA83D | ||||
| P 8450 5500 | ||||
| F 0 "#PWR01" H 8450 5500 40  0001 C CNN | ||||
| F 1 "DGND" H 8450 5430 40  0000 C CNN | ||||
| F 2 "" H 8450 5500 60  0000 C CNN | ||||
| F 3 "" H 8450 5500 60  0000 C CNN | ||||
| 	1    8450 5500 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| $Comp | ||||
| L DGND #PWR02 | ||||
| U 1 1 550CA86E | ||||
| P 6600 5300 | ||||
| F 0 "#PWR02" H 6600 5300 40  0001 C CNN | ||||
| F 1 "DGND" H 6600 5230 40  0000 C CNN | ||||
| F 2 "" H 6600 5300 60  0000 C CNN | ||||
| F 3 "" H 6600 5300 60  0000 C CNN | ||||
| 	1    6600 5300 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	6900 4550 6600 4550 | ||||
| Wire Wire Line | ||||
| 	6600 4550 6600 5300 | ||||
| Wire Wire Line | ||||
| 	6900 4700 6600 4700 | ||||
| Connection ~ 6600 4700 | ||||
| Wire Wire Line | ||||
| 	8300 4550 8450 4550 | ||||
| Wire Wire Line | ||||
| 	8450 4250 8450 5500 | ||||
| Wire Wire Line | ||||
| 	8300 4700 8450 4700 | ||||
| Connection ~ 8450 4700 | ||||
| Wire Wire Line | ||||
| 	3900 4450 4600 4450 | ||||
| Wire Wire Line | ||||
| 	4400 4450 4400 4400 | ||||
| Wire Wire Line | ||||
| 	4600 4450 4600 4400 | ||||
| Wire Wire Line | ||||
| 	4400 5250 4400 5500 | ||||
| Wire Wire Line | ||||
| 	4600 5400 4600 5250 | ||||
| Wire Wire Line | ||||
| 	5700 4200 5700 4150 | ||||
| Wire Wire Line | ||||
| 	5700 4150 6150 4150 | ||||
| Wire Wire Line | ||||
| 	6150 4400 6900 4400 | ||||
| Wire Wire Line | ||||
| 	5700 4850 6900 4850 | ||||
| Wire Wire Line | ||||
| 	5700 4800 5700 4850 | ||||
| Wire Wire Line | ||||
| 	8300 4250 8450 4250 | ||||
| Connection ~ 8450 4550 | ||||
| Wire Wire Line | ||||
| 	6400 4250 6900 4250 | ||||
| Wire Wire Line | ||||
| 	6400 3250 6400 4250 | ||||
| Wire Wire Line | ||||
| 	6750 3750 8450 3750 | ||||
| Wire Wire Line | ||||
| 	8300 5000 8450 5000 | ||||
| Wire Wire Line | ||||
| 	8300 4100 8700 4100 | ||||
| Wire Wire Line | ||||
| 	6750 5150 6900 5150 | ||||
| $Comp | ||||
| L C C1 | ||||
| U 1 1 550CAD46 | ||||
| P 8700 4350 | ||||
| F 0 "C1" H 8700 4450 40  0000 L CNN | ||||
| F 1 "100n" H 8706 4265 40  0000 L CNN | ||||
| F 2 "mfk-C_4.0_2.5_2.5_0.5" H 8738 4200 30  0001 C CNN | ||||
| F 3 "~" H 8700 4350 60  0000 C CNN | ||||
| 	1    8700 4350 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	8700 4100 8700 4150 | ||||
| $Comp | ||||
| L DGND #PWR03 | ||||
| U 1 1 550CADFB | ||||
| P 8700 4700 | ||||
| F 0 "#PWR03" H 8700 4700 40  0001 C CNN | ||||
| F 1 "DGND" H 8700 4630 40  0000 C CNN | ||||
| F 2 "" H 8700 4700 60  0000 C CNN | ||||
| F 3 "" H 8700 4700 60  0000 C CNN | ||||
| 	1    8700 4700 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	8700 4700 8700 4550 | ||||
| Text Label 6400 3250 3    50   ~ 0 | ||||
| VOL_UP | ||||
| Text Label 6400 6150 1    50   ~ 0 | ||||
| VOL_DOWN | ||||
| $Comp | ||||
| L DGND #PWR04 | ||||
| U 1 1 550CB0E4 | ||||
| P 3150 2100 | ||||
| F 0 "#PWR04" H 3150 2100 40  0001 C CNN | ||||
| F 1 "DGND" H 3150 2030 40  0000 C CNN | ||||
| F 2 "" H 3150 2100 60  0000 C CNN | ||||
| F 3 "" H 3150 2100 60  0000 C CNN | ||||
| 	1    3150 2100 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	3650 1350 3650 1800 | ||||
| Wire Wire Line | ||||
| 	3100 2450 3850 2450 | ||||
| Text Label 3850 2450 2    50   ~ 0 | ||||
| VOL_UP | ||||
| Wire Wire Line | ||||
| 	3100 2650 3850 2650 | ||||
| Text Label 3850 2650 2    50   ~ 0 | ||||
| VOL_DOWN | ||||
| $Comp | ||||
| L PWR_FLAG #FLG05 | ||||
| U 1 1 550CB3B3 | ||||
| P 3400 2000 | ||||
| F 0 "#FLG05" H 3400 2095 30  0001 C CNN | ||||
| F 1 "PWR_FLAG" H 3400 2180 30  0000 C CNN | ||||
| F 2 "" H 3400 2000 60  0000 C CNN | ||||
| F 3 "" H 3400 2000 60  0000 C CNN | ||||
| 	1    3400 2000 | ||||
| 	-1   0    0    1    | ||||
| $EndComp | ||||
| $Comp | ||||
| L PWR_FLAG #FLG06 | ||||
| U 1 1 550CB3CC | ||||
| P 3900 1650 | ||||
| F 0 "#FLG06" H 3900 1745 30  0001 C CNN | ||||
| F 1 "PWR_FLAG" H 3900 1830 30  0000 C CNN | ||||
| F 2 "" H 3900 1650 60  0000 C CNN | ||||
| F 3 "" H 3900 1650 60  0000 C CNN | ||||
| 	1    3900 1650 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	3150 1900 3100 1900 | ||||
| Wire Wire Line | ||||
| 	3150 1900 3150 2100 | ||||
| Wire Wire Line | ||||
| 	3900 1650 3650 1650 | ||||
| Connection ~ 3650 1650 | ||||
| Wire Wire Line | ||||
| 	3400 2000 3150 2000 | ||||
| Connection ~ 3150 2000 | ||||
| $Comp | ||||
| L CONN_2 P4 | ||||
| U 1 1 550CCCA8 | ||||
| P 2750 2550 | ||||
| F 0 "P4" V 2700 2550 50  0000 C CNN | ||||
| F 1 "CTRL" V 2800 2550 50  0000 C CNN | ||||
| F 2 "mfk-TE_282834-2" H 2750 2550 60  0001 C CNN | ||||
| F 3 "" H 2750 2550 60  0000 C CNN | ||||
| 	1    2750 2550 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	4150 3250 4150 3850 | ||||
| $Comp | ||||
| L CONN_5 P1 | ||||
| U 1 1 550CCE69 | ||||
| P 2750 3450 | ||||
| F 0 "P1" V 2700 3450 50  0000 C CNN | ||||
| F 1 "AB I/O" V 2800 3450 50  0000 C CNN | ||||
| F 2 "mfk-TE_282834-5" H 2750 3450 60  0001 C CNN | ||||
| F 3 "" H 2750 3450 60  0000 C CNN | ||||
| 	1    2750 3450 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	3150 3250 4150 3250 | ||||
| Wire Wire Line | ||||
| 	4300 4100 4350 4100 | ||||
| Wire Wire Line | ||||
| 	4350 4100 4350 3350 | ||||
| Wire Wire Line | ||||
| 	4350 3350 3150 3350 | ||||
| Text Label 3150 3250 0    50   ~ 0 | ||||
| A_TOP | ||||
| Text Label 3150 3350 0    50   ~ 0 | ||||
| A_WIPER | ||||
| Text Label 3150 3550 0    50   ~ 0 | ||||
| B_TOP | ||||
| Text Label 3150 3650 0    50   ~ 0 | ||||
| B_WIPER | ||||
| $Comp | ||||
| L CONN_5 P2 | ||||
| U 1 1 550CCF9F | ||||
| P 2800 4800 | ||||
| F 0 "P2" V 2750 4800 50  0000 C CNN | ||||
| F 1 "CD I/O" V 2850 4800 50  0000 C CNN | ||||
| F 2 "mfk-TE_282834-5" H 2800 4800 60  0001 C CNN | ||||
| F 3 "" H 2800 4800 60  0000 C CNN | ||||
| 	1    2800 4800 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	3200 4600 4150 4600 | ||||
| Wire Wire Line | ||||
| 	3200 4700 3900 4700 | ||||
| Wire Wire Line | ||||
| 	3200 4900 3700 4900 | ||||
| Wire Wire Line | ||||
| 	5100 4950 5100 5700 | ||||
| Wire Wire Line | ||||
| 	5100 4950 4950 4950 | ||||
| Wire Wire Line | ||||
| 	3200 4800 3800 4800 | ||||
| Wire Wire Line | ||||
| 	5000 4600 5000 5600 | ||||
| Wire Wire Line | ||||
| 	5000 4600 4800 4600 | ||||
| Wire Wire Line | ||||
| 	4800 4600 4800 4700 | ||||
| Wire Wire Line | ||||
| 	4300 5400 4300 4950 | ||||
| Text Label 3200 4600 0    50   ~ 0 | ||||
| C_TOP | ||||
| Wire Wire Line | ||||
| 	3900 5400 4300 5400 | ||||
| Wire Wire Line | ||||
| 	4400 5400 4600 5400 | ||||
| Wire Wire Line | ||||
| 	3900 4700 3900 5400 | ||||
| $Comp | ||||
| L RK16814MG RV1 | ||||
| U 1 1 550CA765 | ||||
| P 4500 4500 | ||||
| F 0 "RV1" H 5850 5250 50  0000 C CNN | ||||
| F 1 "RK16814MG" H 5700 3600 50  0000 C CNN | ||||
| F 2 "mfk-ALPS_RK16814MG" V 4800 4900 60  0001 C CNN | ||||
| F 3 "~" V 4800 4900 60  0000 C CNN | ||||
| 	1    4500 4500 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	4150 4600 4150 4700 | ||||
| Text Label 3200 4700 0    50   ~ 0 | ||||
| C_WIPER | ||||
| Text Label 3200 4900 0    50   ~ 0 | ||||
| D_TOP | ||||
| Text Label 3200 5000 0    50   ~ 0 | ||||
| D_WIPER | ||||
| Wire Wire Line | ||||
| 	3900 3450 3900 4450 | ||||
| Connection ~ 4400 4450 | ||||
| Connection ~ 4400 5400 | ||||
| Text Label 3150 3450 0    50   ~ 0 | ||||
| AB_COMMON | ||||
| Wire Wire Line | ||||
| 	3600 5000 3200 5000 | ||||
| Text Label 3200 4800 0    50   ~ 0 | ||||
| CD_COMMON | ||||
| $Comp | ||||
| L +5VD #PWR07 | ||||
| U 1 1 550CE6FC | ||||
| P 7600 3650 | ||||
| F 0 "#PWR07" H 7600 3600 20  0001 C CNN | ||||
| F 1 "+5VD" H 7600 3750 50  0000 C CNN | ||||
| F 2 "" H 7600 3650 60  0000 C CNN | ||||
| F 3 "" H 7600 3650 60  0000 C CNN | ||||
| 	1    7600 3650 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| $Comp | ||||
| L +5VD #PWR08 | ||||
| U 1 1 550CE733 | ||||
| P 3650 1350 | ||||
| F 0 "#PWR08" H 3650 1300 20  0001 C CNN | ||||
| F 1 "+5VD" H 3650 1450 50  0000 C CNN | ||||
| F 2 "" H 3650 1350 60  0000 C CNN | ||||
| F 3 "" H 3650 1350 60  0000 C CNN | ||||
| 	1    3650 1350 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	3900 3450 3150 3450 | ||||
| Wire Wire Line | ||||
| 	4800 3850 4800 3550 | ||||
| Wire Wire Line | ||||
| 	4800 3550 3150 3550 | ||||
| Wire Wire Line | ||||
| 	4950 4100 5000 4100 | ||||
| Wire Wire Line | ||||
| 	5000 4100 5000 3650 | ||||
| Wire Wire Line | ||||
| 	5000 3650 3150 3650 | ||||
| Wire Wire Line | ||||
| 	3600 5000 3600 5700 | ||||
| Wire Wire Line | ||||
| 	3700 4900 3700 5600 | ||||
| Wire Wire Line | ||||
| 	3800 4800 3800 5500 | ||||
| Wire Wire Line | ||||
| 	3800 5500 4400 5500 | ||||
| Wire Wire Line | ||||
| 	3700 5600 5000 5600 | ||||
| Wire Wire Line | ||||
| 	3600 5700 5100 5700 | ||||
| $Bitmap | ||||
| Pos 10300 6850 | ||||
| Scale 1.000000 | ||||
| Data | ||||
| 89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52 00 00 00 5F 00 00 00 64 08 06 00 00 00 E0 F1 EC  | ||||
| 9B 00 00 00 04 73 42 49 54 08 08 08 08 7C 08 64 88 00 00 00 09 70 48 59 73 00 00 07 6C 00 00 07  | ||||
| 6C 01 9C F3 D5 25 00 00 13 B3 49 44 41 54 78 9C ED 9D 7B 7C 54 D5 B5 C7 BF EB CC 04 C2 43 1E 5A  | ||||
| 45 D0 2A F6 FA 82 52 A0 6A D5 D6 5A B1 3E 69 21 27 40 A3 F6 E1 55 51 4E 78 5C B5 B4 DA 56 3F 7E  | ||||
| 8A 69 BD D4 6A 6F 6F AB AD 90 13 90 48 3F B7 B6 E6 16 66 22 8A F6 65 44 AD AD A2 45 B4 A5 D6 17  | ||||
| 88 12 15 5A 0C F2 CA 64 E6 AC FB C7 3E 93 49 86 10 66 92 7D 48 E8 E5 F7 F9 E4 33 AF BD D7 59 FB  | ||||
| 77 76 F6 D9 7B ED B5 D6 16 55 E5 40 80 F8 C9 7B 80 59 05 14 5D A0 9E 3B 3B 6A 7D 6C C0 E9 69 05  | ||||
| 8A C0 85 96 CB F5 38 E4 40 E8 F9 E2 27 0F 01 9A 00 29 A0 B8 02 83 D5 73 3F 88 56 AB EE E3 40 E9  | ||||
| F9 63 29 8C 78 C2 72 63 23 D4 C5 1A 0E 14 F2 C7 45 5C BE 47 70 A0 90 3F 3E E2 F2 3D 82 83 E4 F7  | ||||
| 20 22 27 5F FC E4 67 C5 4F 5E DE 8D FA 31 60 4C 91 D5 C6 84 F5 BA 7A CD CB C5 4F 7E B6 AB F5 0B  | ||||
| 45 A4 E4 8B 9F 2C 03 56 02 4B C5 4F AE 14 3F 39 A2 0B 62 4E 04 FA 15 59 A7 5F 58 AF 28 88 9F 1C  | ||||
| 21 7E 72 25 B0 14 58 19 EA 1F 19 22 23 3F 54 BC 0E E8 13 7E 75 31 F0 92 F8 C9 CB 8A 14 75 4A 17  | ||||
| 55 38 B5 98 C2 A1 5E 2F 61 F4 04 A3 77 5D 94 37 20 92 79 7E 07 C4 E7 E3 01 60 B6 7A EE 3F 3A 91  | ||||
| 31 00 B8 0C A8 02 8E EA 82 1A 8D C0 AD C0 CF D5 73 B7 77 72 9D C3 80 7B 80 4B F6 52 24 05 54 A8  | ||||
| E7 D6 77 41 87 4E 61 9D FC 02 88 CF A2 11 98 A1 9E FB 50 5E FD 31 40 25 70 39 30 D8 82 4A 1F 00  | ||||
| 3F 03 16 AA E7 BE 98 77 AD CF 03 35 C0 F0 7D C8 88 E4 06 58 25 BF 08 E2 DB 62 11 70 3B F0 49 60  | ||||
| 26 70 96 35 85 F6 C4 53 C0 42 E0 69 E0 5B C0 35 45 D4 B5 7E 03 AC 91 DF 45 E2 0F 34 58 BD 01 36  | ||||
| 1F B8 35 FC 6B 13 0F A6 7D 35 B6 84 D9 24 FF 4E 8B B2 7A 33 AC B5 D3 26 F9 3F 04 9E B4 28 AF 37  | ||||
| E2 49 4C 3B AD C0 F6 03 F7 23 C0 0B C0 40 6B 42 7B 0F B6 03 E3 D4 73 5F B7 25 D0 EA 22 2B 54 EC  | ||||
| 06 9B 32 7B 11 6E B0 49 3C 44 B7 C8 5A 49 6E A5 F8 AF 80 47 D4 73 27 DA 16 1A 95 79 E1 6A 60 6B  | ||||
| 44 B2 F7 37 B6 62 DA 63 1D 91 90 AF 9E BB 09 98 13 85 EC 1E C0 9C B0 3D D6 11 E9 1E AE F8 C9 06  | ||||
| E0 9C C8 2E 10 3D 1E 57 CF 9D 10 95 F0 A8 ED F9 F1 88 E5 47 8D 48 F5 8F AC E7 8B 9F 1C 07 AC 89  | ||||
| 44 F8 FE C5 78 F5 DC 17 A2 10 1C 65 CF BF 2E 42 D9 FB 13 91 B5 23 AA A9 E6 61 C0 5B 40 A9 75 E1  | ||||
| 39 BC 05 BC 0C 9C 04 1C 1D E1 75 76 03 47 77 B6 F7 D0 55 44 35 A6 CD C0 3E F1 29 E0 2E E0 31 E0  | ||||
| 39 F5 DC 77 B3 3F 88 9F 1C 86 D9 B9 3A 17 D3 53 6D 1A F8 4A 31 ED B9 DD A2 4C 20 9A CD 94 18 F0  | ||||
| 06 F0 61 8B 62 D7 00 57 A8 E7 AE 2D E0 FA 63 81 FB B0 EB C1 B0 11 38 4E 3D 37 63 51 66 24 63 FE  | ||||
| 97 B1 4B FC 7C E0 F4 42 88 07 08 CB 9D 1E D6 B3 85 0F 63 DA 65 15 DD EA F9 E2 27 FB 03 1F C3 F4  | ||||
| B2 F1 18 4F B1 D3 81 2E BB 6D E4 A1 4E 3D 77 6F 7B AB FB 84 F8 C9 07 80 0A 4B BA 64 80 67 30 86  | ||||
| C3 35 E1 DF 8B EA B9 3B BB 2A B0 60 F2 C5 4F 96 00 E7 63 08 CE 92 7D 02 D1 CD 98 36 03 1F 55 CF  | ||||
| DD DC 55 01 E2 27 0F 07 FE 02 1C 6E 4D AB F6 08 80 57 C8 DD 8C 17 80 DF AA E7 B6 14 52 B9 98 07  | ||||
| EE 95 80 5F AC 76 DD C0 9C EE 10 0F A0 9E BB 59 FC E4 1C 8C B7 44 14 70 30 B3 AD 93 80 4B C3 EF  | ||||
| 3C 0A DC ED 2A A6 D7 0E 28 4E AF 6E A1 51 3D B7 CE 86 A0 50 4E A3 0D 59 05 A2 60 9E 7A AB AF E6  | ||||
| EA 5E 2E CF 0A 7A 2B F9 CF F5 72 79 56 D0 5B C9 3F D8 F3 7B 10 7B 75 EF EB 25 F2 AC A0 B7 92 7F  | ||||
| 5C 2F 97 67 05 BD 95 FC 13 7A B9 3C 2B E8 AD E4 5F 22 7E B2 D0 00 B8 4E 11 CA E9 F2 2A 39 4A 14  | ||||
| 43 FE FE 0C AD 3C 1E B3 9A B6 81 F3 43 79 FB 0B 05 F3 54 CC 0A B7 16 78 8D 9C 0D 67 1C 30 1A E8  | ||||
| 5B 8C 66 45 60 BE F8 C9 86 42 97 EA 1D 21 34 89 D8 34 B0 E5 A3 19 F8 2B C6 AC 90 B5 F9 3C 51 68  | ||||
| E5 82 C9 0F CD A9 0D E1 1F 00 E2 27 E3 C0 C9 E4 6E C6 29 C0 79 85 CA DC 07 4E C3 10 77 63 37 64  | ||||
| CC 0F E5 D8 C2 EF 80 E7 C9 91 FD 37 F5 DC 74 57 85 45 61 CF FF 09 F6 DC 46 14 F8 86 7A EE 0F BA  | ||||
| A0 C7 0D C0 1D 14 1E 3C BD 2F FC 54 3D F7 3F 2C C9 02 A2 21 7F 14 E6 5F D1 26 EE C5 84 11 35 17  | ||||
| 70 FD BE 98 30 9F E9 96 75 18 AD 9E BB CE A6 C0 A8 F6 70 57 01 67 5B 16 FB 22 50 DE 99 BF 64 E8  | ||||
| A8 9B C0 EC 31 D8 C4 13 EA B9 9F B1 2C 33 B2 A9 66 14 A6 E7 8F 01 1F DD 47 99 8F 62 9F 78 88 C8  | ||||
| 94 1E 15 F9 FF 8B 7D 5F CD B7 31 31 BD 9D 61 65 58 CE 26 B6 62 DA 63 1D 51 F9 6A EE C6 04 12 DB  | ||||
| 84 BF AF 99 45 F8 BB ED 5E BA 34 6C 8F 75 44 B9 C2 B5 16 BB 04 A4 8B 90 57 13 96 B7 05 9B ED 68  | ||||
| 87 C8 C8 57 CF FD 0B F6 86 9E 84 7A 6E 41 BB 51 61 B9 84 A5 EB 6E 0D DB 11 09 A2 0C FF BF 1C 18  | ||||
| 6A 49 DC 3D 11 97 DF 1B 86 76 27 69 C7 BE 10 D5 54 F3 68 4C 1E 03 1B 11 E4 7F 53 CF 1D D5 05 1D  | ||||
| D6 61 56 DF DD 45 13 30 46 3D F7 2D 0B B2 DA C1 7A CF 0F AD 88 4B B0 43 3C C0 82 FD 5C 2F 1F 83  | ||||
| 81 25 B6 AC AC 6D 11 C5 B0 33 1B 7B 16 C9 1D 18 D7 BF AE E0 BE B0 BE 0D 9C 8F 69 97 55 58 25 5F  | ||||
| FC E4 09 18 7B 8A 2D FC 5C 3D B7 A9 2B 15 C3 7A 3F B7 A8 CB 1D 61 FB AC C1 1A F9 A1 83 EC 52 A0  | ||||
| BF 2D 99 74 FF C1 69 EB C1 0B A6 5D 4B BB 93 C1 2A 1F 36 7B FE 37 80 33 2D CA FB A3 7A 6E B7 22  | ||||
| 5B C2 FA 7F B4 A4 0F 98 F6 7D C3 96 30 9B E4 7F D5 A2 2C B0 D7 6B 6D F6 7E B0 D8 4E 9B E4 5F 81  | ||||
| D9 D9 B1 81 2D D8 F3 AF 7C 20 94 67 03 CD 98 76 5A 81 35 F2 D5 73 1F 01 CA 29 EE 06 28 F0 3F C0  | ||||
| 43 79 DF DF 5B 88 ED BE 40 BD 9A 31 FB 01 6D F1 50 78 DD 62 16 39 CD 18 93 F6 23 36 F4 02 FB B9  | ||||
| 17 8A B9 01 6F 02 E7 A9 E7 7E 45 3D 77 12 26 C3 D4 2A 8C DB 75 B5 4D BD 42 79 41 28 FF 2C F5 DC  | ||||
| 49 EA B9 5F C1 6C 79 BE 59 40 7D EB C4 43 74 2B DC 8B 31 F6 95 BD 6D AE D7 02 D7 AB E7 6E EB A0  | ||||
| EE D1 51 AC 26 F7 26 57 FC E4 20 E0 C7 18 17 F8 8E 10 09 F1 10 6D 1C 6E 47 37 E0 3D C0 53 CF 4D  | ||||
| 46 72 D1 6E 40 FC A4 8B 31 47 1F D1 E6 EB C8 88 87 68 AD 9A F9 43 50 02 63 23 E9 75 C4 03 84 7A  | ||||
| 8D 21 67 11 8D 94 78 D8 0F F9 F3 C5 4F 7E 1A 18 6E 2B D8 61 7F 40 FC 64 05 26 40 23 D2 CC 59 07  | ||||
| C4 E1 05 FF AA E8 AD BE 9A FF 2F 70 90 FC 1E C4 41 F2 7B 10 07 C9 EF 41 1C 24 BF 07 71 90 FC 1E  | ||||
| 44 1C 40 FC 15 FD 91 CC 6C 94 B3 50 FA 01 7F 42 32 0B D5 9B DA 08 20 8B 96 1D 4D 26 B6 08 61 23  | ||||
| E2 FC 08 74 2E AA 27 80 AE 25 16 FC 40 AF 9E BA 21 2B 50 40 A8 4E 4C C7 61 32 EA 0C 41 83 35 68  | ||||
| FC 4E 9D 39 A9 D5 93 4C AA 93 8F 20 A4 08 62 B3 88 65 6E 41 39 09 E1 61 E2 A9 FB F4 AA 8A 4E A3  | ||||
| CE A5 BA FE 34 24 98 08 72 2E E8 56 90 75 A4 A9 D6 D9 EE C6 D6 32 FE 8A 0F 41 7A 16 22 67 A2 64  | ||||
| 10 79 9A DD 25 3F D5 6B 27 6E 33 ED A9 1F 4B 46 EF 40 58 AD 9E 7B 4B 6B BD 9A E5 E7 10 38 37 21  | ||||
| 34 A8 E7 DE DE AE DD 8E DC 8D EA D7 51 8E 02 EA 29 49 DD AF 57 55 6C 96 EA E5 E3 10 67 16 30 0A  | ||||
| 65 23 8E 3C CE A6 41 4B 74 DE 84 34 80 DC 5B 7F 08 69 FD 26 AA 9F 44 64 17 C8 E3 34 97 DC A5 D7  | ||||
| 4E 6C 16 EE 7A 78 10 7D 53 7F 04 F2 3D 04 DE 45 63 67 6B E5 A4 57 C4 5F 71 32 64 D6 61 F6 44 1D  | ||||
| DA 1F A3 F1 0E 64 4E 69 BD 51 7E F2 7E CC A1 03 6D B1 0D 71 CE D7 19 93 9F 0D CB 28 C6 D0 B5 85  | ||||
| F6 CB F9 9D 88 73 BA CE 98 DC A1 AF 8C F8 89 AF 83 74 E4 2E BE 03 63 A4 FB 93 2C 4C 8C C4 91 A7  | ||||
| 80 FC 23 42 5E 25 96 3A 43 AF AE F8 A7 2C 4C 4C C0 91 C7 50 1E D5 4A B7 35 FF A7 D4 D4 5F 86 EA  | ||||
| FD C0 2F D5 73 2F 6B D3 EE ED 61 BB C3 5D 3A D9 4C 26 7D 26 F1 F8 79 A8 2E 20 3F D1 87 EA EF E9  | ||||
| CB 34 00 52 F2 67 60 64 9E 2E 6B E9 D7 EF 53 0E A5 A9 9B 31 C4 6F 04 AE 47 F5 4B 18 8F E0 61 38  | ||||
| E9 FC A4 CD 03 80 DF A3 72 0E A2 97 62 6C 35 47 42 7C 96 51 3E 31 11 43 FC 1B 88 7C 11 62 A7 A2  | ||||
| F2 00 30 08 0D F2 DD 07 1D 60 13 C8 25 28 D3 41 5E 07 FA A3 C1 BC 0E C8 CD D2 73 63 D8 B8 EB 88  | ||||
| 65 46 12 E8 19 20 FF 85 92 C0 73 9F 31 52 E5 76 0C F1 EB 40 AE 44 65 16 B0 1E 38 9E 74 C9 B7 F7  | ||||
| 2E BB 53 0C 04 9E 04 BD 08 F8 1A 9A 71 D1 58 0B AA 3F 0C DB 51 8F 52 16 72 F2 32 48 23 A9 F7 76  | ||||
| 90 92 2A 60 24 CA A3 08 67 A1 94 61 B8 1D CB AE 5D F3 E2 A8 5C 0C 0A AA DF D4 CA F2 FB 01 A4 7A  | ||||
| F9 5F 11 67 8D F9 2D 0F E9 92 6B 74 F6 E7 DE 01 90 9A E4 31 28 77 82 8E 36 A4 38 E5 A1 AC FF 56  | ||||
| CF FD 05 80 D4 26 2A 49 89 0B 9C 2C 0B 13 23 75 66 F9 FA 36 64 7E 4D BD B2 C7 CC 35 93 20 DC 0B  | ||||
| D2 E1 59 27 52 57 17 83 3E 31 20 4D 89 F3 2B 9D 5E BE 09 D8 80 49 C3 D2 16 46 67 0D AE D6 CA 29  | ||||
| 4F 1B D9 0F 36 22 41 02 E9 A0 3D 85 41 09 B4 32 D4 FD D7 A6 ED F5 D7 A3 3A 10 58 AD 9E EB B6 EA  | ||||
| 79 4F DD C3 CC AE D8 A1 A0 E2 27 CB 01 08 32 B3 B5 72 EA EB 21 67 71 94 65 C0 E7 E2 A0 E6 3C 12  | ||||
| 47 73 21 F2 87 A6 5F 62 6B 9F 9D 40 7F F9 E9 F2 C3 28 29 C9 FE B2 2D 4B 7C 88 D7 C2 D7 21 A1 8E  | ||||
| C6 49 49 E4 02 F1 13 6D 49 FC 00 E8 4B 4C 8E C7 F4 42 80 16 1A FF FC 38 84 E7 C1 C4 32 BF 21 88  | ||||
| 01 DA 61 E2 08 AD A8 C8 88 9F 5C 02 DC 48 5A D7 8B 9F 5C 0B F2 1E 12 AC 03 7E A6 33 CA D7 C8 CF  | ||||
| 7E 3D 00 E3 67 93 61 67 3A B7 FF 2B 2D CF 84 23 43 57 CE 5E 01 F4 D5 F6 9D 06 50 0D 87 69 6D B7  | ||||
| 11 A4 B3 2B B6 43 F8 1C 35 49 92 76 10 73 BE 2D 7E 68 AF 13 A7 4F B8 87 73 72 9C 6C C6 6F 4D B7  | ||||
| E6 2C 0B 1B BA 19 38 96 52 1D 48 2E B9 55 7B 37 0E 71 9A D0 00 90 AC D9 F8 D0 F0 75 72 87 D1 38  | ||||
| 81 B4 8D 01 0B 74 DE BC A0 F5 53 AA 34 4D 7C 1F B1 6F 2D C1 F7 29 71 52 98 A8 93 53 CD 7F 99 4C  | ||||
| 04 E6 C8 E2 FA 31 68 6B 24 E0 07 3A B7 62 57 AE E2 96 2D 30 2C 0D F4 97 AA 2A 87 61 C5 9E DE 27  | ||||
| C1 9E 5F 71 98 E1 D0 79 A3 C3 2A 01 43 71 10 60 00 48 6E EB 31 67 4B 8B C5 31 E9 50 8E 43 E2 E3  | ||||
| 81 C7 01 4C 6F 77 8E 05 60 67 BF 77 E8 9B C9 46 70 1F 25 BE 5F A2 9E D7 12 0A 1A 19 4A 0C 6F 8A  | ||||
| FE 1D 64 0C 4A 99 56 BA 0F 16 D9 C2 7D 42 E7 4C F9 07 70 8B 54 55 7D 9B C3 3F 71 04 B1 F4 D1 88  | ||||
| 7E 0B 98 46 9A CB 78 E7 CF F3 19 3E 3E 03 0C 91 C5 CB 8E 6D 9D 85 39 47 8C 25 20 0E 34 EA BC 79  | ||||
| 81 D4 2C 57 54 40 F2 D2 91 69 11 E9 C9 94 97 C3 37 17 D2 91 63 D7 CC 49 9B F0 93 3B 00 A5 5F BF  | ||||
| 23 F5 F2 0B F7 70 E0 72 00 13 66 A3 CE 54 F1 FD 12 01 A1 24 F6 C5 F0 F7 B7 F5 DA 89 CD ED CB 1F  | ||||
| 99 3B 6F 56 35 FB FE 9F E1 6B F6 34 9E AB A4 AA CA 01 90 BB 57 0E 92 9A FA 2F 4B 5D 5D B7 32 FE  | ||||
| 49 5D 5D 4C FC E4 0F C5 AF 3F 57 E7 CD 0B 74 F6 E7 DE D1 CA B2 D5 48 E8 1A 22 3A 3E FC 4F 5A 0F  | ||||
| 40 10 AB 90 AA 2A 47 AA 1A E2 04 8E 09 82 96 B0 AD 69 CD 4E 4B 47 8B BF FC D3 90 1D 26 F4 2B 85  | ||||
| 2B D4 9A C9 E4 62 59 58 FF F1 D6 AF 6B 12 57 4A F5 F2 71 6A C6 96 97 80 81 EC DA D9 9A 9F 4D 16  | ||||
| D7 1F 2F 7E FD E7 01 E2 A8 7E 0F 91 F3 80 EB 60 D8 17 F0 93 4D E4 A6 9D DF DB F3 AA FA 2B F1 93  | ||||
| 7F 00 8E 6C 2D A7 84 B6 FA F8 4F 20 98 8D E8 14 86 8F 7F 53 AA EB 9F A2 AF 4E 44 39 84 F7 4B AE  | ||||
| 10 B8 48 8B DB B4 CE 61 6B 89 07 CC 05 FD AA F8 C9 E7 50 5E 02 86 23 61 AE 66 D5 95 E1 EB F7 10  | ||||
| 59 84 72 27 C3 C7 57 42 53 1F E0 18 F3 9B 98 F6 CC 9A FA 06 7E F2 AF C0 68 70 56 89 9F CC 4E B5  | ||||
| 87 14 AC CF 0C 37 41 75 F2 09 84 B3 71 F4 79 F1 13 CF 83 F4 03 19 85 C8 56 59 52 77 12 D2 67 1E  | ||||
| CA 23 20 D5 E2 27 2A C1 79 37 9C 31 39 E2 27 6E 70 B4 B2 FC 77 66 AA C7 36 CC 14 6D 14 D0 02 F2  | ||||
| 5D 1A D7 E4 3B 9B 6E 40 B9 1F 93 BF 32 7B 83 6E CF 0E 31 EA 4D DA 82 F2 05 4C B2 D1 A3 10 BD 04  | ||||
| 38 04 78 0D 8D 7F AB CB C4 03 EA 95 2F 08 A7 72 1B 81 D3 10 AE 44 B8 08 78 15 B8 49 2B CB 17 03  | ||||
| 50 59 7E 2F 22 37 63 76 A2 8E C7 10 BF 13 74 B6 7A 65 0F 81 79 52 40 6C 1A C8 4A F3 91 4F 82 B4  | ||||
| 80 14 1C D5 A2 A0 48 E6 52 44 C3 9D 39 39 25 E4 64 13 2A 97 EA 55 15 9B 75 86 FB 28 AA D7 01 4D  | ||||
| E6 77 9D 08 38 A8 AC 20 D6 B2 A4 75 33 45 AA 1A E2 1C B9 6D 3C 4E 66 00 DB D3 CF B4 7D 60 B5 59  | ||||
| 6C BC AC 9E 7B B2 F8 2B 8E 41 83 D1 68 E6 79 9D 39 E5 BD 7C C5 A4 AA 21 CE 51 EF 8F 23 23 23 70  | ||||
| 82 97 99 31 E5 95 B6 C4 CB A2 07 CF 24 9D 09 74 66 F9 33 B9 6B F8 25 38 C3 4F 25 90 94 7A 93 9E  | ||||
| EF AC E1 66 E5 19 1F 43 09 6B 75 7A 59 87 E9 D5 E5 EE 95 7D 29 69 39 8D B8 64 08 1A 9F 6B 7D 4E  | ||||
| E5 97 5B 98 18 49 4C 8F A5 74 C0 6A B6 ED 28 A5 6F FC 04 44 B7 E8 D5 65 AF 4A 6D 43 29 E9 0F C6  | ||||
| 93 49 EF D2 CA 29 7B CD A7 6C 64 30 8A 40 36 68 A5 BB 47 18 AC F8 75 83 71 FA 8C 25 23 03 C8 C4  | ||||
| D7 B4 4E D5 0B D9 C9 CA 27 7F 9F 15 22 80 D4 26 86 90 6A 51 F5 2A BA E4 38 DB 1B 71 40 A4 58 97  | ||||
| DA 86 52 52 B2 15 FA 34 13 6D 7E E6 FD 8A 83 56 CD 1E C4 41 F2 7B 10 5D 22 5F AA AA 1C 59 52 D7  | ||||
| 69 96 56 A9 4D 0C 91 BB 57 0E EA F0 37 DF 2F 91 DA 86 D2 D6 B5 C0 E2 BA 43 F3 D7 01 02 22 F7 3C  | ||||
| 7C 64 87 F5 EF 5E D9 57 6A 1B 4A 25 6F 19 2D BE 5F D2 D1 7A 42 6A 1B 4A A5 B6 A1 B4 7D D9 BA C1  | ||||
| E2 D7 75 18 BA D4 AA 5F 5D 5D 0C 40 16 3C 34 54 EE 5E B9 87 F7 9D DC 53 37 50 16 D5 0F EB 48 46  | ||||
| 21 28 F6 81 FB 77 4C 00 C4 CD 40 7F 84 06 54 7F AC 5E 79 22 57 36 F9 25 CC FA E0 18 4C FE E1 35  | ||||
| C0 2A 88 CD 57 6F D2 96 B0 CC 2F 80 4B 41 6F 00 F9 22 26 FD FA 3F 81 85 78 EE 2D F8 89 5B 40 E6  | ||||
| 62 A2 19 DF 46 E4 86 D0 D4 DB AC 9E 5B 2A 7E 72 35 70 2A 2A 17 6A 65 D9 6F DA 5C FB 15 60 10 8D  | ||||
| 6B 86 67 4D 17 C6 FE AF CF 02 6F E1 B9 C7 50 9D 9C 86 70 27 C6 CC 1B 00 2F A0 BA 8A 4C 9F DB 5B  | ||||
| 67 21 7E A2 D6 98 04 E4 D6 70 7A 78 06 F0 3E 48 AD 7A 65 73 A5 66 F9 89 E0 54 A3 9C 83 E9 00 9B  | ||||
| 40 6E 56 AF AC A8 10 A6 62 7B FE 89 C0 6D 21 A9 01 CA 04 90 5F 49 75 FD 67 20 34 4B A0 B7 62 0E  | ||||
| 13 58 0B FA 3C 66 EE 3B 17 49 77 10 A2 23 3F C0 E4 E8 69 02 06 A3 D2 80 9F 98 09 F2 1D 0C F1 DB  | ||||
| 81 41 21 F1 6D B1 DC BC B4 AE B0 91 EA E5 E3 30 F3 FA 23 18 31 36 97 74 C3 E1 82 B0 6C 02 BF 6E  | ||||
| 10 C2 77 30 1D E3 45 E0 59 E0 44 44 AE 27 D6 D2 81 4B BA DE 8A 21 BE C9 E8 21 0D E2 AF E8 8F 3A  | ||||
| BF 35 6D 67 1B C6 B8 38 02 B4 56 6A EA 8B CA 74 52 FC B0 23 7A 1B 3B 52 C3 08 F4 DF 30 C9 42 1D  | ||||
| 24 B8 02 B2 B6 97 96 4F A0 72 AE 7A EE 38 F5 CA 4F 87 D8 28 20 85 CA 67 43 AB 63 5B AC 27 93 39  | ||||
| 1E DE 3D 1C 47 4E 09 7B F1 55 E1 85 16 30 34 35 84 C6 C1 87 62 CE CC 6D A3 75 B0 CC 14 E1 A2 9C  | ||||
| 5E B1 69 6D 0A B4 79 9F BD 41 CE 32 F5 2A 9A 48 A7 4E 07 39 5F 3D 77 AC 7A EE 99 94 A4 8E 03 76  | ||||
| 21 9C 2D B5 89 FC 15 EE 26 34 76 22 8D 83 3F 84 06 A7 68 E5 E4 24 9A B9 16 63 AD 4C 40 6C 04 9E  | ||||
| 7B 02 E6 1C 5F 50 BD 23 7F 28 EC 0C C5 92 BF 8B 98 73 87 CE AD D8 A5 33 CB D7 87 BB 38 80 B4 CE  | ||||
| FD D5 AB 68 D2 CA B2 55 B9 CF 93 DE C4 1C 66 10 63 FB EE FC E3 35 6A 74 D6 D4 D7 D5 F3 5A F4 9A  | ||||
| B2 30 3F BE 7C C8 68 26 4B B5 A2 22 A3 F3 26 A4 D1 A0 9D 7F BD 5E 33 65 1D F0 37 E0 63 E2 2F 0B  | ||||
| 4F 71 D6 69 98 5E F8 07 94 29 02 62 7A 29 9F 02 FE C1 D0 E6 55 60 4C BE D9 3D 04 00 B3 6D 29 7F  | ||||
| 07 A0 59 8F CD D3 6F A9 56 4E 7A 45 E7 4D 48 B7 59 64 9D 11 D6 5C A0 DE A4 9D 66 F1 F8 EE BD 98  | ||||
| 5D B9 C3 A8 5E 51 70 3E B7 62 E7 F9 6F EA F4 B2 5C 02 B7 58 EC 2F 04 01 B4 D9 46 93 EA FA 99 88  | ||||
| 7A 98 21 2A 2B DF 3C 04 63 4E 5E AF D0 0E 92 22 C9 40 50 48 A7 73 79 75 94 D7 F6 E8 4F AA CB 11  | ||||
| B9 09 8D 5D 20 FE 8A 67 80 D1 20 3F 42 78 0F D5 F9 2C 7A F0 0C 24 33 14 95 3E 40 BD 56 54 64 00  | ||||
| A4 A6 7E 3A 1A CC 01 39 11 C8 6E 54 18 FD 1C 69 7F 15 D1 97 F7 54 2F 1B 58 2D F5 E2 67 7D 7E 87  | ||||
| B5 91 D1 32 02 93 D6 7D 9F B0 BA C8 92 85 F5 67 E1 E8 02 60 37 CA B3 38 6A AC 9D 2A E7 51 F0 49  | ||||
| A1 6A 6C E7 71 CD CD 5A E2 DA 87 3D 2C EA CE 32 D0 9B CC D0 93 31 A6 60 47 1E 24 9D 7E 0F C7 99  | ||||
| 4F 26 98 86 88 E9 14 62 86 29 59 94 38 15 95 C5 20 CD 08 AB 41 B7 84 FA 9D 0B 74 38 33 EB A0 95  | ||||
| A9 D0 52 F2 24 A2 7B 66 AA CD 50 F0 C1 36 76 57 B8 4E 30 03 04 54 2E 6A 3B F4 88 9F DC 44 E1 C7  | ||||
| B4 6E 07 86 41 EC 38 CC 89 40 90 89 7F 04 69 3F 2B D3 CA B2 D5 E2 27 37 62 02 94 47 03 EF F3 F6  | ||||
| 21 AB 74 DE 84 B4 F8 C9 0D 88 4C 05 DD 0D 6C 67 77 A9 99 11 05 32 23 AC 5D A6 33 CA 7F DD 46 BF  | ||||
| 37 28 98 7C 5D 07 8C 43 F5 7E F5 42 63 5E 17 61 79 91 E5 1C 11 4A FD B8 D4 D5 F5 11 90 70 53 7D  | ||||
| 78 11 42 8C 8B 49 C0 8D E2 AF 38 46 16 2F 3B 16 D1 9B C2 DF F2 E7 C5 CB 31 DE 0F E3 81 47 B2 EE  | ||||
| 1A C0 0A D0 8F 00 A3 51 79 B8 75 4F 42 B3 9E 12 72 5A 76 9D 20 7E FD B9 EC E9 5D D0 09 E4 29 F3  | ||||
| 22 D7 C9 A2 07 CF 94 AA 86 B8 D4 D4 5F 26 7E B2 5E 16 D4 9F 54 44 3B 2D 93 AF 7A 5F F8 FA 23 B6  | ||||
| F6 79 1F 3F B9 1D 95 87 8B 93 21 3F 0E DF 4D 86 CC 06 32 B1 F5 E4 D2 09 B4 1F 93 03 5D DE E6 53  | ||||
| 6E E7 4C 65 45 EB 7B 87 5C 19 D1 AC 07 C5 7F 92 6A DA 8A 9F FC 00 F4 F7 45 E9 37 B4 79 01 E8 B3  | ||||
| C0 58 82 E0 69 86 37 6D 0B A7 C2 93 89 E9 5D C5 88 2A 90 FC 74 0B B0 01 D5 F6 29 B4 D2 DA 8C F1  | ||||
| 20 68 04 D0 4A F7 97 88 FE 3B B0 16 D3 4B DF 45 F4 36 CC D9 56 1B 42 39 80 6E 0E EB ED 71 D8 8B  | ||||
| 56 96 2D 0B ED F6 7F C2 CC A3 57 85 CF 8C 0D E1 5F 0E 87 B5 3C 11 5E EB 0D 32 F1 5C 0A B0 54 C9  | ||||
| 63 98 05 E1 6B C4 72 91 8E EA 95 27 8C 4B 0B 6B 30 6B 95 2D 08 DF 47 79 14 D8 40 20 A9 90 96 2D  | ||||
| E1 E7 3D C6 74 F3 E0 6E B9 00 E4 0E CC EC 2A 00 9E 03 F9 2E 43 53 93 3B E7 B1 3D FE 0F E4 2C B5  | ||||
| B8 3A B8 3B 5D 00 00 00 00 49 45 4E 44 AE 42 60 82 AC $EndBitmap | ||||
| EndData | ||||
| $EndBitmap | ||||
| Wire Wire Line | ||||
| 	5350 4600 5250 4600 | ||||
| Wire Wire Line | ||||
| 	5350 4400 5250 4400 | ||||
| $Comp | ||||
| L GND #PWR09 | ||||
| U 1 1 550CF9FF | ||||
| P 5350 4700 | ||||
| F 0 "#PWR09" H 5350 4700 30  0001 C CNN | ||||
| F 1 "GND" H 5350 4630 30  0001 C CNN | ||||
| F 2 "" H 5350 4700 60  0000 C CNN | ||||
| F 3 "" H 5350 4700 60  0000 C CNN | ||||
| 	1    5350 4700 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	5350 4400 5350 4700 | ||||
| Connection ~ 5350 4600 | ||||
| Text Notes 5050 4800 0    40   ~ 0 | ||||
| chassis ground | ||||
| $Comp | ||||
| L GND #PWR010 | ||||
| U 1 1 550CFBE5 | ||||
| P 5350 6250 | ||||
| F 0 "#PWR010" H 5350 6250 30  0001 C CNN | ||||
| F 1 "GND" H 5350 6180 30  0001 C CNN | ||||
| F 2 "" H 5350 6250 60  0000 C CNN | ||||
| F 3 "" H 5350 6250 60  0000 C CNN | ||||
| 	1    5350 6250 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Text Notes 5150 6400 0    40   ~ 0 | ||||
| chassis ground | ||||
| $Comp | ||||
| L PWR_FLAG #FLG011 | ||||
| U 1 1 550CFBF4 | ||||
| P 5350 6150 | ||||
| F 0 "#FLG011" H 5350 6245 30  0001 C CNN | ||||
| F 1 "PWR_FLAG" H 5350 6330 30  0000 C CNN | ||||
| F 2 "" H 5350 6150 60  0000 C CNN | ||||
| F 3 "" H 5350 6150 60  0000 C CNN | ||||
| 	1    5350 6150 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	5350 6150 5350 6250 | ||||
| $Comp | ||||
| L CONN_1 P5 | ||||
| U 1 1 550D1AD1 | ||||
| P 5000 6150 | ||||
| F 0 "P5" H 5080 6150 40  0000 L CNN | ||||
| F 1 "GND" H 5000 6205 30  0001 C CNN | ||||
| F 2 "mfk-AVA-20ga" H 5000 6150 60  0001 C CNN | ||||
| F 3 "" H 5000 6150 60  0000 C CNN | ||||
| 	1    5000 6150 | ||||
| 	-1   0    0    1    | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	5150 6150 5350 6150 | ||||
| $Comp | ||||
| L C C2 | ||||
| U 1 1 550D2A54 | ||||
| P 6900 5500 | ||||
| F 0 "C2" H 6900 5600 40  0000 L CNN | ||||
| F 1 "1u" H 6906 5415 40  0000 L CNN | ||||
| F 2 "mfk-C_4.0_2.5_2.5_0.5" H 6938 5350 30  0001 C CNN | ||||
| F 3 "TDK FK18X5R1A105K" H 6900 5500 60  0001 C CNN | ||||
| 	1    6900 5500 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	6900 5150 6900 5300 | ||||
| $Comp | ||||
| L DGND #PWR012 | ||||
| U 1 1 550D2ACA | ||||
| P 6900 5800 | ||||
| F 0 "#PWR012" H 6900 5800 40  0001 C CNN | ||||
| F 1 "DGND" H 6900 5730 40  0000 C CNN | ||||
| F 2 "" H 6900 5800 60  0000 C CNN | ||||
| F 3 "" H 6900 5800 60  0000 C CNN | ||||
| 	1    6900 5800 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	6900 5800 6900 5700 | ||||
| NoConn ~ 8300 4400 | ||||
| NoConn ~ 8300 4850 | ||||
| Connection ~ 8450 5000 | ||||
| Wire Wire Line | ||||
| 	8450 3750 8450 4100 | ||||
| Wire Wire Line | ||||
| 	7600 3650 7600 3750 | ||||
| Connection ~ 7600 3750 | ||||
| Wire Wire Line | ||||
| 	6900 4100 6750 4100 | ||||
| Wire Wire Line | ||||
| 	6150 4150 6150 4400 | ||||
| Connection ~ 8450 4100 | ||||
| Wire Wire Line | ||||
| 	8300 5150 8450 5150 | ||||
| Connection ~ 8450 5150 | ||||
| Wire Wire Line | ||||
| 	6900 5000 6400 5000 | ||||
| Wire Wire Line | ||||
| 	6400 5000 6400 6150 | ||||
| $Comp | ||||
| L CONN_3 P3 | ||||
| U 1 1 551F2247 | ||||
| P 2750 1800 | ||||
| F 0 "P3" V 2700 1800 50  0000 C CNN | ||||
| F 1 "PWR" V 2800 1800 40  0000 C CNN | ||||
| F 2 "mfk-TE_282834-3" H 2750 1800 60  0001 C CNN | ||||
| F 3 "" H 2750 1800 60  0000 C CNN | ||||
| 	1    2750 1800 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	3650 1800 3100 1800 | ||||
| Wire Wire Line | ||||
| 	3100 1700 3350 1700 | ||||
| Wire Wire Line | ||||
| 	3150 1250 3150 1700 | ||||
| Text Label 3150 1250 3    60   ~ 0 | ||||
| V_MOT | ||||
| Wire Wire Line | ||||
| 	6750 4100 6750 3750 | ||||
| Wire Wire Line | ||||
| 	6750 5150 6750 6150 | ||||
| Text Label 6750 6150 1    60   ~ 0 | ||||
| V_MOT | ||||
| $Comp | ||||
| L PWR_FLAG #FLG013 | ||||
| U 1 1 551F243F | ||||
| P 3350 1650 | ||||
| F 0 "#FLG013" H 3350 1745 30  0001 C CNN | ||||
| F 1 "PWR_FLAG" H 3350 1830 30  0000 C CNN | ||||
| F 2 "" H 3350 1650 60  0000 C CNN | ||||
| F 3 "" H 3350 1650 60  0000 C CNN | ||||
| 	1    3350 1650 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Connection ~ 3150 1700 | ||||
| Wire Wire Line | ||||
| 	3350 1700 3350 1650 | ||||
| $Comp | ||||
| L JUMPER J1 | ||||
| U 1 1 552023B1 | ||||
| P 4750 1800 | ||||
| F 0 "J1" H 4750 1950 60  0000 C CNN | ||||
| F 1 "PWR_BR" H 4750 1720 40  0000 C CNN | ||||
| F 2 "mfk-SIL-2" H 4750 1800 60  0001 C CNN | ||||
| F 3 "~" H 4750 1800 60  0000 C CNN | ||||
| 	1    4750 1800 | ||||
| 	1    0    0    -1   | ||||
| $EndComp | ||||
| $Comp | ||||
| L +5VD #PWR014 | ||||
| U 1 1 552023F3 | ||||
| P 4400 1450 | ||||
| F 0 "#PWR014" H 4400 1400 20  0001 C CNN | ||||
| F 1 "+5VD" H 4400 1550 50  0000 C CNN | ||||
| F 2 "" H 4400 1450 60  0000 C CNN | ||||
| F 3 "" H 4400 1450 60  0000 C CNN | ||||
| 	1    4400 1450 | ||||
| 	-1   0    0    -1   | ||||
| $EndComp | ||||
| Wire Wire Line | ||||
| 	4450 1800 4400 1800 | ||||
| Wire Wire Line | ||||
| 	4400 1800 4400 1450 | ||||
| Text Label 5100 1350 3    60   ~ 0 | ||||
| V_MOT | ||||
| Wire Wire Line | ||||
| 	5050 1800 5100 1800 | ||||
| Wire Wire Line | ||||
| 	5100 1800 5100 1350 | ||||
| Text Notes 4000 2000 0    60   ~ 0 | ||||
| Use jumper to power motor from +5VD. | ||||
| $EndSCHEMATC | ||||
							
								
								
									
										69
									
								
								samples/KiCad/ultimate-temp-controller.sch
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								samples/KiCad/ultimate-temp-controller.sch
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,69 @@ | ||||
| EESchema Schematic File Version 2 | ||||
| LIBS:power | ||||
| LIBS:device | ||||
| LIBS:transistors | ||||
| LIBS:conn | ||||
| LIBS:linear | ||||
| LIBS:regul | ||||
| LIBS:74xx | ||||
| LIBS:cmos4000 | ||||
| LIBS:adc-dac | ||||
| LIBS:memory | ||||
| LIBS:xilinx | ||||
| LIBS:special | ||||
| LIBS:microcontrollers | ||||
| LIBS:dsp | ||||
| LIBS:microchip | ||||
| LIBS:analog_switches | ||||
| LIBS:motorola | ||||
| LIBS:texas | ||||
| LIBS:intel | ||||
| LIBS:audio | ||||
| LIBS:interface | ||||
| LIBS:digital-audio | ||||
| LIBS:philips | ||||
| LIBS:display | ||||
| LIBS:cypress | ||||
| LIBS:siliconi | ||||
| LIBS:opto | ||||
| LIBS:atmel | ||||
| LIBS:contrib | ||||
| LIBS:valves | ||||
| LIBS:relays | ||||
| LIBS:w_relay | ||||
| LIBS:ultimate-temp-controller-cache | ||||
| EELAYER 25 0 | ||||
| EELAYER END | ||||
| $Descr A4 11693 8268 | ||||
| encoding utf-8 | ||||
| Sheet 1 2 | ||||
| Title "" | ||||
| Date "" | ||||
| Rev "" | ||||
| Comp "" | ||||
| Comment1 "" | ||||
| Comment2 "" | ||||
| Comment3 "" | ||||
| Comment4 "" | ||||
| $EndDescr | ||||
| $Sheet | ||||
| S 1400 2100 2150 2000 | ||||
| U 54E5B803 | ||||
| F0 "controller" 60 | ||||
| F1 "controller.sch" 60 | ||||
| F2 "TC+" I L 1400 2300 60  | ||||
| F3 "TC-" I L 1400 2400 60  | ||||
| F4 "VCC" I L 1400 3750 60  | ||||
| F5 "GND" I L 1400 3900 60  | ||||
| F6 "RS485A" I R 3550 3700 60  | ||||
| F7 "RS485B" I R 3550 3800 60  | ||||
| F8 "DRAIN" O R 3550 3300 60  | ||||
| F9 "+5V" O R 3550 2250 60  | ||||
| F10 "SDA" B R 3550 2350 60  | ||||
| F11 "SCL" B R 3550 2450 60  | ||||
| F12 "GND" O R 3550 2550 60  | ||||
| F13 "RELAY_NO" I R 3550 2850 60  | ||||
| F14 "RELAY_COM" I R 3550 3050 60  | ||||
| F15 "RELAY_NC" I R 3550 2950 60  | ||||
| $EndSheet | ||||
| $EndSCHEMATC | ||||
							
								
								
									
										48
									
								
								samples/Limbo/cat.b
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										48
									
								
								samples/Limbo/cat.b
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,48 @@ | ||||
| implement Cat; | ||||
|  | ||||
| include "sys.m"; | ||||
| 	sys: Sys; | ||||
|  | ||||
| include "draw.m"; | ||||
|  | ||||
| Cat: module | ||||
| { | ||||
| 	init:	fn(ctxt: ref Draw->Context, argv: list of string); | ||||
| }; | ||||
|  | ||||
| stdout: ref Sys->FD; | ||||
|  | ||||
| init(nil: ref Draw->Context, args: list of string) | ||||
| { | ||||
| 	sys = load Sys Sys->PATH; | ||||
| 	stdout = sys->fildes(1); | ||||
| 	args = tl args; | ||||
| 	if(args == nil) | ||||
| 		args = "-" :: nil; | ||||
| 	for(; args != nil; args = tl args){ | ||||
| 		file := hd args; | ||||
| 		if(file != "-"){ | ||||
| 			fd := sys->open(file, Sys->OREAD); | ||||
| 			if(fd == nil){ | ||||
| 				sys->fprint(sys->fildes(2), "cat: cannot open %s: %r\n", file); | ||||
| 				raise "fail:bad open"; | ||||
| 			} | ||||
| 			cat(fd, file); | ||||
| 		}else | ||||
| 			cat(sys->fildes(0), "<stdin>"); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| cat(fd: ref Sys->FD, file: string) | ||||
| { | ||||
| 	buf := array[Sys->ATOMICIO] of byte; | ||||
| 	while((n := sys->read(fd, buf, len buf)) > 0) | ||||
| 		if(sys->write(stdout, buf, n) < n) { | ||||
| 			sys->fprint(sys->fildes(2), "cat: write error: %r\n"); | ||||
| 			raise "fail:write error"; | ||||
| 		} | ||||
| 	if(n < 0) { | ||||
| 		sys->fprint(sys->fildes(2), "cat: error reading %s: %r\n", file); | ||||
| 		raise "fail:read error"; | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										26
									
								
								samples/Limbo/lock.b
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								samples/Limbo/lock.b
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| implement Lock; | ||||
|  | ||||
| include "sys.m"; | ||||
| 	sys:	Sys; | ||||
| include "lock.m"; | ||||
|  | ||||
| Semaphore.obtain(l: self ref Semaphore) | ||||
| { | ||||
| 	l.c <-= 0; | ||||
| } | ||||
|  | ||||
| Semaphore.release(l: self ref Semaphore) | ||||
| { | ||||
| 	<-l.c; | ||||
| } | ||||
|  | ||||
| Semaphore.new(): ref Semaphore | ||||
| { | ||||
| 	l := ref Semaphore; | ||||
| 	l.c = chan[1] of int; | ||||
| 	return l; | ||||
| } | ||||
|  | ||||
| init() | ||||
| { | ||||
| } | ||||
							
								
								
									
										13
									
								
								samples/Limbo/lock.m
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								samples/Limbo/lock.m
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| Lock: module | ||||
| { | ||||
| 	PATH:	con "/dis/lib/lock.dis"; | ||||
|  | ||||
| 	Semaphore: adt { | ||||
| 		c: chan of int; | ||||
| 		obtain:	fn(nil: self ref Semaphore); | ||||
| 		release: fn(nil: self ref Semaphore); | ||||
| 		new: fn(): ref Semaphore; | ||||
| 	}; | ||||
| 	 | ||||
| 	init: fn(); | ||||
| }; | ||||
							
								
								
									
										50
									
								
								samples/Linker Script/filenames/ld.script
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								samples/Linker Script/filenames/ld.script
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,50 @@ | ||||
| /* | ||||
|  * ld.script for compressed kernel support of MIPS | ||||
|  * | ||||
|  * Copyright (C) 2009 Lemote Inc. | ||||
|  * Author: Wu Zhangjin <wuzhanjing@gmail.com> | ||||
|  * Copyright (C) 2010 "Wu Zhangjin" <wuzhanjing@gmail.com> | ||||
|  */ | ||||
|  | ||||
| OUTPUT_ARCH(mips) | ||||
| ENTRY(start) | ||||
| SECTIONS | ||||
| { | ||||
| 	/* Text and read-only data */ | ||||
| 	/* . = VMLINUZ_LOAD_ADDRESS; */ | ||||
| 	.text : { | ||||
| 		*(.text) | ||||
| 		*(.rodata) | ||||
| 	} | ||||
| 	/* End of text section */ | ||||
|  | ||||
| 	/* Writable data */ | ||||
| 	.data : { | ||||
| 		*(.data) | ||||
| 		/* Put the compressed image here */ | ||||
| 		__image_begin = .; | ||||
| 		*(.image) | ||||
| 		__image_end = .; | ||||
| 		CONSTRUCTORS | ||||
| 	} | ||||
| 	. = ALIGN(16); | ||||
| 	_edata = .; | ||||
| 	/* End of data section */ | ||||
|  | ||||
| 	/* BSS */ | ||||
| 	.bss : { | ||||
| 		*(.bss) | ||||
| 	} | ||||
| 	. = ALIGN(16); | ||||
| 	_end = .; | ||||
|  | ||||
| 	/* Sections to be discarded */ | ||||
| 	/DISCARD/ : { | ||||
| 		*(.MIPS.options) | ||||
| 		*(.options) | ||||
| 		*(.pdr) | ||||
| 		*(.reginfo) | ||||
| 		*(.comment) | ||||
| 		*(.note) | ||||
| 	} | ||||
| } | ||||
							
								
								
									
										12
									
								
								samples/Linker Script/link.ld
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								samples/Linker Script/link.ld
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| /* | ||||
| *  link.ld | ||||
| */ | ||||
| OUTPUT_FORMAT(elf32-i386) | ||||
| ENTRY(start) | ||||
| SECTIONS | ||||
|  { | ||||
|    . = 0x100000; | ||||
|    .text : { *(.text) } | ||||
|    .data : { *(.data) } | ||||
|    .bss  : { *(.bss)  } | ||||
|  } | ||||
							
								
								
									
										373
									
								
								samples/Linker Script/vmlinux.lds
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										373
									
								
								samples/Linker Script/vmlinux.lds
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,373 @@ | ||||
| /* | ||||
|  * ld script for the x86 kernel | ||||
|  * | ||||
|  * Historic 32-bit version written by Martin Mares <mj@atrey.karlin.mff.cuni.cz> | ||||
|  * | ||||
|  * Modernisation, unification and other changes and fixes: | ||||
|  *   Copyright (C) 2007-2009  Sam Ravnborg <sam@ravnborg.org> | ||||
|  * | ||||
|  * | ||||
|  * Don't define absolute symbols until and unless you know that symbol | ||||
|  * value is should remain constant even if kernel image is relocated | ||||
|  * at run time. Absolute symbols are not relocated. If symbol value should | ||||
|  * change if kernel is relocated, make the symbol section relative and | ||||
|  * put it inside the section definition. | ||||
|  */ | ||||
|  | ||||
| #ifdef CONFIG_X86_32 | ||||
| #define LOAD_OFFSET __PAGE_OFFSET | ||||
| #else | ||||
| #define LOAD_OFFSET __START_KERNEL_map | ||||
| #endif | ||||
|  | ||||
| #include <asm-generic/vmlinux.lds.h> | ||||
| #include <asm/asm-offsets.h> | ||||
| #include <asm/thread_info.h> | ||||
| #include <asm/page_types.h> | ||||
| #include <asm/cache.h> | ||||
| #include <asm/boot.h> | ||||
|  | ||||
| #undef i386     /* in case the preprocessor is a 32bit one */ | ||||
|  | ||||
| OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) | ||||
|  | ||||
| #ifdef CONFIG_X86_32 | ||||
| OUTPUT_ARCH(i386) | ||||
| ENTRY(phys_startup_32) | ||||
| jiffies = jiffies_64; | ||||
| #else | ||||
| OUTPUT_ARCH(i386:x86-64) | ||||
| ENTRY(phys_startup_64) | ||||
| jiffies_64 = jiffies; | ||||
| #endif | ||||
|  | ||||
| #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA) | ||||
| /* | ||||
|  * On 64-bit, align RODATA to 2MB so that even with CONFIG_DEBUG_RODATA | ||||
|  * we retain large page mappings for boundaries spanning kernel text, rodata | ||||
|  * and data sections. | ||||
|  * | ||||
|  * However, kernel identity mappings will have different RWX permissions | ||||
|  * to the pages mapping to text and to the pages padding (which are freed) the | ||||
|  * text section. Hence kernel identity mappings will be broken to smaller | ||||
|  * pages. For 64-bit, kernel text and kernel identity mappings are different, | ||||
|  * so we can enable protection checks that come with CONFIG_DEBUG_RODATA, | ||||
|  * as well as retain 2MB large page mappings for kernel text. | ||||
|  */ | ||||
| #define X64_ALIGN_DEBUG_RODATA_BEGIN	. = ALIGN(HPAGE_SIZE); | ||||
|  | ||||
| #define X64_ALIGN_DEBUG_RODATA_END				\ | ||||
| 		. = ALIGN(HPAGE_SIZE);				\ | ||||
| 		__end_rodata_hpage_align = .; | ||||
|  | ||||
| #else | ||||
|  | ||||
| #define X64_ALIGN_DEBUG_RODATA_BEGIN | ||||
| #define X64_ALIGN_DEBUG_RODATA_END | ||||
|  | ||||
| #endif | ||||
|  | ||||
| PHDRS { | ||||
| 	text PT_LOAD FLAGS(5);          /* R_E */ | ||||
| 	data PT_LOAD FLAGS(6);          /* RW_ */ | ||||
| #ifdef CONFIG_X86_64 | ||||
| #ifdef CONFIG_SMP | ||||
| 	percpu PT_LOAD FLAGS(6);        /* RW_ */ | ||||
| #endif | ||||
| 	init PT_LOAD FLAGS(7);          /* RWE */ | ||||
| #endif | ||||
| 	note PT_NOTE FLAGS(0);          /* ___ */ | ||||
| } | ||||
|  | ||||
| SECTIONS | ||||
| { | ||||
| #ifdef CONFIG_X86_32 | ||||
|         . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR; | ||||
|         phys_startup_32 = startup_32 - LOAD_OFFSET; | ||||
| #else | ||||
|         . = __START_KERNEL; | ||||
|         phys_startup_64 = startup_64 - LOAD_OFFSET; | ||||
| #endif | ||||
|  | ||||
| 	/* Text and read-only data */ | ||||
| 	.text :  AT(ADDR(.text) - LOAD_OFFSET) { | ||||
| 		_text = .; | ||||
| 		/* bootstrapping code */ | ||||
| 		HEAD_TEXT | ||||
| 		. = ALIGN(8); | ||||
| 		_stext = .; | ||||
| 		TEXT_TEXT | ||||
| 		SCHED_TEXT | ||||
| 		LOCK_TEXT | ||||
| 		KPROBES_TEXT | ||||
| 		ENTRY_TEXT | ||||
| 		IRQENTRY_TEXT | ||||
| 		*(.fixup) | ||||
| 		*(.gnu.warning) | ||||
| 		/* End of text section */ | ||||
| 		_etext = .; | ||||
| 	} :text = 0x9090 | ||||
|  | ||||
| 	NOTES :text :note | ||||
|  | ||||
| 	EXCEPTION_TABLE(16) :text = 0x9090 | ||||
|  | ||||
| #if defined(CONFIG_DEBUG_RODATA) | ||||
| 	/* .text should occupy whole number of pages */ | ||||
| 	. = ALIGN(PAGE_SIZE); | ||||
| #endif | ||||
| 	X64_ALIGN_DEBUG_RODATA_BEGIN | ||||
| 	RO_DATA(PAGE_SIZE) | ||||
| 	X64_ALIGN_DEBUG_RODATA_END | ||||
|  | ||||
| 	/* Data */ | ||||
| 	.data : AT(ADDR(.data) - LOAD_OFFSET) { | ||||
| 		/* Start of data section */ | ||||
| 		_sdata = .; | ||||
|  | ||||
| 		/* init_task */ | ||||
| 		INIT_TASK_DATA(THREAD_SIZE) | ||||
|  | ||||
| #ifdef CONFIG_X86_32 | ||||
| 		/* 32 bit has nosave before _edata */ | ||||
| 		NOSAVE_DATA | ||||
| #endif | ||||
|  | ||||
| 		PAGE_ALIGNED_DATA(PAGE_SIZE) | ||||
|  | ||||
| 		CACHELINE_ALIGNED_DATA(L1_CACHE_BYTES) | ||||
|  | ||||
| 		DATA_DATA | ||||
| 		CONSTRUCTORS | ||||
|  | ||||
| 		/* rarely changed data like cpu maps */ | ||||
| 		READ_MOSTLY_DATA(INTERNODE_CACHE_BYTES) | ||||
|  | ||||
| 		/* End of data section */ | ||||
| 		_edata = .; | ||||
| 	} :data | ||||
|  | ||||
|  | ||||
| 	. = ALIGN(PAGE_SIZE); | ||||
| 	__vvar_page = .; | ||||
|  | ||||
| 	.vvar : AT(ADDR(.vvar) - LOAD_OFFSET) { | ||||
| 		/* work around gold bug 13023 */ | ||||
| 		__vvar_beginning_hack = .; | ||||
|  | ||||
| 		/* Place all vvars at the offsets in asm/vvar.h. */ | ||||
| #define EMIT_VVAR(name, offset) 			\ | ||||
| 		. = __vvar_beginning_hack + offset;	\ | ||||
| 		*(.vvar_ ## name) | ||||
| #define __VVAR_KERNEL_LDS | ||||
| #include <asm/vvar.h> | ||||
| #undef __VVAR_KERNEL_LDS | ||||
| #undef EMIT_VVAR | ||||
|  | ||||
| 		/* | ||||
| 		 * Pad the rest of the page with zeros.  Otherwise the loader | ||||
| 		 * can leave garbage here. | ||||
| 		 */ | ||||
| 		. = __vvar_beginning_hack + PAGE_SIZE; | ||||
| 	} :data | ||||
|  | ||||
|        . = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE); | ||||
|  | ||||
| 	/* Init code and data - will be freed after init */ | ||||
| 	. = ALIGN(PAGE_SIZE); | ||||
| 	.init.begin : AT(ADDR(.init.begin) - LOAD_OFFSET) { | ||||
| 		__init_begin = .; /* paired with __init_end */ | ||||
| 	} | ||||
|  | ||||
| #if defined(CONFIG_X86_64) && defined(CONFIG_SMP) | ||||
| 	/* | ||||
| 	 * percpu offsets are zero-based on SMP.  PERCPU_VADDR() changes the | ||||
| 	 * output PHDR, so the next output section - .init.text - should | ||||
| 	 * start another segment - init. | ||||
| 	 */ | ||||
| 	PERCPU_VADDR(INTERNODE_CACHE_BYTES, 0, :percpu) | ||||
| 	ASSERT(SIZEOF(.data..percpu) < CONFIG_PHYSICAL_START, | ||||
| 	       "per-CPU data too large - increase CONFIG_PHYSICAL_START") | ||||
| #endif | ||||
|  | ||||
| 	INIT_TEXT_SECTION(PAGE_SIZE) | ||||
| #ifdef CONFIG_X86_64 | ||||
| 	:init | ||||
| #endif | ||||
|  | ||||
| 	INIT_DATA_SECTION(16) | ||||
|  | ||||
| 	.x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) { | ||||
| 		__x86_cpu_dev_start = .; | ||||
| 		*(.x86_cpu_dev.init) | ||||
| 		__x86_cpu_dev_end = .; | ||||
| 	} | ||||
|  | ||||
| #ifdef CONFIG_X86_INTEL_MID | ||||
| 	.x86_intel_mid_dev.init : AT(ADDR(.x86_intel_mid_dev.init) - \ | ||||
| 								LOAD_OFFSET) { | ||||
| 		__x86_intel_mid_dev_start = .; | ||||
| 		*(.x86_intel_mid_dev.init) | ||||
| 		__x86_intel_mid_dev_end = .; | ||||
| 	} | ||||
| #endif | ||||
|  | ||||
| 	/* | ||||
| 	 * start address and size of operations which during runtime | ||||
| 	 * can be patched with virtualization friendly instructions or | ||||
| 	 * baremetal native ones. Think page table operations. | ||||
| 	 * Details in paravirt_types.h | ||||
| 	 */ | ||||
| 	. = ALIGN(8); | ||||
| 	.parainstructions : AT(ADDR(.parainstructions) - LOAD_OFFSET) { | ||||
| 		__parainstructions = .; | ||||
| 		*(.parainstructions) | ||||
| 		__parainstructions_end = .; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * struct alt_inst entries. From the header (alternative.h): | ||||
| 	 * "Alternative instructions for different CPU types or capabilities" | ||||
| 	 * Think locking instructions on spinlocks. | ||||
| 	 */ | ||||
| 	. = ALIGN(8); | ||||
| 	.altinstructions : AT(ADDR(.altinstructions) - LOAD_OFFSET) { | ||||
| 		__alt_instructions = .; | ||||
| 		*(.altinstructions) | ||||
| 		__alt_instructions_end = .; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * And here are the replacement instructions. The linker sticks | ||||
| 	 * them as binary blobs. The .altinstructions has enough data to | ||||
| 	 * get the address and the length of them to patch the kernel safely. | ||||
| 	 */ | ||||
| 	.altinstr_replacement : AT(ADDR(.altinstr_replacement) - LOAD_OFFSET) { | ||||
| 		*(.altinstr_replacement) | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * struct iommu_table_entry entries are injected in this section. | ||||
| 	 * It is an array of IOMMUs which during run time gets sorted depending | ||||
| 	 * on its dependency order. After rootfs_initcall is complete | ||||
| 	 * this section can be safely removed. | ||||
| 	 */ | ||||
| 	.iommu_table : AT(ADDR(.iommu_table) - LOAD_OFFSET) { | ||||
| 		__iommu_table = .; | ||||
| 		*(.iommu_table) | ||||
| 		__iommu_table_end = .; | ||||
| 	} | ||||
|  | ||||
| 	. = ALIGN(8); | ||||
| 	.apicdrivers : AT(ADDR(.apicdrivers) - LOAD_OFFSET) { | ||||
| 		__apicdrivers = .; | ||||
| 		*(.apicdrivers); | ||||
| 		__apicdrivers_end = .; | ||||
| 	} | ||||
|  | ||||
| 	. = ALIGN(8); | ||||
| 	/* | ||||
| 	 * .exit.text is discard at runtime, not link time, to deal with | ||||
| 	 *  references from .altinstructions and .eh_frame | ||||
| 	 */ | ||||
| 	.exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) { | ||||
| 		EXIT_TEXT | ||||
| 	} | ||||
|  | ||||
| 	.exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) { | ||||
| 		EXIT_DATA | ||||
| 	} | ||||
|  | ||||
| #if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP) | ||||
| 	PERCPU_SECTION(INTERNODE_CACHE_BYTES) | ||||
| #endif | ||||
|  | ||||
| 	. = ALIGN(PAGE_SIZE); | ||||
|  | ||||
| 	/* freed after init ends here */ | ||||
| 	.init.end : AT(ADDR(.init.end) - LOAD_OFFSET) { | ||||
| 		__init_end = .; | ||||
| 	} | ||||
|  | ||||
| 	/* | ||||
| 	 * smp_locks might be freed after init | ||||
| 	 * start/end must be page aligned | ||||
| 	 */ | ||||
| 	. = ALIGN(PAGE_SIZE); | ||||
| 	.smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) { | ||||
| 		__smp_locks = .; | ||||
| 		*(.smp_locks) | ||||
| 		. = ALIGN(PAGE_SIZE); | ||||
| 		__smp_locks_end = .; | ||||
| 	} | ||||
|  | ||||
| #ifdef CONFIG_X86_64 | ||||
| 	.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { | ||||
| 		NOSAVE_DATA | ||||
| 	} | ||||
| #endif | ||||
|  | ||||
| 	/* BSS */ | ||||
| 	. = ALIGN(PAGE_SIZE); | ||||
| 	.bss : AT(ADDR(.bss) - LOAD_OFFSET) { | ||||
| 		__bss_start = .; | ||||
| 		*(.bss..page_aligned) | ||||
| 		*(.bss) | ||||
| 		. = ALIGN(PAGE_SIZE); | ||||
| 		__bss_stop = .; | ||||
| 	} | ||||
|  | ||||
| 	. = ALIGN(PAGE_SIZE); | ||||
| 	.brk : AT(ADDR(.brk) - LOAD_OFFSET) { | ||||
| 		__brk_base = .; | ||||
| 		. += 64 * 1024;		/* 64k alignment slop space */ | ||||
| 		*(.brk_reservation)	/* areas brk users have reserved */ | ||||
| 		__brk_limit = .; | ||||
| 	} | ||||
|  | ||||
| 	_end = .; | ||||
|  | ||||
|         STABS_DEBUG | ||||
|         DWARF_DEBUG | ||||
|  | ||||
| 	/* Sections to be discarded */ | ||||
| 	DISCARDS | ||||
| 	/DISCARD/ : { *(.eh_frame) } | ||||
| } | ||||
|  | ||||
|  | ||||
| #ifdef CONFIG_X86_32 | ||||
| /* | ||||
|  * The ASSERT() sink to . is intentional, for binutils 2.14 compatibility: | ||||
|  */ | ||||
| . = ASSERT((_end - LOAD_OFFSET <= KERNEL_IMAGE_SIZE), | ||||
| 	   "kernel image bigger than KERNEL_IMAGE_SIZE"); | ||||
| #else | ||||
| /* | ||||
|  * Per-cpu symbols which need to be offset from __per_cpu_load | ||||
|  * for the boot processor. | ||||
|  */ | ||||
| #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load | ||||
| INIT_PER_CPU(gdt_page); | ||||
| INIT_PER_CPU(irq_stack_union); | ||||
|  | ||||
| /* | ||||
|  * Build-time check on the image size: | ||||
|  */ | ||||
| . = ASSERT((_end - _text <= KERNEL_IMAGE_SIZE), | ||||
| 	   "kernel image bigger than KERNEL_IMAGE_SIZE"); | ||||
|  | ||||
| #ifdef CONFIG_SMP | ||||
| . = ASSERT((irq_stack_union == 0), | ||||
|            "irq_stack_union is not at start of per-cpu area"); | ||||
| #endif | ||||
|  | ||||
| #endif /* CONFIG_X86_32 */ | ||||
|  | ||||
| #ifdef CONFIG_KEXEC | ||||
| #include <asm/kexec.h> | ||||
|  | ||||
| . = ASSERT(kexec_control_code_size <= KEXEC_CONTROL_CODE_MAX_SIZE, | ||||
|            "kexec control code size is too big"); | ||||
| #endif | ||||
|  | ||||
							
								
								
									
										159
									
								
								samples/Makefile/filenames/Makefile.boot
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										159
									
								
								samples/Makefile/filenames/Makefile.boot
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,159 @@ | ||||
| # $NetBSD$ | ||||
|  | ||||
| S=	${.CURDIR}/../../../../.. | ||||
|  | ||||
| NOMAN= | ||||
| PROG?= boot | ||||
| NEWVERSWHAT?= "BIOS Boot" | ||||
| VERSIONFILE?= ${.CURDIR}/../version | ||||
|  | ||||
| AFLAGS.biosboot.S= ${${ACTIVE_CC} == "clang":?-no-integrated-as:} | ||||
|  | ||||
| SOURCES?= biosboot.S boot2.c conf.c devopen.c exec.c | ||||
| SRCS= ${SOURCES} | ||||
| .if !make(depend) | ||||
| SRCS+= vers.c | ||||
| .endif | ||||
|  | ||||
| PIE_CFLAGS= | ||||
| PIE_AFLAGS= | ||||
| PIE_LDFLAGS= | ||||
|  | ||||
| .include <bsd.own.mk> | ||||
|  | ||||
| STRIPFLAG=	# nothing | ||||
|  | ||||
| LIBCRT0=	# nothing | ||||
| LIBCRTI=	# nothing | ||||
| LIBCRTBEGIN=	# nothing | ||||
| LIBCRTEND=	# nothing | ||||
| LIBC=		# nothing | ||||
|  | ||||
| BINDIR=/usr/mdec | ||||
| BINMODE=444 | ||||
|  | ||||
| .PATH:	${.CURDIR}/.. ${.CURDIR}/../../lib | ||||
|  | ||||
| LDFLAGS+= -nostdlib -Wl,-N -Wl,-e,boot_start | ||||
| CPPFLAGS+= -I ${.CURDIR}/..  -I ${.CURDIR}/../../lib -I ${S}/lib/libsa | ||||
| CPPFLAGS+= -I ${.OBJDIR} | ||||
| # Make sure we override any optimization options specified by the user | ||||
| COPTS=  -Os | ||||
|  | ||||
| .if ${MACHINE_ARCH} == "x86_64" | ||||
| LDFLAGS+=  -Wl,-m,elf_i386 | ||||
| AFLAGS+=   -m32 | ||||
| CPUFLAGS=  -m32 | ||||
| LIBKERN_ARCH=i386 | ||||
| KERNMISCMAKEFLAGS="LIBKERN_ARCH=i386" | ||||
| .else | ||||
| CPUFLAGS=  -march=i386 -mtune=i386 | ||||
| .endif | ||||
|  | ||||
| CFLAGS+=   -mno-sse -mno-sse2 -mno-sse3 | ||||
|  | ||||
| COPTS+=    -ffreestanding | ||||
| CFLAGS+= -Wall -Wmissing-prototypes -Wstrict-prototypes | ||||
| CPPFLAGS+= -nostdinc -D_STANDALONE | ||||
| CPPFLAGS+= -I$S | ||||
|  | ||||
| CPPFLAGS+= -DSUPPORT_PS2 | ||||
| CPPFLAGS+= -DDIRECT_SERIAL | ||||
| CPPFLAGS+= -DSUPPORT_SERIAL=boot_params.bp_consdev | ||||
|  | ||||
| CPPFLAGS+= -DCONSPEED=boot_params.bp_conspeed | ||||
| CPPFLAGS+= -DCONSADDR=boot_params.bp_consaddr | ||||
| CPPFLAGS+= -DCONSOLE_KEYMAP=boot_params.bp_keymap | ||||
|  | ||||
| CPPFLAGS+= -DSUPPORT_CD9660 | ||||
| CPPFLAGS+= -DSUPPORT_USTARFS | ||||
| CPPFLAGS+= -DSUPPORT_DOSFS | ||||
| CPPFLAGS+= -DSUPPORT_EXT2FS | ||||
| #CPPFLAGS+= -DSUPPORT_MINIXFS3 | ||||
| CPPFLAGS+= -DPASS_BIOSGEOM | ||||
| CPPFLAGS+= -DPASS_MEMMAP | ||||
| #CPPFLAGS+= -DBOOTPASSWD | ||||
| CPPFLAGS+= -DEPIA_HACK | ||||
| #CPPFLAGS+= -DDEBUG_MEMSIZE | ||||
| #CPPFLAGS+= -DBOOT_MSG_COM0 | ||||
| CPPFLAGS+= -DLIBSA_ENABLE_LS_OP | ||||
|  | ||||
| # The biosboot code is linked to 'virtual' address of zero and is | ||||
| # loaded at physical address 0x10000. | ||||
| # XXX The heap values should be determined from _end. | ||||
| SAMISCCPPFLAGS+= -DHEAP_START=0x40000 -DHEAP_LIMIT=0x70000 | ||||
| SAMISCCPPFLAGS+= -DLIBSA_PRINTF_LONGLONG_SUPPORT | ||||
| SAMISCMAKEFLAGS+= SA_USE_CREAD=yes	# Read compressed kernels | ||||
| SAMISCMAKEFLAGS+= SA_INCLUDE_NET=no	# Netboot via TFTP, NFS | ||||
|  | ||||
| CPPFLAGS+=	-Wno-pointer-sign | ||||
|  | ||||
| # CPPFLAGS+= -DBOOTXX_RAID1_SUPPORT | ||||
|  | ||||
| I386_STAND_DIR?= $S/arch/i386/stand | ||||
|  | ||||
| ### find out what to use for libi386 | ||||
| I386DIR= ${I386_STAND_DIR}/lib | ||||
| .include "${I386DIR}/Makefile.inc" | ||||
| LIBI386= ${I386LIB} | ||||
|  | ||||
| ### find out what to use for libsa | ||||
| SA_AS= library | ||||
| SAMISCMAKEFLAGS+="SA_USE_LOADFILE=yes" | ||||
| SAMISCMAKEFLAGS+="SA_ENABLE_LS_OP=yes" | ||||
| .include "${S}/lib/libsa/Makefile.inc" | ||||
| LIBSA= ${SALIB} | ||||
|  | ||||
| ### find out what to use for libkern | ||||
| KERN_AS= library | ||||
| .include "${S}/lib/libkern/Makefile.inc" | ||||
| LIBKERN= ${KERNLIB} | ||||
|  | ||||
| ### find out what to use for libz | ||||
| Z_AS= library | ||||
| .include "${S}/lib/libz/Makefile.inc" | ||||
| LIBZ= ${ZLIB} | ||||
|  | ||||
| LDSCRIPT ?= $S/arch/i386/conf/stand.ldscript | ||||
|  | ||||
| cleandir distclean: .WAIT cleanlibdir | ||||
|  | ||||
| cleanlibdir: | ||||
| 	-rm -rf lib | ||||
|  | ||||
| LIBLIST= ${LIBI386} ${LIBSA} ${LIBZ} ${LIBKERN} ${LIBI386} ${LIBSA} | ||||
| # LIBLIST= ${LIBSA} ${LIBKERN} ${LIBI386} ${LIBSA} ${LIBZ} ${LIBKERN} | ||||
|  | ||||
| CLEANFILES+= ${PROG}.tmp ${PROG}.map ${PROG}.sym vers.c | ||||
|  | ||||
| vers.c: ${VERSIONFILE} ${SOURCES} ${LIBLIST} ${.CURDIR}/../Makefile.boot | ||||
| 	${HOST_SH} ${S}/conf/newvers_stand.sh ${VERSIONFILE} x86 ${NEWVERSWHAT} | ||||
|  | ||||
| # Anything that calls 'real_to_prot' must have a %pc < 0x10000. | ||||
| # We link the program, find the callers (all in libi386), then | ||||
| # explicitly pull in the required objects before any other library code. | ||||
| ${PROG}: ${OBJS} ${LIBLIST} ${.CURDIR}/../Makefile.boot | ||||
| 	${_MKTARGET_LINK} | ||||
| 	bb="$$( ${CC} -o ${PROG}.sym ${LDFLAGS} -Wl,-Ttext,0 -Wl,-cref \ | ||||
| 	    ${OBJS} ${LIBLIST} | ( \ | ||||
| 		while read symbol file; do \ | ||||
| 			[ -z "$$file" ] && continue; \ | ||||
| 			[ "$$symbol" = real_to_prot ] && break; \ | ||||
| 		done; \ | ||||
| 		while \ | ||||
| 			oifs="$$IFS"; \ | ||||
| 			IFS='()'; \ | ||||
| 			set -- $$file; \ | ||||
| 			IFS="$$oifs"; \ | ||||
| 			[ -n "$$2" ] && echo "${I386DST}/$$2"; \ | ||||
| 			read file rest && [ -z "$$rest" ]; \ | ||||
| 		do :; \ | ||||
| 		done; \ | ||||
| 	) )"; \ | ||||
| 	${CC} -o ${PROG}.sym ${LDFLAGS} -Wl,-Ttext,0 -T ${LDSCRIPT} \ | ||||
| 		-Wl,-Map,${PROG}.map -Wl,-cref ${OBJS} $$bb ${LIBLIST} | ||||
| 	${OBJCOPY} -O binary ${PROG}.sym ${PROG} | ||||
|  | ||||
| .include <bsd.prog.mk> | ||||
| KLINK_MACHINE=	i386 | ||||
| .include <bsd.klinks.mk> | ||||
							
								
								
									
										1204
									
								
								samples/Module Management System/descrip.mms
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1204
									
								
								samples/Module Management System/descrip.mms
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										563
									
								
								samples/Module Management System/openvms.mmk
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										563
									
								
								samples/Module Management System/openvms.mmk
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,563 @@ | ||||
| #    Copyright (C) 1997, 2000 Aladdin Enterprises. All rights reserved. | ||||
| #  | ||||
| # This software is provided AS-IS with no warranty, either express or | ||||
| # implied. | ||||
| #  | ||||
| # This software is distributed under license and may not be copied, | ||||
| # modified or distributed except as expressly authorized under the terms | ||||
| # of the license contained in the file LICENSE in this distribution. | ||||
| #  | ||||
| # For more information about licensing, please refer to | ||||
| # http://www.ghostscript.com/licensing/. For information on | ||||
| # commercial licensing, go to http://www.artifex.com/licensing/ or | ||||
| # contact Artifex Software, Inc., 101 Lucas Valley Road #110, | ||||
| # San Rafael, CA  94903, U.S.A., +1(415)492-9861. | ||||
|  | ||||
| # $Id: openvms.mmk,v 1.31 2004/12/10 23:48:48 giles Exp $ | ||||
| # makefile for OpenVMS VAX and Alpha using MMK | ||||
| # | ||||
| # Please contact Jim Dunham (dunham@omtool.com) if you have questions. | ||||
| # Addapted for MMK by Jouk Jansen (joukj@hrem.stm.tudelft.nl) | ||||
| # Support for VAX C on OpenVMS was removed in release 6.01 by Aladdin: | ||||
| # DEC C is now used on both VAX and Alpha platforms. | ||||
| # | ||||
| # ------------------------------- Options ------------------------------- # | ||||
|  | ||||
| ###### This section is the only part of the file you should need to edit. | ||||
|  | ||||
| # on the make command line specify: | ||||
| #	mmk/descrip=[.src]openvms.mmk/macro=("DECWINDOWS1_2={0,1}") | ||||
|  | ||||
| # Define the directory for the final executable, and the | ||||
| # source, generated intermediate file, and object directories | ||||
| # for the graphics library (GL) and the PostScript/PDF interpreter (PS). | ||||
|  | ||||
| BINDIR=[.bin] | ||||
| GLSRCDIR=[.src] | ||||
| GLGENDIR=[.obj] | ||||
| GLOBJDIR=[.obj] | ||||
| PSSRCDIR=[.src] | ||||
| PSGENDIR=[.obj] | ||||
| PSOBJDIR=[.obj] | ||||
| PSLIBDIR=[.lib] | ||||
| # Because of OpenVMS syntactic problems, the following redundant definitions | ||||
| # are necessary.  If you are using more than one GENDIR and/or OBJDIR, | ||||
| # you will have to edit the code below that creates these directories. | ||||
| BIN_DIR=BIN.DIR | ||||
| OBJ_DIR=OBJ.DIR | ||||
|  | ||||
| # create directories | ||||
| .first | ||||
| 	if f$search("$(BIN_DIR)") .eqs. "" then create/directory/log $(BINDIR) | ||||
| 	if f$search("$(OBJ_DIR)") .eqs. "" then create/directory/log $(GLOBJDIR) | ||||
|  | ||||
| # Do not edit the next group of lines. | ||||
|  | ||||
| #.include $(COMMONDIR)vmscdefs.mak | ||||
| #.include $(COMMONDIR)vmsdefs.mak | ||||
| #.include $(COMMONDIR)generic.mak | ||||
| .include $(GLSRCDIR)version.mak | ||||
| DD=$(GLGENDIR) | ||||
| GLD=$(GLGENDIR) | ||||
| PSD=$(PSGENDIR) | ||||
|  | ||||
| # ------ Generic options ------ # | ||||
|  | ||||
| # Define the directory that will hold documentation at runtime. | ||||
|  | ||||
| GS_DOCDIR=GS_DOC | ||||
| #GS_DOCDIR=SYS$COMMON:[GS] | ||||
|  | ||||
| # Define the default directory/ies for the runtime | ||||
| # initialization and font files.  Separate multiple directories with ,. | ||||
|  | ||||
| GS_LIB_DEFAULT=GS_LIB | ||||
| #GS_LIB_DEFAULT=SYS$COMMON:[GS],SYS$COMMON:[GS.FONT] | ||||
|  | ||||
| # Define whether or not searching for initialization files should always | ||||
| # look in the current directory first.  This leads to well-known security | ||||
| # and confusion problems, but users insist on it. | ||||
| # NOTE: this also affects searching for files named on the command line: | ||||
| # see the "File searching" section of Use.htm for full details. | ||||
| # Because of this, setting SEARCH_HERE_FIRST to 0 is not recommended. | ||||
|  | ||||
| SEARCH_HERE_FIRST=1 | ||||
|  | ||||
| # Define the name of the interpreter initialization file. | ||||
| # (There is no reason to change this.) | ||||
|  | ||||
| GS_INIT=GS_INIT.PS | ||||
|  | ||||
| # Choose generic configuration options. | ||||
|  | ||||
| # Setting DEBUG=1 includes debugging features in the code | ||||
|  | ||||
| DEBUG=0 | ||||
|  | ||||
| # Setting TDEBUG=1 includes symbol table information for the debugger, | ||||
| # and also enables stack tracing on failure. | ||||
|  | ||||
| TDEBUG= | ||||
|  | ||||
| # Setting CDEBUG=1 enables 'C' compiler debugging and turns off optimization | ||||
| # Code is substantially slower and larger. | ||||
|  | ||||
| CDEBUG= | ||||
|  | ||||
| # Define the name of the executable file. | ||||
|  | ||||
| GS=GS | ||||
|  | ||||
| # Define the name of a pre-built executable that can be invoked at build | ||||
| # time.  Currently, this is only needed for compiled fonts.  The usual | ||||
| # alternatives are: | ||||
| #   - the standard name of Ghostscript on your system (typically `gs'): | ||||
| BUILD_TIME_GS=GS | ||||
| #   - the name of the executable you are building now.  If you choose this | ||||
| # option, then you must build the executable first without compiled fonts, | ||||
| # and then again with compiled fonts. | ||||
| #BUILD_TIME_GS=$(BINDIR)$(GS) -I$(PSLIBDIR) | ||||
|  | ||||
| # Define the directory where the IJG JPEG library sources are stored, | ||||
| # and the major version of the library that is stored there. | ||||
| # You may need to change this if the IJG library version changes. | ||||
| # See jpeg.mak for more information. | ||||
|  | ||||
| .ifdef SYSLIB | ||||
| JSRCDIR=sys$library: | ||||
| .else | ||||
| JSRCDIR=[--.jpeg-6b] | ||||
| .endif | ||||
| JVERSION=6 | ||||
|  | ||||
| # Define the directory where the PNG library sources are stored, | ||||
| # and the version of the library that is stored there. | ||||
| # You may need to change this if the libpng version changes. | ||||
| # See libpng.mak for more information. | ||||
|  | ||||
| .ifdef SYSLIB | ||||
| PSRCDIR=sys$library: | ||||
| .else | ||||
| PSRCDIR=[--.libpng-1_2_8] | ||||
| .endif | ||||
| PVERSION=10208 | ||||
|  | ||||
| # Define the directory where the zlib sources are stored. | ||||
| # See zlib.mak for more information. | ||||
|  | ||||
| .ifdef SYSLIB | ||||
| ZSRCDIR=sys$library: | ||||
| .else | ||||
| ZSRCDIR=[--.zlib-1_2_1] | ||||
| .endif | ||||
|  | ||||
| # Define the directory where the jbig2dec library sources are stored. | ||||
| # See jbig2.mak for more information | ||||
| .ifdef SYSLIB | ||||
| JBIG2SRCDIR=sys$library: | ||||
| .else | ||||
| JBIG2SRCDIR=[--.jbig2dec-0_7] | ||||
| .endif | ||||
|  | ||||
| # Define the directory where the icclib source are stored. | ||||
| # See icclib.mak for more information | ||||
|  | ||||
| ICCSRCDIR=[.icclib] | ||||
|  | ||||
| # IJS has not been ported to OpenVMS. If you do the port, | ||||
| # you'll need to set these values. You'll also need to | ||||
| # include the ijs.mak makefile (right after icclib.mak). | ||||
| # | ||||
| # Define the directory where the ijs source is stored, | ||||
| # and the process forking method to use for the server. | ||||
| # See ijs.mak for more information. | ||||
|  | ||||
| #IJSSRCDIR=[.ijs] | ||||
| #IJSEXECTYPE=unix | ||||
|  | ||||
| # Note that built-in third-party libraries aren't available. | ||||
|  | ||||
| SHARE_JPEG=0 | ||||
| SHARE_LIBPNG=0 | ||||
| SHARE_ZLIB=0 | ||||
| SHARE_JBIG2=0 | ||||
|  | ||||
| # Define the path to X11 include files | ||||
|  | ||||
| X_INCLUDE=DECW$INCLUDE | ||||
|  | ||||
| # ------ Platform-specific options ------ # | ||||
|  | ||||
| # Define the drive, directory, and compiler name for the 'C' compiler. | ||||
| # COMP is the full compiler path name. | ||||
|  | ||||
| .ifdef DEBUG | ||||
| SW_DEBUG=/DEBUG/NOOPTIMIZE | ||||
| .else | ||||
| # This should include /OPTIMIZE, but some OpenVMS compilers have an | ||||
| # optimizer bug that causes them to generate incorrect code for gdevpsfx.c, | ||||
| # so we must disable optimization.  (Eventually we will check for the bug | ||||
| # in genarch and enable optimization if it is safe.) | ||||
| #SW_DEBUG=/NODEBUG/OPTIMIZE | ||||
| SW_DEBUG=/NODEBUG/NOOPTIMIZE | ||||
| .endif | ||||
|  | ||||
| SW_PLATFORM=/DECC/PREFIX=ALL/NESTED_INCLUDE=PRIMARY/name=(as_is,short)/nowarn | ||||
|  | ||||
| # Define any other compilation flags.  | ||||
| # Including defines for A4 paper size | ||||
|  | ||||
| .ifdef A4_PAPER | ||||
| SW_PAPER=/DEFINE=("A4","HAVE_MKSTEMP") | ||||
| .else | ||||
| SW_PAPER=/DEFINE=("HAVE_MKSTEMP") | ||||
| .endif | ||||
|  | ||||
| .ifdef IEEE | ||||
| SW_IEEE=/float=ieee | ||||
| .else | ||||
| SW_IEEE= | ||||
| .endif | ||||
|  | ||||
| COMP=CC$(SW_DEBUG)$(SW_PLATFORM)$(SW_PAPER)$(SW_IEEE) | ||||
|  | ||||
| # LINK is the full linker path name | ||||
|  | ||||
| .ifdef TDEBUG | ||||
| LINKER=LINK/DEBUG/TRACEBACK | ||||
| .else | ||||
| LINKER=LINK/NODEBUG/NOTRACEBACK | ||||
| .endif | ||||
|  | ||||
| # INCDIR contains the include files | ||||
| INCDIR= | ||||
|  | ||||
| # LIBDIR contains the library files | ||||
| LIBDIR= | ||||
|  | ||||
| # Define the .dev module that implements thread and synchronization | ||||
| # primitives for this platform.  Don't change this unless you really know | ||||
| # what you're doing. | ||||
|  | ||||
| SYNC=posync | ||||
|  | ||||
| # ------ Devices and features ------ # | ||||
|  | ||||
| # Choose the device(s) to include.  See devs.mak for details, | ||||
| # devs.mak and contrib.mak for the list of available devices. | ||||
|  | ||||
| DEVICE_DEVS=$(DD)x11.dev $(DD)x11alpha.dev $(DD)x11cmyk.dev $(DD)x11gray2.dev $(DD)x11gray4.dev $(DD)x11mono.dev | ||||
| DEVICE_DEVS1= | ||||
| DEVICE_DEVS2= | ||||
| DEVICE_DEVS3=$(DD)deskjet.dev $(DD)djet500.dev $(DD)laserjet.dev $(DD)ljetplus.dev $(DD)ljet2p.dev $(DD)ljet3.dev $(DD)ljet3d.dev $(DD)ljet4.dev $(DD)ljet4d.dev | ||||
| DEVICE_DEVS4=$(DD)cdeskjet.dev $(DD)cdjcolor.dev $(DD)cdjmono.dev $(DD)cdj550.dev $(DD)pj.dev $(DD)pjxl.dev $(DD)pjxl300.dev | ||||
| DEVICE_DEVS5=$(DD)uniprint.dev | ||||
| DEVICE_DEVS6=$(DD)bj10e.dev $(DD)bj200.dev $(DD)bjc600.dev $(DD)bjc800.dev | ||||
| DEVICE_DEVS7=$(DD)faxg3.dev $(DD)faxg32d.dev $(DD)faxg4.dev | ||||
| DEVICE_DEVS8=$(DD)pcxmono.dev $(DD)pcxgray.dev $(DD)pcx16.dev $(DD)pcx256.dev $(DD)pcx24b.dev $(DD)pcxcmyk.dev | ||||
| DEVICE_DEVS9=$(DD)pbm.dev $(DD)pbmraw.dev $(DD)pgm.dev $(DD)pgmraw.dev $(DD)pgnm.dev $(DD)pgnmraw.dev | ||||
| DEVICE_DEVS10=$(DD)tiffcrle.dev $(DD)tiffg3.dev $(DD)tiffg32d.dev $(DD)tiffg4.dev $(DD)tifflzw.dev $(DD)tiffpack.dev | ||||
| DEVICE_DEVS11=$(DD)tiff12nc.dev $(DD)tiff24nc.dev | ||||
| DEVICE_DEVS12=$(DD)psmono.dev $(DD)psgray.dev $(DD)psrgb.dev $(DD)bit.dev $(DD)bitrgb.dev $(DD)bitcmyk.dev | ||||
| DEVICE_DEVS13=$(DD)pngmono.dev $(DD)pnggray.dev $(DD)png16.dev $(DD)png256.dev $(DD)png16m.dev $(DD)pngalpha.dev | ||||
| DEVICE_DEVS14=$(DD)jpeg.dev $(DD)jpeggray.dev | ||||
| DEVICE_DEVS15=$(DD)pdfwrite.dev $(DD)pswrite.dev $(DD)epswrite.dev $(DD)pxlmono.dev $(DD)pxlcolor.dev | ||||
| DEVICE_DEVS16=$(DD)bbox.dev | ||||
| # Overflow from DEVS9 | ||||
| DEVICE_DEVS17=$(DD)pnm.dev $(DD)pnmraw.dev $(DD)ppm.dev $(DD)ppmraw.dev $(DD)pkm.dev $(DD)pkmraw.dev $(DD)pksm.dev $(DD)pksmraw.dev | ||||
| DEVICE_DEVS18= | ||||
| DEVICE_DEVS19= | ||||
| DEVICE_DEVS20= | ||||
| DEVICE_DEVS21= | ||||
| DEVICE_DEVS21= | ||||
|  | ||||
| # Choose the language feature(s) to include.  See gs.mak for details. | ||||
|  | ||||
| FEATURE_DEVS=$(PSD)psl3.dev $(PSD)pdf.dev $(PSD)dpsnext.dev $(PSD)ttfont.dev $(PSD)epsf.dev $(PSD)fapi.dev $(PSD)jbig2.dev | ||||
|  | ||||
| # Choose whether to compile the .ps initialization files into the executable. | ||||
| # See gs.mak for details. | ||||
|  | ||||
| COMPILE_INITS=0 | ||||
|  | ||||
| # Choose whether to store band lists on files or in memory. | ||||
| # The choices are 'file' or 'memory'. | ||||
|  | ||||
| BAND_LIST_STORAGE=file | ||||
|  | ||||
| # Choose which compression method to use when storing band lists in memory. | ||||
| # The choices are 'lzw' or 'zlib'. | ||||
|  | ||||
| BAND_LIST_COMPRESSOR=zlib | ||||
|  | ||||
| # Choose the implementation of file I/O: 'stdio', 'fd', or 'both'. | ||||
| # See gs.mak and sfxfd.c for more details. | ||||
|  | ||||
| FILE_IMPLEMENTATION=stdio | ||||
|  | ||||
| # Choose the implementation of stdio: '' for file I/O and 'c' for callouts | ||||
| # See gs.mak and ziodevs.c/ziodevsc.c for more details. | ||||
|  | ||||
| STDIO_IMPLEMENTATION=c | ||||
|  | ||||
| # Define the name table capacity size of 2^(16+n). | ||||
|  | ||||
| EXTEND_NAMES=0 | ||||
|  | ||||
| # Define whether the system constants are writable. | ||||
|  | ||||
| SYSTEM_CONSTANTS_ARE_WRITABLE=0 | ||||
|  | ||||
| # Define the platform name. | ||||
|  | ||||
| PLATFORM=openvms_ | ||||
|  | ||||
| # Define the name of the makefile -- used in dependencies. | ||||
|  | ||||
| MAKEFILE=$(GLSRCDIR)openvms.mmk | ||||
| TOP_MAKEFILES=$(MAKEFILE) | ||||
|  | ||||
| # Define the platform options | ||||
|  | ||||
| PLATOPT= | ||||
|  | ||||
| # Patch a couple of PC-specific things that aren't relevant to OpenVMS builds, | ||||
| # but that cause `make' to produce warnings. | ||||
|  | ||||
| PCFBASM= | ||||
|  | ||||
| # It is very unlikely that anyone would want to edit the remaining | ||||
| #   symbols, but we describe them here for completeness: | ||||
|  | ||||
| # Define the suffix for command files (e.g., null or .bat). | ||||
|  | ||||
| CMD= | ||||
|  | ||||
| # Define the directory separator character (\ for MS-DOS, / for Unix, | ||||
| # nothing for OpenVMS). | ||||
|  | ||||
| D= | ||||
|  | ||||
| # Define the brackets for passing preprocessor definitions to the C compiler. | ||||
| NULL= | ||||
|  | ||||
| D_=/DEFINE=" | ||||
| _D_=$(NULL)= | ||||
| _D=" | ||||
|  | ||||
| # Define the syntax of search paths for the C compiler. | ||||
| # The OpenVMS compilers uses /INCLUDE=(dir1, dir2, ...dirn), | ||||
| # and only a single /INCLUDE switch is allowed in the command line. | ||||
|  | ||||
| I_=/INCLUDE=( | ||||
| II=, | ||||
| _I=) | ||||
|  | ||||
| # Define the string for specifying the output file from the C compiler. | ||||
|  | ||||
| O_=/OBJECT= | ||||
|  | ||||
| # Define the quoting string for mixed-case arguments. | ||||
| # (OpenVMS is the only platform where this isn't an empty string.) | ||||
|  | ||||
| Q=" | ||||
|  | ||||
| # Define the extension for executable files (e.g., null or .exe). | ||||
|  | ||||
| XE=.exe | ||||
|  | ||||
| # Define the extension for executable files for the auxiliary programs | ||||
| # (e.g., null or .exe). | ||||
|  | ||||
| XEAUX=.exe | ||||
|  | ||||
| # Define the list of files that `make clean' removes. | ||||
|  | ||||
| BEGINFILES=$(GLSRCDIR)OPENVMS.OPT $(GLSRCDIR)OPENVMS.COM | ||||
|  | ||||
| # Define the C invocation for auxiliary programs (echogs, genarch). | ||||
| # We don't need to define this separately. | ||||
|  | ||||
| CCAUX= | ||||
|  | ||||
| # Define the C invocation for normal compilation. | ||||
|  | ||||
| CC=$(COMP) | ||||
|  | ||||
| # Define the Link invocation. | ||||
|  | ||||
| LINK=$(LINKER)/EXE=$@ $+,$(GLSRCDIR)OPENVMS.OPT/OPTION | ||||
|  | ||||
| # Define the auxiliary program dependency. We don't need this. | ||||
|  | ||||
| AK= | ||||
|  | ||||
| # Define the syntax for command, object, and executable files. | ||||
|  | ||||
| OBJ=obj | ||||
|  | ||||
| # Define the prefix for image invocations. | ||||
|  | ||||
| EXP=MCR $(NULL) | ||||
|  | ||||
| # Define the prefix for shell invocations. | ||||
|  | ||||
| SH= | ||||
|  | ||||
| # Define generic commands. | ||||
|  | ||||
| CP_=@$(GLSRCDIR)COPY_ONE | ||||
|  | ||||
| # Define the command for deleting (a) file(s) (including wild cards) | ||||
|  | ||||
| RM_=@$(GLSRCDIR)RM_ONE | ||||
|  | ||||
| # Define the command for deleting multiple files / patterns. | ||||
|  | ||||
| RMN_=@$(GLSRCDIR)RM_ALL | ||||
|  | ||||
| # Define the arguments for genconf. | ||||
|  | ||||
| CONFILES=-p %s | ||||
| CONFLDTR=-o | ||||
|  | ||||
| # Define the generic compilation rules. | ||||
|  | ||||
| .suffixes : .c .obj .exe | ||||
|  | ||||
| .obj.exe : | ||||
| 	$(LINK) | ||||
|  | ||||
| # ---------------------------- End of options ---------------------------- # | ||||
|  | ||||
| # Define various incantations of the 'c' compiler. | ||||
|  | ||||
| CC_=$(COMP) | ||||
| CC_INT=$(CC_) | ||||
| CC_NO_WARN=$(CC_) | ||||
|  | ||||
| # ------------------- Include the generic makefiles ---------------------- # | ||||
|  | ||||
| all : macro [.lib]Fontmap. $(GS_XE) | ||||
|  | ||||
| #.include $(COMMONDIR)/ansidefs.mak | ||||
| #.include $(COMMONDIR)/vmsdefs.mak | ||||
| #.include $(COMMONDIR)/generic.mak | ||||
| .include $(GLSRCDIR)gs.mak | ||||
| .include $(GLSRCDIR)lib.mak | ||||
| .include $(PSSRCDIR)int.mak | ||||
| .include $(PSSRCDIR)cfonts.mak | ||||
| .include $(GLSRCDIR)jpeg.mak | ||||
| # zlib.mak must precede libpng.mak | ||||
| .include $(GLSRCDIR)zlib.mak | ||||
| .include $(GLSRCDIR)libpng.mak | ||||
| JBIG2_EXTRA_OBJS=$(JBIG2OBJDIR)$(D)snprintf.$(OBJ) | ||||
| .include $(GLSRCDIR)jbig2.mak | ||||
| .include $(GLSRCDIR)icclib.mak | ||||
| .include $(GLSRCDIR)devs.mak | ||||
| .include $(GLSRCDIR)contrib.mak | ||||
|  | ||||
|  | ||||
| # ----------------------------- Main program ------------------------------  | ||||
|  | ||||
| macro : | ||||
| .ifdef A4_PAPER | ||||
| 	@ a4p = 1 | ||||
| .else | ||||
| 	@ a4p = 0 | ||||
| .endif | ||||
| .ifdef IEEE | ||||
| 	@ i3e = 1 | ||||
| .else | ||||
| 	@ i3e = 0 | ||||
| .endif | ||||
| .ifdef SYSLIB | ||||
| 	@ dsl = 1 | ||||
| .else | ||||
| 	@ dsl = 0 | ||||
| .endif | ||||
| 	@ decc = f$search("SYS$SYSTEM:DECC$COMPILER.EXE").nes."" | ||||
| 	@ decw12 = f$search("SYS$SHARE:DECW$XTLIBSHRR5.EXE").nes."" | ||||
| 	@ macro = "" | ||||
| 	@ if dsl.or.a4p.or.decc.or.decw12 then macro = "/MACRO=(" | ||||
| 	@ if decw12 then macro = macro + "DECWINDOWS1_2=1," | ||||
| 	@ if a4p then macro = macro + "A4_PAPER=1," | ||||
| 	@ if dsl then macro = macro + "SYSLIB=1," | ||||
| 	@ if i3e then macro = macro + "IEEE=1," | ||||
| 	@ if macro.nes."" then macro = f$extract(0,f$length(macro)-1,macro)+ ")" | ||||
| 	$(MMS)$(MMSQUALIFIERS)'macro' $(GS_XE) | ||||
|  | ||||
| $(GS_XE) : openvms $(GLGEN)arch.h $(GLOBJDIR)gs.$(OBJ) $(INT_ALL) $(LIB_ALL) | ||||
| 	$(LINKER)/EXE=$@ $(GLOBJDIR)gs.$(OBJ),$(ld_tr)/OPTIONS,$(GLSRCDIR)OPENVMS.OPT/OPTION | ||||
| 	@ Write Sys$Output "Build of GhostScript is complete!" | ||||
|  | ||||
| # OpenVMS.dev | ||||
|  | ||||
| openvms__=$(GLOBJ)gp_getnv.$(OBJ) $(GLOBJ)gp_vms.$(OBJ) $(GLOBJ)gp_stdia.$(OBJ) | ||||
| $(GLGEN)openvms_.dev : $(openvms__) $(GLGEN)nosync.dev | ||||
| 	$(SETMOD) $(GLGEN)openvms_ $(openvms__) -include $(GLGEN)nosync | ||||
|  | ||||
| $(ECHOGS_XE) :  $(GLOBJDIR)echogs.$(OBJ)  | ||||
| $(GENARCH_XE) : $(GLOBJDIR)genarch.$(OBJ) | ||||
| $(GENCONF_XE) : $(GLOBJDIR)genconf.$(OBJ) | ||||
| $(GENDEV_XE) : $(GLOBJDIR)gendev.$(OBJ) | ||||
| $(GENHT_XE) : $(GLOBJDIR)genht.$(OBJ) | ||||
| $(GENINIT_XE) : $(GLOBJDIR)geninit.$(OBJ) | ||||
|  | ||||
| $(GLOBJDIR)echogs.$(OBJ) : $(GLSRCDIR)echogs.c | ||||
| $(GLOBJDIR)genarch.$(OBJ) : $(GLSRCDIR)genarch.c $(GENARCH_DEPS) | ||||
| $(GLOBJDIR)genconf.$(OBJ) : $(GLSRCDIR)genconf.c $(GENCONF_DEPS) | ||||
| $(GLOBJDIR)gendev.$(OBJ) : $(GLSRCDIR)gendev.c $(GENDEV_DEPS) | ||||
| # ****** NEED TO ADD $(GENHT_CFLAGS) HERE ****** | ||||
| $(GLOBJDIR)genht.$(OBJ) : $(GLSRCDIR)genht.c $(GENHT_DEPS) | ||||
| $(GLOBJDIR)geninit.$(OBJ) : $(GLSRCDIR)geninit.c $(GENINIT_DEPS) | ||||
|  | ||||
| $(GLOBJ)gp_vms.$(OBJ) : $(GLSRC)gp_vms.c $(string__h) $(memory__h) $(gx_h) $(gp_h) $(gpmisc_h) $(gsstruct_h) | ||||
| 	$(CC_)/include=($(GLGENDIR),$(GLSRCDIR))/obj=$(GLOBJ)gp_vms.$(OBJ) $(GLSRC)gp_vms.c | ||||
|  | ||||
| $(GLOBJ)gp_stdia.$(OBJ) : $(GLSRC)gp_stdia.c $(AK) $(stdio__h) $(time__h) $(unistd__h) $(gx_h) $(gp_h) | ||||
| 	$(CC_)/incl=$(GLOBJ)/obj=$(GLOBJ)gp_stdia.$(OBJ) $(GLSRC)gp_stdia.c | ||||
|  | ||||
| # Preliminary definitions | ||||
|  | ||||
| openvms : $(GLSRCDIR)openvms.com $(GLSRCDIR)openvms.opt | ||||
| 	@$(GLSRCDIR)OPENVMS | ||||
|  | ||||
| $(GLSRCDIR)openvms.com : $(GLSRCDIR)append_l.com | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB X11 $(X_INCLUDE)" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB GS_LIB ''F$ENVIRONMENT(""DEFAULT"")'" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB GS_DOC ''F$ENVIRONMENT(""DEFAULT"")'" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB DECC$USER_INCLUDE ''F$ENVIRONMENT(""DEFAULT"")', DECW$INCLUDE, DECC$LIBRARY_INCLUDE, SYS$LIBRARY" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB DECC$SYSTEM_INCLUDE ''F$ENVIRONMENT(""DEFAULT"")', DECW$INCLUDE, DECC$LIBRARY_INCLUDE, SYS$LIBRARY" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "$ DEFINE/JOB SYS "DECC$LIBRARY_INCLUDE,SYS$LIBRARY" | ||||
|  | ||||
| $(GLSRCDIR)openvms.opt : | ||||
| .ifdef DECWINDOWS1_2 | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XMLIBSHR12.EXE/SHARE" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XTLIBSHRR5.EXE/SHARE" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XLIBSHR.EXE/SHARE" | ||||
| .else | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XMLIBSHR.EXE/SHARE" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XTSHR.EXE/SHARE" | ||||
| 	@$(GLSRCDIR)APPEND_L $@ "SYS$SHARE:DECW$XLIBSHR.EXE/SHARE" | ||||
| .endif | ||||
| 	@$(GLSRCDIR)APPEND_L $@ ""Ident="""""GS $(GS_DOT_VERSION)""""" | ||||
|  | ||||
| # The platform-specific makefiles must also include rules for creating | ||||
| # certain dynamically generated files: | ||||
| #	gconfig_.h - this indicates the presence or absence of | ||||
| #	    certain system header files that are located in different | ||||
| #	    places on different systems.  (It could be generated by | ||||
| #	    the GNU `configure' program.) | ||||
| #	gconfigv.h - this indicates the status of certain machine- | ||||
| #	    and configuration-specific features derived from definitions | ||||
| #	    in the platform-specific makefile. | ||||
|  | ||||
| $(gconfig__h) : $(TOP_MAKEFILES) $(ECHOGS_XE) | ||||
| 	$(EXP)$(ECHOGS_XE) -w $(gconfig__h) -x 23 define "HAVE_SYS_TIME_H" | ||||
|  | ||||
| $(gconfigv_h) : $(TOP_MAKEFILES) $(ECHOGS_XE) | ||||
| 	$(EXP)$(ECHOGS_XE) -w $(gconfigv_h) -x 23 define "USE_ASM" 0 | ||||
| 	$(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "USE_FPU" 1 | ||||
| 	$(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "EXTEND_NAMES" 0$(EXTEND_NAMES) | ||||
| 	$(EXP)$(ECHOGS_XE) -a $(gconfigv_h) -x 23 define "SYSTEM_CONSTANTS_ARE_WRITABLE" 0$(SYSTEM_CONSTANTS_ARE_WRITABLE) | ||||
							
								
								
									
										1204
									
								
								samples/Module Management System/simh_descrip.mms
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										1204
									
								
								samples/Module Management System/simh_descrip.mms
									
									
									
									
									
										Executable file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										31
									
								
								samples/Module Management System/spline_descrip.mms
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								samples/Module Management System/spline_descrip.mms
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| ! | ||||
| ! $Id: descrip.mms 35 2008-01-08 21:37:42Z tmr $ | ||||
| ! | ||||
| ! Project:  LISP -- The LISP Interpreter | ||||
| ! Created:  22-DEC-2008 18:35 | ||||
| ! Author:   tmr | ||||
|  | ||||
| cc = cc | ||||
| cflags = /define="_VMS_=1" - | ||||
| /WARN=DISABLE=(ZERODIV,FLOATOVERFL,NOMAINUFLO) - | ||||
| /IEEE_MODE=UNDERFLOW_TO_ZERO/FLOAT=IEEE | ||||
| core = LISP_CORE | ||||
| main = LISP_MAIN | ||||
| exec = [.bin]LISP | ||||
| clib = SYS$LIBRARY:VAXCRTL | ||||
| head = LISP_CORE | ||||
| objs = $(core).obj, $(main).obj | ||||
|  | ||||
| $(exec) : $(objs) | ||||
|         DEFINE/NOLOG LNK$LIBRARY $(clib) | ||||
|         LINK/EXEC=$(exec) $(objs) | ||||
|         DEASSIGN LNK$LIBRARY | ||||
|  | ||||
| $(core).obj : $(core).c, $(head).h | ||||
|  | ||||
| $(main).obj : $(main).c, $(head).h | ||||
|  | ||||
| clean : | ||||
|         del *.obj;* | ||||
|         del *.exe;* | ||||
|  | ||||
							
								
								
									
										271
									
								
								samples/Module Management System/xv_makefile.mms
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										271
									
								
								samples/Module Management System/xv_makefile.mms
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,271 @@ | ||||
| #	MMS Description file for xv | ||||
| #	Written by Rick Dyson (dyson@iowasp.physics.uiowa.edu) | ||||
| #	Last Modified:	30-APR-1992 for v2.21 | ||||
| #			 5-OCT-1992 for v2.21 (export.lcs.mit.edu version | ||||
| #				    of xv-2.21 seemed to change about | ||||
| #				    25-Sep-1992 without version number | ||||
| #				    changing. | ||||
| #			 8-FEB-1993 for v2.21b | ||||
| #				    ALPHA support is in ALPHA.MMS | ||||
| #			 2-MAR-1993 for v3.00 | ||||
| #			15-APR-1993 for v3.00 (DEC C changes) | ||||
| #			25-MAY-1993 merged ALPHA.MMS and MAKEFILE.MMS | ||||
| #                       27-APR-1994 for v3.01 | ||||
| #			23-DEC-1994 for v3.10 | ||||
| # | ||||
| # 	Modeled after the original Unix Makefile for xv | ||||
| #	Most of the Unix comments have been left intact to help debug any | ||||
| #	problems. | ||||
|  | ||||
|  | ||||
| # BE SURE TO SET THIS TO YOUR SITE'S DESTINATION DIRECTORY...!!! | ||||
| BINDIR = Sys$Disk:[] | ||||
|  | ||||
| # your C compiler (and options) of choice | ||||
| # Remember:  if you change the C compiler (to gcc, or whatever), be sure to | ||||
| # do the same thing to the Makefile in the 'jpeg' and 'tiff' subdirectories | ||||
| # | ||||
| # For ALPHA/DEC C users, you must add a MACRO qualifier to the | ||||
| # command line, i.e., | ||||
| #       MMS /Description = Makefile.mms /Macro = ("ALPHA=1") | ||||
| # | ||||
| # For VAX/DEC C users, you must add a MACRO qualifier to the | ||||
| # command line, i.e., | ||||
| #       MMS /Description = Makefile.mms /Macro = ("DECC=1") | ||||
| # | ||||
| # Users still using the non-MOTIF DECWindows (i.e., XUI) should also | ||||
| # add another macro of "DEC_XUI=1" | ||||
|  | ||||
| CC = cc | ||||
|  | ||||
|  | ||||
| ################ CONFIGURATION OPTIONS ################# | ||||
|  | ||||
| # if, for whatever reason, you're unable to get the JPEG library to compile | ||||
| # on your machine, *COMMENT OUT* the following lines. | ||||
| # | ||||
| # Also, comment out the JPEGLIB dependancy below. | ||||
| # | ||||
| #  VMS MMS USERS!!! | ||||
| # | ||||
| # 	if you don't use the JPEG package as supplied with XV, you | ||||
| # 	will need fill in the complete directory specifications for JPEGDIR. | ||||
| # | ||||
| JPEG = ,HAVE_JPEG | ||||
| JPEGDIR = [.JPEG] | ||||
| JPEGLIB = $(JPEGDIR)LIBJPEG.OLB | ||||
| JPEGINCLUDE = ,$(JPEGDIR) | ||||
|  | ||||
|  | ||||
| # if, for whatever reason, you're unable to get the TIFF library to compile | ||||
| # on your machine, *COMMENT OUT* the following lines | ||||
| # | ||||
| # Also, comment out the LIBTIFF dependancy at the end of this Makefile | ||||
| # | ||||
| # 	if you don't use the TIFF package as supplied with XV, you | ||||
| # 	will need to fill in the complete directory specifications for TIFFDIR. | ||||
| # | ||||
| TIFF = ,HAVE_TIFF | ||||
| TIFFDIR = [.TIFF] | ||||
| TIFFLIB = $(TIFFDIR)LIBTIFF.OLB | ||||
| TIFFINCLUDE = ,$(TIFFDIR) | ||||
|  | ||||
|  | ||||
| # if, for whatever reason, you're unable to get the PDS/VICAR support | ||||
| # to compile (xvpds.c, and vdcomp.c), *COMMENT OUT* the following line, | ||||
| # and also remove 'vdcomp' from the 'all:' dependancy | ||||
| PDS = ,HAVE_PDS | ||||
|  | ||||
|  | ||||
| # If you are still using the DECWindows XUI interface, uncomment the | ||||
| # next line.  This will help stop the "window creep" problem with this | ||||
| # window mananager | ||||
| .ifdef DEC_XUI | ||||
| XUI = ,HAVE_XUI | ||||
| .endif | ||||
|  | ||||
| DEFS = /Define = (VMS$(JPEG)$(PDS)$(TIFF)$(TIMERS)$(XUI)) | ||||
| INCS = /Include = ([]$(JPEGINCLUDE)$(TIFFINCLUDE)) | ||||
|  | ||||
| .ifdef ALPHA | ||||
| OPTIMIZE = /Optimize /Standard = VAXC | ||||
| OPTS = Sys$Disk:[]DECC_OPTIONS.OPT | ||||
| .else | ||||
| .ifdef DECC | ||||
| OPTIMIZE = /Optimize /Standard = VAXC /Warnings = NoInformationals | ||||
| OPTS = Sys$Disk:[]DECC_OPTIONS.OPT | ||||
| .else | ||||
| OPTIMIZE = /Optimize | ||||
| OPTS = Sys$Disk:[]VAXC_OPTIONS.OPT | ||||
| .endif | ||||
| .endif | ||||
| DEBUG = /NoDebug | ||||
|  | ||||
| CFLAGS = $(CFLAGS) $(DEFS) $(INCS) $(DEBUG) $(OPTIMIZE) | ||||
| LINKFLAGS = $(LINKFLAGS) $(DEBUG) | ||||
|  | ||||
| XVLIB = LIBXV.OLB | ||||
|  | ||||
| OBJS = 	xv.obj,xvevent.obj,xvroot.obj,xvmisc.obj,xvimage.obj,xvcolor.obj, \ | ||||
|         xvsmooth.obj,xv24to8.obj,xvgif.obj,xvpm.obj,xvinfo.obj,xvctrl.obj, \ | ||||
|         xvscrl.obj,xvalg.obj,xvgifwr.obj,xvdir.obj,xvbutt.obj,xvpbm.obj, \ | ||||
|         xvxbm.obj,xvgam.obj,xvbmp.obj,xvdial.obj,xvgraf.obj,xvsunras.obj, \ | ||||
|         xvjpeg.obj,xvps.obj,xvpopup.obj,xvdflt.obj,xvtiff.obj,xvtiffwr.obj, \ | ||||
|         xvpds.obj,xvrle.obj,xviris.obj,xvgrab.obj,xvbrowse.obj,xviff.obj, \ | ||||
|         xvtext.obj,xvpcx.obj,xvtarga.obj,xvxpm.obj,xvcut.obj,xvxwd.obj,   \ | ||||
|         xvfits.obj,vms.obj | ||||
|  | ||||
|  | ||||
| BITS = [.Bits]annot.h | ||||
|  | ||||
| MISC = readme. changelog. ideas. | ||||
|  | ||||
| .first | ||||
| .ifdef ALPHA | ||||
| 	@- Define /NoLog Sys DECC$Library_Include | ||||
| .else | ||||
| .ifdef DECC | ||||
| 	@- Define /NoLog Sys DECC$Library_Include | ||||
| .else | ||||
| 	@- Define /NoLog Sys Sys$Library | ||||
| .endif | ||||
| 	@- Define /NoLog X11 DECW$Include | ||||
| 	@- XVDIR = F$Environment ("Default") | ||||
| .endif | ||||
|  | ||||
| all : 		$(BITS) $(OPTS) lib xv bggen decompress xcmap xvpictoppm help | ||||
| 	! All Finished with the VMS build of XV (v3.10) | ||||
|  | ||||
| lib :   	$(JPEGLIB) $(TIFFLIB) $(XVLIB) | ||||
| 	@ Continue | ||||
|  | ||||
| xv :		xv.exe | ||||
| 	@ Continue | ||||
|  | ||||
| bggen :		bggen.exe | ||||
| 	@ Continue | ||||
|  | ||||
| xcmap :         xcmap.exe | ||||
| 	@ Continue | ||||
|  | ||||
| xvpictoppm :	xvpictoppm.exe | ||||
| 	@ Continue | ||||
|  | ||||
| help :		xv.hlb | ||||
| 	@ Continue | ||||
|  | ||||
| decompress :	decompress.exe vdcomp.exe | ||||
| 	@ Continue | ||||
|  | ||||
| bggen.exe : 	bggen.obj $(XVLIB) $(OPTS) | ||||
| 	$(LINK) $(LINKFLAGS) bggen.obj,$(XVLIB)/Library,$(OPTS)/Option | ||||
|  | ||||
| xcmap.exe :     xcmap.obj | ||||
| 	$(LINK) $(LINKFLAGS) xcmap.obj,$(XVLIB)/Library,$(OPTS)/Option | ||||
|  | ||||
| xvpictoppm.exe :	xvpictoppm.obj | ||||
| 	$(LINK) $(LINKFLAGS) xvpictoppm.obj,$(XVLIB)/Library,$(OPTS)/Option | ||||
|  | ||||
| xv.exe : 	xv.obj $(XVLIB) $(JPEGLIB) $(TIFFLIB) $(OPTS)  | ||||
| 	$(LINK) $(LINKFLAGS) xv.obj,$(XVLIB)/Library,$(JPEGLIB)/Library,$(TIFFLIB)/Library,$(OPTS)/Option | ||||
|  | ||||
| $(JPEGLIB) : | ||||
| 	Set Default $(JPEGDIR) | ||||
| .ifdef ALPHA | ||||
| 	$(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBJPEG.OLB | ||||
| .else | ||||
| 	$(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS LIBJPEG.OLB | ||||
| .endif | ||||
| 	Set Default 'XVDIR' | ||||
|  | ||||
| $(TIFFLIB) : | ||||
| 	Set Default $(TIFFDIR) | ||||
| .ifdef ALPHA | ||||
| 	$(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBTIFF.OLB | ||||
| .else | ||||
| .ifdef DECC | ||||
| 	$(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS /Macro = "ALPHA = 1" LIBTIFF.OLB | ||||
| .else | ||||
| 	$(MMS) $(MMSDEFAULTS) /Description = MAKEFILE.MMS LIBTIFF.OLB | ||||
| .endif | ||||
| .endif | ||||
| 	Set Default 'XVDIR' | ||||
|  | ||||
| $(XVLIB) :	$(OBJS) | ||||
|         If "''F$Search ("$(XVLIB)")'" .eqs. "" Then Library /Create $(XVLIB) | ||||
| 	Library /Replace $(XVLIB) $(OBJS) | ||||
|  | ||||
| decompress.exe :	decompress.obj | ||||
| 	$(LINK) $(LINKFLAGS) decompress.obj,$(OPTS)/Option | ||||
|  | ||||
| vdcomp.exe :	vdcomp.obj | ||||
| 	$(LINK) $(LINKFLAGS) vdcomp.obj,$(OPTS)/Option | ||||
|  | ||||
| [.Bits]annot.h :	 | ||||
| 	Set Default [.Bits] | ||||
| 	Set Protection = Owner:RWED *. | ||||
| 	Rename *. *.H | ||||
| 	Set Protection = Owner:RWE *.H | ||||
| 	Set Default [-] | ||||
|  | ||||
| #	various dependencies | ||||
| $(OBJS) :   		xv.h config.h | ||||
| xv.hlb :		xv.hlp | ||||
| vms.obj :		includes.h dirent.h | ||||
|  | ||||
| # | ||||
| #  Build the linker options file for OpenVMS VAX and VAX C. | ||||
| # | ||||
| Sys$Disk:[]VAXC_Options.opt : | ||||
|         @ Open /Write TMP VAXC_Options.opt | ||||
|         @ Write TMP "! XV (v3.10) Linker Options list for VMS VAX C" | ||||
|         @ Write TMP "!" | ||||
|         @ Write TMP "Sys$Disk:[]LibXV.OLB /Library" | ||||
|         @ Write TMP "Sys$Disk:[.JPEG]LibJPEG.OLB /Library" | ||||
|         @ Write TMP "Sys$Disk:[.TIFF]LibTIFF.OLB /Library" | ||||
| .ifdef DEC_XUI | ||||
|         @ Write TMP "!" | ||||
|         @ Write TMP "! These were appropriate for VAX C and XUI in the past." | ||||
|         @ Write TMP "Sys$Library:DECW$DWTLibShr.exe /Share | ||||
|         @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share | ||||
|         @ Write TMP "!You may need the next line for VAX C (v3.2-044)" | ||||
|         @ Write TMP "!But you don't for DEC C (v4.0-000)" | ||||
|         @ Write TMP "Sys$Library:VAXCRTL.EXE /Share" | ||||
| .else | ||||
|         @ Write TMP "!" | ||||
|         @ Write TMP "! Some of the following libraries may not be available on" | ||||
|         @ Write TMP "! older systems, namely XUI or Motif v1.0/1.1" | ||||
|         @ Write TMP "! I know they are available for OpenVMS v6.1/Motif v1.2." | ||||
|         @ Write TMP "! If you get a report that they can't be found," | ||||
|         @ Write TMP "! comment them out and try again..." | ||||
|         @ Write TMP "Sys$Library:DECW$DXMLibShr12.exe /Share | ||||
|         @ Write TMP "Sys$Library:DECW$XMLibShr12.exe /Share | ||||
|         @ Write TMP "Sys$Library:DECW$XTLibShrR5.exe /Share" | ||||
|         @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share | ||||
| .endif | ||||
|         @ Close TMP | ||||
|  | ||||
| Sys$Disk:[]DECC_Options.opt : | ||||
|         @ Open /Write TMP DECC_Options.opt | ||||
|         @ Write TMP "! XV (v3.10) Linker Options list for VMS DEC C" | ||||
|         @ Write TMP "!" | ||||
|         @ Write TMP "Sys$Disk:[]LibXV.olb /Library" | ||||
|         @ Write TMP "Sys$Disk:[.JPEG]LibJPEG.olb /Library" | ||||
|         @ Write TMP "Sys$Disk:[.TIFF]LibTIFF.olb /Library" | ||||
|         @ Write TMP "Sys$Library:DECW$XTShr.exe /Share" | ||||
|         @ Write TMP "Sys$Library:DECW$XLibShr.exe /Share" | ||||
|         @ Close TMP | ||||
|  | ||||
| install :	xv.exe vdcomp.exe bggen.exe decompress.exe | ||||
| 	Copy *.exe $(BINDIR) | ||||
|  | ||||
| clean : | ||||
| 	@- Set Protection = Owner:RWED *.obj,*.*;-1 | ||||
| 	- Delete /NoConfirm /NoLog *.obj;*,*.exe;*,*.log;*,*.olb;*,*.hlb;* | ||||
| 	- Purge /NoConfirm /NoLog | ||||
| 	Set Default [.JPEG] | ||||
| 	$(MMS) /Description = MAKEFILE.MMS clean | ||||
| 	- Delete /NoConfirm /NoLog *.olb;* | ||||
| 	Set Default [-.TIFF] | ||||
| 	$(MMS) /Description = MAKEFILE.MMS clean | ||||
| 	Set Default [-] | ||||
							
								
								
									
										78
									
								
								samples/NetLinx+ERB/sample.axi.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								samples/NetLinx+ERB/sample.axi.erb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| (*********************************************************** | ||||
|     Sample File | ||||
|      | ||||
|     For testing syntax highlighting | ||||
| ************************************************************) | ||||
|  | ||||
| #if_not_defined Sample | ||||
| #define Sample 1 | ||||
| (***********************************************************) | ||||
| (* System Type : NetLinx                                   *) | ||||
| (***********************************************************) | ||||
| (*           DEVICE NUMBER DEFINITIONS GO BELOW            *) | ||||
| (***********************************************************) | ||||
| DEFINE_DEVICE | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              CONSTANT DEFINITIONS GO BELOW              *) | ||||
| (***********************************************************) | ||||
| DEFINE_CONSTANT | ||||
|  | ||||
| <% global_constant_justify = 20 -%> | ||||
| // Video Source Select Buttons | ||||
| <%= | ||||
|     video_sources = { | ||||
|         BTN_VID_FOH_PC:   { btn: 11, input: :VID_SRC_FOH_PC }, | ||||
|         BTN_VID_STAGE_PC: { btn: 12, input: :VID_SRC_STAGE_PC }, | ||||
|         BTN_VID_BLURAY:   { btn: 13, input: :VID_SRC_BLURAY }, | ||||
|     } | ||||
|      | ||||
|     print_constant_hash video_sources.remap(:btn), | ||||
|         justify: global_constant_justify | ||||
| %> | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                    INCLUDES GO BELOW                    *) | ||||
| (***********************************************************) | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              DATA TYPE DEFINITIONS GO BELOW             *) | ||||
| (***********************************************************) | ||||
| DEFINE_TYPE | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              VARIABLE DEFINITIONS GO BELOW              *) | ||||
| (***********************************************************) | ||||
| DEFINE_VARIABLE | ||||
|  | ||||
| (***********************************************************) | ||||
| (*         SUBROUTINE/FUNCTION DEFINITIONS GO BELOW        *) | ||||
| (***********************************************************) | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                 STARTUP CODE GOES BELOW                 *) | ||||
| (***********************************************************) | ||||
| DEFINE_START | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                   THE EVENTS GO BELOW                   *) | ||||
| (***********************************************************) | ||||
| DEFINE_EVENT | ||||
|  | ||||
| // Video Source Select | ||||
| <%= | ||||
|     justify group(video_sources.remap :input) { |name, input| | ||||
|         "[#{@dvTP}, #{name}] = (outputs[VID_DEST_PROJECTOR].input == #{input});" | ||||
|     } | ||||
| %> | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                 THE MAINLINE GOES BELOW                 *) | ||||
| (***********************************************************) | ||||
| DEFINE_PROGRAM | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                     END OF PROGRAM                      *) | ||||
| (*          DO NOT PUT ANY CODE BELOW THIS COMMENT         *) | ||||
| (***********************************************************) | ||||
| #end_if | ||||
							
								
								
									
										78
									
								
								samples/NetLinx+ERB/sample.axs.erb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										78
									
								
								samples/NetLinx+ERB/sample.axs.erb
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,78 @@ | ||||
| (*********************************************************** | ||||
|     Sample File | ||||
|      | ||||
|     For testing syntax highlighting | ||||
| ************************************************************) | ||||
|  | ||||
| #if_not_defined Sample | ||||
| #define Sample 1 | ||||
| (***********************************************************) | ||||
| (* System Type : NetLinx                                   *) | ||||
| (***********************************************************) | ||||
| (*           DEVICE NUMBER DEFINITIONS GO BELOW            *) | ||||
| (***********************************************************) | ||||
| DEFINE_DEVICE | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              CONSTANT DEFINITIONS GO BELOW              *) | ||||
| (***********************************************************) | ||||
| DEFINE_CONSTANT | ||||
|  | ||||
| <% global_constant_justify = 20 -%> | ||||
| // Video Source Select Buttons | ||||
| <%= | ||||
|     video_sources = { | ||||
|         BTN_VID_FOH_PC:   { btn: 11, input: :VID_SRC_FOH_PC }, | ||||
|         BTN_VID_STAGE_PC: { btn: 12, input: :VID_SRC_STAGE_PC }, | ||||
|         BTN_VID_BLURAY:   { btn: 13, input: :VID_SRC_BLURAY }, | ||||
|     } | ||||
|      | ||||
|     print_constant_hash video_sources.remap(:btn), | ||||
|         justify: global_constant_justify | ||||
| %> | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                    INCLUDES GO BELOW                    *) | ||||
| (***********************************************************) | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              DATA TYPE DEFINITIONS GO BELOW             *) | ||||
| (***********************************************************) | ||||
| DEFINE_TYPE | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              VARIABLE DEFINITIONS GO BELOW              *) | ||||
| (***********************************************************) | ||||
| DEFINE_VARIABLE | ||||
|  | ||||
| (***********************************************************) | ||||
| (*         SUBROUTINE/FUNCTION DEFINITIONS GO BELOW        *) | ||||
| (***********************************************************) | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                 STARTUP CODE GOES BELOW                 *) | ||||
| (***********************************************************) | ||||
| DEFINE_START | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                   THE EVENTS GO BELOW                   *) | ||||
| (***********************************************************) | ||||
| DEFINE_EVENT | ||||
|  | ||||
| // Video Source Select | ||||
| <%= | ||||
|     justify group(video_sources.remap :input) { |name, input| | ||||
|         "[#{@dvTP}, #{name}] = (outputs[VID_DEST_PROJECTOR].input == #{input});" | ||||
|     } | ||||
| %> | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                 THE MAINLINE GOES BELOW                 *) | ||||
| (***********************************************************) | ||||
| DEFINE_PROGRAM | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                     END OF PROGRAM                      *) | ||||
| (*          DO NOT PUT ANY CODE BELOW THIS COMMENT         *) | ||||
| (***********************************************************) | ||||
| #end_if | ||||
							
								
								
									
										132
									
								
								samples/NetLinx/projector.axi
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								samples/NetLinx/projector.axi
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,132 @@ | ||||
| (*********************************************************** | ||||
|     Mock Projector | ||||
|      | ||||
|     For testing syntax highlighting | ||||
| ************************************************************) | ||||
|  | ||||
| #if_not_defined MOCK_PROJECTOR | ||||
| #define MOCK_PROJECTOR 1 | ||||
| (***********************************************************) | ||||
| (* System Type : NetLinx                                   *) | ||||
| (***********************************************************) | ||||
| (*           DEVICE NUMBER DEFINITIONS GO BELOW            *) | ||||
| (***********************************************************) | ||||
| DEFINE_DEVICE | ||||
|  | ||||
| dvPROJECTOR = 5001:1:0; | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              CONSTANT DEFINITIONS GO BELOW              *) | ||||
| (***********************************************************) | ||||
| DEFINE_CONSTANT | ||||
|  | ||||
| // Power States | ||||
| POWER_STATE_ON      = 0; | ||||
| POWER_STATE_OFF     = 1; | ||||
| POWER_STATE_WARMING = 2; | ||||
| POWER_STATE_COOLING = 3; | ||||
|  | ||||
| // Inputs | ||||
| INPUT_HDMI          = 0; | ||||
| INPUT_VGA           = 1; | ||||
| INPUT_COMPOSITE     = 2; | ||||
| INPUT_SVIDEO        = 3; | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                    INCLUDES GO BELOW                    *) | ||||
| (***********************************************************) | ||||
|  | ||||
| #include 'amx-lib-log' | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              DATA TYPE DEFINITIONS GO BELOW             *) | ||||
| (***********************************************************) | ||||
| DEFINE_TYPE | ||||
|  | ||||
| struct projector_t | ||||
| { | ||||
|     integer power_state; | ||||
|     integer input; | ||||
|     integer lamp_hours; | ||||
| } | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              VARIABLE DEFINITIONS GO BELOW              *) | ||||
| (***********************************************************) | ||||
| DEFINE_VARIABLE | ||||
|  | ||||
| volatile projector_t proj_1; | ||||
|  | ||||
| (***********************************************************) | ||||
| (*         SUBROUTINE/FUNCTION DEFINITIONS GO BELOW        *) | ||||
| (***********************************************************) | ||||
|  | ||||
| define_function initialize(projector_t self) | ||||
| { | ||||
|     self.power_state = POWER_STATE_OFF; | ||||
|     self.input = INPUT_HDMI; | ||||
|     self.lamp_hours = 0; | ||||
| } | ||||
|  | ||||
| define_function switch_input(projector_t self, integer input) | ||||
| { | ||||
|     self.input = input; | ||||
|     print(LOG_LEVEL_INFO, "'Projector set to input: ', itoa(input)"); | ||||
| } | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                 STARTUP CODE GOES BELOW                 *) | ||||
| (***********************************************************) | ||||
| DEFINE_START | ||||
|  | ||||
| initialize(proj_1); | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                   THE EVENTS GO BELOW                   *) | ||||
| (***********************************************************) | ||||
| DEFINE_EVENT | ||||
|  | ||||
| data_event[dvPROJECTOR] | ||||
| { | ||||
|     string: | ||||
|     { | ||||
|         parse_message(data.text); | ||||
|     } | ||||
|      | ||||
|     command: {} | ||||
|     online:  {} | ||||
|     offline: {} | ||||
| } | ||||
|  | ||||
| button_event[dvTP, BTN_HDMI] | ||||
| button_event[dvTP, BTN_VGA] | ||||
| button_event[dvTP, BTN_COMPOSITE] | ||||
| button_event[dvTP, BTN_SVIDEO] | ||||
| { | ||||
|     push: | ||||
|     { | ||||
|         switch (button.input.channel) | ||||
|         { | ||||
|             case BTN_HDMI:      switch_input(proj_1, INPUT_HDMI); | ||||
|             case BTN_VGA:       switch_input(proj_1, INPUT_VGA); | ||||
|             case BTN_COMPOSITE: switch_input(proj_1, INPUT_COMPOSITE); | ||||
|             case BTN_SVIDEO:    switch_input(proj_1, INPUT_SVIDEO); | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     release: {} | ||||
| } | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                 THE MAINLINE GOES BELOW                 *) | ||||
| (***********************************************************) | ||||
| DEFINE_PROGRAM | ||||
|  | ||||
| [dvTP, BTN_POWER_ON]  = (proj_1.power_state == POWER_STATE_ON); | ||||
| [dvTP, BTN_POWER_OFF] = (proj_1.power_state == POWER_STATE_OFF); | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                     END OF PROGRAM                      *) | ||||
| (*          DO NOT PUT ANY CODE BELOW THIS COMMENT         *) | ||||
| (***********************************************************) | ||||
| #end_if | ||||
							
								
								
									
										158
									
								
								samples/NetLinx/volume-array.axs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										158
									
								
								samples/NetLinx/volume-array.axs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,158 @@ | ||||
| (*********************************************************** | ||||
|     AMX VOLUME CONTROL | ||||
|     VOLUME ARRAY EXAMPLE | ||||
|      | ||||
|     Website: https://sourceforge.net/projects/amx-lib-volume/ | ||||
|      | ||||
|      | ||||
|     This application demonstrates the use of volume control | ||||
|     arrays using the amx-lib-volume library. | ||||
|      | ||||
|     Volume control operation can be viewed by watching the | ||||
|     master's internal diagnostic output. | ||||
|      | ||||
|     I/O PORT CONNECTIONS: | ||||
|     Ch 1: Volume Up Button | ||||
|     Ch 2: Volume Down Button | ||||
| ************************************************************ | ||||
| Copyright 2011, 2012, 2014 Alex McLain | ||||
|  | ||||
| Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| you may not use this file except in compliance with the License. | ||||
| You may obtain a copy of the License at | ||||
|  | ||||
|  http://www.apache.org/licenses/LICENSE-2.0 | ||||
|  | ||||
| Unless required by applicable law or agreed to in writing, software | ||||
| distributed under the License is distributed on an "AS IS" BASIS, | ||||
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| See the License for the specific language governing permissions and | ||||
| limitations under the License. | ||||
| ************************************************************) | ||||
|  | ||||
| PROGRAM_NAME='volume array' | ||||
| (***********************************************************) | ||||
| (***********************************************************) | ||||
| (* System Type : NetLinx                                   *) | ||||
| (***********************************************************) | ||||
| (* REV HISTORY:                                            *) | ||||
| (***********************************************************) | ||||
| (* | ||||
|     $History: See version control repository. | ||||
| *) | ||||
| (***********************************************************) | ||||
| (*                   INCLUDES GO BELOW                     *) | ||||
| (***********************************************************) | ||||
|  | ||||
| // Include the volume control library. | ||||
| #include 'amx-lib-volume' | ||||
|  | ||||
| (***********************************************************) | ||||
| (*          DEVICE NUMBER DEFINITIONS GO BELOW             *) | ||||
| (***********************************************************) | ||||
| DEFINE_DEVICE | ||||
|  | ||||
| dvDebug = 0:0:0;        // For debug output. | ||||
|  | ||||
| dvIO    = 36000:1:0;    // Volume up/down button connections. | ||||
|  | ||||
| (***********************************************************) | ||||
| (*               CONSTANT DEFINITIONS GO BELOW             *) | ||||
| (***********************************************************) | ||||
| DEFINE_CONSTANT | ||||
|  | ||||
| // Volume control indexes. | ||||
| MIC1    = 1;    // Microphone 1. | ||||
| MIC2    = 2;    // Microphone 2. | ||||
| MIC3    = 3;    // Microphone 3. | ||||
| MIC4    = 4;    // Microphone 4. | ||||
| WLS1    = 5;    // Wireless mic 1. | ||||
| WLS2    = 6;    // Wireless mic 2. | ||||
| IPOD    = 7;    // iPod input. | ||||
| CD      = 8;    // CD player input. | ||||
|  | ||||
| (***********************************************************) | ||||
| (*              DATA TYPE DEFINITIONS GO BELOW             *) | ||||
| (***********************************************************) | ||||
| DEFINE_TYPE | ||||
|  | ||||
| (***********************************************************) | ||||
| (*               VARIABLE DEFINITIONS GO BELOW             *) | ||||
| (***********************************************************) | ||||
| DEFINE_VARIABLE | ||||
|  | ||||
| // Define a volume control array for the input devices. | ||||
| volume inputs[8]; | ||||
|  | ||||
| (***********************************************************) | ||||
| (*               LATCHING DEFINITIONS GO BELOW             *) | ||||
| (***********************************************************) | ||||
| DEFINE_LATCHING | ||||
|  | ||||
| (***********************************************************) | ||||
| (*       MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW           *) | ||||
| (***********************************************************) | ||||
| DEFINE_MUTUALLY_EXCLUSIVE | ||||
|  | ||||
| (***********************************************************) | ||||
| (*        SUBROUTINE/FUNCTION DEFINITIONS GO BELOW         *) | ||||
| (***********************************************************) | ||||
| (* EXAMPLE: DEFINE_FUNCTION <RETURN_TYPE> <NAME> (<PARAMETERS>) *) | ||||
| (* EXAMPLE: DEFINE_CALL '<NAME>' (<PARAMETERS>) *) | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                STARTUP CODE GOES BELOW                  *) | ||||
| (***********************************************************) | ||||
| DEFINE_START | ||||
|  | ||||
| // Initialize the array of volume controls. | ||||
| volArrayInit(inputs, 0, VOL_UNMUTED, 10000, 20000, 5); | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                THE EVENTS GO BELOW                      *) | ||||
| (***********************************************************) | ||||
| DEFINE_EVENT | ||||
|  | ||||
| // Volume Up | ||||
| button_event[dvIO, 1] | ||||
| { | ||||
|     PUSH: | ||||
|     { | ||||
|         volArrayIncrement(inputs); // Increment the volume up a step. | ||||
|         send_string dvDebug, "'Volume Up MIC1: ', itoa(volGetLevel(inputs[MIC1]))"; | ||||
|         send_string dvDebug, "'Volume Up MIC2: ', itoa(volGetLevel(inputs[MIC2]))"; | ||||
|         send_string dvDebug, "'Volume Up MIC3: ', itoa(volGetLevel(inputs[MIC3]))"; | ||||
|         send_string dvDebug, "'Volume Up MIC4: ', itoa(volGetLevel(inputs[MIC4]))"; | ||||
|         send_string dvDebug, "'Volume Up WLS1: ', itoa(volGetLevel(inputs[WLS1]))"; | ||||
|         send_string dvDebug, "'Volume Up WLS2: ', itoa(volGetLevel(inputs[WLS2]))"; | ||||
|         send_string dvDebug, "'Volume Up IPOD: ', itoa(volGetLevel(inputs[IPOD]))"; | ||||
|         send_string dvDebug, "'Volume Up   CD: ', itoa(volGetLevel(inputs[CD]))"; | ||||
|     } | ||||
| } | ||||
|  | ||||
| // Volume Down | ||||
| button_event[dvIO, 2] | ||||
| { | ||||
|     PUSH: | ||||
|     { | ||||
|         volArrayDecrement(inputs); // Decrement the volume down a step. | ||||
|         send_string dvDebug, "'Volume Dn MIC1: ', itoa(volGetLevel(inputs[MIC1]))"; | ||||
|         send_string dvDebug, "'Volume Dn MIC2: ', itoa(volGetLevel(inputs[MIC2]))"; | ||||
|         send_string dvDebug, "'Volume Dn MIC3: ', itoa(volGetLevel(inputs[MIC3]))"; | ||||
|         send_string dvDebug, "'Volume Dn MIC4: ', itoa(volGetLevel(inputs[MIC4]))"; | ||||
|         send_string dvDebug, "'Volume Dn WLS1: ', itoa(volGetLevel(inputs[WLS1]))"; | ||||
|         send_string dvDebug, "'Volume Dn WLS2: ', itoa(volGetLevel(inputs[WLS2]))"; | ||||
|         send_string dvDebug, "'Volume Dn IPOD: ', itoa(volGetLevel(inputs[IPOD]))"; | ||||
|         send_string dvDebug, "'Volume Dn   CD: ', itoa(volGetLevel(inputs[CD]))"; | ||||
|     } | ||||
| } | ||||
|  | ||||
| (***********************************************************) | ||||
| (*            THE ACTUAL PROGRAM GOES BELOW                *) | ||||
| (***********************************************************) | ||||
| DEFINE_PROGRAM | ||||
|  | ||||
| (***********************************************************) | ||||
| (*                     END OF PROGRAM                      *) | ||||
| (*        DO NOT PUT ANY CODE BELOW THIS COMMENT           *) | ||||
| (***********************************************************) | ||||
							
								
								
									
										1344
									
								
								samples/OCaml/cmdliner.ml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1344
									
								
								samples/OCaml/cmdliner.ml
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										14
									
								
								samples/OCaml/common.ml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								samples/OCaml/common.ml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| (* | ||||
|  * Copyright (c) 2013 Jeremy Yallop. | ||||
|  * | ||||
|  * This file is distributed under the terms of the MIT License. | ||||
|  * See the file LICENSE for details. | ||||
|  *) | ||||
|  | ||||
| let string_of format v =  | ||||
|   let buf = Buffer.create 100 in | ||||
|   let fmt = Format.formatter_of_buffer buf in begin | ||||
|     format fmt v; | ||||
|     Format.pp_print_flush fmt (); | ||||
|     Buffer.contents buf | ||||
|   end | ||||
							
								
								
									
										40
									
								
								samples/OCaml/date.ml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								samples/OCaml/date.ml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,40 @@ | ||||
| (* | ||||
|  * Copyright (c) 2013 Jeremy Yallop. | ||||
|  * | ||||
|  * This file is distributed under the terms of the MIT License. | ||||
|  * See the file LICENSE for details. | ||||
|  *) | ||||
|  | ||||
| open Ctypes | ||||
| open PosixTypes | ||||
| open Foreign | ||||
|  | ||||
| type tm | ||||
| let tm = structure "tm" | ||||
| let (-:) ty label = field tm label ty | ||||
| let tm_sec   = int -: "tm_sec"   (* seconds *) | ||||
| let tm_min   = int -: "tm_min"   (* minutes *) | ||||
| let tm_hour  = int -: "tm_hour"  (* hours *) | ||||
| let tm_mday  = int -: "tm_mday"  (* day of the month *) | ||||
| let tm_mon   = int -: "tm_mon"   (* month *) | ||||
| let tm_year  = int -: "tm_year"  (* year *) | ||||
| let tm_wday  = int -: "tm_wday"  (* day of the week *) | ||||
| let tm_yday  = int -: "tm_yday"  (* day in the year *) | ||||
| let tm_isdst = int -: "tm_isdst" (* daylight saving time *) | ||||
| let () = seal (tm : tm structure typ) | ||||
|  | ||||
| let time = foreign "time" ~check_errno:true (ptr time_t @-> returning time_t) | ||||
|  | ||||
| let asctime = foreign "asctime" (ptr tm @-> returning string) | ||||
|  | ||||
| let localtime = foreign "localtime" (ptr time_t @-> returning (ptr tm)) | ||||
|  | ||||
| let () = begin | ||||
|   let timep = allocate_n ~count:1 time_t in | ||||
|   let time = time timep in | ||||
|   assert (time = !@timep); | ||||
|   let tm = localtime timep in | ||||
|   Printf.printf "tm.tm_mon  = %d\n" (getf !@tm tm_mon); | ||||
|   Printf.printf "tm.tm_year = %d\n" (getf !@tm tm_year); | ||||
|   print_endline (asctime tm) | ||||
| end | ||||
							
								
								
									
										337
									
								
								samples/OCaml/map.ml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										337
									
								
								samples/OCaml/map.ml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,337 @@ | ||||
| (***********************************************************************) | ||||
| (*                                                                     *) | ||||
| (*                                OCaml                                *) | ||||
| (*                                                                     *) | ||||
| (*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *) | ||||
| (*                                                                     *) | ||||
| (*  Copyright 1996 Institut National de Recherche en Informatique et   *) | ||||
| (*  en Automatique.  All rights reserved.  This file is distributed    *) | ||||
| (*  under the terms of the GNU Library General Public License, with    *) | ||||
| (*  the special exception on linking described in file ../LICENSE.     *) | ||||
| (*                                                                     *) | ||||
| (***********************************************************************) | ||||
|  | ||||
| module type OrderedType = | ||||
|   sig | ||||
|     type t | ||||
|     val compare: t -> t -> int | ||||
|   end | ||||
|  | ||||
| module type S = | ||||
|   sig | ||||
|     type key | ||||
|     type +'a t | ||||
|     val empty: 'a t | ||||
|     val is_empty: 'a t -> bool | ||||
|     val mem:  key -> 'a t -> bool | ||||
|     val add: key -> 'a -> 'a t -> 'a t | ||||
|     val singleton: key -> 'a -> 'a t | ||||
|     val remove: key -> 'a t -> 'a t | ||||
|     val merge: | ||||
|           (key -> 'a option -> 'b option -> 'c option) -> 'a t -> 'b t -> 'c t | ||||
|     val compare: ('a -> 'a -> int) -> 'a t -> 'a t -> int | ||||
|     val equal: ('a -> 'a -> bool) -> 'a t -> 'a t -> bool | ||||
|     val iter: (key -> 'a -> unit) -> 'a t -> unit | ||||
|     val fold: (key -> 'a -> 'b -> 'b) -> 'a t -> 'b -> 'b | ||||
|     val for_all: (key -> 'a -> bool) -> 'a t -> bool | ||||
|     val exists: (key -> 'a -> bool) -> 'a t -> bool | ||||
|     val filter: (key -> 'a -> bool) -> 'a t -> 'a t | ||||
|     val partition: (key -> 'a -> bool) -> 'a t -> 'a t * 'a t | ||||
|     val cardinal: 'a t -> int | ||||
|     val bindings: 'a t -> (key * 'a) list | ||||
|     val min_binding: 'a t -> (key * 'a) | ||||
|     val max_binding: 'a t -> (key * 'a) | ||||
|     val choose: 'a t -> (key * 'a) | ||||
|     val split: key -> 'a t -> 'a t * 'a option * 'a t | ||||
|     val find: key -> 'a t -> 'a | ||||
|     val map: ('a -> 'b) -> 'a t -> 'b t | ||||
|     val mapi: (key -> 'a -> 'b) -> 'a t -> 'b t | ||||
|   end | ||||
|  | ||||
| module Make(Ord: OrderedType) = struct | ||||
|  | ||||
|     type key = Ord.t | ||||
|  | ||||
|     type 'a t = | ||||
|         Empty | ||||
|       | Node of 'a t * key * 'a * 'a t * int | ||||
|  | ||||
|     let height = function | ||||
|         Empty -> 0 | ||||
|       | Node(_,_,_,_,h) -> h | ||||
|  | ||||
|     let create l x d r = | ||||
|       let hl = height l and hr = height r in | ||||
|       Node(l, x, d, r, (if hl >= hr then hl + 1 else hr + 1)) | ||||
|  | ||||
|     let singleton x d = Node(Empty, x, d, Empty, 1) | ||||
|  | ||||
|     let bal l x d r = | ||||
|       let hl = match l with Empty -> 0 | Node(_,_,_,_,h) -> h in | ||||
|       let hr = match r with Empty -> 0 | Node(_,_,_,_,h) -> h in | ||||
|       if hl > hr + 2 then begin | ||||
|         match l with | ||||
|           Empty -> invalid_arg "Map.bal" | ||||
|         | Node(ll, lv, ld, lr, _) -> | ||||
|             if height ll >= height lr then | ||||
|               create ll lv ld (create lr x d r) | ||||
|             else begin | ||||
|               match lr with | ||||
|                 Empty -> invalid_arg "Map.bal" | ||||
|               | Node(lrl, lrv, lrd, lrr, _)-> | ||||
|                   create (create ll lv ld lrl) lrv lrd (create lrr x d r) | ||||
|             end | ||||
|       end else if hr > hl + 2 then begin | ||||
|         match r with | ||||
|           Empty -> invalid_arg "Map.bal" | ||||
|         | Node(rl, rv, rd, rr, _) -> | ||||
|             if height rr >= height rl then | ||||
|               create (create l x d rl) rv rd rr | ||||
|             else begin | ||||
|               match rl with | ||||
|                 Empty -> invalid_arg "Map.bal" | ||||
|               | Node(rll, rlv, rld, rlr, _) -> | ||||
|                   create (create l x d rll) rlv rld (create rlr rv rd rr) | ||||
|             end | ||||
|       end else | ||||
|         Node(l, x, d, r, (if hl >= hr then hl + 1 else hr + 1)) | ||||
|  | ||||
|     let empty = Empty | ||||
|  | ||||
|     let is_empty = function Empty -> true | _ -> false | ||||
|  | ||||
|     let rec add x data = function | ||||
|         Empty -> | ||||
|           Node(Empty, x, data, Empty, 1) | ||||
|       | Node(l, v, d, r, h) -> | ||||
|           let c = Ord.compare x v in | ||||
|           if c = 0 then | ||||
|             Node(l, x, data, r, h) | ||||
|           else if c < 0 then | ||||
|             bal (add x data l) v d r | ||||
|           else | ||||
|             bal l v d (add x data r) | ||||
|  | ||||
|     let rec find x = function | ||||
|         Empty -> | ||||
|           raise Not_found | ||||
|       | Node(l, v, d, r, _) -> | ||||
|           let c = Ord.compare x v in | ||||
|           if c = 0 then d | ||||
|           else find x (if c < 0 then l else r) | ||||
|  | ||||
|     let rec mem x = function | ||||
|         Empty -> | ||||
|           false | ||||
|       | Node(l, v, d, r, _) -> | ||||
|           let c = Ord.compare x v in | ||||
|           c = 0 || mem x (if c < 0 then l else r) | ||||
|  | ||||
|     let rec min_binding = function | ||||
|         Empty -> raise Not_found | ||||
|       | Node(Empty, x, d, r, _) -> (x, d) | ||||
|       | Node(l, x, d, r, _) -> min_binding l | ||||
|  | ||||
|     let rec max_binding = function | ||||
|         Empty -> raise Not_found | ||||
|       | Node(l, x, d, Empty, _) -> (x, d) | ||||
|       | Node(l, x, d, r, _) -> max_binding r | ||||
|  | ||||
|     let rec remove_min_binding = function | ||||
|         Empty -> invalid_arg "Map.remove_min_elt" | ||||
|       | Node(Empty, x, d, r, _) -> r | ||||
|       | Node(l, x, d, r, _) -> bal (remove_min_binding l) x d r | ||||
|  | ||||
|     let merge t1 t2 = | ||||
|       match (t1, t2) with | ||||
|         (Empty, t) -> t | ||||
|       | (t, Empty) -> t | ||||
|       | (_, _) -> | ||||
|           let (x, d) = min_binding t2 in | ||||
|           bal t1 x d (remove_min_binding t2) | ||||
|  | ||||
|     let rec remove x = function | ||||
|         Empty -> | ||||
|           Empty | ||||
|       | Node(l, v, d, r, h) -> | ||||
|           let c = Ord.compare x v in | ||||
|           if c = 0 then | ||||
|             merge l r | ||||
|           else if c < 0 then | ||||
|             bal (remove x l) v d r | ||||
|           else | ||||
|             bal l v d (remove x r) | ||||
|  | ||||
|     let rec iter f = function | ||||
|         Empty -> () | ||||
|       | Node(l, v, d, r, _) -> | ||||
|           iter f l; f v d; iter f r | ||||
|  | ||||
|     let rec map f = function | ||||
|         Empty -> | ||||
|           Empty | ||||
|       | Node(l, v, d, r, h) -> | ||||
|           let l' = map f l in | ||||
|           let d' = f d in | ||||
|           let r' = map f r in | ||||
|           Node(l', v, d', r', h) | ||||
|  | ||||
|     let rec mapi f = function | ||||
|         Empty -> | ||||
|           Empty | ||||
|       | Node(l, v, d, r, h) -> | ||||
|           let l' = mapi f l in | ||||
|           let d' = f v d in | ||||
|           let r' = mapi f r in | ||||
|           Node(l', v, d', r', h) | ||||
|  | ||||
|     let rec fold f m accu = | ||||
|       match m with | ||||
|         Empty -> accu | ||||
|       | Node(l, v, d, r, _) -> | ||||
|           fold f r (f v d (fold f l accu)) | ||||
|  | ||||
|     let rec for_all p = function | ||||
|         Empty -> true | ||||
|       | Node(l, v, d, r, _) -> p v d && for_all p l && for_all p r | ||||
|  | ||||
|     let rec exists p = function | ||||
|         Empty -> false | ||||
|       | Node(l, v, d, r, _) -> p v d || exists p l || exists p r | ||||
|  | ||||
|     (* Beware: those two functions assume that the added k is *strictly* | ||||
|        smaller (or bigger) than all the present keys in the tree; it | ||||
|        does not test for equality with the current min (or max) key. | ||||
|  | ||||
|        Indeed, they are only used during the "join" operation which | ||||
|        respects this precondition. | ||||
|     *) | ||||
|  | ||||
|     let rec add_min_binding k v = function | ||||
|       | Empty -> singleton k v | ||||
|       | Node (l, x, d, r, h) -> | ||||
|         bal (add_min_binding k v l) x d r | ||||
|  | ||||
|     let rec add_max_binding k v = function | ||||
|       | Empty -> singleton k v | ||||
|       | Node (l, x, d, r, h) -> | ||||
|         bal l x d (add_max_binding k v r) | ||||
|  | ||||
|     (* Same as create and bal, but no assumptions are made on the | ||||
|        relative heights of l and r. *) | ||||
|  | ||||
|     let rec join l v d r = | ||||
|       match (l, r) with | ||||
|         (Empty, _) -> add_min_binding v d r | ||||
|       | (_, Empty) -> add_max_binding v d l | ||||
|       | (Node(ll, lv, ld, lr, lh), Node(rl, rv, rd, rr, rh)) -> | ||||
|           if lh > rh + 2 then bal ll lv ld (join lr v d r) else | ||||
|           if rh > lh + 2 then bal (join l v d rl) rv rd rr else | ||||
|           create l v d r | ||||
|  | ||||
|     (* Merge two trees l and r into one. | ||||
|        All elements of l must precede the elements of r. | ||||
|        No assumption on the heights of l and r. *) | ||||
|  | ||||
|     let concat t1 t2 = | ||||
|       match (t1, t2) with | ||||
|         (Empty, t) -> t | ||||
|       | (t, Empty) -> t | ||||
|       | (_, _) -> | ||||
|           let (x, d) = min_binding t2 in | ||||
|           join t1 x d (remove_min_binding t2) | ||||
|  | ||||
|     let concat_or_join t1 v d t2 = | ||||
|       match d with | ||||
|       | Some d -> join t1 v d t2 | ||||
|       | None -> concat t1 t2 | ||||
|  | ||||
|     let rec split x = function | ||||
|         Empty -> | ||||
|           (Empty, None, Empty) | ||||
|       | Node(l, v, d, r, _) -> | ||||
|           let c = Ord.compare x v in | ||||
|           if c = 0 then (l, Some d, r) | ||||
|           else if c < 0 then | ||||
|             let (ll, pres, rl) = split x l in (ll, pres, join rl v d r) | ||||
|           else | ||||
|             let (lr, pres, rr) = split x r in (join l v d lr, pres, rr) | ||||
|  | ||||
|     let rec merge f s1 s2 = | ||||
|       match (s1, s2) with | ||||
|         (Empty, Empty) -> Empty | ||||
|       | (Node (l1, v1, d1, r1, h1), _) when h1 >= height s2 -> | ||||
|           let (l2, d2, r2) = split v1 s2 in | ||||
|           concat_or_join (merge f l1 l2) v1 (f v1 (Some d1) d2) (merge f r1 r2) | ||||
|       | (_, Node (l2, v2, d2, r2, h2)) -> | ||||
|           let (l1, d1, r1) = split v2 s1 in | ||||
|           concat_or_join (merge f l1 l2) v2 (f v2 d1 (Some d2)) (merge f r1 r2) | ||||
|       | _ -> | ||||
|           assert false | ||||
|  | ||||
|     let rec filter p = function | ||||
|         Empty -> Empty | ||||
|       | Node(l, v, d, r, _) -> | ||||
|           (* call [p] in the expected left-to-right order *) | ||||
|           let l' = filter p l in | ||||
|           let pvd = p v d in | ||||
|           let r' = filter p r in | ||||
|           if pvd then join l' v d r' else concat l' r' | ||||
|  | ||||
|     let rec partition p = function | ||||
|         Empty -> (Empty, Empty) | ||||
|       | Node(l, v, d, r, _) -> | ||||
|           (* call [p] in the expected left-to-right order *) | ||||
|           let (lt, lf) = partition p l in | ||||
|           let pvd = p v d in | ||||
|           let (rt, rf) = partition p r in | ||||
|           if pvd | ||||
|           then (join lt v d rt, concat lf rf) | ||||
|           else (concat lt rt, join lf v d rf) | ||||
|  | ||||
|     type 'a enumeration = End | More of key * 'a * 'a t * 'a enumeration | ||||
|  | ||||
|     let rec cons_enum m e = | ||||
|       match m with | ||||
|         Empty -> e | ||||
|       | Node(l, v, d, r, _) -> cons_enum l (More(v, d, r, e)) | ||||
|  | ||||
|     let compare cmp m1 m2 = | ||||
|       let rec compare_aux e1 e2 = | ||||
|           match (e1, e2) with | ||||
|           (End, End) -> 0 | ||||
|         | (End, _)  -> -1 | ||||
|         | (_, End) -> 1 | ||||
|         | (More(v1, d1, r1, e1), More(v2, d2, r2, e2)) -> | ||||
|             let c = Ord.compare v1 v2 in | ||||
|             if c <> 0 then c else | ||||
|             let c = cmp d1 d2 in | ||||
|             if c <> 0 then c else | ||||
|             compare_aux (cons_enum r1 e1) (cons_enum r2 e2) | ||||
|       in compare_aux (cons_enum m1 End) (cons_enum m2 End) | ||||
|  | ||||
|     let equal cmp m1 m2 = | ||||
|       let rec equal_aux e1 e2 = | ||||
|           match (e1, e2) with | ||||
|           (End, End) -> true | ||||
|         | (End, _)  -> false | ||||
|         | (_, End) -> false | ||||
|         | (More(v1, d1, r1, e1), More(v2, d2, r2, e2)) -> | ||||
|             Ord.compare v1 v2 = 0 && cmp d1 d2 && | ||||
|             equal_aux (cons_enum r1 e1) (cons_enum r2 e2) | ||||
|       in equal_aux (cons_enum m1 End) (cons_enum m2 End) | ||||
|  | ||||
|     let rec cardinal = function | ||||
|         Empty -> 0 | ||||
|       | Node(l, _, _, r, _) -> cardinal l + 1 + cardinal r | ||||
|  | ||||
|     let rec bindings_aux accu = function | ||||
|         Empty -> accu | ||||
|       | Node(l, v, d, r, _) -> bindings_aux ((v, d) :: bindings_aux accu r) l | ||||
|  | ||||
|     let bindings s = | ||||
|       bindings_aux [] s | ||||
|  | ||||
|     let choose = min_binding | ||||
|  | ||||
| end | ||||
							
								
								
									
										2503
									
								
								samples/OCaml/mirage.ml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2503
									
								
								samples/OCaml/mirage.ml
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										125
									
								
								samples/OCaml/reload.ml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								samples/OCaml/reload.ml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,125 @@ | ||||
| (***********************************************************************) | ||||
| (*                                                                     *) | ||||
| (*                                OCaml                                *) | ||||
| (*                                                                     *) | ||||
| (*            Xavier Leroy, projet Cristal, INRIA Rocquencourt         *) | ||||
| (*                                                                     *) | ||||
| (*  Copyright 2000 Institut National de Recherche en Informatique et   *) | ||||
| (*  en Automatique.  All rights reserved.  This file is distributed    *) | ||||
| (*  under the terms of the Q Public License version 1.0.               *) | ||||
| (*                                                                     *) | ||||
| (***********************************************************************) | ||||
|  | ||||
| open Cmm | ||||
| open Arch | ||||
| open Reg | ||||
| open Mach | ||||
|  | ||||
| (* Reloading for the AMD64 *) | ||||
|  | ||||
| (* Summary of instruction set constraints: | ||||
|    "S" means either stack or register, "R" means register only. | ||||
|    Operation                    Res     Arg1    Arg2 | ||||
|      Imove                      R       S | ||||
|                              or S       R | ||||
|      Iconst_int                 S if 32-bit signed, R otherwise | ||||
|      Iconst_float               R | ||||
|      Iconst_symbol (not PIC)    S | ||||
|      Iconst_symbol (PIC)        R | ||||
|      Icall_ind                          R | ||||
|      Itailcall_ind                      R | ||||
|      Iload                      R       R       R | ||||
|      Istore                             R       R | ||||
|      Iintop(Icomp)              R       R       S | ||||
|                             or  S       S       R | ||||
|      Iintop(Imul|Idiv|mod)      R       R       S | ||||
|      Iintop(shift)              S       S       R | ||||
|      Iintop(others)             R       R       S | ||||
|                             or  S       S       R | ||||
|      Iintop_imm(Iadd, n)/lea    R       R | ||||
|      Iintop_imm(others)         S       S | ||||
|      Inegf...Idivf              R       R       S | ||||
|      Ifloatofint                R       S | ||||
|      Iintoffloat                R       S | ||||
|      Ispecific(Ilea)            R       R       R | ||||
|      Ispecific(Ifloatarithmem)  R       R       R | ||||
|  | ||||
|    Conditional branches: | ||||
|      Iinttest                           S       R | ||||
|                                     or  R       S | ||||
|      Ifloattest                         R       S    (or  S R if swapped test) | ||||
|      other tests                        S | ||||
| *) | ||||
|  | ||||
| let stackp r = | ||||
|   match r.loc with | ||||
|     Stack _ -> true | ||||
|   | _ -> false | ||||
|  | ||||
| class reload = object (self) | ||||
|  | ||||
| inherit Reloadgen.reload_generic as super | ||||
|  | ||||
| method! reload_operation op arg res = | ||||
|   match op with | ||||
|   | Iintop(Iadd|Isub|Iand|Ior|Ixor|Icomp _|Icheckbound) -> | ||||
|       (* One of the two arguments can reside in the stack, but not both *) | ||||
|       if stackp arg.(0) && stackp arg.(1) | ||||
|       then ([|arg.(0); self#makereg arg.(1)|], res) | ||||
|       else (arg, res) | ||||
|   | Iintop_imm(Iadd, _) when arg.(0).loc <> res.(0).loc -> | ||||
|       (* This add will be turned into a lea; args and results must be | ||||
|          in registers *) | ||||
|       super#reload_operation op arg res | ||||
|   | Iintop(Idiv | Imod | Ilsl | Ilsr | Iasr) | ||||
|   | Iintop_imm(_, _) -> | ||||
|       (* The argument(s) and results can be either in register or on stack *) | ||||
|       (* Note: Idiv, Imod: arg(0) and res(0) already forced in regs | ||||
|                Ilsl, Ilsr, Iasr: arg(1) already forced in regs *) | ||||
|       (arg, res) | ||||
|   | Iintop(Imul) | Iaddf | Isubf | Imulf | Idivf -> | ||||
|       (* First argument (= result) must be in register, second arg | ||||
|          can reside in the stack *) | ||||
|       if stackp arg.(0) | ||||
|       then (let r = self#makereg arg.(0) in ([|r; arg.(1)|], [|r|])) | ||||
|       else (arg, res) | ||||
|   | Ifloatofint | Iintoffloat -> | ||||
|       (* Result must be in register, but argument can be on stack *) | ||||
|       (arg, (if stackp res.(0) then [| self#makereg res.(0) |] else res)) | ||||
|   | Iconst_int n -> | ||||
|       if n <= 0x7FFFFFFFn && n >= -0x80000000n | ||||
|       then (arg, res) | ||||
|       else super#reload_operation op arg res | ||||
|   | Iconst_symbol _ -> | ||||
|       if !pic_code || !Clflags.dlcode | ||||
|       then super#reload_operation op arg res | ||||
|       else (arg, res) | ||||
|   | _ -> (* Other operations: all args and results in registers *) | ||||
|       super#reload_operation op arg res | ||||
|  | ||||
| method! reload_test tst arg = | ||||
|   match tst with | ||||
|     Iinttest cmp -> | ||||
|       (* One of the two arguments can reside on stack *) | ||||
|       if stackp arg.(0) && stackp arg.(1) | ||||
|       then [| self#makereg arg.(0); arg.(1) |] | ||||
|       else arg | ||||
|   | Ifloattest((Clt|Cle), _) -> | ||||
|       (* Cf. emit.mlp: we swap arguments in this case *) | ||||
|       (* First argument can be on stack, second must be in register *) | ||||
|       if stackp arg.(1) | ||||
|       then [| arg.(0); self#makereg arg.(1) |] | ||||
|       else arg | ||||
|   | Ifloattest((Ceq|Cne|Cgt|Cge), _) -> | ||||
|       (* Second argument can be on stack, first must be in register *) | ||||
|       if stackp arg.(0) | ||||
|       then [| self#makereg arg.(0); arg.(1) |] | ||||
|       else arg | ||||
|   | _ -> | ||||
|       (* The argument(s) can be either in register or on stack *) | ||||
|       arg | ||||
|  | ||||
| end | ||||
|  | ||||
| let fundecl f = | ||||
|   (new reload)#fundecl f | ||||
							
								
								
									
										70
									
								
								samples/OCaml/sigset.ml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								samples/OCaml/sigset.ml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,70 @@ | ||||
| (* | ||||
|  * Copyright (c) 2013 Jeremy Yallop. | ||||
|  * | ||||
|  * This file is distributed under the terms of the MIT License. | ||||
|  * See the file LICENSE for details. | ||||
|  *) | ||||
|  | ||||
| open PosixTypes | ||||
| open Ctypes | ||||
| open Foreign | ||||
|  | ||||
| type t = sigset_t ptr | ||||
|  | ||||
| let t = ptr sigset_t | ||||
|  | ||||
| (* This function initializes the signal set set to exclude all of the defined | ||||
|    signals. It always returns 0.  *) | ||||
| let sigemptyset = foreign "sigemptyset" (ptr sigset_t @-> returning int) | ||||
|  | ||||
| let empty () = | ||||
|   let setp = allocate_n ~count:1 sigset_t in begin | ||||
|     ignore (sigemptyset setp); | ||||
|     setp | ||||
|   end | ||||
|  | ||||
| (* This function initializes the signal set set to include all of the defined | ||||
|    signals. Again, the return value is 0. *) | ||||
| let sigfillset = foreign "sigfillset" (ptr sigset_t @-> returning int) | ||||
|  | ||||
| let full () = | ||||
|   let setp = allocate_n ~count:1 sigset_t in begin | ||||
|     ignore (sigfillset setp); | ||||
|     setp | ||||
|   end | ||||
|  | ||||
| (* This function adds the signal signum to the signal set set. All sigaddset | ||||
|    does is modify set; it does not block or unblock any signals. | ||||
|  | ||||
|    The return value is 0 on success and -1 on failure. The following errno | ||||
|    error condition is defined for this function: | ||||
|  | ||||
|    EINVAL The signum argument doesn't specify a valid signal.  | ||||
| *) | ||||
| let sigaddset = foreign "sigaddset" ~check_errno:true | ||||
|   (ptr sigset_t @-> int @-> returning int) | ||||
|  | ||||
| let add set signal = ignore (sigaddset set signal) | ||||
|  | ||||
| (* This function removes the signal signum from the signal set set. All | ||||
|    sigdelset does is modify set; it does not block or unblock any signals. | ||||
|  | ||||
|    The return value and error conditions are the same as for | ||||
|    sigaddset.  *) | ||||
| let sigdelset = foreign "sigdelset" ~check_errno:true | ||||
|   (ptr sigset_t @-> int @-> returning int) | ||||
|  | ||||
| let del set signal = ignore (sigdelset set signal) | ||||
|  | ||||
| (* The sigismember function tests whether the signal signum is a member of the | ||||
|    signal set set. It returns 1 if the signal is in the set, 0 if not, and -1 if | ||||
|    there is an error. | ||||
|  | ||||
|    The following errno error condition is defined for this function: | ||||
|  | ||||
|    EINVAL The signum argument doesn't specify a valid signal.  | ||||
| *) | ||||
| let sigismember = foreign "sigismember" ~check_errno:true | ||||
|   (ptr sigset_t @-> int @-> returning int) | ||||
|  | ||||
| let mem set signal = sigismember set signal <> 0 | ||||
							
								
								
									
										810
									
								
								samples/OCaml/uutf.ml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										810
									
								
								samples/OCaml/uutf.ml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,810 @@ | ||||
| (*--------------------------------------------------------------------------- | ||||
|    Copyright 2012 Daniel C. Bünzli. All rights reserved. | ||||
|    Distributed under the BSD3 license, see license at the end of the file. | ||||
|    %%NAME%% release %%VERSION%% | ||||
|   ---------------------------------------------------------------------------*) | ||||
|  | ||||
| let io_buffer_size = 65536                           (* IO_BUFFER_SIZE 4.0.0 *) | ||||
|  | ||||
| let pp = Format.fprintf | ||||
| let invalid_encode () = invalid_arg "expected `Await encode" | ||||
| let invalid_bounds j l = | ||||
|   invalid_arg (Printf.sprintf "invalid bounds (index %d, length %d)" j l) | ||||
|  | ||||
| (* Unsafe string byte manipulations. If you don't believe the author's | ||||
|    invariants, replacing with safe versions makes everything safe in | ||||
|    the module. He won't be upset. *) | ||||
|  | ||||
| let unsafe_chr = Char.unsafe_chr | ||||
| let unsafe_blit = String.unsafe_blit | ||||
| let unsafe_array_get = Array.unsafe_get | ||||
| let unsafe_byte s j = Char.code (String.unsafe_get s j) | ||||
| let unsafe_set_byte s j byte = String.unsafe_set s j (Char.unsafe_chr byte) | ||||
|  | ||||
| (* Unicode characters *) | ||||
|  | ||||
| type uchar = int | ||||
| let u_bom = 0xFEFF                                                   (* BOM. *) | ||||
| let u_rep = 0xFFFD                                 (* replacement character. *) | ||||
| let is_uchar cp = | ||||
|   (0x0000 <= cp && cp <= 0xD7FF) || (0xE000 <= cp && cp <= 0x10FFFF) | ||||
|  | ||||
| let pp_cp ppf cp = | ||||
|   if cp < 0 || cp > 0x10FFFF then pp ppf "U+Invalid(%X)" cp else | ||||
|   if cp <= 0xFFFF then pp ppf "U+%04X" cp else | ||||
|   pp ppf "U+%X" cp | ||||
|  | ||||
| let cp_to_string cp =                                    (* NOT thread safe. *) | ||||
|   pp Format.str_formatter "%a" pp_cp cp; Format.flush_str_formatter () | ||||
|  | ||||
| (* Unicode encoding schemes *) | ||||
|  | ||||
| type encoding = [ `UTF_8 | `UTF_16 | `UTF_16BE | `UTF_16LE ] | ||||
| type decoder_encoding = [ encoding | `US_ASCII | `ISO_8859_1 ] | ||||
|  | ||||
| let encoding_of_string s = match String.uppercase s with      (* IANA names. *) | ||||
| | "UTF-8" -> Some `UTF_8 | ||||
| | "UTF-16" -> Some `UTF_16 | ||||
| | "UTF-16LE" -> Some `UTF_16LE | ||||
| | "UTF-16BE" -> Some `UTF_16BE | ||||
| | "ANSI_X3.4-1968" | "ISO-IR-6" | "ANSI_X3.4-1986" | "ISO_646.IRV:1991" | ||||
| | "ASCII" | "ISO646-US" | "US-ASCII" | "US" | "IBM367" | "CP367" | "CSASCII" -> | ||||
|     Some `US_ASCII | ||||
| | "ISO_8859-1:1987" | "ISO-IR-100" | "ISO_8859-1" | "ISO-8859-1" | ||||
| | "LATIN1" | "L1" | "IBM819" | "CP819" | "CSISOLATIN1" -> | ||||
|     Some `ISO_8859_1 | ||||
| | _ -> None | ||||
|  | ||||
| let encoding_to_string = function | ||||
| | `UTF_8 -> "UTF-8" | `UTF_16 -> "UTF-16" | `UTF_16BE -> "UTF-16BE" | ||||
| | `UTF_16LE -> "UTF-16LE" | `US_ASCII -> "US-ASCII" | ||||
| | `ISO_8859_1 -> "ISO-8859-1" | ||||
|  | ||||
| (* Base character decoders. They assume enough data. *) | ||||
|  | ||||
| let malformed s j l = `Malformed (String.sub s j l) | ||||
| let malformed_pair be hi s j l =    (* missing or half low surrogate at eoi. *) | ||||
|   let bs1 = String.sub s j l in | ||||
|   let bs0 = String.create 2 in | ||||
|   let j0, j1 = if be then (0, 1) else (1, 0) in | ||||
|   unsafe_set_byte bs0 j0 (hi lsr 8); | ||||
|   unsafe_set_byte bs0 j1 (hi land 0xFF); | ||||
|   `Malformed (bs0 ^ bs1) | ||||
|  | ||||
| let r_us_ascii s j = | ||||
|   (* assert (0 <= j && j < String.length s); *) | ||||
|   let b0 = unsafe_byte s j in | ||||
|   if b0 <= 127 then `Uchar b0 else malformed s j 1 | ||||
|  | ||||
| let r_iso_8859_1 s j = | ||||
|   (* assert (0 <= j && j < String.length s); *) | ||||
|   `Uchar (unsafe_byte s j) | ||||
|  | ||||
| let utf_8_len = [| (* uchar byte length according to first UTF-8 byte. *) | ||||
|   1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; | ||||
|   1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; | ||||
|   1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; | ||||
|   1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; | ||||
|   1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; 1; | ||||
|   1; 1; 1; 1; 1; 1; 1; 1; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; | ||||
|   0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; | ||||
|   0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; | ||||
|   0; 0; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; 2; | ||||
|   2; 2; 2; 2; 2; 2; 2; 2; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; 3; | ||||
|   4; 4; 4; 4; 4; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0; 0 |] | ||||
|  | ||||
| let r_utf_8 s j l = | ||||
|   (* assert (0 <= j && 0 <= l && j + l <= String.length s); *) | ||||
|   match l with | ||||
|   | 1 -> `Uchar (unsafe_byte s j) | ||||
|   | 2 -> | ||||
|       let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in | ||||
|       if b1 lsr 6 != 0b10 then malformed s j l else | ||||
|       `Uchar (((b0 land 0x1F) lsl 6) lor (b1 land 0x3F)) | ||||
|   | 3 -> | ||||
|       let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in | ||||
|       let b2 = unsafe_byte s (j + 2) in | ||||
|       let c = `Uchar (((b0 land 0x0F) lsl 12) lor | ||||
|                       ((b1 land 0x3F) lsl 6) lor | ||||
|           (b2 land 0x3F)) | ||||
|       in | ||||
|       if b2 lsr 6 != 0b10 then malformed s j l else | ||||
|       begin match b0 with | ||||
|       | 0xE0 -> if b1 < 0xA0 || 0xBF < b1 then malformed s j l else c | ||||
|       | 0xED -> if b1 < 0x80 || 0x9F < b1 then malformed s j l else c | ||||
|       | _ -> if b1 lsr 6 != 0b10 then malformed s j l else c | ||||
|       end | ||||
|   | 4 -> | ||||
|       let b0 = unsafe_byte s j in let b1 = unsafe_byte s (j + 1) in | ||||
|       let b2 = unsafe_byte s (j + 2) in let b3 = unsafe_byte s (j + 3) in | ||||
|       let c = `Uchar (((b0 land 0x07) lsl 18) lor | ||||
|                       ((b1 land 0x3F) lsl 12) lor | ||||
|           ((b2 land 0x3F) lsl 6) lor | ||||
|                       (b3 land 0x3F)) | ||||
|       in | ||||
|       if b3 lsr 6 != 0b10 || b2 lsr 6 != 0b10 then malformed s j l else | ||||
|       begin match b0 with | ||||
|       | 0xF0 -> if b1 < 0x90 || 0xBF < b1 then malformed s j l else c | ||||
|       | 0xF4 -> if b1 < 0x80 || 0x8F < b1 then malformed s j l else c | ||||
|       | _ -> if b1 lsr 6 != 0b10 then malformed s j l else c | ||||
|       end | ||||
|   | _ -> assert false | ||||
|  | ||||
| let r_utf_16 s j0 j1 =                       (* May return a high surrogate. *) | ||||
|   (* assert (0 <= j0 && 0 <= j1 && max j0 j1 < String.length s); *) | ||||
|   let b0 = unsafe_byte s j0 in let b1 = unsafe_byte s j1 in | ||||
|   let u = (b0 lsl 8) lor b1 in | ||||
|   if u < 0xD800 || u > 0xDFFF then `Uchar u else | ||||
|   if u > 0xDBFF then malformed s (min j0 j1) 2 else `Hi u | ||||
|  | ||||
| let r_utf_16_lo hi s j0 j1 =          (* Combines [hi] with a low surrogate. *) | ||||
|   (* assert (0 <= j0 && 0 <= j1 && max j0 j1 < String.length s); *) | ||||
|   let b0 = unsafe_byte s j0 in | ||||
|   let b1 = unsafe_byte s j1 in | ||||
|   let lo = (b0 lsl 8) lor b1 in | ||||
|   if lo < 0xDC00 || lo > 0xDFFF | ||||
|   then malformed_pair (j0 < j1 (* true => be *)) hi s (min j0 j1) 2 | ||||
|   else `Uchar ((((hi land 0x3FF) lsl 10) lor (lo land 0x3FF)) + 0x10000) | ||||
|  | ||||
| let r_encoding s j l =                  (* guess encoding with max. 3 bytes. *) | ||||
|   (* assert (0 <= j && 0 <= l && j + l <= String.length s) *) | ||||
|   let some i = if i < l then Some (unsafe_byte s (j + i)) else None in | ||||
|   match (some 0), (some 1), (some 2) with | ||||
|   | Some 0xEF, Some 0xBB, Some 0xBF                 -> `UTF_8 `BOM | ||||
|   | Some 0xFE, Some 0xFF, _                         -> `UTF_16BE `BOM | ||||
|   | Some 0xFF, Some 0xFE, _                         -> `UTF_16LE `BOM | ||||
|   | Some 0x00, Some    p, _              when p > 0 -> `UTF_16BE (`ASCII p) | ||||
|   | Some    p, Some 0x00, _              when p > 0 -> `UTF_16LE (`ASCII p) | ||||
|   | Some    u,         _, _ when utf_8_len.(u) <> 0 -> `UTF_8 `Decode | ||||
|   | Some    _, Some    _, _                         -> `UTF_16BE `Decode | ||||
|   | Some    _, None     , None                      -> `UTF_8 `Decode | ||||
|   | None     , None     , None                      -> `UTF_8 `End | ||||
|   | None     , Some    _, _                         -> assert false | ||||
|   | Some    _, None     , Some _                    -> assert false | ||||
|   | None     , None     , Some _                    -> assert false | ||||
|  | ||||
| (* Decode *) | ||||
|  | ||||
| type src = [ `Channel of in_channel | `String of string | `Manual ] | ||||
| type nln = [ `ASCII of uchar | `NLF of uchar | `Readline of uchar ] | ||||
| type decode = [ `Await | `End | `Malformed of string | `Uchar of uchar] | ||||
|  | ||||
| let pp_decode ppf = function | ||||
| | `Uchar u -> pp ppf "@[`Uchar %a@]" pp_cp u | ||||
| | `End -> pp ppf "`End" | ||||
| | `Await -> pp ppf "`Await" | ||||
| | `Malformed bs -> | ||||
|     let l = String.length bs in | ||||
|     pp ppf "@[`Malformed ("; | ||||
|     if l > 0 then pp ppf "%02X" (Char.code (bs.[0])); | ||||
|     for i = 1 to l - 1 do pp ppf " %02X" (Char.code (bs.[i])) done; | ||||
|     pp ppf ")@]" | ||||
|  | ||||
| type decoder = | ||||
|   { src : src;                                              (* input source. *) | ||||
|     mutable encoding : decoder_encoding;                (* decoded encoding. *) | ||||
|     nln : nln option;                     (* newline normalization (if any). *) | ||||
|     nl : int;                            (* newline normalization character. *) | ||||
|     mutable i : string;                              (* current input chunk. *) | ||||
|     mutable i_pos : int;                          (* input current position. *) | ||||
|     mutable i_max : int;                          (* input maximal position. *) | ||||
|     t : string;        (* four bytes temporary buffer for overlapping reads. *) | ||||
|     mutable t_len : int;                      (* current byte length of [t]. *) | ||||
|     mutable t_need : int;                  (* number of bytes needed in [t]. *) | ||||
|     mutable removed_bom : bool;     (* [true] if an initial BOM was removed. *) | ||||
|     mutable last_cr : bool;                   (* [true] if last char was CR. *) | ||||
|     mutable line : int;                                      (* line number. *) | ||||
|     mutable col : int;                                     (* column number. *) | ||||
|     mutable byte_count : int;                                 (* byte count. *) | ||||
|     mutable count : int;                                      (* char count. *) | ||||
|     mutable pp :        (* decoder post-processor for BOM, position and nln. *) | ||||
|       decoder -> [ `Malformed of string | `Uchar of uchar ] -> decode; | ||||
|     mutable k : decoder -> decode }                 (* decoder continuation. *) | ||||
|  | ||||
| (* On decodes that overlap two (or more) [d.i] buffers, we use [t_fill] to copy | ||||
|    the input data to [d.t] and decode from there. If the [d.i] buffers are not | ||||
|    too small this is faster than continuation based byte per byte writes. | ||||
|  | ||||
|    End of input (eoi) is signalled by [d.i_pos = 0] and [d.i_max = min_int] | ||||
|    which implies that [i_rem d < 0] is [true]. *) | ||||
|  | ||||
| let i_rem d = d.i_max - d.i_pos + 1     (* remaining bytes to read in [d.i]. *) | ||||
| let eoi d = d.i <- ""; d.i_pos <- 0; d.i_max <- min_int   (* set eoi in [d]. *) | ||||
| let src d s j l =                                     (* set [d.i] with [s]. *) | ||||
|   if (j < 0 || l < 0 || j + l > String.length s) then invalid_bounds j l else | ||||
|   if (l = 0) then eoi d else | ||||
|   (d.i <- s; d.i_pos <- j; d.i_max <- j + l - 1) | ||||
|  | ||||
| let refill k d = match d.src with  (* get new input in [d.i] and [k]ontinue. *) | ||||
| | `Manual -> d.k <- k; `Await | ||||
| | `String _ -> eoi d; k d | ||||
| | `Channel ic -> | ||||
|     let rc = input ic d.i 0 (String.length d.i) in | ||||
|     (src d d.i 0 rc; k d) | ||||
|  | ||||
| let t_need d need = d.t_len <- 0; d.t_need <- need | ||||
| let rec t_fill k d =      (* get [d.t_need] bytes (or less if eoi) in [i.t]. *) | ||||
|   let blit d l = | ||||
|     unsafe_blit d.i d.i_pos d.t d.t_len (* write pos. *) l; | ||||
|     d.i_pos <- d.i_pos + l; d.t_len <- d.t_len + l; | ||||
|   in | ||||
|   let rem = i_rem d in | ||||
|   if rem < 0 (* eoi *) then k d else | ||||
|   let need = d.t_need - d.t_len in | ||||
|   if rem < need then (blit d rem; refill (t_fill k) d) else (blit d need; k d) | ||||
|  | ||||
| let ret k v byte_count d =                     (* return post-processed [v]. *) | ||||
|   d.k <- k; d.byte_count <- d.byte_count + byte_count; d.pp d v | ||||
|  | ||||
| (* Decoders. *) | ||||
|  | ||||
| let rec decode_us_ascii d = | ||||
|   let rem = i_rem d in | ||||
|   if rem <= 0 then (if rem < 0 then `End else refill decode_us_ascii d) else | ||||
|   let j = d.i_pos in | ||||
|   d.i_pos <- d.i_pos + 1; ret decode_us_ascii (r_us_ascii d.i j) 1 d | ||||
|  | ||||
| let rec decode_iso_8859_1 d = | ||||
|   let rem = i_rem d in | ||||
|   if rem <= 0 then (if rem < 0 then `End else refill decode_iso_8859_1 d) else | ||||
|   let j = d.i_pos in | ||||
|   d.i_pos <- d.i_pos + 1; ret decode_iso_8859_1 (r_iso_8859_1 d.i j) 1 d | ||||
|  | ||||
| (* UTF-8 decoder *) | ||||
|  | ||||
| let rec t_decode_utf_8 d =                             (* decode from [d.t]. *) | ||||
|   if d.t_len < d.t_need | ||||
|   then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d | ||||
|   else ret decode_utf_8 (r_utf_8 d.t 0 d.t_len) d.t_len d | ||||
|  | ||||
| and decode_utf_8 d = | ||||
|   let rem = i_rem d in | ||||
|   if rem <= 0 then (if rem < 0 then `End else refill decode_utf_8 d) else | ||||
|   let need = unsafe_array_get utf_8_len (unsafe_byte d.i d.i_pos) in | ||||
|   if rem < need then (t_need d need; t_fill t_decode_utf_8 d) else | ||||
|   let j = d.i_pos in | ||||
|   if need = 0 | ||||
|   then (d.i_pos <- d.i_pos + 1; ret decode_utf_8 (malformed d.i j 1) 1 d) | ||||
|   else (d.i_pos <- d.i_pos + need; ret decode_utf_8 (r_utf_8 d.i j need) need d) | ||||
|  | ||||
| (* UTF-16BE decoder *) | ||||
|  | ||||
| let rec t_decode_utf_16be_lo hi d =                    (* decode from [d.t]. *) | ||||
|   let bcount = d.t_len + 2 (* hi count *) in | ||||
|   if d.t_len < d.t_need | ||||
|   then ret decode_utf_16be (malformed_pair true hi d.t 0 d.t_len) bcount d | ||||
|   else ret decode_utf_16be (r_utf_16_lo hi d.t 0 1) bcount d | ||||
|  | ||||
| and t_decode_utf_16be d =                              (* decode from [d.t]. *) | ||||
|   if d.t_len < d.t_need | ||||
|   then ret decode_utf_16be (malformed d.t 0 d.t_len) d.t_len d | ||||
|   else decode_utf_16be_lo (r_utf_16 d.t 0 1) d | ||||
|  | ||||
| and decode_utf_16be_lo v d = match v with | ||||
| | `Uchar _ | `Malformed _ as v -> ret decode_utf_16be v 2 d | ||||
| | `Hi hi -> | ||||
|     let rem = i_rem d in | ||||
|     if rem < 2 then (t_need d 2; t_fill (t_decode_utf_16be_lo hi) d) else | ||||
|     let j = d.i_pos in | ||||
|     d.i_pos <- d.i_pos + 2; | ||||
|     ret decode_utf_16be (r_utf_16_lo hi d.i j (j + 1)) 4 d | ||||
|  | ||||
| and decode_utf_16be d = | ||||
|   let rem = i_rem d in | ||||
|   if rem <= 0 then (if rem < 0 then `End else refill decode_utf_16be d) else | ||||
|   if rem < 2 then (t_need d 2; t_fill t_decode_utf_16be d) else | ||||
|   let j = d.i_pos in | ||||
|   d.i_pos <- d.i_pos + 2; decode_utf_16be_lo (r_utf_16 d.i j (j + 1)) d | ||||
|  | ||||
| (* UTF-16LE decoder, same as UTF-16BE with byte swapped. *) | ||||
|  | ||||
| let rec t_decode_utf_16le_lo hi d =                    (* decode from [d.t]. *) | ||||
|   let bcount = d.t_len + 2 (* hi count *) in | ||||
|   if d.t_len < d.t_need | ||||
|   then ret decode_utf_16le (malformed_pair false hi d.t 0 d.t_len) bcount d | ||||
|   else ret decode_utf_16le (r_utf_16_lo hi d.t 1 0) bcount d | ||||
|  | ||||
| and t_decode_utf_16le d =                              (* decode from [d.t]. *) | ||||
|   if d.t_len < d.t_need | ||||
|   then ret decode_utf_16le (malformed d.t 0 d.t_len) d.t_len d | ||||
|   else decode_utf_16le_lo (r_utf_16 d.t 1 0) d | ||||
|  | ||||
| and decode_utf_16le_lo v d = match v with | ||||
| | `Uchar _ | `Malformed _ as v -> ret decode_utf_16le v 2 d | ||||
| | `Hi hi -> | ||||
|     let rem = i_rem d in | ||||
|     if rem < 2 then (t_need d 2; t_fill (t_decode_utf_16le_lo hi) d) else | ||||
|     let j = d.i_pos in | ||||
|     d.i_pos <- d.i_pos + 2; | ||||
|     ret decode_utf_16le (r_utf_16_lo hi d.i (j + 1) j) 4 d | ||||
|  | ||||
| and decode_utf_16le d = | ||||
|   let rem = i_rem d in | ||||
|   if rem <= 0 then (if rem < 0 then `End else refill decode_utf_16le d) else | ||||
|   if rem < 2 then (t_need d 2; t_fill t_decode_utf_16le d) else | ||||
|   let j = d.i_pos in | ||||
|   d.i_pos <- d.i_pos + 2; decode_utf_16le_lo (r_utf_16 d.i (j + 1) j) d | ||||
|  | ||||
| (* Encoding guessing. The guess is simple but starting the decoder | ||||
|    after is tedious, uutf's decoders are not designed to put bytes | ||||
|    back in the stream. *) | ||||
|  | ||||
| let guessed_utf_8 d =                   (* start decoder after `UTF_8 guess. *) | ||||
|   let b3 d =                                 (* handles the third read byte. *) | ||||
|     let b3 = unsafe_byte d.t 2 in | ||||
|     match utf_8_len.(b3) with | ||||
|     | 0 -> ret decode_utf_8 (malformed d.t 2 1) 1 d | ||||
|     | n -> | ||||
|         d.t_need <- n; d.t_len <- 1; unsafe_set_byte d.t 0 b3; | ||||
|         t_fill t_decode_utf_8 d | ||||
|   in | ||||
|   let b2 d =                                     (* handle second read byte. *) | ||||
|     let b2 = unsafe_byte d.t 1 in | ||||
|     let b3 = if d.t_len > 2 then b3 else decode_utf_8 (* decodes `End *) in | ||||
|     match utf_8_len.(b2) with | ||||
|     | 0 -> ret b3 (malformed d.t 1 1) 1 d | ||||
|     | 1 -> ret b3 (r_utf_8 d.t 1 1) 1 d | ||||
|     | n ->                         (* copy d.t.(1-2) to d.t.(0-1) and decode *) | ||||
|         d.t_need <- n; | ||||
|         unsafe_set_byte d.t 0 b2; | ||||
|         if (d.t_len < 3) then d.t_len <- 1 else | ||||
|         (d.t_len <- 2; unsafe_set_byte d.t 1 (unsafe_byte d.t 2); ); | ||||
|         t_fill t_decode_utf_8 d | ||||
|   in | ||||
|   let b1 = unsafe_byte d.t 0 in                   (* handle first read byte. *) | ||||
|   let b2 = if d.t_len > 1 then b2 else decode_utf_8 (* decodes `End *) in | ||||
|   match utf_8_len.(b1) with | ||||
|   | 0 -> ret b2 (malformed d.t 0 1) 1 d | ||||
|   | 1 -> ret b2 (r_utf_8 d.t 0 1) 1 d | ||||
|   | 2 -> | ||||
|       if d.t_len < 2 then ret decode_utf_8 (malformed d.t 0 1) 1 d else | ||||
|       if d.t_len < 3 then ret decode_utf_8 (r_utf_8 d.t 0 2) 2 d else | ||||
|       ret b3 (r_utf_8 d.t 0 2) 2 d | ||||
|   | 3 -> | ||||
|       if d.t_len < 3 | ||||
|       then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d | ||||
|       else ret decode_utf_8 (r_utf_8 d.t 0 3) 3 d | ||||
|   | 4 -> | ||||
|       if d.t_len < 3 | ||||
|       then ret decode_utf_8 (malformed d.t 0 d.t_len) d.t_len d | ||||
|       else (d.t_need <- 4; t_fill t_decode_utf_8 d) | ||||
|   | n -> assert false | ||||
|  | ||||
| let guessed_utf_16 d be v =     (* start decoder after `UTF_16{BE,LE} guess. *) | ||||
|   let decode_utf_16, t_decode_utf_16, t_decode_utf_16_lo, j0, j1 = | ||||
|     if be then decode_utf_16be, t_decode_utf_16be, t_decode_utf_16be_lo, 0, 1 | ||||
|     else decode_utf_16le, t_decode_utf_16le, t_decode_utf_16le_lo, 1, 0 | ||||
|   in | ||||
|   let b3 k d = | ||||
|     if d.t_len < 3 then decode_utf_16 d (* decodes `End *) else | ||||
|     begin                             (* copy d.t.(2) to d.t.(0) and decode. *) | ||||
|       d.t_need <- 2; d.t_len <- 1; | ||||
|       unsafe_set_byte d.t 0 (unsafe_byte d.t 2); | ||||
|       t_fill k d | ||||
|     end | ||||
|   in | ||||
|   match v with | ||||
|   | `BOM -> ret (b3 t_decode_utf_16) (`Uchar u_bom) 2 d | ||||
|   | `ASCII u -> ret (b3 t_decode_utf_16) (`Uchar u) 2 d | ||||
|   | `Decode -> | ||||
|       match r_utf_16 d.t j0 j1 with | ||||
|       | `Malformed _ | `Uchar _ as v -> ret (b3 t_decode_utf_16) v 2 d | ||||
|       | `Hi hi -> | ||||
|         if d.t_len < 3 | ||||
|         then ret decode_utf_16 (malformed_pair be hi "" 0 0) d.t_len d | ||||
|         else (b3 (t_decode_utf_16_lo hi)) d | ||||
|  | ||||
| let guess_encoding d =                  (* guess encoding and start decoder. *) | ||||
|   let setup d = match r_encoding d.t 0 d.t_len with | ||||
|   | `UTF_8 r -> | ||||
|       d.encoding <- `UTF_8; d.k <- decode_utf_8; | ||||
|       begin match r with | ||||
|       | `BOM -> ret decode_utf_8 (`Uchar u_bom) 3 d | ||||
|       | `Decode -> guessed_utf_8 d | ||||
|       | `End -> `End | ||||
|       end | ||||
|   | `UTF_16BE r -> | ||||
|       d.encoding <- `UTF_16BE; d.k <- decode_utf_16be; guessed_utf_16 d true r | ||||
|   | `UTF_16LE r -> | ||||
|       d.encoding <- `UTF_16LE; d.k <- decode_utf_16le; guessed_utf_16 d false r | ||||
|  | ||||
|   in | ||||
|   (t_need d 3; t_fill setup d) | ||||
|  | ||||
| (* Character post-processors. Used for BOM handling, newline | ||||
|    normalization and position tracking. The [pp_remove_bom] is only | ||||
|    used for the first character to remove a possible initial BOM and | ||||
|    handle UTF-16 endianness recognition. *) | ||||
|  | ||||
| let nline d = d.col <- 0; d.line <- d.line + 1                   (* inlined. *) | ||||
| let ncol d = d.col <- d.col + 1                                  (* inlined. *) | ||||
| let ncount d = d.count <- d.count + 1                            (* inlined. *) | ||||
| let cr d b = d.last_cr <- b                                      (* inlined. *) | ||||
|  | ||||
| let pp_remove_bom utf16 pp d = function(* removes init. BOM, handles UTF-16. *) | ||||
| | `Uchar 0xFEFF (* BOM *) -> | ||||
|     if utf16 then (d.encoding <- `UTF_16BE; d.k <- decode_utf_16be); | ||||
|     d.removed_bom <- true; d.pp <- pp; d.k d | ||||
| | `Uchar 0xFFFE (* BOM reversed from decode_utf_16be *) when utf16 -> | ||||
|     d.encoding <- `UTF_16LE; d.k <- decode_utf_16le; | ||||
|     d.removed_bom <- true; d.pp <- pp; d.k d | ||||
| | `Malformed _ | `Uchar _ as v -> | ||||
|     d.removed_bom <- false; d.pp <- pp; d.pp d v | ||||
|  | ||||
| let pp_nln_none d = function | ||||
| | `Uchar 0x000A (* LF *) as v -> | ||||
|     let last_cr = d.last_cr in | ||||
|     cr d false; ncount d; if last_cr then v else (nline d; v) | ||||
| | `Uchar 0x000D (* CR *) as v -> cr d true; ncount d; nline d; v | ||||
| | `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) (* NEL | FF | LS | PS *) as v -> | ||||
|     cr d false; ncount d; nline d; v | ||||
| | `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v | ||||
|  | ||||
| let pp_nln_readline d = function | ||||
| | `Uchar 0x000A (* LF *) -> | ||||
|     let last_cr = d.last_cr in | ||||
|     cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) | ||||
| | `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl | ||||
| | `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) (* NEL | FF | LS | PS *) -> | ||||
|     cr d false; ncount d; nline d; `Uchar d.nl | ||||
| | `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v | ||||
|  | ||||
| let pp_nln_nlf d = function | ||||
| | `Uchar 0x000A (* LF *) -> | ||||
|     let last_cr = d.last_cr in | ||||
|     cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) | ||||
| | `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl | ||||
| | `Uchar 0x0085 (* NEL *) -> cr d false; ncount d; nline d; `Uchar d.nl | ||||
| | `Uchar (0x000C | 0x2028 | 0x2029) as v (* FF | LS | PS *) -> | ||||
|     cr d false; ncount d; nline d; v | ||||
| | `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v | ||||
|  | ||||
| let pp_nln_ascii d = function | ||||
| | `Uchar 0x000A (* LF *) -> | ||||
|     let last_cr = d.last_cr in | ||||
|     cr d false; if last_cr then d.k d else (ncount d; nline d; `Uchar d.nl) | ||||
| | `Uchar 0x000D (* CR *) -> cr d true; ncount d; nline d; `Uchar d.nl | ||||
| | `Uchar (0x0085 | 0x000C | 0x2028 | 0x2029) as v (* NEL | FF | LS | PS *) -> | ||||
|     cr d false; ncount d; nline d; v | ||||
| | `Uchar _ | `Malformed _ as v -> cr d false; ncount d; ncol d; v | ||||
|  | ||||
| let decode_fun = function | ||||
| | `UTF_8 -> decode_utf_8 | ||||
| | `UTF_16 -> decode_utf_16be                         (* see [pp_remove_bom]. *) | ||||
| | `UTF_16BE -> decode_utf_16be | ||||
| | `UTF_16LE -> decode_utf_16le | ||||
| | `US_ASCII -> decode_us_ascii | ||||
| | `ISO_8859_1 -> decode_iso_8859_1 | ||||
|  | ||||
| let decoder ?nln ?encoding src = | ||||
|   let pp, nl = match nln with | ||||
|   | None -> pp_nln_none, 0x000A (* not used. *) | ||||
|   | Some (`ASCII nl) -> pp_nln_ascii, nl | ||||
|   | Some (`NLF nl) -> pp_nln_nlf, nl | ||||
|   | Some (`Readline nl) -> pp_nln_readline, nl | ||||
|   in | ||||
|   let encoding, k = match encoding with | ||||
|   | None -> `UTF_8, guess_encoding | ||||
|   | Some e -> (e :> decoder_encoding), decode_fun e | ||||
|   in | ||||
|   let i, i_pos, i_max = match src with | ||||
|   | `Manual -> "", 1, 0                            (* implies src_rem d = 0. *) | ||||
|   | `Channel _ -> String.create io_buffer_size, 1, 0                (* idem. *) | ||||
|   | `String s -> s, 0, String.length s - 1 | ||||
|   in | ||||
|   { src = (src :> src); encoding; nln = (nln :> nln option); nl; | ||||
|     i; i_pos; i_max; t = String.create 4; t_len = 0; t_need = 0; | ||||
|     removed_bom = false; last_cr = false; line = 1; col = 0; | ||||
|     byte_count = 0; count = 0; | ||||
|     pp = pp_remove_bom (encoding = `UTF_16) pp; k } | ||||
|  | ||||
| let decode d = d.k d | ||||
| let decoder_line d = d.line | ||||
| let decoder_col d = d.col | ||||
| let decoder_byte_count d = d.byte_count | ||||
| let decoder_count d = d.count | ||||
| let decoder_removed_bom d = d.removed_bom | ||||
| let decoder_src d = d.src | ||||
| let decoder_nln d = d.nln | ||||
| let decoder_encoding d = d.encoding | ||||
| let set_decoder_encoding d e = | ||||
|   d.encoding <- (e :> decoder_encoding); d.k <- decode_fun e | ||||
|  | ||||
| (* Encode *) | ||||
|  | ||||
| type dst = [ `Channel of out_channel | `Buffer of Buffer.t | `Manual ] | ||||
| type encode = [ `Await | `End | `Uchar of uchar ] | ||||
| type encoder = | ||||
|   { dst : dst;                                        (* output destination. *) | ||||
|     encoding : encoding;                                (* encoded encoding. *) | ||||
|     mutable o : string;                             (* current output chunk. *) | ||||
|     mutable o_pos : int;                   (* next output position to write. *) | ||||
|     mutable o_max : int;                (* maximal output position to write. *) | ||||
|     t : string;                 (* four bytes buffer for overlapping writes. *) | ||||
|     mutable t_pos : int;                    (* next position to read in [t]. *) | ||||
|     mutable t_max : int;                 (* maximal position to read in [t]. *) | ||||
|     mutable k :                                     (* encoder continuation. *) | ||||
|       encoder -> encode -> [ `Ok | `Partial ] } | ||||
|  | ||||
| (* On encodes that overlap two (or more) [e.o] buffers, we encode the | ||||
|    character to the temporary buffer [o.t] and continue with | ||||
|    [tmp_flush] to write this data on the different [e.o] buffers. If | ||||
|    the [e.o] buffers are not too small this is faster than | ||||
|    continuation based byte per byte writes. *) | ||||
|  | ||||
| let o_rem e = e.o_max - e.o_pos + 1    (* remaining bytes to write in [e.o]. *) | ||||
| let dst e s j l =                                     (* set [e.o] with [s]. *) | ||||
|   if (j < 0 || l < 0 || j + l > String.length s) then invalid_bounds j l; | ||||
|   e.o <- s; e.o_pos <- j; e.o_max <- j + l - 1 | ||||
|  | ||||
| let partial k e = function `Await -> k e | `Uchar _ | `End -> invalid_encode () | ||||
| let flush k e = match e.dst with(* get free storage in [d.o] and [k]ontinue. *) | ||||
| | `Manual -> e.k <- partial k; `Partial | ||||
| | `Buffer b -> Buffer.add_substring b e.o 0 e.o_pos; e.o_pos <- 0; k e | ||||
| | `Channel oc -> output oc e.o 0 e.o_pos; e.o_pos <- 0; k e | ||||
|  | ||||
| let t_range e max = e.t_pos <- 0; e.t_max <- max | ||||
| let rec t_flush k e =               (* flush [d.t] up to [d.t_max] in [d.i]. *) | ||||
|   let blit e l = | ||||
|     unsafe_blit e.t e.t_pos e.o e.o_pos l; | ||||
|     e.o_pos <- e.o_pos + l; e.t_pos <- e.t_pos + l | ||||
|   in | ||||
|   let rem = o_rem e in | ||||
|   let len = e.t_max - e.t_pos + 1 in | ||||
|   if rem < len then (blit e rem; flush (t_flush k) e) else (blit e len; k e) | ||||
|  | ||||
| (* Encoders. *) | ||||
|  | ||||
| let rec encode_utf_8 e v = | ||||
|   let k e = e.k <- encode_utf_8; `Ok in | ||||
|   match v with | ||||
|   | `Await -> k e | ||||
|   | `End -> flush k e | ||||
|   | `Uchar u as v -> | ||||
|       let rem = o_rem e in | ||||
|       if u <= 0x007F then | ||||
|       if rem < 1 then flush (fun e -> encode_utf_8 e v) e else | ||||
|       (unsafe_set_byte e.o e.o_pos u; e.o_pos <- e.o_pos + 1; k e) | ||||
|       else if u <= 0x07FF then | ||||
|       begin | ||||
|         let s, j, k = | ||||
|           if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else | ||||
|           let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) | ||||
|         in | ||||
|         unsafe_set_byte s j (0xC0 lor (u lsr 6)); | ||||
|         unsafe_set_byte s (j + 1) (0x80 lor (u land 0x3F)); | ||||
|         k e | ||||
|       end | ||||
|       else if u <= 0xFFFF then | ||||
|       begin | ||||
|         let s, j, k = | ||||
|           if rem < 3 then (t_range e 2; e.t, 0, t_flush k) else | ||||
|           let j = e.o_pos in (e.o_pos <- e.o_pos + 3; e.o, j, k) | ||||
|         in | ||||
|         unsafe_set_byte s j (0xE0 lor (u lsr 12)); | ||||
|         unsafe_set_byte s (j + 1) (0x80 lor ((u lsr 6) land 0x3F)); | ||||
|         unsafe_set_byte s (j + 2) (0x80 lor (u land 0x3F)); | ||||
|         k e | ||||
|       end | ||||
|       else | ||||
|       begin | ||||
|         let s, j, k = | ||||
|           if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else | ||||
|           let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) | ||||
|         in | ||||
|         unsafe_set_byte s j (0xF0 lor (u lsr 18)); | ||||
|         unsafe_set_byte s (j + 1) (0x80 lor ((u lsr 12) land 0x3F)); | ||||
|         unsafe_set_byte s (j + 2) (0x80 lor ((u lsr 6) land 0x3F)); | ||||
|         unsafe_set_byte s (j + 3) (0x80 lor (u land 0x3F)); | ||||
|         k e | ||||
|       end | ||||
|  | ||||
| let rec encode_utf_16be e v = | ||||
|   let k e = e.k <- encode_utf_16be; `Ok in | ||||
|   match v with | ||||
|   | `Await -> k e | ||||
|   | `End -> flush k e | ||||
|   | `Uchar u -> | ||||
|       let rem = o_rem e in | ||||
|       if u < 0x10000 then | ||||
|       begin | ||||
|         let s, j, k = | ||||
|           if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else | ||||
|           let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) | ||||
|         in | ||||
|         unsafe_set_byte s j (u lsr 8); | ||||
|         unsafe_set_byte s (j + 1) (u land 0xFF); | ||||
|         k e | ||||
|       end else begin | ||||
|         let s, j, k = | ||||
|           if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else | ||||
|           let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) | ||||
|         in | ||||
|         let u' = u - 0x10000 in | ||||
|         let hi = (0xD800 lor (u' lsr 10)) in | ||||
|         let lo = (0xDC00 lor (u' land 0x3FF)) in | ||||
|         unsafe_set_byte s j (hi lsr 8); | ||||
|         unsafe_set_byte s (j + 1) (hi land 0xFF); | ||||
|         unsafe_set_byte s (j + 2) (lo lsr 8); | ||||
|         unsafe_set_byte s (j + 3) (lo land 0xFF); | ||||
|         k e | ||||
|       end | ||||
|  | ||||
| let rec encode_utf_16le e v =         (* encode_uft_16be with bytes swapped. *) | ||||
|   let k e = e.k <- encode_utf_16le; `Ok in | ||||
|   match v with | ||||
|   | `Await -> k e | ||||
|   | `End -> flush k e | ||||
|   | `Uchar u -> | ||||
|     let rem = o_rem e in | ||||
|     if u < 0x10000 then | ||||
|     begin | ||||
|       let s, j, k = | ||||
|         if rem < 2 then (t_range e 1; e.t, 0, t_flush k) else | ||||
|         let j = e.o_pos in (e.o_pos <- e.o_pos + 2; e.o, j, k) | ||||
|       in | ||||
|       unsafe_set_byte s j (u land 0xFF); | ||||
|       unsafe_set_byte s (j + 1) (u lsr 8); | ||||
|       k e | ||||
|     end | ||||
|     else | ||||
|     begin | ||||
|       let s, j, k = | ||||
|         if rem < 4 then (t_range e 3; e.t, 0, t_flush k) else | ||||
|         let j = e.o_pos in (e.o_pos <- e.o_pos + 4; e.o, j, k) | ||||
|       in | ||||
|       let u' = u - 0x10000 in | ||||
|       let hi = (0xD800 lor (u' lsr 10)) in | ||||
|       let lo = (0xDC00 lor (u' land 0x3FF)) in | ||||
|       unsafe_set_byte s j (hi land 0xFF); | ||||
|       unsafe_set_byte s (j + 1) (hi lsr 8); | ||||
|       unsafe_set_byte s (j + 2) (lo land 0xFF); | ||||
|       unsafe_set_byte s (j + 3) (lo lsr 8); | ||||
|       k e | ||||
|     end | ||||
|  | ||||
| let encode_fun = function | ||||
| | `UTF_8 -> encode_utf_8 | ||||
| | `UTF_16 -> encode_utf_16be | ||||
| | `UTF_16BE -> encode_utf_16be | ||||
| | `UTF_16LE -> encode_utf_16le | ||||
|  | ||||
| let encoder encoding dst = | ||||
|   let o, o_pos, o_max = match dst with | ||||
|   | `Manual -> "", 1, 0                              (* implies o_rem e = 0. *) | ||||
|   | `Buffer _ | ||||
|   | `Channel _ -> String.create io_buffer_size, 0, io_buffer_size - 1 | ||||
|   in | ||||
|   { dst = (dst :> dst); encoding = (encoding :> encoding); o; o_pos; o_max; | ||||
|     t = String.create 4; t_pos = 1; t_max = 0; k = encode_fun encoding} | ||||
|  | ||||
| let encode e v = e.k e (v :> encode) | ||||
| let encoder_encoding e = e.encoding | ||||
| let encoder_dst e = e.dst | ||||
|  | ||||
| (* Manual sources and destinations. *) | ||||
|  | ||||
| module Manual = struct | ||||
|   let src = src | ||||
|   let dst = dst | ||||
|   let dst_rem = o_rem | ||||
| end | ||||
|  | ||||
| (* Strings folders and Buffer encoders *) | ||||
|  | ||||
| module String = struct | ||||
|   let encoding_guess s = match r_encoding s 0 (max (String.length s) 3) with | ||||
|   | `UTF_8 d -> `UTF_8, (d = `BOM) | ||||
|   | `UTF_16BE d -> `UTF_16BE, (d = `BOM) | ||||
|   | `UTF_16LE d -> `UTF_16LE, (d = `BOM) | ||||
|  | ||||
|   type 'a folder = | ||||
|     'a -> int -> [ `Uchar of uchar | `Malformed of string ] -> 'a | ||||
|  | ||||
|   let fold_utf_8 f acc s = | ||||
|     let rec loop acc f s i l = | ||||
|       if i = l then acc else | ||||
|       let need = unsafe_array_get utf_8_len (unsafe_byte s i) in | ||||
|       if need = 0 then loop (f acc i (malformed s i 1)) f s (i + 1) l else | ||||
|       let rem = l - i in | ||||
|       if rem < need then f acc i (malformed s i rem) else | ||||
|       loop (f acc i (r_utf_8 s i need)) f s (i + need) l | ||||
|     in | ||||
|     loop acc f s 0 (String.length s) | ||||
|  | ||||
|   let fold_utf_16be f acc s = | ||||
|     let rec loop acc f s i l = | ||||
|       if i = l then acc else | ||||
|       let rem = l - i in | ||||
|       if rem < 2 then f acc i (malformed s i 1) else | ||||
|       match r_utf_16 s i (i + 1) with | ||||
|       | `Uchar _ | `Malformed _ as v -> loop (f acc i v) f s (i + 2) l | ||||
|       | `Hi hi -> | ||||
|           if rem < 4 then f acc i (malformed s i rem)  else | ||||
|           loop (f acc i (r_utf_16_lo hi s (i + 2) (i + 3))) f s (i + 4) l | ||||
|     in | ||||
|     loop acc f s 0 (String.length s) | ||||
|  | ||||
|   let fold_utf_16le f acc s =             (* [fold_utf_16be], bytes swapped. *) | ||||
|     let rec loop acc f s i l = | ||||
|       if i = l then acc else | ||||
|       let rem = l - i in | ||||
|       if rem < 2 then f acc i (malformed s i 1) else | ||||
|       match r_utf_16 s (i + 1) i with | ||||
|       | `Uchar _ | `Malformed _ as v -> loop (f acc i v) f s (i + 2) l | ||||
|       | `Hi hi -> | ||||
|           if rem < 4 then f acc i (malformed s i rem)  else | ||||
|           loop (f acc i (r_utf_16_lo hi s (i + 3) (i + 2))) f s (i + 4) l | ||||
|     in | ||||
|     loop acc f s 0 (String.length s) | ||||
| end | ||||
|  | ||||
| module Buffer = struct | ||||
|   let add_utf_8 b u = | ||||
|     let w byte = Buffer.add_char b (unsafe_chr byte) in          (* inlined. *) | ||||
|     if u <= 0x007F then | ||||
|     (w u) | ||||
|     else if u <= 0x07FF then | ||||
|     (w (0xC0 lor (u lsr 6)); | ||||
|      w (0x80 lor (u land 0x3F))) | ||||
|     else if u <= 0xFFFF then | ||||
|     (w (0xE0 lor (u lsr 12)); | ||||
|      w (0x80 lor ((u lsr 6) land 0x3F)); | ||||
|      w (0x80 lor (u land 0x3F))) | ||||
|     else | ||||
|     (w (0xF0 lor (u lsr 18)); | ||||
|      w (0x80 lor ((u lsr 12) land 0x3F)); | ||||
|      w (0x80 lor ((u lsr 6) land 0x3F)); | ||||
|      w (0x80 lor (u land 0x3F))) | ||||
|  | ||||
|   let add_utf_16be b u = | ||||
|     let w byte = Buffer.add_char b (unsafe_chr byte) in          (* inlined. *) | ||||
|     if u < 0x10000 then (w (u lsr 8); w (u land 0xFF)) else | ||||
|     let u' = u - 0x10000 in | ||||
|     let hi = (0xD800 lor (u' lsr 10)) in | ||||
|     let lo = (0xDC00 lor (u' land 0x3FF)) in | ||||
|     w (hi lsr 8); w (hi land 0xFF); | ||||
|     w (lo lsr 8); w (lo land 0xFF) | ||||
|  | ||||
|   let add_utf_16le b u =                            (* swapped add_utf_16be. *) | ||||
|     let w byte = Buffer.add_char b (unsafe_chr byte) in          (* inlined. *) | ||||
|     if u < 0x10000 then (w (u land 0xFF); w (u lsr 8)) else | ||||
|     let u' = u - 0x10000 in | ||||
|     let hi = (0xD800 lor (u' lsr 10)) in | ||||
|     let lo = (0xDC00 lor (u' land 0x3FF)) in | ||||
|     w (hi land 0xFF); w (hi lsr 8); | ||||
|     w (lo land 0xFF); w (lo lsr 8) | ||||
| end | ||||
|  | ||||
| (*--------------------------------------------------------------------------- | ||||
|    Copyright 2012 Daniel C. Bünzli | ||||
|    All rights reserved. | ||||
|  | ||||
|    Redistribution and use in source and binary forms, with or without | ||||
|    modification, are permitted provided that the following conditions | ||||
|    are met: | ||||
|  | ||||
|    1. Redistributions of source code must retain the above copyright | ||||
|       notice, this list of conditions and the following disclaimer. | ||||
|  | ||||
|    2. Redistributions in binary form must reproduce the above | ||||
|       copyright notice, this list of conditions and the following | ||||
|       disclaimer in the documentation and/or other materials provided | ||||
|       with the distribution. | ||||
|  | ||||
|    3. Neither the name of Daniel C. Bünzli nor the names of | ||||
|       contributors may be used to endorse or promote products derived | ||||
|       from this software without specific prior written permission. | ||||
|  | ||||
|    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||||
|    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||||
|    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | ||||
|    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||||
|    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||||
|    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | ||||
|    LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
|    DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
|    THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
|    (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | ||||
|    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
|   ---------------------------------------------------------------------------*) | ||||
							
								
								
									
										1
									
								
								samples/Public Key/id_dsa.asc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								samples/Public Key/id_dsa.asc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| ssh-dss AAAAB3NzaC1kc3MAAACBAIXi8hv+I7/bYzbve0Wg/Gv9yeZX0H/qON6rwJTPFICTncfK2t/Kc2Ec7+GYSkEIj7ok5wzHgv51SFTM6dvK/8hrjFE8frNztRK2TwZCvgYkbcBoprUstE86ZHBA1pAVPfHAOcF708Yk+KsxDONxkzu7FWw4HWqycqPtaavdcgsZAAAAFQC0uvetk3WY9sFNU71a32JKjkmTnwAAAIBlm1eGuATcZJvlk2jerZnTO54MlO/htWQrI4pZGLdhukOPgF1lsTUSwmCN8k8xxkyRL5Yl/8GUcdUfC4gbZvsbZGtvq5gFZSVTfkKJrlwykpZcaijWXtDiWSpqszs0MfexLMdpZSkNsWp7TEoWcqNLN8X7ohlsLAhcdrAbGqFblAAAAIBgW12r208h9AA3rH3t+6HKLXuPO1BQPuE+fKQg1Aet40c1gxUkCF/J+xdAITE1v7kmssZxBvDqUPgpvYCm+ZfA0j712pvt4JmQcfPn9Go003kq6/cgI4tCOy1dgQDLr0E5Jd7YqIglkr25fkDtKRFBRue3FmCGOdaM4NAAdYU48Q== lars@junk | ||||
							
								
								
									
										1
									
								
								samples/Public Key/id_rsa.asc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								samples/Public Key/id_rsa.asc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1 @@ | ||||
| ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQCw3QQtYgRViVH8ZpkQ2A7BuCeyPYC4hB9kKNhxwUfJ2hFgW8soGMBhsLN+vOeAJ2IXDMsezJO2/qhoZFQMvHoWpWTRTLPeNtBsKD+nhOZX28A4D+QRzVZ6hdWoh9W+mIP69MIT3aX35oLb86IycbNdRJlEK4FAUt7tjezNkU7boQ== root@use1-2.nitrousbox.com | ||||
							
								
								
									
										7
									
								
								samples/Public Key/sshkey1.asc
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								samples/Public Key/sshkey1.asc
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| ---- BEGIN SSH2 PUBLIC KEY ---- | ||||
| Subject: galb | ||||
| Comment: 1024-bit rsa, created by galb@shimi Mon Jan 15 08:31:24 2001 | ||||
| AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt459 | ||||
| 6k6YjzGGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6 | ||||
| NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCddNaP0L+hM7zhFNzjFvpaMgJw0= | ||||
| ---- END SSH2 PUBLIC KEY ---- | ||||
							
								
								
									
										378
									
								
								samples/Puppet/apacheinit.pp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										378
									
								
								samples/Puppet/apacheinit.pp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,378 @@ | ||||
| # Class: apache | ||||
| # | ||||
| # This class installs Apache | ||||
| # | ||||
| # Parameters: | ||||
| # | ||||
| # Actions: | ||||
| #   - Install Apache | ||||
| #   - Manage Apache service | ||||
| # | ||||
| # Requires: | ||||
| # | ||||
| # Sample Usage: | ||||
| # | ||||
| class apache ( | ||||
|   $apache_name            = $::apache::params::apache_name, | ||||
|   $service_name           = $::apache::params::service_name, | ||||
|   $default_mods           = true, | ||||
|   $default_vhost          = true, | ||||
|   $default_charset        = undef, | ||||
|   $default_confd_files    = true, | ||||
|   $default_ssl_vhost      = false, | ||||
|   $default_ssl_cert       = $::apache::params::default_ssl_cert, | ||||
|   $default_ssl_key        = $::apache::params::default_ssl_key, | ||||
|   $default_ssl_chain      = undef, | ||||
|   $default_ssl_ca         = undef, | ||||
|   $default_ssl_crl_path   = undef, | ||||
|   $default_ssl_crl        = undef, | ||||
|   $default_ssl_crl_check  = undef, | ||||
|   $default_type           = 'none', | ||||
|   $ip                     = undef, | ||||
|   $service_enable         = true, | ||||
|   $service_manage         = true, | ||||
|   $service_ensure         = 'running', | ||||
|   $purge_configs          = true, | ||||
|   $purge_vhost_dir        = undef, | ||||
|   $purge_vdir             = false, | ||||
|   $serveradmin            = 'root@localhost', | ||||
|   $sendfile               = 'On', | ||||
|   $error_documents        = false, | ||||
|   $timeout                = '120', | ||||
|   $httpd_dir              = $::apache::params::httpd_dir, | ||||
|   $server_root            = $::apache::params::server_root, | ||||
|   $conf_dir               = $::apache::params::conf_dir, | ||||
|   $confd_dir              = $::apache::params::confd_dir, | ||||
|   $vhost_dir              = $::apache::params::vhost_dir, | ||||
|   $vhost_enable_dir       = $::apache::params::vhost_enable_dir, | ||||
|   $mod_dir                = $::apache::params::mod_dir, | ||||
|   $mod_enable_dir         = $::apache::params::mod_enable_dir, | ||||
|   $mpm_module             = $::apache::params::mpm_module, | ||||
|   $lib_path               = $::apache::params::lib_path, | ||||
|   $conf_template          = $::apache::params::conf_template, | ||||
|   $servername             = $::apache::params::servername, | ||||
|   $manage_user            = true, | ||||
|   $manage_group           = true, | ||||
|   $user                   = $::apache::params::user, | ||||
|   $group                  = $::apache::params::group, | ||||
|   $keepalive              = $::apache::params::keepalive, | ||||
|   $keepalive_timeout      = $::apache::params::keepalive_timeout, | ||||
|   $max_keepalive_requests = $::apache::params::max_keepalive_requests, | ||||
|   $logroot                = $::apache::params::logroot, | ||||
|   $logroot_mode           = $::apache::params::logroot_mode, | ||||
|   $log_level              = $::apache::params::log_level, | ||||
|   $log_formats            = {}, | ||||
|   $ports_file             = $::apache::params::ports_file, | ||||
|   $docroot                = $::apache::params::docroot, | ||||
|   $apache_version         = $::apache::version::default, | ||||
|   $server_tokens          = 'OS', | ||||
|   $server_signature       = 'On', | ||||
|   $trace_enable           = 'On', | ||||
|   $allow_encoded_slashes  = undef, | ||||
|   $package_ensure         = 'installed', | ||||
|   $use_optional_includes  = $::apache::params::use_optional_includes, | ||||
| ) inherits ::apache::params { | ||||
|   validate_bool($default_vhost) | ||||
|   validate_bool($default_ssl_vhost) | ||||
|   validate_bool($default_confd_files) | ||||
|   # true/false is sufficient for both ensure and enable | ||||
|   validate_bool($service_enable) | ||||
|   validate_bool($service_manage) | ||||
|   validate_bool($use_optional_includes) | ||||
|  | ||||
|   $valid_mpms_re = $apache_version ? { | ||||
|     '2.4'   => '(event|itk|peruser|prefork|worker)', | ||||
|     default => '(event|itk|prefork|worker)' | ||||
|   } | ||||
|  | ||||
|   if $mpm_module { | ||||
|     validate_re($mpm_module, $valid_mpms_re) | ||||
|   } | ||||
|  | ||||
|   if $allow_encoded_slashes { | ||||
|     validate_re($allow_encoded_slashes, '(^on$|^off$|^nodecode$)', "${allow_encoded_slashes} is not permitted for allow_encoded_slashes. Allowed values are 'on', 'off' or 'nodecode'.") | ||||
|   } | ||||
|  | ||||
|   # NOTE: on FreeBSD it's mpm module's responsibility to install httpd package. | ||||
|   # NOTE: the same strategy may be introduced for other OSes. For this, you | ||||
|   # should delete the 'if' block below and modify all MPM modules' manifests | ||||
|   # such that they include apache::package class (currently event.pp, itk.pp, | ||||
|   # peruser.pp, prefork.pp, worker.pp). | ||||
|   if $::osfamily != 'FreeBSD' { | ||||
|     package { 'httpd': | ||||
|       ensure => $package_ensure, | ||||
|       name   => $apache_name, | ||||
|       notify => Class['Apache::Service'], | ||||
|     } | ||||
|   } | ||||
|   validate_re($sendfile, [ '^[oO]n$' , '^[oO]ff$' ]) | ||||
|  | ||||
|   # declare the web server user and group | ||||
|   # Note: requiring the package means the package ought to create them and not puppet | ||||
|   validate_bool($manage_user) | ||||
|   if $manage_user { | ||||
|     user { $user: | ||||
|       ensure  => present, | ||||
|       gid     => $group, | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|   } | ||||
|   validate_bool($manage_group) | ||||
|   if $manage_group { | ||||
|     group { $group: | ||||
|       ensure  => present, | ||||
|       require => Package['httpd'] | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   validate_apache_log_level($log_level) | ||||
|  | ||||
|   class { '::apache::service': | ||||
|     service_name   => $service_name, | ||||
|     service_enable => $service_enable, | ||||
|     service_manage => $service_manage, | ||||
|     service_ensure => $service_ensure, | ||||
|   } | ||||
|  | ||||
|   # Deprecated backwards-compatibility | ||||
|   if $purge_vdir { | ||||
|     warning('Class[\'apache\'] parameter purge_vdir is deprecated in favor of purge_configs') | ||||
|     $purge_confd = $purge_vdir | ||||
|   } else { | ||||
|     $purge_confd = $purge_configs | ||||
|   } | ||||
|  | ||||
|   # Set purge vhostd appropriately | ||||
|   if $purge_vhost_dir == undef { | ||||
|     $purge_vhostd = $purge_confd | ||||
|   } else { | ||||
|     $purge_vhostd = $purge_vhost_dir | ||||
|   } | ||||
|  | ||||
|   Exec { | ||||
|     path => '/bin:/sbin:/usr/bin:/usr/sbin', | ||||
|   } | ||||
|  | ||||
|   exec { "mkdir ${confd_dir}": | ||||
|     creates => $confd_dir, | ||||
|     require => Package['httpd'], | ||||
|   } | ||||
|   file { $confd_dir: | ||||
|     ensure  => directory, | ||||
|     recurse => true, | ||||
|     purge   => $purge_confd, | ||||
|     notify  => Class['Apache::Service'], | ||||
|     require => Package['httpd'], | ||||
|   } | ||||
|  | ||||
|   if ! defined(File[$mod_dir]) { | ||||
|     exec { "mkdir ${mod_dir}": | ||||
|       creates => $mod_dir, | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|     # Don't purge available modules if an enable dir is used | ||||
|     $purge_mod_dir = $purge_configs and !$mod_enable_dir | ||||
|     file { $mod_dir: | ||||
|       ensure  => directory, | ||||
|       recurse => true, | ||||
|       purge   => $purge_mod_dir, | ||||
|       notify  => Class['Apache::Service'], | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if $mod_enable_dir and ! defined(File[$mod_enable_dir]) { | ||||
|     $mod_load_dir = $mod_enable_dir | ||||
|     exec { "mkdir ${mod_enable_dir}": | ||||
|       creates => $mod_enable_dir, | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|     file { $mod_enable_dir: | ||||
|       ensure  => directory, | ||||
|       recurse => true, | ||||
|       purge   => $purge_configs, | ||||
|       notify  => Class['Apache::Service'], | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|   } else { | ||||
|     $mod_load_dir = $mod_dir | ||||
|   } | ||||
|  | ||||
|   if ! defined(File[$vhost_dir]) { | ||||
|     exec { "mkdir ${vhost_dir}": | ||||
|       creates => $vhost_dir, | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|     file { $vhost_dir: | ||||
|       ensure  => directory, | ||||
|       recurse => true, | ||||
|       purge   => $purge_vhostd, | ||||
|       notify  => Class['Apache::Service'], | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|   } | ||||
|  | ||||
|   if $vhost_enable_dir and ! defined(File[$vhost_enable_dir]) { | ||||
|     $vhost_load_dir = $vhost_enable_dir | ||||
|     exec { "mkdir ${vhost_load_dir}": | ||||
|       creates => $vhost_load_dir, | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|     file { $vhost_enable_dir: | ||||
|       ensure  => directory, | ||||
|       recurse => true, | ||||
|       purge   => $purge_vhostd, | ||||
|       notify  => Class['Apache::Service'], | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|   } else { | ||||
|     $vhost_load_dir = $vhost_dir | ||||
|   } | ||||
|  | ||||
|   concat { $ports_file: | ||||
|     owner   => 'root', | ||||
|     group   => $::apache::params::root_group, | ||||
|     mode    => '0644', | ||||
|     notify  => Class['Apache::Service'], | ||||
|     require => Package['httpd'], | ||||
|   } | ||||
|   concat::fragment { 'Apache ports header': | ||||
|     ensure  => present, | ||||
|     target  => $ports_file, | ||||
|     content => template('apache/ports_header.erb') | ||||
|   } | ||||
|  | ||||
|   if $::apache::conf_dir and $::apache::params::conf_file { | ||||
|     case $::osfamily { | ||||
|       'debian': { | ||||
|         $pidfile              = "\${APACHE_PID_FILE}" | ||||
|         $error_log            = 'error.log' | ||||
|         $scriptalias          = '/usr/lib/cgi-bin' | ||||
|         $access_log_file      = 'access.log' | ||||
|       } | ||||
|       'redhat': { | ||||
|         $pidfile              = 'run/httpd.pid' | ||||
|         $error_log            = 'error_log' | ||||
|         $scriptalias          = '/var/www/cgi-bin' | ||||
|         $access_log_file      = 'access_log' | ||||
|       } | ||||
|       'freebsd': { | ||||
|         $pidfile              = '/var/run/httpd.pid' | ||||
|         $error_log            = 'httpd-error.log' | ||||
|         $scriptalias          = '/usr/local/www/apache24/cgi-bin' | ||||
|         $access_log_file      = 'httpd-access.log' | ||||
|       } 'gentoo': { | ||||
|         $pidfile              = '/run/apache2.pid' | ||||
|         $error_log            = 'error.log' | ||||
|         $error_documents_path = '/usr/share/apache2/error' | ||||
|         $scriptalias          = '/var/www/localhost/cgi-bin' | ||||
|         $access_log_file      = 'access.log' | ||||
|  | ||||
|         ::portage::makeconf { 'apache2_modules': | ||||
|           content => $default_mods, | ||||
|         } | ||||
|         file { [ | ||||
|           '/etc/apache2/modules.d/.keep_www-servers_apache-2', | ||||
|           '/etc/apache2/vhosts.d/.keep_www-servers_apache-2' | ||||
|         ]: | ||||
|           ensure  => absent, | ||||
|           require => Package['httpd'], | ||||
|         } | ||||
|       } | ||||
|       default: { | ||||
|         fail("Unsupported osfamily ${::osfamily}") | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     $apxs_workaround = $::osfamily ? { | ||||
|       'freebsd' => true, | ||||
|       default   => false | ||||
|     } | ||||
|  | ||||
|     # Template uses: | ||||
|     # - $pidfile | ||||
|     # - $user | ||||
|     # - $group | ||||
|     # - $logroot | ||||
|     # - $error_log | ||||
|     # - $sendfile | ||||
|     # - $mod_dir | ||||
|     # - $ports_file | ||||
|     # - $confd_dir | ||||
|     # - $vhost_dir | ||||
|     # - $error_documents | ||||
|     # - $error_documents_path | ||||
|     # - $apxs_workaround | ||||
|     # - $keepalive | ||||
|     # - $keepalive_timeout | ||||
|     # - $max_keepalive_requests | ||||
|     # - $server_root | ||||
|     # - $server_tokens | ||||
|     # - $server_signature | ||||
|     # - $trace_enable | ||||
|     file { "${::apache::conf_dir}/${::apache::params::conf_file}": | ||||
|       ensure  => file, | ||||
|       content => template($conf_template), | ||||
|       notify  => Class['Apache::Service'], | ||||
|       require => Package['httpd'], | ||||
|     } | ||||
|  | ||||
|     # preserve back-wards compatibility to the times when default_mods was | ||||
|     # only a boolean value. Now it can be an array (too) | ||||
|     if is_array($default_mods) { | ||||
|       class { '::apache::default_mods': | ||||
|         all  => false, | ||||
|         mods => $default_mods, | ||||
|       } | ||||
|     } else { | ||||
|       class { '::apache::default_mods': | ||||
|         all => $default_mods, | ||||
|       } | ||||
|     } | ||||
|     class { '::apache::default_confd_files': | ||||
|       all => $default_confd_files | ||||
|     } | ||||
|     if $mpm_module { | ||||
|       class { "::apache::mod::${mpm_module}": } | ||||
|     } | ||||
|  | ||||
|     $default_vhost_ensure = $default_vhost ? { | ||||
|       true  => 'present', | ||||
|       false => 'absent' | ||||
|     } | ||||
|     $default_ssl_vhost_ensure = $default_ssl_vhost ? { | ||||
|       true  => 'present', | ||||
|       false => 'absent' | ||||
|     } | ||||
|  | ||||
|     ::apache::vhost { 'default': | ||||
|       ensure          => $default_vhost_ensure, | ||||
|       port            => 80, | ||||
|       docroot         => $docroot, | ||||
|       scriptalias     => $scriptalias, | ||||
|       serveradmin     => $serveradmin, | ||||
|       access_log_file => $access_log_file, | ||||
|       priority        => '15', | ||||
|       ip              => $ip, | ||||
|       logroot_mode    => $logroot_mode, | ||||
|       manage_docroot  => $default_vhost, | ||||
|     } | ||||
|     $ssl_access_log_file = $::osfamily ? { | ||||
|       'freebsd' => $access_log_file, | ||||
|       default   => "ssl_${access_log_file}", | ||||
|     } | ||||
|     ::apache::vhost { 'default-ssl': | ||||
|       ensure          => $default_ssl_vhost_ensure, | ||||
|       port            => 443, | ||||
|       ssl             => true, | ||||
|       docroot         => $docroot, | ||||
|       scriptalias     => $scriptalias, | ||||
|       serveradmin     => $serveradmin, | ||||
|       access_log_file => $ssl_access_log_file, | ||||
|       priority        => '15', | ||||
|       ip              => $ip, | ||||
|       logroot_mode    => $logroot_mode, | ||||
|       manage_docroot  => $default_ssl_vhost, | ||||
|     } | ||||
|   } | ||||
| } | ||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user