mirror of
https://github.com/KevinMidboe/linguist.git
synced 2026-05-01 19:24:07 +00:00
Merge branch 'master' into 1823-local
This commit is contained in:
25
samples/AMPL/toy.ampl
Normal file
25
samples/AMPL/toy.ampl
Normal file
@@ -0,0 +1,25 @@
|
||||
# A toy knapsack problem from the LocalSolver docs written in AMPL.
|
||||
|
||||
set I;
|
||||
param Value{I};
|
||||
param Weight{I};
|
||||
param KnapsackBound;
|
||||
var Take{I} binary;
|
||||
|
||||
maximize TotalValue: sum{i in I} Take[i] * Value[i];
|
||||
s.t. WeightLimit: sum{i in I} Take[i] * Weight[i] <= KnapsackBound;
|
||||
|
||||
data;
|
||||
|
||||
param:
|
||||
I: Weight Value :=
|
||||
0 10 1
|
||||
1 60 10
|
||||
2 30 15
|
||||
3 40 40
|
||||
4 30 60
|
||||
5 20 90
|
||||
6 20 100
|
||||
7 2 15;
|
||||
|
||||
param KnapsackBound := 102;
|
||||
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,215 +0,0 @@
|
||||
%{
|
||||
#include "./../ATEXT/atextfun.hats"
|
||||
%}
|
||||
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
|
||||
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
|
||||
<title>EFFECTIVATS-DiningPhil2</title>
|
||||
#patscode_style()
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<h1>
|
||||
Effective ATS: Dining Philosophers
|
||||
</h1>
|
||||
|
||||
In this article, I present an implementation of a slight variant of the
|
||||
famous problem of 5-Dining-Philosophers by Dijkstra that makes simple but
|
||||
convincing use of linear types.
|
||||
|
||||
<h2>
|
||||
The Original Problem
|
||||
</h2>
|
||||
|
||||
There are five philosophers sitting around a table and there are also 5
|
||||
forks placed on the table such that each fork is located between the left
|
||||
hand of a philosopher and the right hand of another philosopher. Each
|
||||
philosopher does the following routine repeatedly: thinking and dining. In
|
||||
order to dine, a philosopher needs to first acquire two forks: one located
|
||||
on his left-hand side and the other on his right-hand side. After
|
||||
finishing dining, a philosopher puts the two acquired forks onto the table:
|
||||
one on his left-hand side and the other on his right-hand side.
|
||||
|
||||
<h2>
|
||||
A Variant of the Original Problem
|
||||
</h2>
|
||||
|
||||
The following twist is added to the original version:
|
||||
|
||||
<p>
|
||||
|
||||
After a fork is used, it becomes a "dirty" fork and needs to be put in a
|
||||
tray for dirty forks. There is a cleaner who cleans dirty forks and then
|
||||
puts them back on the table.
|
||||
|
||||
<h2>
|
||||
Channels for Communication
|
||||
</h2>
|
||||
|
||||
A channel is just a shared queue of fixed capacity. The following two
|
||||
functions are for inserting an element into and taking an element out of a
|
||||
given channel:
|
||||
|
||||
<pre
|
||||
class="patsyntax">
|
||||
#pats2xhtml_sats("\
|
||||
fun{a:vt0p} channel_insert (channel (a), a): void
|
||||
fun{a:vt0p} channel_takeout (chan: channel (a)): (a)
|
||||
")</pre>
|
||||
|
||||
If [channel_insert] is called on a channel that is full, then the caller is
|
||||
blocked until an element is taken out of the channel. If [channel_takeout]
|
||||
is called on a channel that is empty, then the caller is blocked until an
|
||||
element is inserted into the channel.
|
||||
|
||||
<h2>
|
||||
A Channel for Each Fork
|
||||
</h2>
|
||||
|
||||
Forks are resources given a linear type. Each fork is initially stored in a
|
||||
channel, which can be obtained by calling the following function:
|
||||
|
||||
<pre
|
||||
class="patsyntax">
|
||||
#pats2xhtml_sats("\
|
||||
fun fork_changet (n: nphil): channel(fork)
|
||||
")</pre>
|
||||
|
||||
where the type [nphil] is defined to be [natLt(5)] (for natural numbers
|
||||
less than 5). The channels for storing forks are chosen to be of capacity
|
||||
2. The reason that channels of capacity 2 are chosen to store at most one
|
||||
element (in each of them) is to guarantee that these channels can never be
|
||||
full (so that there is no attempt made to send signals to awake callers
|
||||
supposedly being blocked due to channels being full).
|
||||
|
||||
|
||||
<h2>
|
||||
A Channel for the Fork Tray
|
||||
</h2>
|
||||
|
||||
A tray for storing "dirty" forks is also a channel, which can be obtained
|
||||
by calling the following function:
|
||||
|
||||
<pre
|
||||
class="patsyntax">
|
||||
#pats2xhtml_sats("\
|
||||
fun forktray_changet ((*void*)): channel(fork)
|
||||
")</pre>
|
||||
|
||||
The capacity chosen for the channel is 6 (instead of 5) so that it can
|
||||
never become full (as there are only 5 forks in total).
|
||||
|
||||
<h2>
|
||||
Philosopher Loop
|
||||
</h2>
|
||||
|
||||
Each philosopher is implemented as a loop:
|
||||
|
||||
<pre
|
||||
class="patsyntax">
|
||||
#pats2xhtml_dats('\
|
||||
implement
|
||||
phil_loop (n) = let
|
||||
//
|
||||
val () = phil_think (n)
|
||||
//
|
||||
val nl = phil_left (n) // = n
|
||||
val nr = phil_right (n) // = (n+1) % 5
|
||||
//
|
||||
val ch_lfork = fork_changet (nl)
|
||||
val ch_rfork = fork_changet (nr)
|
||||
//
|
||||
val lf = channel_takeout (ch_lfork)
|
||||
val () = println! ("phil_loop(", n, ") picks left fork")
|
||||
//
|
||||
val () = randsleep (2) // sleep up to 2 seconds
|
||||
//
|
||||
val rf = channel_takeout (ch_rfork)
|
||||
val () = println! ("phil_loop(", n, ") picks right fork")
|
||||
//
|
||||
val () = phil_dine (n, lf, rf)
|
||||
//
|
||||
val ch_forktray = forktray_changet ()
|
||||
val () = channel_insert (ch_forktray, lf) // left fork to dirty tray
|
||||
val () = channel_insert (ch_forktray, rf) // right fork to dirty tray
|
||||
//
|
||||
in
|
||||
phil_loop (n)
|
||||
end // end of [phil_loop]
|
||||
')</pre>
|
||||
|
||||
It should be straighforward to follow the code for [phil_loop].
|
||||
|
||||
<h2>
|
||||
Fork Cleaner Loop
|
||||
</h2>
|
||||
|
||||
A cleaner is implemented as a loop:
|
||||
|
||||
<pre
|
||||
class="patsyntax">
|
||||
#pats2xhtml_dats('\
|
||||
implement
|
||||
cleaner_loop () = let
|
||||
//
|
||||
val ch = forktray_changet ()
|
||||
val f0 = channel_takeout (ch) // [f0] is dirty
|
||||
//
|
||||
val () = cleaner_wash (f0) // washes dirty [f0]
|
||||
val () = cleaner_return (f0) // puts back cleaned [f0]
|
||||
//
|
||||
in
|
||||
cleaner_loop ()
|
||||
end // end of [cleaner_loop]
|
||||
')</pre>
|
||||
|
||||
The function [cleaner_return] first finds out the number of a given fork
|
||||
and then uses the number to locate the channel for storing the fork. Its
|
||||
actual implementation is given as follows:
|
||||
|
||||
<pre
|
||||
class="patsyntax">
|
||||
#pats2xhtml_dats('\
|
||||
implement
|
||||
cleaner_return (f) =
|
||||
{
|
||||
val n = fork_get_num (f)
|
||||
val ch = fork_changet (n)
|
||||
val () = channel_insert (ch, f)
|
||||
}
|
||||
')</pre>
|
||||
|
||||
It should now be straighforward to follow the code for [cleaner_loop].
|
||||
|
||||
<h2>
|
||||
Testing
|
||||
</h2>
|
||||
|
||||
The entire code of this implementation is stored in the following files:
|
||||
|
||||
<pre>
|
||||
DiningPhil2.sats
|
||||
DiningPhil2.dats
|
||||
DiningPhil2_fork.dats
|
||||
DiningPhil2_thread.dats
|
||||
</pre>
|
||||
|
||||
There is also a Makefile available for compiling the ATS source code into
|
||||
an excutable for testing. One should be able to encounter a deadlock after
|
||||
running the simulation for a while.
|
||||
|
||||
<hr size="2">
|
||||
|
||||
This article is written by <a href="http://www.cs.bu.edu/~hwxi/">Hongwei Xi</a>.
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
%{
|
||||
implement main () = fprint_filsub (stdout_ref, "main_atxt.txt")
|
||||
%}
|
||||
17
samples/ApacheConf/apache.vhost
Normal file
17
samples/ApacheConf/apache.vhost
Normal file
@@ -0,0 +1,17 @@
|
||||
#######################
|
||||
# HOSTNAME
|
||||
######################
|
||||
|
||||
<VirtualHost 127.0.0.1:PORT>
|
||||
ServerAdmin patrick@heysparkbox.com
|
||||
DocumentRoot "/var/www/HOSTNAME"
|
||||
ServerName HOSTNAME
|
||||
|
||||
<Directory "/var/www/HOSTNAME">
|
||||
Options Indexes MultiViews FollowSymLinks
|
||||
AllowOverride All
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
DirectoryIndex index.php
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
@@ -1,6 +1,9 @@
|
||||
AsciiDoc Home Page
|
||||
==================
|
||||
|
||||
Title
|
||||
-----
|
||||
|
||||
Example Articles
|
||||
~~~~~~~~~~~~~~~~
|
||||
- Item 1
|
||||
|
||||
2841
samples/Assembly/forth.nasm
Normal file
2841
samples/Assembly/forth.nasm
Normal file
File diff suppressed because it is too large
Load Diff
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
|
||||
*
|
||||
|
||||
[>>>>>>>>>>]<<<<<<<<<<[+>[>>>>>>>>>+>]<-<<<<<<<<<<]-
|
||||
[>++++++++++++++++++++++++++++++++++++++++++++++++.<<<<<<<<<<<]
|
||||
++++++++++.
|
||||
13
samples/Brainfuck/fib100.bf
Normal file
13
samples/Brainfuck/fib100.bf
Normal file
@@ -0,0 +1,13 @@
|
||||
# Calculate and output all fibonacci numbers under 100
|
||||
|
||||
+++++++++++
|
||||
>+>>>>++++++++++++++++++++++++++++++++++++++++++++
|
||||
>++++++++++++++++++++++++++++++++<<<<<<[>[>>>>>>+>
|
||||
+<<<<<<<-]>>>>>>>[<<<<<<<+>>>>>>>-]<[>++++++++++[-
|
||||
<-[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]>[<<[>>>+<<<
|
||||
-]>>[-]]<<]>>>[>>+>+<<<-]>>>[<<<+>>>-]+<[>[-]<[-]]
|
||||
>[<<+>>[-]]<<<<<<<]>>>>>[+++++++++++++++++++++++++
|
||||
+++++++++++++++++++++++.[-]]++++++++++<[->-<]>++++
|
||||
++++++++++++++++++++++++++++++++++++++++++++.[-]<<
|
||||
<<<<<<<<<<[>>>+>+<<<<-]>>>>[<<<<+>>>>-]<-[>>.>.<<<
|
||||
[-]]<<[>>+>+<<<-]>>>[<<<+>>>-]<<[<+>-]>[<+>-]<<<-]
|
||||
4
samples/Brainfuck/hello.bf
Normal file
4
samples/Brainfuck/hello.bf
Normal file
@@ -0,0 +1,4 @@
|
||||
// More complex version of hello world
|
||||
|
||||
>++++++++[<+++++++++>-]<.>>+>+>++>[-]+<[>[->+<<++++>]<<]>.+++++++..+++.>
|
||||
>+++++++.<<<[[-]<[-]>]<+++++++++++++++.>>.+++.------.--------.>>+.>++++.
|
||||
3
samples/Brainfuck/helloworld.bf
Normal file
3
samples/Brainfuck/helloworld.bf
Normal file
@@ -0,0 +1,3 @@
|
||||
// Hello World
|
||||
|
||||
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
|
||||
30
samples/Brainfuck/rot13.bf
Normal file
30
samples/Brainfuck/rot13.bf
Normal file
@@ -0,0 +1,30 @@
|
||||
# ROT13 cipher
|
||||
|
||||
-,+[ Read first character and start outer character reading loop
|
||||
-[ Skip forward if character is 0
|
||||
>>++++[>++++++++<-] Set up divisor (32) for division loop
|
||||
(MEMORY LAYOUT: dividend copy remainder divisor quotient zero zero)
|
||||
<+<-[ Set up dividend (x minus 1) and enter division loop
|
||||
>+>+>-[>>>] Increase copy and remainder / reduce divisor / Normal case: skip forward
|
||||
<[[>+<-]>>+>] Special case: move remainder back to divisor and increase quotient
|
||||
<<<<<- Decrement dividend
|
||||
] End division loop
|
||||
]>>>[-]+ End skip loop; zero former divisor and reuse space for a flag
|
||||
>--[-[<->+++[-]]]<[ Zero that flag unless quotient was 2 or 3; zero quotient; check flag
|
||||
++++++++++++<[ If flag then set up divisor (13) for second division loop
|
||||
(MEMORY LAYOUT: zero copy dividend divisor remainder quotient zero zero)
|
||||
>-[>+>>] Reduce divisor; Normal case: increase remainder
|
||||
>[+[<+>-]>+>>] Special case: increase remainder / move it back to divisor / increase quotient
|
||||
<<<<<- Decrease dividend
|
||||
] End division loop
|
||||
>>[<+>-] Add remainder back to divisor to get a useful 13
|
||||
>[ Skip forward if quotient was 0
|
||||
-[ Decrement quotient and skip forward if quotient was 1
|
||||
-<<[-]>> Zero quotient and divisor if quotient was 2
|
||||
]<<[<<->>-]>> Zero divisor and subtract 13 from copy if quotient was 1
|
||||
]<<[<<+>>-] Zero divisor and add 13 to copy if quotient was 0
|
||||
] End outer skip loop (jump to here if ((character minus 1)/32) was not 2 or 3)
|
||||
<[-] Clear remainder from first division if second division was skipped
|
||||
<.[-] Output ROT13ed character from copy and clear it
|
||||
<-,+ Read next character
|
||||
] End character reading loop
|
||||
98
samples/C++/Entity.h
Normal file
98
samples/C++/Entity.h
Normal file
@@ -0,0 +1,98 @@
|
||||
/**
|
||||
* @file Entity.h
|
||||
* @page EntityPage Entity
|
||||
* @brief represent an entity in the game
|
||||
* @author vinz243
|
||||
* @version 0.1.0
|
||||
* This file represents an Entity in the game system
|
||||
* This parent type is a static entity which is shown and loaded into the Physics engine but never updated
|
||||
*/
|
||||
|
||||
#ifndef ENTITY_H
|
||||
#define ENTITY_H
|
||||
|
||||
#include "base.h"
|
||||
/// @namespace Whitedrop
|
||||
namespace Whitedrop {
|
||||
/** @class Entity
|
||||
* This parent type is a static entity which is shown and loaded into the Physics engine but never updated
|
||||
*/
|
||||
class Entity {
|
||||
public:
|
||||
/**
|
||||
* @brief Create static entity
|
||||
* @details creates a static entity instance according to the mesh and the id, the position
|
||||
* This needs to be attached to a World after!
|
||||
* The material name is not the file name but the material name!
|
||||
* @ref WorldPage
|
||||
* @param mesh the name of the mesh for the object, file must be in media/meshes
|
||||
* @param id an unique identifier for the object, shortest as possible
|
||||
* @param dimensions an Ogre::Vector3 which contains the dimensions in meter
|
||||
* @param position the Vector3 which contains it position
|
||||
* @param material the material name
|
||||
*/
|
||||
Entity(std::string mesh, std::string id, Ogre::Vector3 dimensions, Ogre::Vector3 position, std::string material);
|
||||
/**
|
||||
* @brief The copy constructor
|
||||
* @details A copy constr
|
||||
*
|
||||
* @param ref the Entity to be copied from
|
||||
*/
|
||||
Entity(const Entity &ref);
|
||||
|
||||
/**
|
||||
* @brief The assignement operator
|
||||
* @details
|
||||
*
|
||||
* @param ent the entity to be copied
|
||||
*/
|
||||
Entity& operator=(const Entity ent);
|
||||
|
||||
/**
|
||||
* @brief destrctor
|
||||
* @details
|
||||
*/
|
||||
virtual ~Entity(void);
|
||||
|
||||
/**
|
||||
* @brief a constance type of the entity
|
||||
* @details depends of the class.
|
||||
* May contain STATIC, DYNAMIC or ETHERAL
|
||||
*/
|
||||
const std::string type = "STATIC";
|
||||
|
||||
/**
|
||||
* @brief Attach the entity to specified sceneManager
|
||||
* @details This creates the OgreEntity using sceneMgr,
|
||||
* set material, create a Node with name as `<id>_n`,
|
||||
* scale it to match dimensions and translate the node to pos
|
||||
* @param sceneMgr the scene manager to use
|
||||
*/
|
||||
virtual void setup(Ogre::SceneManager* sceneMgr);
|
||||
|
||||
/**
|
||||
* @brief the update method
|
||||
* @details this method should be called on each world update.
|
||||
* Even though the method is necessary declared, the main impl of
|
||||
* a static entity should be empty since it is not updated by physics
|
||||
* However, a Dynamic entity should implement this function in order to:
|
||||
* 1) Get from the physics engine the actor position in the physic world
|
||||
* 2) Update the OgreEntity position and rotation from the previous actor
|
||||
* @return whether it was successful or not, if falsey engine should stop
|
||||
*/
|
||||
virtual bool update(void);
|
||||
|
||||
protected:
|
||||
std::string mMesh = "cube.mesh";
|
||||
std::string mId;
|
||||
std::string mMaterial;
|
||||
Ogre::Vector3 mDimensions;
|
||||
Ogre::Vector3 mPosition;
|
||||
Ogre::Entity* mEntity;
|
||||
Ogre::SceneNode* mNode;
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
116
samples/C++/qsciprinter.cp
Normal file
116
samples/C++/qsciprinter.cp
Normal file
@@ -0,0 +1,116 @@
|
||||
// This module defines interface to the QsciPrinter class.
|
||||
//
|
||||
// Copyright (c) 2011 Riverbank Computing Limited <info@riverbankcomputing.com>
|
||||
//
|
||||
// This file is part of QScintilla.
|
||||
//
|
||||
// This file may be used under the terms of the GNU General Public
|
||||
// License versions 2.0 or 3.0 as published by the Free Software
|
||||
// Foundation and appearing in the files LICENSE.GPL2 and LICENSE.GPL3
|
||||
// included in the packaging of this file. Alternatively you may (at
|
||||
// your option) use any later version of the GNU General Public
|
||||
// License if such license has been publicly approved by Riverbank
|
||||
// Computing Limited (or its successors, if any) and the KDE Free Qt
|
||||
// Foundation. In addition, as a special exception, Riverbank gives you
|
||||
// certain additional rights. These rights are described in the Riverbank
|
||||
// GPL Exception version 1.1, which can be found in the file
|
||||
// GPL_EXCEPTION.txt in this package.
|
||||
//
|
||||
// If you are unsure which license is appropriate for your use, please
|
||||
// contact the sales department at sales@riverbankcomputing.com.
|
||||
//
|
||||
// This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
|
||||
// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
||||
#ifndef QSCIPRINTER_H
|
||||
#define QSCIPRINTER_H
|
||||
|
||||
#ifdef __APPLE__
|
||||
extern "C++" {
|
||||
#endif
|
||||
|
||||
#include <qprinter.h>
|
||||
|
||||
#include <Qsci/qsciglobal.h>
|
||||
#include <Qsci/qsciscintilla.h>
|
||||
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QRect;
|
||||
class QPainter;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class QsciScintillaBase;
|
||||
|
||||
|
||||
//! \brief The QsciPrinter class is a sub-class of the Qt QPrinter class that
|
||||
//! is able to print the text of a Scintilla document.
|
||||
//!
|
||||
//! The class can be further sub-classed to alter to layout of the text, adding
|
||||
//! headers and footers for example.
|
||||
class QSCINTILLA_EXPORT QsciPrinter : public QPrinter
|
||||
{
|
||||
public:
|
||||
//! Constructs a printer paint device with mode \a mode.
|
||||
QsciPrinter(PrinterMode mode = ScreenResolution);
|
||||
|
||||
//! Destroys the QsciPrinter instance.
|
||||
virtual ~QsciPrinter();
|
||||
|
||||
//! Format a page, by adding headers and footers for example, before the
|
||||
//! document text is drawn on it. \a painter is the painter to be used to
|
||||
//! add customised text and graphics. \a drawing is true if the page is
|
||||
//! actually being drawn rather than being sized. \a painter drawing
|
||||
//! methods must only be called when \a drawing is true. \a area is the
|
||||
//! area of the page that will be used to draw the text. This should be
|
||||
//! modified if it is necessary to reserve space for any customised text or
|
||||
//! graphics. By default the area is relative to the printable area of the
|
||||
//! page. Use QPrinter::setFullPage() because calling printRange() if you
|
||||
//! want to try and print over the whole page. \a pagenr is the number of
|
||||
//! the page. The first page is numbered 1.
|
||||
virtual void formatPage(QPainter &painter, bool drawing, QRect &area,
|
||||
int pagenr);
|
||||
|
||||
//! Return the number of points to add to each font when printing.
|
||||
//!
|
||||
//! \sa setMagnification()
|
||||
int magnification() const {return mag;}
|
||||
|
||||
//! Sets the number of points to add to each font when printing to \a
|
||||
//! magnification.
|
||||
//!
|
||||
//! \sa magnification()
|
||||
virtual void setMagnification(int magnification);
|
||||
|
||||
//! Print a range of lines from the Scintilla instance \a qsb. \a from is
|
||||
//! the first line to print and a negative value signifies the first line
|
||||
//! of text. \a to is the last line to print and a negative value
|
||||
//! signifies the last line of text. true is returned if there was no
|
||||
//! error.
|
||||
virtual int printRange(QsciScintillaBase *qsb, int from = -1, int to = -1);
|
||||
|
||||
//! Return the line wrap mode used when printing. The default is
|
||||
//! QsciScintilla::WrapWord.
|
||||
//!
|
||||
//! \sa setWrapMode()
|
||||
QsciScintilla::WrapMode wrapMode() const {return wrap;}
|
||||
|
||||
//! Sets the line wrap mode used when printing to \a wmode.
|
||||
//!
|
||||
//! \sa wrapMode()
|
||||
virtual void setWrapMode(QsciScintilla::WrapMode wmode);
|
||||
|
||||
private:
|
||||
int mag;
|
||||
QsciScintilla::WrapMode wrap;
|
||||
|
||||
QsciPrinter(const QsciPrinter &);
|
||||
QsciPrinter &operator=(const QsciPrinter &);
|
||||
};
|
||||
|
||||
#ifdef __APPLE__
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
2310
samples/C/filenames/script
Executable file
2310
samples/C/filenames/script
Executable file
File diff suppressed because it is too large
Load Diff
166
samples/C/pqiv.h
Normal file
166
samples/C/pqiv.h
Normal file
@@ -0,0 +1,166 @@
|
||||
/**
|
||||
* pqiv
|
||||
*
|
||||
* Copyright (c) 2013-2014, Phillip Berndt
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
// This file contains the definition of files, image types and
|
||||
// the plugin infrastructure. It should be included in file type
|
||||
// handlers.
|
||||
|
||||
#ifndef _PQIV_H_INCLUDED
|
||||
#define _PQIV_H_INCLUDED
|
||||
|
||||
#include <glib.h>
|
||||
#include <gtk/gtk.h>
|
||||
#include <gio/gio.h>
|
||||
#include "lib/bostree.h"
|
||||
|
||||
#ifndef PQIV_VERSION
|
||||
#define PQIV_VERSION "2.3"
|
||||
#endif
|
||||
|
||||
#define FILE_FLAGS_ANIMATION (guint)(1)
|
||||
#define FILE_FLAGS_MEMORY_IMAGE (guint)(1<<1)
|
||||
|
||||
// The structure for images {{{
|
||||
typedef struct file_type_handler_struct_t file_type_handler_t;
|
||||
typedef struct {
|
||||
// File type
|
||||
const file_type_handler_t *file_type;
|
||||
|
||||
// Special flags
|
||||
// FILE_FLAGS_ANIMATION -> Animation functions are invoked
|
||||
// Set by file type handlers
|
||||
// FILE_FLAGS_MEMORY_IMAGE -> File lives in memory
|
||||
guint file_flags;
|
||||
|
||||
// The file name to display and to sort by
|
||||
gchar *display_name;
|
||||
|
||||
// The URI or file name of the file
|
||||
gchar *file_name;
|
||||
|
||||
// If the file is a memory image, the actual image data
|
||||
GBytes *file_data;
|
||||
|
||||
// The file monitor structure is used for inotify-watching of
|
||||
// the files
|
||||
GFileMonitor *file_monitor;
|
||||
|
||||
// This flag stores whether this image is currently loaded
|
||||
// and valid. i.e. if it is set, you can assume that
|
||||
// private_data contains a representation of the image;
|
||||
// if not, you can NOT assume that it does not.
|
||||
gboolean is_loaded;
|
||||
|
||||
// Cached image size
|
||||
guint width;
|
||||
guint height;
|
||||
|
||||
// File-type specific data, allocated and freed by the file type handlers
|
||||
void *private;
|
||||
} file_t;
|
||||
// }}}
|
||||
// Definition of the built-in file types {{{
|
||||
|
||||
// If you want to implement your own file type, you'll have to implement the
|
||||
// following functions and a non-static initialization function named
|
||||
// file_type_NAME_initializer that fills a file_type_handler_t with pointers to
|
||||
// the functions. Store the file in backends/NAME.c and adjust the Makefile to
|
||||
// add the required libraries if your backend is listed in the $(BACKENDS)
|
||||
// variable.
|
||||
|
||||
typedef enum { PARAMETER, RECURSION, INOTIFY, BROWSE_ORIGINAL_PARAMETER, FILTER_OUTPUT } load_images_state_t;
|
||||
// Allocation function: Allocate the ->private structure within a file and add the
|
||||
// image(s) to the list of available images via load_images_handle_parameter_add_file()
|
||||
// If an image is not to be loaded for any reason, the file structure should be
|
||||
// deallocated using file_free()
|
||||
// Returns a pointer to the first added image
|
||||
// Optional, you can also set the pointer to this function to NULL.
|
||||
typedef BOSNode *(*file_type_alloc_fn_t)(load_images_state_t state, file_t *file);
|
||||
|
||||
// Deallocation, if a file is removed from the images list. Free the ->private structure.
|
||||
// Only called if ->private is non-NULL.
|
||||
typedef void (*file_type_free_fn_t)(file_t *file);
|
||||
|
||||
// Actually load a file into memory
|
||||
typedef void (*file_type_load_fn_t)(file_t *file, GInputStream *data, GError **error_pointer);
|
||||
|
||||
// Unload a file
|
||||
typedef void (*file_type_unload_fn_t)(file_t *file);
|
||||
|
||||
// Animation support: Initialize memory for animations, return ms until first frame
|
||||
// Optional, you can also set the pointer to this function to NULL.
|
||||
typedef double (*file_type_animation_initialize_fn_t)(file_t *file);
|
||||
|
||||
// Animation support: Advance to the next frame, return ms until next frame
|
||||
// Optional, you can also set the pointer to this function to NULL.
|
||||
typedef double (*file_type_animation_next_frame_fn_t)(file_t *file);
|
||||
|
||||
// Draw the current view to a cairo context
|
||||
typedef void (*file_type_draw_fn_t)(file_t *file, cairo_t *cr);
|
||||
|
||||
struct file_type_handler_struct_t {
|
||||
// All files will be filtered with this filter. If it lets it pass,
|
||||
// a handler is assigned to a file. If none do, the file is
|
||||
// discarded if it was found during directory traversal or
|
||||
// loaded using the first image backend if it was an explicit
|
||||
// parameter.
|
||||
GtkFileFilter *file_types_handled;
|
||||
|
||||
// Pointers to the functions defined above
|
||||
file_type_alloc_fn_t alloc_fn;
|
||||
file_type_free_fn_t free_fn;
|
||||
file_type_load_fn_t load_fn;
|
||||
file_type_unload_fn_t unload_fn;
|
||||
file_type_animation_initialize_fn_t animation_initialize_fn;
|
||||
file_type_animation_next_frame_fn_t animation_next_frame_fn;
|
||||
file_type_draw_fn_t draw_fn;
|
||||
};
|
||||
|
||||
// Initialization function: Tell pqiv about a backend
|
||||
typedef void (*file_type_initializer_fn_t)(file_type_handler_t *info);
|
||||
|
||||
// pqiv symbols available to plugins {{{
|
||||
|
||||
// Global cancellable that should be used for every i/o operation
|
||||
extern GCancellable *image_loader_cancellable;
|
||||
|
||||
// Current scale level. For backends that don't support cairo natively.
|
||||
extern gdouble current_scale_level;
|
||||
|
||||
// Load a file from disc/memory/network
|
||||
GInputStream *image_loader_stream_file(file_t *file, GError **error_pointer);
|
||||
|
||||
// Add a file to the list of loaded files
|
||||
// Should be called at least once in a file_type_alloc_fn_t, with the state being
|
||||
// forwarded unaltered.
|
||||
BOSNode *load_images_handle_parameter_add_file(load_images_state_t state, file_t *file);
|
||||
|
||||
// Load all data from an input stream into memory, conveinience function
|
||||
GBytes *g_input_stream_read_completely(GInputStream *input_stream, GCancellable *cancellable, GError **error_pointer);
|
||||
|
||||
// Free a file
|
||||
void file_free(file_t *file);
|
||||
|
||||
// }}}
|
||||
|
||||
// File type handlers, used in the initializer and file type guessing
|
||||
extern file_type_handler_t file_type_handlers[];
|
||||
|
||||
/* }}} */
|
||||
|
||||
#endif
|
||||
343
samples/CLIPS/demo.clp
Normal file
343
samples/CLIPS/demo.clp
Normal file
@@ -0,0 +1,343 @@
|
||||
;;;***************************
|
||||
;;;* DEFFACTS KNOWLEDGE BASE *
|
||||
;;;***************************
|
||||
|
||||
(deffacts MAIN::knowledge-base
|
||||
(welcome (message WelcomeMessage))
|
||||
(goal (variable type.animal))
|
||||
(legalanswers (values yes no))
|
||||
(displayanswers (values "Yes" "No"))
|
||||
(rule (if backbone is yes)
|
||||
(then superphylum is backbone))
|
||||
(rule (if backbone is no)
|
||||
(then superphylum is jellyback))
|
||||
(question (variable backbone)
|
||||
(query backbone.query))
|
||||
(rule (if superphylum is backbone and
|
||||
warm.blooded is yes)
|
||||
(then phylum is warm))
|
||||
(rule (if superphylum is backbone and
|
||||
warm.blooded is no)
|
||||
(then phylum is cold))
|
||||
(question (variable warm.blooded)
|
||||
(query warm.blooded.query))
|
||||
(rule (if superphylum is jellyback and
|
||||
live.prime.in.soil is yes)
|
||||
(then phylum is soil))
|
||||
(rule (if superphylum is jellyback and
|
||||
live.prime.in.soil is no)
|
||||
(then phylum is elsewhere))
|
||||
(question (variable live.prime.in.soil)
|
||||
(query live.prime.in.soil.query))
|
||||
(rule (if phylum is warm and
|
||||
has.breasts is yes)
|
||||
(then class is breasts))
|
||||
(rule (if phylum is warm and
|
||||
has.breasts is no)
|
||||
(then type.animal is bird))
|
||||
(question (variable has.breasts)
|
||||
(query has.breasts.query))
|
||||
(rule (if phylum is cold and
|
||||
always.in.water is yes)
|
||||
(then class is water))
|
||||
(rule (if phylum is cold and
|
||||
always.in.water is no)
|
||||
(then class is dry))
|
||||
(question (variable always.in.water)
|
||||
(query always.in.water.query))
|
||||
(rule (if phylum is soil and
|
||||
flat.bodied is yes)
|
||||
(then type.animal is flatworm))
|
||||
(rule (if phylum is soil and
|
||||
flat.bodied is no)
|
||||
(then type.animal is worm.leech))
|
||||
(question (variable flat.bodied)
|
||||
(query flat.bodied.query))
|
||||
(rule (if phylum is elsewhere and
|
||||
body.in.segments is yes)
|
||||
(then class is segments))
|
||||
(rule (if phylum is elsewhere and
|
||||
body.in.segments is no)
|
||||
(then class is unified))
|
||||
(question (variable body.in.segments)
|
||||
(query body.in.segments.query))
|
||||
(rule (if class is breasts and
|
||||
can.eat.meat is yes)
|
||||
(then order is meat))
|
||||
(rule (if class is breasts and
|
||||
can.eat.meat is no)
|
||||
(then order is vegy))
|
||||
(question (variable can.eat.meat)
|
||||
(query can.eat.meat.query))
|
||||
(rule (if class is water and
|
||||
boney is yes)
|
||||
(then type.animal is fish))
|
||||
(rule (if class is water and
|
||||
boney is no)
|
||||
(then type.animal is shark.ray))
|
||||
(question (variable boney)
|
||||
(query boney.query))
|
||||
(rule (if class is dry and
|
||||
scaly is yes)
|
||||
(then order is scales))
|
||||
(rule (if class is dry and
|
||||
scaly is no)
|
||||
(then order is soft))
|
||||
(question (variable scaly)
|
||||
(query scaly.query))
|
||||
(rule (if class is segments and
|
||||
shell is yes)
|
||||
(then order is shell))
|
||||
(rule (if class is segments and
|
||||
shell is no)
|
||||
(then type.animal is centipede.millipede.insect))
|
||||
(question (variable shell)
|
||||
(query shell.query))
|
||||
(rule (if class is unified and
|
||||
digest.cells is yes)
|
||||
(then order is cells))
|
||||
(rule (if class is unified and
|
||||
digest.cells is no)
|
||||
(then order is stomach))
|
||||
(question (variable digest.cells)
|
||||
(query digest.cells.query))
|
||||
(rule (if order is meat and
|
||||
fly is yes)
|
||||
(then type.animal is bat))
|
||||
(rule (if order is meat and
|
||||
fly is no)
|
||||
(then family is nowings))
|
||||
(question (variable fly)
|
||||
(query fly.query))
|
||||
(rule (if order is vegy and
|
||||
hooves is yes)
|
||||
(then family is hooves))
|
||||
(rule (if order is vegy and
|
||||
hooves is no)
|
||||
(then family is feet))
|
||||
(question (variable hooves)
|
||||
(query hooves.query))
|
||||
(rule (if order is scales and
|
||||
rounded.shell is yes)
|
||||
(then type.animal is turtle))
|
||||
(rule (if order is scales and
|
||||
rounded.shell is no)
|
||||
(then family is noshell))
|
||||
(question (variable rounded.shell)
|
||||
(query rounded.shell.query))
|
||||
(rule (if order is soft and
|
||||
jump is yes)
|
||||
(then type.animal is frog))
|
||||
(rule (if order is soft and
|
||||
jump is no)
|
||||
(then type.animal is salamander))
|
||||
(question (variable jump)
|
||||
(query jump.query))
|
||||
(rule (if order is shell and
|
||||
tail is yes)
|
||||
(then type.animal is lobster))
|
||||
(rule (if order is shell and
|
||||
tail is no)
|
||||
(then type.animal is crab))
|
||||
(question (variable tail)
|
||||
(query tail.query))
|
||||
(rule (if order is cells and
|
||||
stationary is yes)
|
||||
(then family is stationary))
|
||||
(rule (if order is cells and
|
||||
stationary is no)
|
||||
(then type.animal is jellyfish))
|
||||
(question (variable stationary)
|
||||
(query stationary.query))
|
||||
(rule (if order is stomach and
|
||||
multicelled is yes)
|
||||
(then family is multicelled))
|
||||
(rule (if order is stomach and
|
||||
multicelled is no)
|
||||
(then type.animal is protozoa))
|
||||
(question (variable multicelled)
|
||||
(query multicelled.query))
|
||||
(rule (if family is nowings and
|
||||
opposing.thumb is yes)
|
||||
(then genus is thumb))
|
||||
(rule (if family is nowings and
|
||||
opposing.thumb is no)
|
||||
(then genus is nothumb))
|
||||
(question (variable opposing.thumb)
|
||||
(query opposing.thumb.query))
|
||||
(rule (if family is hooves and
|
||||
two.toes is yes)
|
||||
(then genus is twotoes))
|
||||
(rule (if family is hooves and
|
||||
two.toes is no)
|
||||
(then genus is onetoe))
|
||||
(question (variable two.toes)
|
||||
(query two.toes.query))
|
||||
(rule (if family is feet and
|
||||
live.in.water is yes)
|
||||
(then genus is water))
|
||||
(rule (if family is feet and
|
||||
live.in.water is no)
|
||||
(then genus is dry))
|
||||
(question (variable live.in.water)
|
||||
(query live.in.water.query))
|
||||
(rule (if family is noshell and
|
||||
limbs is yes)
|
||||
(then type.animal is crocodile.alligator))
|
||||
(rule (if family is noshell and
|
||||
limbs is no)
|
||||
(then type.animal is snake))
|
||||
(question (variable limbs)
|
||||
(query limbs.query))
|
||||
(rule (if family is stationary and
|
||||
spikes is yes)
|
||||
(then type.animal is sea.anemone))
|
||||
(rule (if family is stationary and
|
||||
spikes is no)
|
||||
(then type.animal is coral.sponge))
|
||||
(question (variable spikes)
|
||||
(query spikes.query))
|
||||
(rule (if family is multicelled and
|
||||
spiral.shell is yes)
|
||||
(then type.animal is snail))
|
||||
(rule (if family is multicelled and
|
||||
spiral.shell is no)
|
||||
(then genus is noshell))
|
||||
(question (variable spiral.shell)
|
||||
(query spiral.shell.query))
|
||||
(rule (if genus is thumb and
|
||||
prehensile.tail is yes)
|
||||
(then type.animal is monkey))
|
||||
(rule (if genus is thumb and
|
||||
prehensile.tail is no)
|
||||
(then species is notail))
|
||||
(question (variable prehensile.tail)
|
||||
(query prehensile.tail.query))
|
||||
(rule (if genus is nothumb and
|
||||
over.400 is yes)
|
||||
(then species is 400))
|
||||
(rule (if genus is nothumb and
|
||||
over.400 is no)
|
||||
(then species is under400))
|
||||
(question (variable over.400)
|
||||
(query over.400.query))
|
||||
(rule (if genus is twotoes and
|
||||
horns is yes)
|
||||
(then species is horns))
|
||||
(rule (if genus is twotoes and
|
||||
horns is no)
|
||||
(then species is nohorns))
|
||||
(question (variable horns)
|
||||
(query horns.query))
|
||||
(rule (if genus is onetoe and
|
||||
plating is yes)
|
||||
(then type.animal is rhinoceros))
|
||||
(rule (if genus is onetoe and
|
||||
plating is no)
|
||||
(then type.animal is horse.zebra))
|
||||
(question (variable plating)
|
||||
(query plating.query))
|
||||
(rule (if genus is water and
|
||||
hunted is yes)
|
||||
(then type.animal is whale))
|
||||
(rule (if genus is water and
|
||||
hunted is no)
|
||||
(then type.animal is dolphin.porpoise))
|
||||
(question (variable hunted)
|
||||
(query hunted.query))
|
||||
(rule (if genus is dry and
|
||||
front.teeth is yes)
|
||||
(then species is teeth))
|
||||
(rule (if genus is dry and
|
||||
front.teeth is no)
|
||||
(then species is noteeth))
|
||||
(question (variable front.teeth)
|
||||
(query front.teeth.query))
|
||||
(rule (if genus is noshell and
|
||||
bivalve is yes)
|
||||
(then type.animal is clam.oyster))
|
||||
(rule (if genus is noshell and
|
||||
bivalve is no)
|
||||
(then type.animal is squid.octopus))
|
||||
(question (variable bivalve)
|
||||
(query bivalve.query))
|
||||
(rule (if species is notail and
|
||||
nearly.hairless is yes)
|
||||
(then type.animal is man))
|
||||
(rule (if species is notail and
|
||||
nearly.hairless is no)
|
||||
(then subspecies is hair))
|
||||
(question (variable nearly.hairless)
|
||||
(query nearly.hairless.query))
|
||||
(rule (if species is 400 and
|
||||
land.based is yes)
|
||||
(then type.animal is bear.tiger.lion))
|
||||
(rule (if species is 400 and
|
||||
land.based is no)
|
||||
(then type.animal is walrus))
|
||||
(question (variable land.based)
|
||||
(query land.based.query))
|
||||
(rule (if species is under400 and
|
||||
thintail is yes)
|
||||
(then type.animal is cat))
|
||||
(rule (if species is under400 and
|
||||
thintail is no)
|
||||
(then type.animal is coyote.wolf.fox.dog))
|
||||
(question (variable thintail)
|
||||
(query thintail.query))
|
||||
(rule (if species is nohorns and
|
||||
lives.in.desert is yes)
|
||||
(then type.animal is camel))
|
||||
(rule (if species is nohorns and
|
||||
lives.in.desert is no and
|
||||
semi.aquatic is no)
|
||||
(then type.animal is giraffe))
|
||||
(rule (if species is nohorns and
|
||||
lives.in.desert is no and
|
||||
semi.aquatic is yes)
|
||||
(then type.animal is hippopotamus))
|
||||
(question (variable lives.in.desert)
|
||||
(query lives.in.desert.query))
|
||||
(question (variable semi.aquatic)
|
||||
(query semi.aquatic.query))
|
||||
(rule (if species is teeth and
|
||||
large.ears is yes)
|
||||
(then type.animal is rabbit))
|
||||
(rule (if species is teeth and
|
||||
large.ears is no)
|
||||
(then type.animal is rat.mouse.squirrel.beaver.porcupine))
|
||||
(question (variable large.ears)
|
||||
(query large.ears.query))
|
||||
(rule (if species is noteeth and
|
||||
pouch is yes)
|
||||
(then type.animal is kangaroo.koala.bear))
|
||||
(rule (if species is noteeth and
|
||||
pouch is no)
|
||||
(then type.animal is mole.shrew.elephant))
|
||||
(question (variable pouch)
|
||||
(query pouch.query))
|
||||
(rule (if subspecies is hair and
|
||||
long.powerful.arms is yes)
|
||||
(then type.animal is orangutan.gorilla.chimpanzee))
|
||||
(rule (if subspecies is hair and
|
||||
long.powerful.arms is no)
|
||||
(then type.animal is baboon))
|
||||
(question (variable long.powerful.arms)
|
||||
(query long.powerful.arms.query))
|
||||
(rule (if species is horns and
|
||||
fleece is yes)
|
||||
(then type.animal is sheep.goat))
|
||||
(rule (if species is horns and
|
||||
fleece is no)
|
||||
(then subsubspecies is nofleece))
|
||||
(question (variable fleece)
|
||||
(query fleece.query))
|
||||
(rule (if subsubspecies is nofleece and
|
||||
domesticated is yes)
|
||||
(then type.animal is cow))
|
||||
(rule (if subsubspecies is nofleece and
|
||||
domesticated is no)
|
||||
(then type.animal is deer.moose.antelope))
|
||||
(question (variable domesticated)
|
||||
(query domesticated.query))
|
||||
(answer (prefix "I think your animal is a ") (variable type.animal) (postfix ".")))
|
||||
281
samples/CLIPS/sudoku.clp
Normal file
281
samples/CLIPS/sudoku.clp
Normal file
@@ -0,0 +1,281 @@
|
||||
;;; http://www.angusj.com/sudoku/hints
|
||||
;;; http://www.scanraid.com/BasicStrategies.htm
|
||||
;;; http://www.sudokuoftheday.com/pages/techniques-overview
|
||||
;;; http://www.sudokuonline.us/sudoku_solving_techniques
|
||||
;;; http://www.sadmansoftware.com/sudoku/techniques.htm
|
||||
;;; http://www.krazydad.com/blog/2005/09/29/an-index-of-sudoku-strategies/
|
||||
|
||||
;;; #######################
|
||||
;;; DEFTEMPLATES & DEFFACTS
|
||||
;;; #######################
|
||||
|
||||
(deftemplate possible
|
||||
(slot row)
|
||||
(slot column)
|
||||
(slot value)
|
||||
(slot group)
|
||||
(slot id))
|
||||
|
||||
(deftemplate impossible
|
||||
(slot id)
|
||||
(slot value)
|
||||
(slot priority)
|
||||
(slot reason))
|
||||
|
||||
(deftemplate technique-employed
|
||||
(slot reason)
|
||||
(slot priority))
|
||||
|
||||
(deftemplate technique
|
||||
(slot name)
|
||||
(slot priority))
|
||||
|
||||
(deffacts startup
|
||||
(phase grid-values))
|
||||
|
||||
(deftemplate size-value
|
||||
(slot size)
|
||||
(slot value))
|
||||
|
||||
(deffacts values
|
||||
(size-value (size 1) (value 1))
|
||||
(size-value (size 2) (value 2))
|
||||
(size-value (size 2) (value 3))
|
||||
(size-value (size 2) (value 4))
|
||||
(size-value (size 3) (value 5))
|
||||
(size-value (size 3) (value 6))
|
||||
(size-value (size 3) (value 7))
|
||||
(size-value (size 3) (value 8))
|
||||
(size-value (size 3) (value 9))
|
||||
(size-value (size 4) (value 10))
|
||||
(size-value (size 4) (value 11))
|
||||
(size-value (size 4) (value 12))
|
||||
(size-value (size 4) (value 13))
|
||||
(size-value (size 4) (value 14))
|
||||
(size-value (size 4) (value 15))
|
||||
(size-value (size 4) (value 16))
|
||||
(size-value (size 5) (value 17))
|
||||
(size-value (size 5) (value 18))
|
||||
(size-value (size 5) (value 19))
|
||||
(size-value (size 5) (value 20))
|
||||
(size-value (size 5) (value 21))
|
||||
(size-value (size 5) (value 22))
|
||||
(size-value (size 5) (value 23))
|
||||
(size-value (size 5) (value 24))
|
||||
(size-value (size 5) (value 25)))
|
||||
|
||||
;;; ###########
|
||||
;;; SETUP RULES
|
||||
;;; ###########
|
||||
|
||||
;;; ***********
|
||||
;;; stress-test
|
||||
;;; ***********
|
||||
|
||||
(defrule stress-test
|
||||
|
||||
(declare (salience 10))
|
||||
|
||||
(phase match)
|
||||
|
||||
(stress-test)
|
||||
|
||||
(priority ?last)
|
||||
|
||||
(not (priority ?p&:(> ?p ?last)))
|
||||
|
||||
(technique (priority ?next&:(> ?next ?last)))
|
||||
|
||||
(not (technique (priority ?p&:(> ?p ?last)&:(< ?p ?next))))
|
||||
|
||||
=>
|
||||
|
||||
(assert (priority ?next)))
|
||||
|
||||
;;; *****************
|
||||
;;; enable-techniques
|
||||
;;; *****************
|
||||
|
||||
(defrule enable-techniques
|
||||
|
||||
(declare (salience 10))
|
||||
|
||||
(phase match)
|
||||
|
||||
(size ?)
|
||||
|
||||
(not (possible (value any)))
|
||||
|
||||
=>
|
||||
|
||||
(assert (priority 1)))
|
||||
|
||||
;;; **********
|
||||
;;; expand-any
|
||||
;;; **********
|
||||
|
||||
(defrule expand-any
|
||||
|
||||
(declare (salience 10))
|
||||
|
||||
(phase expand-any)
|
||||
|
||||
?f <- (possible (row ?r) (column ?c) (value any) (group ?g) (id ?id))
|
||||
|
||||
(not (possible (value any) (id ?id2&:(< ?id2 ?id))))
|
||||
|
||||
(size ?s)
|
||||
|
||||
(size-value (size ?as&:(<= ?as ?s)) (value ?v))
|
||||
|
||||
(not (possible (row ?r) (column ?c) (value ?v)))
|
||||
|
||||
(not (and (size-value (value ?v2&:(< ?v2 ?v)))
|
||||
|
||||
(not (possible (row ?r) (column ?c) (value ?v2)))))
|
||||
|
||||
=>
|
||||
|
||||
(assert (possible (row ?r) (column ?c) (value ?v) (group ?g) (id ?id))))
|
||||
|
||||
;;; *****************
|
||||
;;; position-expanded
|
||||
;;; *****************
|
||||
|
||||
(defrule position-expanded
|
||||
|
||||
(declare (salience 10))
|
||||
|
||||
(phase expand-any)
|
||||
|
||||
?f <- (possible (row ?r) (column ?c) (value any) (group ?g) (id ?id))
|
||||
|
||||
(size ?s)
|
||||
|
||||
(not (and (size-value (size ?as&:(<= ?as ?s)) (value ?v))
|
||||
|
||||
(not (possible (row ?r) (column ?c) (value ?v)))))
|
||||
|
||||
=>
|
||||
|
||||
(retract ?f))
|
||||
|
||||
;;; ###########
|
||||
;;; PHASE RULES
|
||||
;;; ###########
|
||||
|
||||
;;; ***************
|
||||
;;; expand-any-done
|
||||
;;; ***************
|
||||
|
||||
(defrule expand-any-done
|
||||
|
||||
(declare (salience 10))
|
||||
|
||||
?f <- (phase expand-any)
|
||||
|
||||
(not (possible (value any)))
|
||||
|
||||
=>
|
||||
|
||||
(retract ?f)
|
||||
|
||||
(assert (phase initial-output))
|
||||
(assert (print-position 1 1)))
|
||||
|
||||
;;; ***********
|
||||
;;; begin-match
|
||||
;;; ***********
|
||||
|
||||
(defrule begin-match
|
||||
|
||||
(declare (salience -20))
|
||||
|
||||
?f <- (phase initial-output)
|
||||
|
||||
=>
|
||||
|
||||
(retract ?f)
|
||||
|
||||
(assert (phase match)))
|
||||
|
||||
;;; *****************
|
||||
;;; begin-elimination
|
||||
;;; *****************
|
||||
|
||||
(defrule begin-elimination
|
||||
|
||||
(declare (salience -20))
|
||||
|
||||
?f <- (phase match)
|
||||
|
||||
(not (not (impossible)))
|
||||
|
||||
=>
|
||||
|
||||
(retract ?f)
|
||||
|
||||
(assert (phase elimination)))
|
||||
|
||||
;;; *************
|
||||
;;; next-priority
|
||||
;;; *************
|
||||
|
||||
(defrule next-priority
|
||||
|
||||
(declare (salience -20))
|
||||
|
||||
(phase match)
|
||||
|
||||
(not (impossible))
|
||||
|
||||
(priority ?last)
|
||||
|
||||
(not (priority ?p&:(> ?p ?last)))
|
||||
|
||||
(technique (priority ?next&:(> ?next ?last)))
|
||||
|
||||
(not (technique (priority ?p&:(> ?p ?last)&:(< ?p ?next))))
|
||||
|
||||
=>
|
||||
|
||||
(assert (priority ?next)))
|
||||
|
||||
;;; ************
|
||||
;;; begin-output
|
||||
;;; ************
|
||||
|
||||
(defrule begin-output
|
||||
|
||||
(declare (salience -20))
|
||||
|
||||
?f <- (phase match)
|
||||
|
||||
(not (impossible))
|
||||
|
||||
(priority ?last)
|
||||
|
||||
(not (priority ?p&:(> ?p ?last)))
|
||||
|
||||
(not (technique (priority ?next&:(> ?next ?last))))
|
||||
|
||||
=>
|
||||
|
||||
(retract ?f)
|
||||
|
||||
(assert (phase final-output))
|
||||
(assert (print-position 1 1)))
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
15
samples/CMake/sample1.cmake
Normal file
15
samples/CMake/sample1.cmake
Normal file
@@ -0,0 +1,15 @@
|
||||
cmake_minimum_required(VERSION 2.6)
|
||||
|
||||
enable_testing()
|
||||
|
||||
set(CMAKE_BUILD_TYPE debug)
|
||||
|
||||
include_directories("/usr/local/include")
|
||||
|
||||
find_library(ssl_LIBRARY NAMES ssl PATHS "/usr/local/lib")
|
||||
|
||||
add_custom_command(OUTPUT "ver.c" "ver.h" COMMAND ./ver.sh)
|
||||
|
||||
add_executable(foo foo.c bar.c baz.c ver.c)
|
||||
|
||||
target_link_libraries(foo ${ssl_LIBRARY})
|
||||
25
samples/CMake/sample2.cmake
Normal file
25
samples/CMake/sample2.cmake
Normal file
@@ -0,0 +1,25 @@
|
||||
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
|
||||
|
||||
project(PCLVisualizer)
|
||||
target_link_libraries (PCLVisualizer ${PCL_LIBRARIES})
|
||||
|
||||
#it seems it's needed only on OS X 10.9
|
||||
find_package(GLEW REQUIRED)
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I/usr/include -v")
|
||||
|
||||
find_package(PCL 1.7 REQUIRED)
|
||||
|
||||
include_directories(${PCL_INCLUDE_DIRS})
|
||||
link_directories(${PCL_LIBRARY_DIRS})
|
||||
add_definitions(${PCL_DEFINITIONS})
|
||||
|
||||
set(PCL_BUILD_TYPE Release)
|
||||
|
||||
file(GLOB PCL_openni_viewer_SRC
|
||||
"src/*.h"
|
||||
"src/*.cpp"
|
||||
)
|
||||
add_executable(PCLVisualizer ${PCL_openni_viewer_SRC})
|
||||
|
||||
#add this line to solve probem in mac os x 10.9
|
||||
target_link_libraries(PCLVisualizer ${PCL_COMMON_LIBRARIES} ${PCL_IO_LIBRARIES} ${PCL_VISUALIZATION_LIBRARIES} ${PCL_FEATURES_LIBRARIES})
|
||||
33
samples/CMake/sample3.cmake
Normal file
33
samples/CMake/sample3.cmake
Normal file
@@ -0,0 +1,33 @@
|
||||
# Specifications for building user and development documentation.
|
||||
#
|
||||
# ====================================================================
|
||||
# Copyright (c) 2009 Ian Blumel. All rights reserved.
|
||||
#
|
||||
# This software is licensed as described in the file LICENSE, which
|
||||
# you should have received as part of this distribution.
|
||||
# ====================================================================
|
||||
|
||||
CMAKE_MINIMUM_REQUIRED(VERSION 2.6)
|
||||
|
||||
FIND_FILE( SPHINX sphinx-build.exe)
|
||||
|
||||
# If we are windows call to the make.bat file, otherwise rely on the Makefile
|
||||
# to handle the processing.
|
||||
IF(WIN32)
|
||||
SET(SPHINX_MAKE make.bat)
|
||||
ELSE(WIN32)
|
||||
SET(SPHINX_MAKE make)
|
||||
ENDIF(WIN32)
|
||||
|
||||
ADD_CUSTOM_TARGET(
|
||||
doc_usr
|
||||
COMMAND ${SPHINX_MAKE} html
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/usr
|
||||
)
|
||||
|
||||
ADD_CUSTOM_TARGET(
|
||||
doc_dev
|
||||
COMMAND ${SPHINX_MAKE} html
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/dev
|
||||
)
|
||||
|
||||
33
samples/CMake/sample4.cmake
Normal file
33
samples/CMake/sample4.cmake
Normal file
@@ -0,0 +1,33 @@
|
||||
cmake_minimum_required (VERSION 2.6)
|
||||
|
||||
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "bin")
|
||||
|
||||
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/vala)
|
||||
find_package(Vala REQUIRED)
|
||||
include(ValaPrecompile)
|
||||
include(ValaVersion)
|
||||
ensure_vala_version("0.11.0" MINIMUM)
|
||||
|
||||
project (template C)
|
||||
|
||||
find_package(PkgConfig)
|
||||
|
||||
pkg_check_modules(GOBJECT REQUIRED gobject-2.0)
|
||||
add_definitions(${GOBJECT_CFLAGS} ${GOBJECT_CFLAGS_OTHER})
|
||||
link_libraries(${GOBJECT_LIBRARIES})
|
||||
link_directories(${GOBJECT_LIBRARY_DIRS})
|
||||
|
||||
|
||||
vala_precompile(VALA_C
|
||||
src/template.vala
|
||||
PACKAGES
|
||||
OPTIONS
|
||||
--thread
|
||||
CUSTOM_VAPIS
|
||||
GENERATE_VAPI
|
||||
GENERATE_HEADER
|
||||
DIRECTORY
|
||||
gen
|
||||
)
|
||||
|
||||
add_executable("template" ${VALA_C})
|
||||
89
samples/CMake/sample5.cmake
Normal file
89
samples/CMake/sample5.cmake
Normal file
@@ -0,0 +1,89 @@
|
||||
# - Check if the STDCALL function exists.
|
||||
# This works for non-cdecl functions (kernel32 functions, for example)
|
||||
# CHECK_STDCALL_FUNCTION_EXISTS(FUNCTION FUNCTION_DUMMY_ARGS VARIABLE)
|
||||
# - macro which checks if the stdcall function exists
|
||||
# FUNCTION_DECLARATION - the definition of the function ( e.g.: Sleep(500) )
|
||||
# VARIABLE - variable to store the result
|
||||
#
|
||||
# The following variables may be set before calling this macro to
|
||||
# modify the way the check is run:
|
||||
#
|
||||
# CMAKE_REQUIRED_FLAGS = string of compile command line flags
|
||||
# CMAKE_REQUIRED_DEFINITIONS = list of macros to define (-DFOO=bar)
|
||||
# CMAKE_REQUIRED_INCLUDES = list of include directories
|
||||
# CMAKE_REQUIRED_LIBRARIES = list of libraries to link
|
||||
# CMAKE_EXTRA_INCLUDE_FILES = list of extra includes to check in
|
||||
|
||||
MACRO(CHECK_STDCALL_FUNCTION_EXISTS FUNCTION_DECLARATION VARIABLE)
|
||||
IF("${VARIABLE}" MATCHES "^${VARIABLE}$")
|
||||
#get includes
|
||||
SET(CHECK_STDCALL_FUNCTION_PREMAIN)
|
||||
FOREACH(def ${CMAKE_EXTRA_INCLUDE_FILES})
|
||||
SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"${def}\"\n")
|
||||
ENDFOREACH(def)
|
||||
|
||||
#add some default includes
|
||||
IF ( HAVE_WINDOWS_H )
|
||||
SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"windows.h\"\n")
|
||||
ENDIF ( HAVE_WINDOWS_H )
|
||||
IF ( HAVE_UNISTD_H )
|
||||
SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"unistd.h\"\n")
|
||||
ENDIF ( HAVE_UNISTD_H )
|
||||
IF ( HAVE_DIRECT_H )
|
||||
SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"direct.h\"\n")
|
||||
ENDIF ( HAVE_DIRECT_H )
|
||||
IF ( HAVE_IO_H )
|
||||
SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"io.h\"\n")
|
||||
ENDIF ( HAVE_IO_H )
|
||||
IF ( HAVE_SYS_TIMEB_H )
|
||||
SET(CHECK_STDCALL_FUNCTION_PREMAIN "${CHECK_STDCALL_FUNCTION_PREMAIN}#include \"sys/timeb.h\"\n")
|
||||
ENDIF ( HAVE_SYS_TIMEB_H )
|
||||
|
||||
STRING(REGEX REPLACE "(\\(.*\\))" "" CHECK_STDCALL_FUNCTION_EXISTS_FUNCTION ${FUNCTION_DECLARATION} )
|
||||
|
||||
SET(MACRO_CHECK_STDCALL_FUNCTION_DEFINITIONS "${CMAKE_REQUIRED_FLAGS}")
|
||||
MESSAGE(STATUS "Looking for ${CHECK_STDCALL_FUNCTION_EXISTS_FUNCTION}")
|
||||
|
||||
IF(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_STDCALL_FUNCTION_EXISTS_ADD_LIBRARIES
|
||||
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
|
||||
ELSE(CMAKE_REQUIRED_LIBRARIES)
|
||||
SET(CHECK_STDCALL_FUNCTION_EXISTS_ADD_LIBRARIES)
|
||||
ENDIF(CMAKE_REQUIRED_LIBRARIES)
|
||||
|
||||
IF(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_STDCALL_FUNCTION_EXISTS_ADD_INCLUDES
|
||||
"-DINCLUDE_DIRECTORIES:STRING=${CMAKE_REQUIRED_INCLUDES}")
|
||||
ELSE(CMAKE_REQUIRED_INCLUDES)
|
||||
SET(CHECK_STDCALL_FUNCTION_EXISTS_ADD_INCLUDES)
|
||||
ENDIF(CMAKE_REQUIRED_INCLUDES)
|
||||
|
||||
SET(CHECK_STDCALL_FUNCTION_DECLARATION ${FUNCTION_DECLARATION})
|
||||
CONFIGURE_FILE("${clucene-shared_SOURCE_DIR}/cmake/CheckStdCallFunctionExists.cpp.in"
|
||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckStdCallFunctionExists.cpp" IMMEDIATE @ONLY)
|
||||
FILE(READ "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckStdCallFunctionExists.cpp"
|
||||
CHECK_STDCALL_FUNCTION_CONTENT)
|
||||
|
||||
TRY_COMPILE(${VARIABLE}
|
||||
${CMAKE_BINARY_DIR}
|
||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/CheckStdCallFunctionExists.cpp"
|
||||
COMPILE_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS}
|
||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_STDCALL_FUNCTION_DEFINITIONS}
|
||||
"${CHECK_STDCALL_FUNCTION_EXISTS_ADD_LIBRARIES}"
|
||||
"${CHECK_STDCALL_FUNCTION_EXISTS_ADD_INCLUDES}"
|
||||
OUTPUT_VARIABLE OUTPUT)
|
||||
IF(${VARIABLE})
|
||||
SET(${VARIABLE} 1 CACHE INTERNAL "Have function ${FUNCTION_DECLARATION}")
|
||||
MESSAGE(STATUS "Looking for ${FUNCTION_DECLARATION} - found")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log
|
||||
"Determining if the stdcall function ${FUNCTION_DECLARATION} exists passed with the following output:\n"
|
||||
"${OUTPUT}\nCheckStdCallFunctionExists.cpp:\n${CHECK_STDCALL_FUNCTION_CONTENT}\n\n")
|
||||
ELSE(${VARIABLE})
|
||||
MESSAGE(STATUS "Looking for ${FUNCTION_DECLARATION} - not found")
|
||||
SET(${VARIABLE} "" CACHE INTERNAL "Have function ${FUNCTION_DECLARATION}")
|
||||
FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log
|
||||
"Determining if the stdcall function ${FUNCTION_DECLARATION} exists failed with the following output:\n"
|
||||
"${OUTPUT}\nCheckStdCallFunctionExists.cpp:\n${CHECK_STDCALL_FUNCTION_CONTENT}\n\n")
|
||||
ENDIF(${VARIABLE})
|
||||
ENDIF("${VARIABLE}" MATCHES "^${VARIABLE}$")
|
||||
ENDMACRO(CHECK_STDCALL_FUNCTION_EXISTS)
|
||||
22
samples/CMake/uninstall.cmake.in
Normal file
22
samples/CMake/uninstall.cmake.in
Normal file
@@ -0,0 +1,22 @@
|
||||
IF (NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt")
|
||||
MESSAGE (FATAL_ERROR "Cannot find install manifest: \"@PROJECT_BINARY_DIR@/install_manifest.txt\"")
|
||||
ENDIF (NOT EXISTS "@PROJECT_BINARY_DIR@/install_manifest.txt")
|
||||
|
||||
FILE (READ "@PROJECT_BINARY_DIR@/install_manifest.txt" files)
|
||||
STRING (REGEX REPLACE "\n" ";" files "${files}")
|
||||
FOREACH (file ${files})
|
||||
MESSAGE (STATUS "Uninstalling \"$ENV{DESTDIR}${file}\"")
|
||||
IF (EXISTS "$ENV{DESTDIR}${file}")
|
||||
EXEC_PROGRAM (
|
||||
"@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\""
|
||||
OUTPUT_VARIABLE rm_out
|
||||
RETURN_VALUE rm_retval
|
||||
)
|
||||
IF (NOT "${rm_retval}" STREQUAL 0)
|
||||
MESSAGE (FATAL_ERROR "Problem when removing \"$ENV{DESTDIR}${file}\"")
|
||||
ENDIF (NOT "${rm_retval}" STREQUAL 0)
|
||||
ELSE (EXISTS "$ENV{DESTDIR}${file}")
|
||||
MESSAGE (STATUS "File \"$ENV{DESTDIR}${file}\" does not exist.")
|
||||
ENDIF (EXISTS "$ENV{DESTDIR}${file}")
|
||||
ENDFOREACH (file)
|
||||
|
||||
1879
samples/CartoCSS/amenity-points.mss
Normal file
1879
samples/CartoCSS/amenity-points.mss
Normal file
File diff suppressed because it is too large
Load Diff
@@ -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)))
|
||||
164
samples/Common Lisp/array.l
Normal file
164
samples/Common Lisp/array.l
Normal file
@@ -0,0 +1,164 @@
|
||||
;;; -*- Mode: Lisp; Package: LISP -*-
|
||||
;;;
|
||||
;;; This file is part of xyzzy.
|
||||
;;;
|
||||
|
||||
(provide "array")
|
||||
|
||||
(in-package "lisp")
|
||||
|
||||
(export '(make-vector make-array vector array-dimensions array-in-bounds-p
|
||||
upgraded-array-element-type adjust-array))
|
||||
|
||||
(defun upgraded-array-element-type (type)
|
||||
(cond ((or (eq type 't)
|
||||
(null type))
|
||||
't)
|
||||
((member type '(character base-character standard-char
|
||||
extended-character) :test #'eq)
|
||||
'character)
|
||||
(t
|
||||
(setq type (car (si:canonicalize-type type)))
|
||||
(cond ((or (eq type 't)
|
||||
(null type))
|
||||
't)
|
||||
((member type '(character base-character standard-char
|
||||
extended-character) :test #'eq)
|
||||
'character)
|
||||
(t 't)))))
|
||||
|
||||
(defun check-array-initialize-option (ies-p ics-p displaced-to)
|
||||
(let ((x 0))
|
||||
(and ies-p (incf x))
|
||||
(and ics-p (incf x))
|
||||
(and displaced-to (incf x))
|
||||
(when (> x 1)
|
||||
(error ":initial-element, :initial-contents, :displaced-to"))))
|
||||
|
||||
(defun make-vector (length &key
|
||||
(element-type t)
|
||||
(initial-element nil ies-p)
|
||||
(initial-contents nil ics-p)
|
||||
fill-pointer
|
||||
adjustable
|
||||
displaced-to
|
||||
(displaced-index-offset 0))
|
||||
(setq element-type (upgraded-array-element-type element-type))
|
||||
(check-array-initialize-option ies-p ics-p displaced-to)
|
||||
(let ((vector (si:*make-vector length element-type initial-element adjustable
|
||||
fill-pointer displaced-to displaced-index-offset)))
|
||||
(when ics-p
|
||||
(si:*copy-into-seq vector initial-contents))
|
||||
vector))
|
||||
|
||||
(defun make-array (dimensions &rest rest
|
||||
&key
|
||||
(element-type t)
|
||||
(initial-element nil ies-p)
|
||||
(initial-contents nil ics-p)
|
||||
fill-pointer
|
||||
adjustable
|
||||
displaced-to
|
||||
(displaced-index-offset 0))
|
||||
(cond ((integerp dimensions)
|
||||
(apply #'make-vector dimensions rest))
|
||||
((= (length dimensions) 1)
|
||||
(apply #'make-vector (car dimensions) rest))
|
||||
(t
|
||||
(setq element-type (upgraded-array-element-type element-type))
|
||||
(check-array-initialize-option ies-p ics-p displaced-to)
|
||||
(when fill-pointer
|
||||
(error ":fill-pointer"))
|
||||
(let ((array (si:*make-array dimensions element-type
|
||||
initial-element adjustable
|
||||
displaced-to displaced-index-offset)))
|
||||
(when ics-p
|
||||
(let ((dims (make-list (array-rank array)
|
||||
:initial-element 0))
|
||||
(stack (list initial-contents))
|
||||
(rank (1- (array-rank array))))
|
||||
(dolist (x dims)
|
||||
(push (elt (car stack) 0) stack))
|
||||
(dotimes (i (array-total-size array))
|
||||
(setf (row-major-aref array i) (car stack))
|
||||
(do ((x dims (cdr x))
|
||||
(j rank (1- j)))
|
||||
((null x))
|
||||
(pop stack)
|
||||
(incf (car x))
|
||||
(when (< (car x) (array-dimension array j))
|
||||
(do ((r (- rank j) (1- r)))
|
||||
((< r 0))
|
||||
(push (elt (car stack) (nth r dims)) stack))
|
||||
(return))
|
||||
(setf (car x) 0)))))
|
||||
array))))
|
||||
|
||||
(defun vector (&rest list)
|
||||
(make-vector (length list) :element-type t :initial-contents list))
|
||||
|
||||
(defun array-dimensions (array)
|
||||
(do ((i (1- (array-rank array)) (1- i))
|
||||
(dims '()))
|
||||
((minusp i) dims)
|
||||
(push (array-dimension array i) dims)))
|
||||
|
||||
(defun array-in-bounds-p (array &rest subscripts)
|
||||
(let ((r (array-rank array)))
|
||||
(when (/= r (length subscripts))
|
||||
(error "subscripts: ~S" subscripts))
|
||||
(do ((i 0 (1+ i))
|
||||
(s subscripts (cdr s)))
|
||||
((= i r) t)
|
||||
(unless (<= 0 (car s) (1- (array-dimension array i)))
|
||||
(return nil)))))
|
||||
|
||||
(defun adjust-array (old-array
|
||||
dimensions
|
||||
&rest rest
|
||||
&key
|
||||
(element-type nil ets-p)
|
||||
initial-element
|
||||
(initial-contents nil ics-p)
|
||||
(fill-pointer nil fps-p)
|
||||
displaced-to
|
||||
displaced-index-offset)
|
||||
(when (/= (length dimensions) (array-rank old-array))
|
||||
(error "?"))
|
||||
(unless ets-p
|
||||
(push (array-element-type old-array) rest)
|
||||
(push :element-type rest))
|
||||
(when (adjustable-array-p old-array)
|
||||
(push t rest)
|
||||
(push :adjustable rest))
|
||||
(cond (fps-p
|
||||
(unless (array-has-fill-pointer-p old-array)
|
||||
(error "?")))
|
||||
(t
|
||||
(when (array-has-fill-pointer-p old-array)
|
||||
(push (fill-pointer old-array) rest)
|
||||
(push :fill-pointer rest))))
|
||||
(when (eq old-array displaced-to)
|
||||
(error "?"))
|
||||
(let ((new-array (apply #'make-array dimensions rest)))
|
||||
(or ics-p displaced-to
|
||||
(copy-array-partially old-array new-array))
|
||||
(cond ((adjustable-array-p old-array)
|
||||
(si:*replace-array old-array new-array)
|
||||
old-array)
|
||||
(t
|
||||
new-array))))
|
||||
|
||||
(defun copy-array-partially (src dst)
|
||||
(let* ((dims (mapcar #'min (array-dimensions src) (array-dimensions dst)))
|
||||
(r (array-rank src))
|
||||
(s (make-list r :initial-element 0)))
|
||||
(setq r (1- r))
|
||||
(dotimes (x (apply #'* dims))
|
||||
(setf (apply #'aref dst s) (apply #'aref src s))
|
||||
(do ((i r (1- i)))
|
||||
((minusp i))
|
||||
(incf (nth i s))
|
||||
(when (< (nth i s) (nth i dims))
|
||||
(return))
|
||||
(setf (nth i s) 0)))))
|
||||
1201
samples/Common Lisp/common.l
Normal file
1201
samples/Common Lisp/common.l
Normal file
File diff suppressed because it is too large
Load Diff
2
samples/Common Lisp/hello.lisp
Normal file
2
samples/Common Lisp/hello.lisp
Normal file
@@ -0,0 +1,2 @@
|
||||
(DEFUN HELLO ()
|
||||
(PRINT 'HELLO))
|
||||
21
samples/Common Lisp/sample.lsp
Normal file
21
samples/Common Lisp/sample.lsp
Normal file
@@ -0,0 +1,21 @@
|
||||
;;;; -*- lisp -*-
|
||||
|
||||
(in-package :foo)
|
||||
|
||||
;;; Header comment.
|
||||
(defvar *foo*)
|
||||
|
||||
(eval-when (:execute :compile-toplevel :load-toplevel)
|
||||
(defun add (x &optional y &key z)
|
||||
(declare (ignore z))
|
||||
;; Inline comment.
|
||||
(+ x (or y 1))))
|
||||
|
||||
#|
|
||||
Multi-line comment.
|
||||
|#
|
||||
|
||||
(defmacro foo (x &body b)
|
||||
(if x
|
||||
`(1+ ,x) ;After-line comment.
|
||||
42))
|
||||
318
samples/D/mpq.d
Normal file
318
samples/D/mpq.d
Normal file
@@ -0,0 +1,318 @@
|
||||
/*
|
||||
* mpq.d -- D programming language module for libmpq
|
||||
*
|
||||
* Copyright (c) 2008 Georg Lukas <georg@op-co.de>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* This module is written to support Phobos. Patches to allow binding to
|
||||
* Tango are welcome.
|
||||
*/
|
||||
|
||||
module mpq;
|
||||
|
||||
/* the following pragma does not work on DMD/Linux, generates a warning on
|
||||
* GDC/Linux and has not been tested on Windows. Commented out for now. */
|
||||
// pragma(lib, "libmpq");
|
||||
|
||||
import std.string; // for format() and toStringz()
|
||||
import std.traits; // for ParameterTypeTuple!()
|
||||
|
||||
/* XXX: this assumes that libmpq is compiled with Large File Support on */
|
||||
alias long off_t;
|
||||
|
||||
/* libmpq error return values */
|
||||
const LIBMPQ_ERROR_OPEN = -1; /* open error on file. */
|
||||
const LIBMPQ_ERROR_CLOSE = -2; /* close error on file. */
|
||||
const LIBMPQ_ERROR_SEEK = -3; /* lseek error on file. */
|
||||
const LIBMPQ_ERROR_READ = -4; /* read error on file. */
|
||||
const LIBMPQ_ERROR_WRITE = -5; /* write error on file. */
|
||||
const LIBMPQ_ERROR_MALLOC = -6; /* memory allocation error. */
|
||||
const LIBMPQ_ERROR_FORMAT = -7; /* format errror. */
|
||||
const LIBMPQ_ERROR_NOT_INITIALIZED = -8; /* init() wasn't called. */
|
||||
const LIBMPQ_ERROR_SIZE = -9; /* buffer size is to small. */
|
||||
const LIBMPQ_ERROR_EXIST = -10; /* file or block does not exist in archive. */
|
||||
const LIBMPQ_ERROR_DECRYPT = -11; /* we don't know the decryption seed. */
|
||||
const LIBMPQ_ERROR_UNPACK = -12; /* error on unpacking file. */
|
||||
|
||||
/** libmpq internal meta-data for an archive */
|
||||
extern struct mpq_archive_s;
|
||||
|
||||
extern(C) {
|
||||
|
||||
/* libmpq__generic information about library. */
|
||||
char *libmpq__version();
|
||||
|
||||
/* libmpq__generic mpq archive information. */
|
||||
int libmpq__archive_open(mpq_archive_s **mpq_archive, char *mpq_filename, off_t archive_offset);
|
||||
int libmpq__archive_close(mpq_archive_s *mpq_archive);
|
||||
int libmpq__archive_packed_size(mpq_archive_s *mpq_archive, off_t *packed_size);
|
||||
int libmpq__archive_unpacked_size(mpq_archive_s *mpq_archive, off_t *unpacked_size);
|
||||
int libmpq__archive_offset(mpq_archive_s *mpq_archive, off_t *offset);
|
||||
int libmpq__archive_version(mpq_archive_s *mpq_archive, uint *version_);
|
||||
int libmpq__archive_files(mpq_archive_s *mpq_archive, uint *files);
|
||||
|
||||
/* libmpq__generic file processing functions. */
|
||||
int libmpq__file_packed_size(mpq_archive_s *mpq_archive, uint file_number, off_t *packed_size);
|
||||
int libmpq__file_unpacked_size(mpq_archive_s *mpq_archive, uint file_number, off_t *unpacked_size);
|
||||
int libmpq__file_offset(mpq_archive_s *mpq_archive, uint file_number, off_t *offset);
|
||||
int libmpq__file_blocks(mpq_archive_s *mpq_archive, uint file_number, uint *blocks);
|
||||
int libmpq__file_encrypted(mpq_archive_s *mpq_archive, uint file_number, uint *encrypted);
|
||||
int libmpq__file_compressed(mpq_archive_s *mpq_archive, uint file_number, uint *compressed);
|
||||
int libmpq__file_imploded(mpq_archive_s *mpq_archive, uint file_number, uint *imploded);
|
||||
int libmpq__file_number(mpq_archive_s *mpq_archive, char *filename, uint *number);
|
||||
int libmpq__file_read(mpq_archive_s *mpq_archive, uint file_number, ubyte *out_buf, off_t out_size, off_t *transferred);
|
||||
|
||||
/* libmpq__generic block processing functions. */
|
||||
int libmpq__block_open_offset(mpq_archive_s *mpq_archive, uint file_number);
|
||||
int libmpq__block_close_offset(mpq_archive_s *mpq_archive, uint file_number);
|
||||
int libmpq__block_unpacked_size(mpq_archive_s *mpq_archive, uint file_number, uint block_number, off_t *unpacked_size);
|
||||
int libmpq__block_read(mpq_archive_s *mpq_archive, uint file_number, uint block_number, ubyte *out_buf, off_t out_size, off_t *transferred);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/** exception class for failed libmpq calls */
|
||||
class MPQException : Exception {
|
||||
const string[] Errors = [
|
||||
"unknown error",
|
||||
"open error on file",
|
||||
"close error on file",
|
||||
"lseek error on file",
|
||||
"read error on file",
|
||||
"write error on file",
|
||||
"memory allocation error",
|
||||
"format errror",
|
||||
"init() wasn't called",
|
||||
"buffer size is to small",
|
||||
"file or block does not exist in archive",
|
||||
"we don't know the decryption seed",
|
||||
"error on unpacking file"];
|
||||
|
||||
public int errno;
|
||||
this(char[] fnname = "unknown_function", int errno = 0) {
|
||||
|
||||
this.errno = errno;
|
||||
if (-errno >= Errors.length)
|
||||
errno = 0;
|
||||
super(std.string.format("Error in %s(): %s (%d)",
|
||||
fnname, Errors[-errno], errno));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/** template to wrap function calls and throw exceptions in case of error
|
||||
*
|
||||
* thanks for the idea to while(nan) blog,
|
||||
* http://while-nan.blogspot.com/2007/06/wrapping-functions-for-fun-and-profit.html
|
||||
*
|
||||
* use: MPQ_CHECKERR(libmpq__archive_open)(&m, "foo.mpq", -1);
|
||||
* returns the retval of archive_open on success;
|
||||
* throws an MPQException on failure.
|
||||
*
|
||||
* @param Fn libmpq__function reference
|
||||
* @param args libmpq__function parameters
|
||||
* @return return value of libmpq__function on success
|
||||
* @throw MPQException on error
|
||||
*/
|
||||
int MPQ_CHECKERR(alias Fn)(ParameterTypeTuple!(Fn) args)
|
||||
{
|
||||
int result = Fn(args);
|
||||
if (result < 0) {
|
||||
/* XXX: relying on non-specified stringof() behaviour */
|
||||
throw new MPQException((&Fn).stringof[2..$], result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/** mixin alias to wrap library functions into MPQ_CHECKERR.
|
||||
*
|
||||
* alias mpq.func_name(...) to MPQ_CHECKERR(libmpq__func_name)(...)
|
||||
* @param func_name name of the function to be wrapped
|
||||
*/
|
||||
template MPQ_FUNC(char[] func_name) {
|
||||
const char[] MPQ_FUNC = "alias MPQ_CHECKERR!(libmpq__" ~ func_name ~ ") " ~ func_name ~ ";";
|
||||
}
|
||||
|
||||
alias libmpq__version libversion; /* must be direct alias because it returns char*, not error int */
|
||||
mixin(MPQ_FUNC!("archive_open"));
|
||||
mixin(MPQ_FUNC!("archive_close"));
|
||||
mixin(MPQ_FUNC!("archive_packed_size"));
|
||||
mixin(MPQ_FUNC!("archive_unpacked_size"));
|
||||
mixin(MPQ_FUNC!("archive_offset"));
|
||||
mixin(MPQ_FUNC!("archive_version"));
|
||||
mixin(MPQ_FUNC!("archive_files"));
|
||||
mixin(MPQ_FUNC!("file_packed_size"));
|
||||
mixin(MPQ_FUNC!("file_unpacked_size"));
|
||||
mixin(MPQ_FUNC!("file_offset"));
|
||||
mixin(MPQ_FUNC!("file_blocks"));
|
||||
mixin(MPQ_FUNC!("file_encrypted"));
|
||||
mixin(MPQ_FUNC!("file_compressed"));
|
||||
mixin(MPQ_FUNC!("file_imploded"));
|
||||
mixin(MPQ_FUNC!("file_number"));
|
||||
mixin(MPQ_FUNC!("file_read"));
|
||||
mixin(MPQ_FUNC!("block_open_offset"));
|
||||
mixin(MPQ_FUNC!("block_close_offset"));
|
||||
mixin(MPQ_FUNC!("block_unpacked_size"));
|
||||
mixin(MPQ_FUNC!("block_read"));
|
||||
|
||||
/** getter function named name for returning archive_* single values:
|
||||
*
|
||||
* <type> Archive.<name>() { return libmpq__archive_<name>() }
|
||||
*
|
||||
* @param type return type for the original function reference
|
||||
* @param name name of the original function
|
||||
* @param name2 name for the prototype (defaults to name, used for "version")
|
||||
* @return getter function mixin
|
||||
*/
|
||||
template MPQ_A_GET(char[] type, char[] name, char[] name2 = name) {
|
||||
const char[] MPQ_A_GET = type ~ " " ~ name2 ~ "() { " ~
|
||||
type ~ " ret; " ~
|
||||
"archive_" ~ name ~ "(m, &ret); return ret;" ~
|
||||
"}";
|
||||
}
|
||||
|
||||
/** wrapper class for an MPQ Archive
|
||||
*
|
||||
* syntax: auto a = new mpq.Archive("somefile.mpq");
|
||||
*/
|
||||
class Archive {
|
||||
mpq_archive_s *m;
|
||||
File listfile;
|
||||
char[][] listfiledata;
|
||||
|
||||
this(char[] archivename, off_t offset = -1) {
|
||||
archive_open(&m, toStringz(archivename), offset);
|
||||
}
|
||||
|
||||
mixin(MPQ_A_GET!("off_t", "packed_size"));
|
||||
mixin(MPQ_A_GET!("off_t", "unpacked_size"));
|
||||
mixin(MPQ_A_GET!("off_t", "offset"));
|
||||
mixin(MPQ_A_GET!("uint", "version", "version_"));
|
||||
mixin(MPQ_A_GET!("uint", "files"));
|
||||
|
||||
~this() {
|
||||
archive_close(m);
|
||||
}
|
||||
|
||||
mpq_archive_s* archive() {
|
||||
return m;
|
||||
}
|
||||
|
||||
File opIndex(char[] fname) {
|
||||
return new File(this, fname);
|
||||
}
|
||||
File opIndex(int fno) {
|
||||
return new File(this, fno);
|
||||
}
|
||||
|
||||
char[][] filelist() {
|
||||
try {
|
||||
if (!listfile) {
|
||||
listfile = this["(listfile)"];
|
||||
listfiledata = (cast(char[])listfile.read()).splitlines();
|
||||
}
|
||||
return listfiledata;
|
||||
} catch (MPQException e) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
/+uint filenumber(char[] filename) {
|
||||
try {
|
||||
if (!listfile) {
|
||||
listfile = this["(listfile)"];
|
||||
listfiledata = (cast(char[])listfile.read()).splitlines();
|
||||
}
|
||||
return listfiledata;
|
||||
} catch (MPQException e) {
|
||||
return [];
|
||||
}
|
||||
}+/
|
||||
|
||||
}
|
||||
|
||||
|
||||
/** getter function named name for returning file_* single values:
|
||||
*
|
||||
* <type> File.<name>() { return libmpq__file_<name>() }
|
||||
*
|
||||
* @param type return type for the original function reference
|
||||
* @param name name of the original function
|
||||
* @param name2 name for the prototype (defaults to name, used for "version")
|
||||
* @return getter function mixin
|
||||
*/
|
||||
template MPQ_F_GET(char[] type, char[] name, char[] name2 = name) {
|
||||
const char[] MPQ_F_GET = type ~ " " ~ name2 ~ "() { " ~
|
||||
type ~ " ret; " ~
|
||||
"file_" ~ name ~ "(am, fileno, &ret); " ~
|
||||
"return ret;" ~
|
||||
"}";
|
||||
}
|
||||
|
||||
/** wrapper class for a single file in an MPQ Archive
|
||||
*
|
||||
* syntax:
|
||||
* auto a = new mpq.Archive("somefile.mpq");
|
||||
* auto f = a["(listfile)"];
|
||||
* auto f2 = a[0];
|
||||
* auto f3 = new File(a, "(listfile)");
|
||||
*/
|
||||
class File {
|
||||
Archive a;
|
||||
mpq_archive_s* am;
|
||||
char[] filename;
|
||||
uint fileno;
|
||||
|
||||
this(Archive a, int fileno) {
|
||||
this.a = a;
|
||||
this.am = a.archive();
|
||||
if (fileno >= a.files) {
|
||||
throw new MPQException(format("File(%d)", fileno),
|
||||
LIBMPQ_ERROR_EXIST);
|
||||
}
|
||||
this.filename = format("file%04d.xxx", fileno);
|
||||
this.fileno = fileno;
|
||||
}
|
||||
|
||||
this(Archive a, char[] filename) {
|
||||
this.a = a;
|
||||
this.am = a.archive();
|
||||
this.filename = filename;
|
||||
/* this line will throw an exception when the file is not there */
|
||||
mpq.file_number(am, toStringz(filename), &this.fileno);
|
||||
}
|
||||
|
||||
mixin(MPQ_F_GET!("off_t", "packed_size"));
|
||||
mixin(MPQ_F_GET!("off_t", "unpacked_size"));
|
||||
mixin(MPQ_F_GET!("off_t", "offset"));
|
||||
mixin(MPQ_F_GET!("uint", "blocks"));
|
||||
mixin(MPQ_F_GET!("uint", "encrypted"));
|
||||
mixin(MPQ_F_GET!("uint", "compressed"));
|
||||
mixin(MPQ_F_GET!("uint", "imploded"));
|
||||
|
||||
uint no() { return fileno; }
|
||||
char[] name() { return filename; }
|
||||
|
||||
ubyte[] read() {
|
||||
ubyte[] content;
|
||||
content.length = this.unpacked_size();
|
||||
off_t trans;
|
||||
mpq.file_read(am, fileno, content.ptr, content.length, &trans);
|
||||
content.length = trans;
|
||||
return content;
|
||||
}
|
||||
}
|
||||
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"
|
||||
23
samples/DTrace/counts.d
Normal file
23
samples/DTrace/counts.d
Normal file
@@ -0,0 +1,23 @@
|
||||
/*
|
||||
* This software is in the public domain.
|
||||
*
|
||||
* $Id: counts.d 10510 2005-08-15 01:46:19Z kateturner $
|
||||
*/
|
||||
|
||||
#pragma D option quiet
|
||||
|
||||
self int tottime;
|
||||
BEGIN {
|
||||
tottime = timestamp;
|
||||
}
|
||||
|
||||
php$target:::function-entry
|
||||
@counts[copyinstr(arg0)] = count();
|
||||
}
|
||||
|
||||
END {
|
||||
printf("Total time: %dus\n", (timestamp - tottime) / 1000);
|
||||
printf("# calls by function:\n");
|
||||
printa("%-40s %@d\n", @counts);
|
||||
}
|
||||
|
||||
73
samples/DTrace/javascript-trace.d
Normal file
73
samples/DTrace/javascript-trace.d
Normal file
@@ -0,0 +1,73 @@
|
||||
/* -*- 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
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (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.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* Copyright (C) 2007 Sun Microsystems, Inc. All Rights Reserved.
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/*
|
||||
* javascript provider probes
|
||||
*
|
||||
* function-entry (filename, classname, funcname)
|
||||
* function-info (filename, classname, funcname, lineno,
|
||||
* runfilename, runlineno)
|
||||
* function-args (filename, classname, funcname, argc, argv, argv0,
|
||||
* argv1, argv2, argv3, argv4)
|
||||
* function-rval (filename, classname, funcname, lineno, rval, rval0)
|
||||
* function-return (filename, classname, funcname)
|
||||
* object-create-start (filename, classname)
|
||||
* object-create (filename, classname, *object, rlineno)
|
||||
* object-create-done (filename, classname)
|
||||
* object-finalize (NULL, classname, *object)
|
||||
* execute-start (filename, lineno)
|
||||
* execute-done (filename, lineno)
|
||||
*/
|
||||
|
||||
provider javascript {
|
||||
probe function__entry(char *, char *, char *);
|
||||
probe function__info(char *, char *, char *, int, char *, int);
|
||||
probe function__args(char *, char *, char *, int, void *, void *, void *,
|
||||
void *, void *, void *);
|
||||
probe function__rval(char *, char *, char *, int, void *, void *);
|
||||
probe function__return(char *, char *, char *);
|
||||
probe object__create__start(char *, char *);
|
||||
probe object__create__done(char *, char *);
|
||||
/* XXX must use unsigned longs here instead of uintptr_t for OS X
|
||||
(Apple radar: 5194316 & 5565198) */
|
||||
probe object__create(char *, char *, unsigned long, int);
|
||||
probe object__finalize(char *, char *, unsigned long);
|
||||
probe execute__start(char *, int);
|
||||
probe execute__done(char *, int);
|
||||
};
|
||||
|
||||
/*
|
||||
#pragma D attributes Unstable/Unstable/Common provider mozilla provider
|
||||
#pragma D attributes Private/Private/Unknown provider mozilla module
|
||||
#pragma D attributes Private/Private/Unknown provider mozilla function
|
||||
#pragma D attributes Unstable/Unstable/Common provider mozilla name
|
||||
#pragma D attributes Unstable/Unstable/Common provider mozilla args
|
||||
*/
|
||||
|
||||
93
samples/DTrace/probes.d
Normal file
93
samples/DTrace/probes.d
Normal file
@@ -0,0 +1,93 @@
|
||||
/* ----------
|
||||
* DTrace probes for PostgreSQL backend
|
||||
*
|
||||
* Copyright (c) 2006-2009, PostgreSQL Global Development Group
|
||||
*
|
||||
* $PostgreSQL: pgsql/src/backend/utils/probes.d,v 1.11 2009/04/02 20:59:10 momjian Exp $
|
||||
* ----------
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
* Typedefs used in PostgreSQL.
|
||||
*
|
||||
* NOTE: Do not use system-provided typedefs (e.g. uintptr_t, uint32_t, etc)
|
||||
* in probe definitions, as they cause compilation errors on Mac OS X 10.5.
|
||||
*/
|
||||
#define LocalTransactionId unsigned int
|
||||
#define LWLockId int
|
||||
#define LWLockMode int
|
||||
#define LOCKMODE int
|
||||
#define BlockNumber unsigned int
|
||||
#define Oid unsigned int
|
||||
#define ForkNumber int
|
||||
#define bool char
|
||||
|
||||
provider postgresql {
|
||||
|
||||
probe transaction__start(LocalTransactionId);
|
||||
probe transaction__commit(LocalTransactionId);
|
||||
probe transaction__abort(LocalTransactionId);
|
||||
|
||||
probe lwlock__acquire(LWLockId, LWLockMode);
|
||||
probe lwlock__release(LWLockId);
|
||||
probe lwlock__wait__start(LWLockId, LWLockMode);
|
||||
probe lwlock__wait__done(LWLockId, LWLockMode);
|
||||
probe lwlock__condacquire(LWLockId, LWLockMode);
|
||||
probe lwlock__condacquire__fail(LWLockId, LWLockMode);
|
||||
|
||||
probe lock__wait__start(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE);
|
||||
probe lock__wait__done(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, LOCKMODE);
|
||||
|
||||
probe query__parse__start(const char *);
|
||||
probe query__parse__done(const char *);
|
||||
probe query__rewrite__start(const char *);
|
||||
probe query__rewrite__done(const char *);
|
||||
probe query__plan__start();
|
||||
probe query__plan__done();
|
||||
probe query__execute__start();
|
||||
probe query__execute__done();
|
||||
probe query__start(const char *);
|
||||
probe query__done(const char *);
|
||||
probe statement__status(const char *);
|
||||
|
||||
probe sort__start(int, bool, int, int, bool);
|
||||
probe sort__done(bool, long);
|
||||
|
||||
probe buffer__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool);
|
||||
probe buffer__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, bool, bool, bool);
|
||||
probe buffer__flush__start(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
||||
probe buffer__flush__done(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
||||
|
||||
probe buffer__checkpoint__start(int);
|
||||
probe buffer__checkpoint__sync__start();
|
||||
probe buffer__checkpoint__done();
|
||||
probe buffer__sync__start(int, int);
|
||||
probe buffer__sync__written(int);
|
||||
probe buffer__sync__done(int, int, int);
|
||||
probe buffer__write__dirty__start(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
||||
probe buffer__write__dirty__done(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
||||
|
||||
probe deadlock__found();
|
||||
|
||||
probe checkpoint__start(int);
|
||||
probe checkpoint__done(int, int, int, int, int);
|
||||
probe clog__checkpoint__start(bool);
|
||||
probe clog__checkpoint__done(bool);
|
||||
probe subtrans__checkpoint__start(bool);
|
||||
probe subtrans__checkpoint__done(bool);
|
||||
probe multixact__checkpoint__start(bool);
|
||||
probe multixact__checkpoint__done(bool);
|
||||
probe twophase__checkpoint__start();
|
||||
probe twophase__checkpoint__done();
|
||||
|
||||
probe smgr__md__read__start(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
||||
probe smgr__md__read__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int);
|
||||
probe smgr__md__write__start(ForkNumber, BlockNumber, Oid, Oid, Oid);
|
||||
probe smgr__md__write__done(ForkNumber, BlockNumber, Oid, Oid, Oid, int, int);
|
||||
|
||||
probe xlog__insert(unsigned char, unsigned char);
|
||||
probe xlog__switch();
|
||||
probe wal__buffer__write__dirty__start();
|
||||
probe wal__buffer__write__dirty__done();
|
||||
};
|
||||
44
samples/Eiffel/application.e
Normal file
44
samples/Eiffel/application.e
Normal file
@@ -0,0 +1,44 @@
|
||||
note
|
||||
description : "nino application root class"
|
||||
date : "$Date$"
|
||||
revision : "$Revision$"
|
||||
|
||||
class
|
||||
APPLICATION
|
||||
|
||||
inherit
|
||||
ARGUMENTS
|
||||
|
||||
HTTP_SERVER_SHARED_CONFIGURATION
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make
|
||||
-- Run application.
|
||||
local
|
||||
l_server : HTTP_SERVER
|
||||
l_cfg: HTTP_SERVER_CONFIGURATION
|
||||
l_http_handler : HTTP_HANDLER
|
||||
do
|
||||
create l_cfg.make
|
||||
l_cfg.http_server_port := 9_000
|
||||
l_cfg.document_root := default_document_root
|
||||
set_server_configuration (l_cfg)
|
||||
debug ("nino")
|
||||
l_cfg.set_is_verbose (True)
|
||||
end
|
||||
|
||||
create l_server.make (l_cfg)
|
||||
create {APPLICATION_CONNECTION_HANDLER} l_http_handler.make (l_server)
|
||||
l_server.setup (l_http_handler)
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
default_document_root: STRING = "webroot"
|
||||
|
||||
end
|
||||
|
||||
82
samples/Eiffel/book_collection.e
Normal file
82
samples/Eiffel/book_collection.e
Normal file
@@ -0,0 +1,82 @@
|
||||
class
|
||||
BOOK_COLLECTION
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make (a_name: STRING_32)
|
||||
-- Create a book collection with `a_name' as `name'.
|
||||
do
|
||||
set_name (a_name)
|
||||
create book_index.make (10)
|
||||
ensure
|
||||
name_set: name = a_name
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
name: STRING_32
|
||||
-- Name.
|
||||
|
||||
books: LIST [BOOK]
|
||||
-- collection of book.
|
||||
do
|
||||
create {LINKED_LIST [BOOK]} Result.make
|
||||
across
|
||||
book_index as it
|
||||
loop
|
||||
Result.append (it.item)
|
||||
end
|
||||
end
|
||||
|
||||
books_by_author (a_author: STRING_32): LIST [BOOK]
|
||||
-- Books wrote by `a_author' in this collection.
|
||||
do
|
||||
if attached book_index [a_author] as l_result then
|
||||
Result := l_result
|
||||
else
|
||||
create {LINKED_LIST [BOOK]} Result.make
|
||||
end
|
||||
end
|
||||
|
||||
feature -- Change
|
||||
|
||||
set_name (a_name: STRING_32)
|
||||
-- Set `name' with `a_name'.
|
||||
do
|
||||
name := a_name
|
||||
ensure
|
||||
name_set: name = a_name
|
||||
end
|
||||
|
||||
add_book (a_book: BOOK)
|
||||
-- Extend collection with `a_book'.
|
||||
local
|
||||
l: detachable LIST [BOOK]
|
||||
do
|
||||
l := book_index.at (a_book.author.name)
|
||||
if l = Void then
|
||||
create {LINKED_LIST [BOOK]} l.make
|
||||
book_index.put (l, a_book.author.name)
|
||||
end
|
||||
l.force (a_book)
|
||||
end
|
||||
|
||||
add_books (book_list: like books)
|
||||
-- Append collection with `book_list'.
|
||||
do
|
||||
across
|
||||
book_list as it
|
||||
loop
|
||||
add_book (it.item)
|
||||
end
|
||||
end
|
||||
|
||||
feature {NONE} -- Implementation
|
||||
|
||||
book_index: HASH_TABLE [LIST [BOOK], STRING_32]
|
||||
-- Association of author name and its books.
|
||||
|
||||
end -- class BOOK_COLLECTION
|
||||
41
samples/Eiffel/git_checkout_command.e
Normal file
41
samples/Eiffel/git_checkout_command.e
Normal file
@@ -0,0 +1,41 @@
|
||||
note
|
||||
description: "Git checkout command."
|
||||
author: "Olivier Ligot"
|
||||
|
||||
class
|
||||
GIT_CHECKOUT_COMMAND
|
||||
|
||||
inherit
|
||||
GIT_COMMAND
|
||||
|
||||
create
|
||||
make,
|
||||
make_master
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make (a_branch: STRING)
|
||||
-- Checkout the branch `a_branch'.
|
||||
do
|
||||
initialize
|
||||
arguments.force_last (a_branch)
|
||||
branch := a_branch
|
||||
ensure
|
||||
branch_set: branch = a_branch
|
||||
end
|
||||
|
||||
make_master
|
||||
-- Checkout the master branch.
|
||||
do
|
||||
make ("master")
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
branch: STRING
|
||||
-- Branch to checkout
|
||||
|
||||
name: STRING = "checkout"
|
||||
-- Git subcommand name
|
||||
|
||||
end
|
||||
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"}}
|
||||
29
samples/Emacs Lisp/.emacs.desktop
Normal file
29
samples/Emacs Lisp/.emacs.desktop
Normal file
@@ -0,0 +1,29 @@
|
||||
;; -*- mode: emacs-lisp; coding: emacs-mule; -*-
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Desktop File for Emacs
|
||||
;; --------------------------------------------------------------------------
|
||||
;; Created Sat Jan 3 12:46:35 2015
|
||||
;; Desktop file format version 206
|
||||
;; Emacs version 24.3.1
|
||||
|
||||
;; Global section:
|
||||
(setq desktop-missing-file-warning nil)
|
||||
(setq tags-file-name nil)
|
||||
(setq tags-table-list nil)
|
||||
(setq search-ring nil)
|
||||
(setq regexp-search-ring nil)
|
||||
(setq register-alist nil)
|
||||
(setq file-name-history nil)
|
||||
|
||||
;; Buffer section -- buffers listed in same order as in buffer list:
|
||||
(desktop-create-buffer 206
|
||||
"/home/foo/bar"
|
||||
"bar"
|
||||
'fundamental-mode
|
||||
nil
|
||||
11572
|
||||
'(11554 nil)
|
||||
nil
|
||||
nil
|
||||
'((buffer-file-coding-system . undecided-unix)))
|
||||
|
||||
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
133
samples/Forth/tools.4TH
Normal file
133
samples/Forth/tools.4TH
Normal file
@@ -0,0 +1,133 @@
|
||||
\ -*- forth -*- Copyright 2004, 2013 Lars Brinkhoff
|
||||
|
||||
( Tools words. )
|
||||
|
||||
: .s ( -- )
|
||||
[char] < emit depth (.) ." > "
|
||||
'SP @ >r r@ depth 1- cells +
|
||||
begin
|
||||
dup r@ <>
|
||||
while
|
||||
dup @ .
|
||||
/cell -
|
||||
repeat r> 2drop ;
|
||||
|
||||
: ? @ . ;
|
||||
|
||||
: c? c@ . ;
|
||||
|
||||
: dump bounds do i ? /cell +loop cr ;
|
||||
|
||||
: cdump bounds do i c? loop cr ;
|
||||
|
||||
: again postpone branch , ; immediate
|
||||
|
||||
: see-find ( caddr -- end xt )
|
||||
>r here lastxt @
|
||||
begin
|
||||
dup 0= abort" Undefined word"
|
||||
dup r@ word= if r> drop exit then
|
||||
nip dup >nextxt
|
||||
again ;
|
||||
|
||||
: cabs ( char -- |char| ) dup 127 > if 256 swap - then ;
|
||||
|
||||
: xt. ( xt -- )
|
||||
( >name ) count cabs type ;
|
||||
|
||||
: xt? ( xt -- flag )
|
||||
>r lastxt @ begin
|
||||
?dup
|
||||
while
|
||||
dup r@ = if r> 2drop -1 exit then
|
||||
>nextxt
|
||||
repeat r> drop 0 ;
|
||||
|
||||
: disassemble ( x -- )
|
||||
dup xt? if
|
||||
( >name ) count
|
||||
dup 127 > if ." postpone " then
|
||||
cabs type
|
||||
else
|
||||
.
|
||||
then ;
|
||||
|
||||
: .addr dup . ;
|
||||
|
||||
: see-line ( addr -- )
|
||||
cr ." ( " .addr ." ) " @ disassemble ;
|
||||
|
||||
: see-word ( end xt -- )
|
||||
>r ." : " r@ xt.
|
||||
r@ >body do i see-line /cell +loop
|
||||
." ;" r> c@ 127 > if ." immediate" then ;
|
||||
|
||||
: see bl word see-find see-word cr ;
|
||||
|
||||
: #body bl word see-find >body - ;
|
||||
|
||||
: type-word ( end xt -- flag )
|
||||
xt. space drop 0 ;
|
||||
|
||||
: traverse-dictionary ( in.. xt -- out.. )
|
||||
\ xt execution: ( in.. end xt2 -- in.. 0 | in.. end xt2 -- out.. true )
|
||||
>r here lastxt @ begin
|
||||
?dup
|
||||
while
|
||||
r> 2dup >r >r execute
|
||||
if r> r> 2drop exit then
|
||||
r> dup >nextxt
|
||||
repeat r> 2drop ;
|
||||
|
||||
: words ( -- )
|
||||
['] type-word traverse-dictionary cr ;
|
||||
|
||||
\ ----------------------------------------------------------------------
|
||||
|
||||
( Tools extension words. )
|
||||
|
||||
\ ;code
|
||||
|
||||
\ assembler
|
||||
|
||||
\ in kernel: bye
|
||||
|
||||
\ code
|
||||
|
||||
\ cs-pick
|
||||
|
||||
\ cs-roll
|
||||
|
||||
\ editor
|
||||
|
||||
: forget ' dup >nextxt lastxt ! 'here ! reveal ;
|
||||
|
||||
\ Kernel: state
|
||||
|
||||
\ [else]
|
||||
|
||||
\ [if]
|
||||
|
||||
\ [then]
|
||||
|
||||
\ ----------------------------------------------------------------------
|
||||
|
||||
( Forth2012 tools extension words. )
|
||||
|
||||
\ TODO: n>r
|
||||
|
||||
\ TODO: nr>
|
||||
|
||||
\ TODO: synonym
|
||||
|
||||
: [undefined] bl-word find nip 0= ; immediate
|
||||
|
||||
: [defined] postpone [undefined] invert ; immediate
|
||||
|
||||
\ ----------------------------------------------------------------------
|
||||
|
||||
: @+ ( addr -- addr+/cell x ) dup cell+ swap @ ;
|
||||
|
||||
: !+ ( x addr -- addr+/cell ) tuck ! cell+ ;
|
||||
|
||||
: -rot swap >r swap r> ;
|
||||
161
samples/GAP/bugfix.tst
Normal file
161
samples/GAP/bugfix.tst
Normal file
@@ -0,0 +1,161 @@
|
||||
gap> START_TEST("Test for various former bugs");
|
||||
|
||||
|
||||
gap> # The following used to trigger an error starting with:
|
||||
gap> # "SolutionMat: matrix and vector incompatible called from"
|
||||
gap> K:=AbelianPcpGroup([3,3,3]);;
|
||||
gap> A:=Subgroup(K,[K.1]);;
|
||||
gap> cr:=CRRecordBySubgroup(K,A);;
|
||||
gap> ExtensionsCR(cr);;
|
||||
|
||||
|
||||
# Comparing homomorphisms used to be broken
|
||||
gap> K:=AbelianPcpGroup(1,[3]);;
|
||||
gap> hom1:=GroupHomomorphismByImages(K,K,[K.1],[K.1]);;
|
||||
gap> hom2:=GroupHomomorphismByImages(K,K,[K.1^2],[K.1^2]);;
|
||||
gap> hom1=hom2;
|
||||
true
|
||||
gap> hom1=IdentityMapping(K);
|
||||
true
|
||||
gap> hom2=IdentityMapping(K);
|
||||
true
|
||||
|
||||
|
||||
gap> # The following incorrectly triggered an error at some point
|
||||
gap> IsTorsionFree(ExamplesOfSomePcpGroups(5));
|
||||
true
|
||||
|
||||
|
||||
gap> # Verify IsGeneratorsOfMagmaWithInverses warnings are silenced
|
||||
gap> IsGeneratorsOfMagmaWithInverses(GeneratorsOfGroup(ExamplesOfSomePcpGroups(5)));
|
||||
true
|
||||
|
||||
|
||||
gap> # Check for a bug reported 2012-01-19 by Robert Morse
|
||||
gap> g := PcGroupToPcpGroup(SmallGroup(48,1));
|
||||
Pcp-group with orders [ 2, 2, 2, 2, 3 ]
|
||||
gap> # The next two commands used to trigger errors
|
||||
gap> NonAbelianTensorSquare(Centre(g));
|
||||
Pcp-group with orders [ 8 ]
|
||||
gap> NonAbelianExteriorSquare(Centre(g));
|
||||
Pcp-group with orders [ ]
|
||||
|
||||
|
||||
gap> # Check for a bug reported 2012-01-19 by Robert Morse
|
||||
gap> F := FreeGroup("x","y");
|
||||
<free group on the generators [ x, y ]>
|
||||
gap> x := F.1;; y := F.2;;
|
||||
gap> G := F/[x^2/y^24, y^24, y^x/y^23];
|
||||
<fp group on the generators [ x, y ]>
|
||||
gap> iso := IsomorphismPcGroup(G);
|
||||
[ x, y ] -> [ f1, f2*f5 ]
|
||||
gap> iso1 := IsomorphismPcpGroup(Image(iso));
|
||||
[ f1, f2, f3, f4, f5 ] -> [ g1, g2, g3, g4, g5 ]
|
||||
gap> G := Image(iso*iso1);
|
||||
Pcp-group with orders [ 2, 2, 2, 2, 3 ]
|
||||
gap> # The next command used to trigger an error
|
||||
gap> NonAbelianTensorSquare(Image(iso*iso1));
|
||||
Pcp-group with orders [ 2, 2, 3, 2, 2, 2, 2 ]
|
||||
|
||||
|
||||
gap> # The problem with the previous example is/was that Igs(G)
|
||||
gap> # is set to a non-standard value:
|
||||
gap> Igs(G);
|
||||
[ g1, g2*g5, g3*g4*g5^2, g4*g5, g5 ]
|
||||
gap> # Unfortunately, it seems that a lot of code that
|
||||
gap> # really should be using Ngs or Cgs is using Igs incorrectly.
|
||||
gap> # For example, direct products could return *invalid* embeddings:
|
||||
gap> D := DirectProduct(G, G);
|
||||
Pcp-group with orders [ 2, 2, 2, 2, 3, 2, 2, 2, 2, 3 ]
|
||||
gap> hom:=Embedding(D,1);;
|
||||
gap> mapi:=MappingGeneratorsImages(hom);;
|
||||
gap> GroupHomomorphismByImages(Source(hom),Range(hom),mapi[1],mapi[2]) <> fail;
|
||||
true
|
||||
gap> hom:=Projection(D,1);;
|
||||
gap> mapi:=MappingGeneratorsImages(hom);;
|
||||
gap> GroupHomomorphismByImages(Source(hom),Range(hom),mapi[1],mapi[2]) <> fail;
|
||||
true
|
||||
|
||||
|
||||
gap> # Check for bug computing Schur extension of infinite cyclic groups,
|
||||
gap> # found by Max Horn 2012-05-25
|
||||
gap> G:=AbelianPcpGroup(1,[0]);
|
||||
Pcp-group with orders [ 0 ]
|
||||
gap> # The next command used to trigger an error
|
||||
gap> SchurExtension(G);
|
||||
Pcp-group with orders [ 0 ]
|
||||
|
||||
|
||||
gap> # Check for bug computing Schur extensions of subgroups, found by MH 2012-05-25.
|
||||
gap> G:=HeisenbergPcpGroup(2);
|
||||
Pcp-group with orders [ 0, 0, 0, 0, 0 ]
|
||||
gap> H:=Subgroup(G,[G.2^3*G.3^2, G.1^9]);
|
||||
Pcp-group with orders [ 0, 0, 0 ]
|
||||
gap> # The next command used to trigger an error
|
||||
gap> SchurExtension(H);
|
||||
Pcp-group with orders [ 0, 0, 0, 0, 0, 0 ]
|
||||
|
||||
|
||||
gap> # Check for bug computing Schur extensions of subgroups, found by MH 2012-05-25.
|
||||
gap> G:=HeisenbergPcpGroup(2);
|
||||
Pcp-group with orders [ 0, 0, 0, 0, 0 ]
|
||||
gap> H:=Subgroup(G,[G.1, G.2]);
|
||||
Pcp-group with orders [ 0, 0 ]
|
||||
gap> # The next command used to trigger an error
|
||||
gap> SchurExtension(H);
|
||||
Pcp-group with orders [ 0, 0, 0 ]
|
||||
|
||||
|
||||
gap> # Check for bug computing normalizer of two subgroups, found by MH 2012-05-30.
|
||||
gap> # The problem was caused by incorrect resp. overly restrictive use of Parent().
|
||||
gap> G:=HeisenbergPcpGroup(2);
|
||||
Pcp-group with orders [ 0, 0, 0, 0, 0 ]
|
||||
gap> A:=Subgroup(Subgroup(G,[G.2,G.3,G.4,G.5]), [G.3]);
|
||||
Pcp-group with orders [ 0 ]
|
||||
gap> B:=Subgroup(Subgroup(G,[G.1,G.4,G.5]), [G.4]);
|
||||
Pcp-group with orders [ 0 ]
|
||||
gap> Normalizer(A,B);
|
||||
Pcp-group with orders [ 0 ]
|
||||
gap> # The following used to trigger the error "arguments must have a common parent group"
|
||||
gap> Normalizer(B,A);
|
||||
Pcp-group with orders [ 0 ]
|
||||
|
||||
|
||||
gap> # In polycyclic 2.9 and 2.10, the code for 2-cohomology computations was broken.
|
||||
gap> G := UnitriangularPcpGroup(3,0);
|
||||
Pcp-group with orders [ 0, 0, 0 ]
|
||||
gap> mats := G!.mats;
|
||||
[ [ [ 1, 1, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ],
|
||||
[ [ 1, 0, 0 ], [ 0, 1, 1 ], [ 0, 0, 1 ] ],
|
||||
[ [ 1, 0, 1 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] ]
|
||||
gap> C := CRRecordByMats(G,mats);;
|
||||
gap> cc := TwoCohomologyCR(C);;
|
||||
gap> cc.factor.rels;
|
||||
[ 2, 0, 0 ]
|
||||
gap> c := cc.factor.prei[2];
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1 ]
|
||||
gap> cc.gcb;
|
||||
[ [ 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ],
|
||||
[ 0, 0, -1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 ],
|
||||
[ 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 ],
|
||||
[ -1, 0, 1, 1, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0 ],
|
||||
[ 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1 ] ]
|
||||
gap> cc.gcc;
|
||||
[ [ 1, 0, 0, 0, 0, -2, -1, 0, 1, 1, -1, -1, 0, 0, 0, 0, 0, 0 ],
|
||||
[ 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 ],
|
||||
[ 0, 0, 1, 0, 0, -2, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 0 ],
|
||||
[ 0, 0, 0, 1, 0, 0, -1, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ],
|
||||
[ 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 0 ],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 1 ],
|
||||
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 ] ]
|
||||
|
||||
|
||||
gap> # LowerCentralSeriesOfGroup for non-nilpotent pcp-groups used to trigger
|
||||
gap> # an infinite recursion
|
||||
gap> G := PcGroupToPcpGroup(SmallGroup(6,1));
|
||||
Pcp-group with orders [ 2, 3 ]
|
||||
gap> LowerCentralSeriesOfGroup(G);
|
||||
[ Pcp-group with orders [ 2, 3 ], Pcp-group with orders [ 3 ] ]
|
||||
|
||||
|
||||
gap> STOP_TEST( "bugfix.tst", 10000000);
|
||||
21
samples/GAP/factor.tst
Normal file
21
samples/GAP/factor.tst
Normal file
@@ -0,0 +1,21 @@
|
||||
gap> START_TEST("Test of factor groups and natural homomorphisms");
|
||||
|
||||
gap> G:=HeisenbergPcpGroup(2);
|
||||
Pcp-group with orders [ 0, 0, 0, 0, 0 ]
|
||||
|
||||
gap> H:=Subgroup(G,[G.2,G.3,G.4,G.5]);
|
||||
gap> K:=G/H;
|
||||
gap> NaturalHomomorphism(K);
|
||||
|
||||
gap> A:=Subgroup(H, [G.3]);
|
||||
Pcp-group with orders [ 0 ]
|
||||
gap> B:=Subgroup(Subgroup(G,[G.1,G.4,G.5]), [G.4]);
|
||||
Pcp-group with orders [ 0 ]
|
||||
gap> Normalizer(A,B);
|
||||
Pcp-group with orders [ 0 ]
|
||||
gap> # The following used to trigger the error "arguments must have a common parent group"
|
||||
gap> Normalizer(B,A);
|
||||
Pcp-group with orders [ 0 ]
|
||||
|
||||
|
||||
gap> STOP_TEST( "factor.tst", 10000000);
|
||||
91
samples/GAS/hello.ms
Normal file
91
samples/GAS/hello.ms
Normal file
@@ -0,0 +1,91 @@
|
||||
# output(): Hello, world.\n
|
||||
# mach(): all
|
||||
|
||||
# Emit hello world while switching back and forth between arm/thumb.
|
||||
# ??? Unfinished
|
||||
|
||||
.macro invalid
|
||||
# This is "undefined" but it's not properly decoded yet.
|
||||
.word 0x07ffffff
|
||||
# This is stc which isn't recognized yet.
|
||||
stc 0,cr0,[r0]
|
||||
.endm
|
||||
|
||||
.global _start
|
||||
_start:
|
||||
# Run some simple insns to confirm the engine is at least working.
|
||||
nop
|
||||
|
||||
# Skip over output text.
|
||||
|
||||
bl skip_output
|
||||
|
||||
hello_text:
|
||||
.asciz "Hello, world.\n"
|
||||
|
||||
.p2align 2
|
||||
skip_output:
|
||||
|
||||
# Prime loop.
|
||||
|
||||
mov r4, r14
|
||||
|
||||
output_next:
|
||||
|
||||
# Switch arm->thumb to output next chacter.
|
||||
# At this point r4 must point to the next character to output.
|
||||
|
||||
adr r0, into_thumb + 1
|
||||
bx r0
|
||||
|
||||
into_thumb:
|
||||
.thumb
|
||||
|
||||
# Output a character.
|
||||
|
||||
mov r0,#3 @ writec angel call
|
||||
mov r1,r4
|
||||
swi 0xab @ ??? Confirm number.
|
||||
|
||||
# Switch thumb->arm.
|
||||
|
||||
adr r5, back_to_arm
|
||||
bx r5
|
||||
|
||||
.p2align 2
|
||||
back_to_arm:
|
||||
.arm
|
||||
|
||||
# Load next character, see if done.
|
||||
|
||||
add r4,r4,#1
|
||||
sub r3,r3,r3
|
||||
ldrb r5,[r4,r3]
|
||||
teq r5,#0
|
||||
beq done
|
||||
|
||||
# Output a character (in arm mode).
|
||||
|
||||
mov r0,#3
|
||||
mov r1,r4
|
||||
swi #0x123456
|
||||
|
||||
# Load next character, see if done.
|
||||
|
||||
add r4,r4,#1
|
||||
sub r3,r3,r3
|
||||
ldrb r5,[r4,r3]
|
||||
teq r5,#0
|
||||
bne output_next
|
||||
|
||||
done:
|
||||
mov r0,#0x18
|
||||
ldr r1,exit_code
|
||||
swi #0x123456
|
||||
|
||||
# If that fails, try to die with an invalid insn.
|
||||
|
||||
invalid
|
||||
|
||||
exit_code:
|
||||
.word 0x20026
|
||||
1157
samples/Go/api.pb.go
Normal file
1157
samples/Go/api.pb.go
Normal file
File diff suppressed because it is too large
Load Diff
852
samples/Go/embedded.go
Normal file
852
samples/Go/embedded.go
Normal file
File diff suppressed because one or more lines are too long
18
samples/Go/gen-go-linguist-thrift.go
Normal file
18
samples/Go/gen-go-linguist-thrift.go
Normal file
@@ -0,0 +1,18 @@
|
||||
// Autogenerated by Thrift Compiler (1.0.0-dev)
|
||||
// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||
|
||||
package linguist
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"git.apache.org/thrift.git/lib/go/thrift"
|
||||
)
|
||||
|
||||
// (needed to ensure safety because of naive import list construction.)
|
||||
var _ = thrift.ZERO
|
||||
var _ = fmt.Printf
|
||||
var _ = bytes.Equal
|
||||
|
||||
func init() {
|
||||
}
|
||||
275
samples/Groff/Tcl.n
Normal file
275
samples/Groff/Tcl.n
Normal file
@@ -0,0 +1,275 @@
|
||||
'\"
|
||||
'\" Copyright (c) 1993 The Regents of the University of California.
|
||||
'\" Copyright (c) 1994-1996 Sun Microsystems, Inc.
|
||||
'\"
|
||||
'\" See the file "license.terms" for information on usage and redistribution
|
||||
'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||
'\"
|
||||
.TH Tcl n "8.6" Tcl "Tcl Built-In Commands"
|
||||
.so man.macros
|
||||
.BS
|
||||
.SH NAME
|
||||
Tcl \- Tool Command Language
|
||||
.SH SYNOPSIS
|
||||
Summary of Tcl language syntax.
|
||||
.BE
|
||||
.SH DESCRIPTION
|
||||
.PP
|
||||
The following rules define the syntax and semantics of the Tcl language:
|
||||
.IP "[1] \fBCommands.\fR"
|
||||
A Tcl script is a string containing one or more commands.
|
||||
Semi-colons and newlines are command separators unless quoted as
|
||||
described below.
|
||||
Close brackets are command terminators during command substitution
|
||||
(see below) unless quoted.
|
||||
.IP "[2] \fBEvaluation.\fR"
|
||||
A command is evaluated in two steps.
|
||||
First, the Tcl interpreter breaks the command into \fIwords\fR
|
||||
and performs substitutions as described below.
|
||||
These substitutions are performed in the same way for all
|
||||
commands.
|
||||
Secondly, the first word is used to locate a command procedure to
|
||||
carry out the command, then all of the words of the command are
|
||||
passed to the command procedure.
|
||||
The command procedure is free to interpret each of its words
|
||||
in any way it likes, such as an integer, variable name, list,
|
||||
or Tcl script.
|
||||
Different commands interpret their words differently.
|
||||
.IP "[3] \fBWords.\fR"
|
||||
Words of a command are separated by white space (except for
|
||||
newlines, which are command separators).
|
||||
.IP "[4] \fBDouble quotes.\fR"
|
||||
If the first character of a word is double-quote
|
||||
.PQ \N'34'
|
||||
then the word is terminated by the next double-quote character.
|
||||
If semi-colons, close brackets, or white space characters
|
||||
(including newlines) appear between the quotes then they are treated
|
||||
as ordinary characters and included in the word.
|
||||
Command substitution, variable substitution, and backslash substitution
|
||||
are performed on the characters between the quotes as described below.
|
||||
The double-quotes are not retained as part of the word.
|
||||
.IP "[5] \fBArgument expansion.\fR"
|
||||
If a word starts with the string
|
||||
.QW {*}
|
||||
followed by a non-whitespace character, then the leading
|
||||
.QW {*}
|
||||
is removed and the rest of the word is parsed and substituted as any other
|
||||
word. After substitution, the word is parsed as a list (without command or
|
||||
variable substitutions; backslash substitutions are performed as is normal for
|
||||
a list and individual internal words may be surrounded by either braces or
|
||||
double-quote characters), and its words are added to the command being
|
||||
substituted. For instance,
|
||||
.QW "cmd a {*}{b [c]} d {*}{$e f {g h}}"
|
||||
is equivalent to
|
||||
.QW "cmd a b {[c]} d {$e} f {g h}" .
|
||||
.IP "[6] \fBBraces.\fR"
|
||||
If the first character of a word is an open brace
|
||||
.PQ {
|
||||
and rule [5] does not apply, then
|
||||
the word is terminated by the matching close brace
|
||||
.PQ } "" .
|
||||
Braces nest within the word: for each additional open
|
||||
brace there must be an additional close brace (however,
|
||||
if an open brace or close brace within the word is
|
||||
quoted with a backslash then it is not counted in locating the
|
||||
matching close brace).
|
||||
No substitutions are performed on the characters between the
|
||||
braces except for backslash-newline substitutions described
|
||||
below, nor do semi-colons, newlines, close brackets,
|
||||
or white space receive any special interpretation.
|
||||
The word will consist of exactly the characters between the
|
||||
outer braces, not including the braces themselves.
|
||||
.IP "[7] \fBCommand substitution.\fR"
|
||||
If a word contains an open bracket
|
||||
.PQ [
|
||||
then Tcl performs \fIcommand substitution\fR.
|
||||
To do this it invokes the Tcl interpreter recursively to process
|
||||
the characters following the open bracket as a Tcl script.
|
||||
The script may contain any number of commands and must be terminated
|
||||
by a close bracket
|
||||
.PQ ] "" .
|
||||
The result of the script (i.e. the result of its last command) is
|
||||
substituted into the word in place of the brackets and all of the
|
||||
characters between them.
|
||||
There may be any number of command substitutions in a single word.
|
||||
Command substitution is not performed on words enclosed in braces.
|
||||
.IP "[8] \fBVariable substitution.\fR"
|
||||
If a word contains a dollar-sign
|
||||
.PQ $
|
||||
followed by one of the forms
|
||||
described below, then Tcl performs \fIvariable
|
||||
substitution\fR: the dollar-sign and the following characters are
|
||||
replaced in the word by the value of a variable.
|
||||
Variable substitution may take any of the following forms:
|
||||
.RS
|
||||
.TP 15
|
||||
\fB$\fIname\fR
|
||||
.
|
||||
\fIName\fR is the name of a scalar variable; the name is a sequence
|
||||
of one or more characters that are a letter, digit, underscore,
|
||||
or namespace separators (two or more colons).
|
||||
Letters and digits are \fIonly\fR the standard ASCII ones (\fB0\fR\(en\fB9\fR,
|
||||
\fBA\fR\(en\fBZ\fR and \fBa\fR\(en\fBz\fR).
|
||||
.TP 15
|
||||
\fB$\fIname\fB(\fIindex\fB)\fR
|
||||
.
|
||||
\fIName\fR gives the name of an array variable and \fIindex\fR gives
|
||||
the name of an element within that array.
|
||||
\fIName\fR must contain only letters, digits, underscores, and
|
||||
namespace separators, and may be an empty string.
|
||||
Letters and digits are \fIonly\fR the standard ASCII ones (\fB0\fR\(en\fB9\fR,
|
||||
\fBA\fR\(en\fBZ\fR and \fBa\fR\(en\fBz\fR).
|
||||
Command substitutions, variable substitutions, and backslash
|
||||
substitutions are performed on the characters of \fIindex\fR.
|
||||
.TP 15
|
||||
\fB${\fIname\fB}\fR
|
||||
.
|
||||
\fIName\fR is the name of a scalar variable or array element. It may contain
|
||||
any characters whatsoever except for close braces. It indicates an array
|
||||
element if \fIname\fR is in the form
|
||||
.QW \fIarrayName\fB(\fIindex\fB)\fR
|
||||
where \fIarrayName\fR does not contain any open parenthesis characters,
|
||||
.QW \fB(\fR ,
|
||||
or close brace characters,
|
||||
.QW \fB}\fR ,
|
||||
and \fIindex\fR can be any sequence of characters except for close brace
|
||||
characters. No further
|
||||
substitutions are performed during the parsing of \fIname\fR.
|
||||
.PP
|
||||
There may be any number of variable substitutions in a single word.
|
||||
Variable substitution is not performed on words enclosed in braces.
|
||||
.PP
|
||||
Note that variables may contain character sequences other than those listed
|
||||
above, but in that case other mechanisms must be used to access them (e.g.,
|
||||
via the \fBset\fR command's single-argument form).
|
||||
.RE
|
||||
.IP "[9] \fBBackslash substitution.\fR"
|
||||
If a backslash
|
||||
.PQ \e
|
||||
appears within a word then \fIbackslash substitution\fR occurs.
|
||||
In all cases but those described below the backslash is dropped and
|
||||
the following character is treated as an ordinary
|
||||
character and included in the word.
|
||||
This allows characters such as double quotes, close brackets,
|
||||
and dollar signs to be included in words without triggering
|
||||
special processing.
|
||||
The following table lists the backslash sequences that are
|
||||
handled specially, along with the value that replaces each sequence.
|
||||
.RS
|
||||
.TP 7
|
||||
\e\fBa\fR
|
||||
Audible alert (bell) (Unicode U+000007).
|
||||
.TP 7
|
||||
\e\fBb\fR
|
||||
Backspace (Unicode U+000008).
|
||||
.TP 7
|
||||
\e\fBf\fR
|
||||
Form feed (Unicode U+00000C).
|
||||
.TP 7
|
||||
\e\fBn\fR
|
||||
Newline (Unicode U+00000A).
|
||||
.TP 7
|
||||
\e\fBr\fR
|
||||
Carriage-return (Unicode U+00000D).
|
||||
.TP 7
|
||||
\e\fBt\fR
|
||||
Tab (Unicode U+000009).
|
||||
.TP 7
|
||||
\e\fBv\fR
|
||||
Vertical tab (Unicode U+00000B).
|
||||
.TP 7
|
||||
\e\fB<newline>\fIwhiteSpace\fR
|
||||
.
|
||||
A single space character replaces the backslash, newline, and all spaces
|
||||
and tabs after the newline. This backslash sequence is unique in that it
|
||||
is replaced in a separate pre-pass before the command is actually parsed.
|
||||
This means that it will be replaced even when it occurs between braces,
|
||||
and the resulting space will be treated as a word separator if it is not
|
||||
in braces or quotes.
|
||||
.TP 7
|
||||
\e\e
|
||||
Backslash
|
||||
.PQ \e "" .
|
||||
.TP 7
|
||||
\e\fIooo\fR
|
||||
.
|
||||
The digits \fIooo\fR (one, two, or three of them) give a eight-bit octal
|
||||
value for the Unicode character that will be inserted, in the range
|
||||
\fI000\fR\(en\fI377\fR (i.e., the range U+000000\(enU+0000FF).
|
||||
The parser will stop just before this range overflows, or when
|
||||
the maximum of three digits is reached. The upper bits of the Unicode
|
||||
character will be 0.
|
||||
.TP 7
|
||||
\e\fBx\fIhh\fR
|
||||
.
|
||||
The hexadecimal digits \fIhh\fR (one or two of them) give an eight-bit
|
||||
hexadecimal value for the Unicode character that will be inserted. The upper
|
||||
bits of the Unicode character will be 0 (i.e., the character will be in the
|
||||
range U+000000\(enU+0000FF).
|
||||
.TP 7
|
||||
\e\fBu\fIhhhh\fR
|
||||
.
|
||||
The hexadecimal digits \fIhhhh\fR (one, two, three, or four of them) give a
|
||||
sixteen-bit hexadecimal value for the Unicode character that will be
|
||||
inserted. The upper bits of the Unicode character will be 0 (i.e., the
|
||||
character will be in the range U+000000\(enU+00FFFF).
|
||||
.TP 7
|
||||
\e\fBU\fIhhhhhhhh\fR
|
||||
.
|
||||
The hexadecimal digits \fIhhhhhhhh\fR (one up to eight of them) give a
|
||||
twenty-one-bit hexadecimal value for the Unicode character that will be
|
||||
inserted, in the range U+000000\(enU+10FFFF. The parser will stop just
|
||||
before this range overflows, or when the maximum of eight digits
|
||||
is reached. The upper bits of the Unicode character will be 0.
|
||||
.RS
|
||||
.PP
|
||||
The range U+010000\(enU+10FFFD is reserved for the future.
|
||||
.RE
|
||||
.PP
|
||||
Backslash substitution is not performed on words enclosed in braces,
|
||||
except for backslash-newline as described above.
|
||||
.RE
|
||||
.IP "[10] \fBComments.\fR"
|
||||
If a hash character
|
||||
.PQ #
|
||||
appears at a point where Tcl is
|
||||
expecting the first character of the first word of a command,
|
||||
then the hash character and the characters that follow it, up
|
||||
through the next newline, are treated as a comment and ignored.
|
||||
The comment character only has significance when it appears
|
||||
at the beginning of a command.
|
||||
.IP "[11] \fBOrder of substitution.\fR"
|
||||
Each character is processed exactly once by the Tcl interpreter
|
||||
as part of creating the words of a command.
|
||||
For example, if variable substitution occurs then no further
|
||||
substitutions are performed on the value of the variable; the
|
||||
value is inserted into the word verbatim.
|
||||
If command substitution occurs then the nested command is
|
||||
processed entirely by the recursive call to the Tcl interpreter;
|
||||
no substitutions are performed before making the recursive
|
||||
call and no additional substitutions are performed on the result
|
||||
of the nested script.
|
||||
.RS
|
||||
.PP
|
||||
Substitutions take place from left to right, and each substitution is
|
||||
evaluated completely before attempting to evaluate the next. Thus, a
|
||||
sequence like
|
||||
.PP
|
||||
.CS
|
||||
set y [set x 0][incr x][incr x]
|
||||
.CE
|
||||
.PP
|
||||
will always set the variable \fIy\fR to the value, \fI012\fR.
|
||||
.RE
|
||||
.IP "[12] \fBSubstitution and word boundaries.\fR"
|
||||
Substitutions do not affect the word boundaries of a command,
|
||||
except for argument expansion as specified in rule [5].
|
||||
For example, during variable substitution the entire value of
|
||||
the variable becomes part of a single word, even if the variable's
|
||||
value contains spaces.
|
||||
.SH KEYWORDS
|
||||
backslash, command, comment, script, substitution, variable
|
||||
'\" Local Variables:
|
||||
'\" mode: nroff
|
||||
'\" fill-column: 78
|
||||
'\" End:
|
||||
135
samples/Groff/create_view.l
Normal file
135
samples/Groff/create_view.l
Normal file
@@ -0,0 +1,135 @@
|
||||
.\\" auto-generated by docbook2man-spec $Revision: 1.1.1.1 $
|
||||
.TH "CREATE VIEW" "" "2005-11-05" "SQL - Language Statements" "SQL Commands"
|
||||
.SH NAME
|
||||
CREATE VIEW \- define a new view
|
||||
|
||||
.SH SYNOPSIS
|
||||
.sp
|
||||
.nf
|
||||
CREATE [ OR REPLACE ] [ TEMP | TEMPORARY ] VIEW \fIname\fR [ ( \fIcolumn_name\fR [, ...] ) ]
|
||||
AS \fIquery\fR
|
||||
.sp
|
||||
.fi
|
||||
.SH "DESCRIPTION"
|
||||
.PP
|
||||
\fBCREATE VIEW\fR defines a view of a query. The view
|
||||
is not physically materialized. Instead, the query is run every time
|
||||
the view is referenced in a query.
|
||||
.PP
|
||||
\fBCREATE OR REPLACE VIEW\fR is similar, but if a view
|
||||
of the same name already exists, it is replaced. You can only replace
|
||||
a view with a new query that generates the identical set of columns
|
||||
(i.e., same column names and data types).
|
||||
.PP
|
||||
If a schema name is given (for example, CREATE VIEW
|
||||
myschema.myview ...) then the view is created in the specified
|
||||
schema. Otherwise it is created in the current schema. Temporary
|
||||
views exist in a special schema, so a schema name may not be given
|
||||
when creating a temporary view. The name of the view must be
|
||||
distinct from the name of any other view, table, sequence, or index
|
||||
in the same schema.
|
||||
.SH "PARAMETERS"
|
||||
.TP
|
||||
\fBTEMPORARY or TEMP\fR
|
||||
If specified, the view is created as a temporary view.
|
||||
Temporary views are automatically dropped at the end of the
|
||||
current session. Existing
|
||||
permanent relations with the same name are not visible to the
|
||||
current session while the temporary view exists, unless they are
|
||||
referenced with schema-qualified names.
|
||||
|
||||
If any of the tables referenced by the view are temporary,
|
||||
the view is created as a temporary view (whether
|
||||
TEMPORARY is specified or not).
|
||||
.TP
|
||||
\fB\fIname\fB\fR
|
||||
The name (optionally schema-qualified) of a view to be created.
|
||||
.TP
|
||||
\fB\fIcolumn_name\fB\fR
|
||||
An optional list of names to be used for columns of the view.
|
||||
If not given, the column names are deduced from the query.
|
||||
.TP
|
||||
\fB\fIquery\fB\fR
|
||||
A query (that is, a \fBSELECT\fR statement) which will
|
||||
provide the columns and rows of the view.
|
||||
|
||||
Refer to SELECT [\fBselect\fR(l)]
|
||||
for more information about valid queries.
|
||||
.SH "NOTES"
|
||||
.PP
|
||||
Currently, views are read only: the system will not allow an insert,
|
||||
update, or delete on a view. You can get the effect of an updatable
|
||||
view by creating rules that rewrite inserts, etc. on the view into
|
||||
appropriate actions on other tables. For more information see
|
||||
CREATE RULE [\fBcreate_rule\fR(l)].
|
||||
.PP
|
||||
Use the DROP VIEW [\fBdrop_view\fR(l)]
|
||||
statement to drop views.
|
||||
.PP
|
||||
Be careful that the names and types of the view's columns will be
|
||||
assigned the way you want. For example,
|
||||
.sp
|
||||
.nf
|
||||
CREATE VIEW vista AS SELECT 'Hello World';
|
||||
.sp
|
||||
.fi
|
||||
is bad form in two ways: the column name defaults to ?column?,
|
||||
and the column data type defaults to \fBunknown\fR. If you want a
|
||||
string literal in a view's result, use something like
|
||||
.sp
|
||||
.nf
|
||||
CREATE VIEW vista AS SELECT text 'Hello World' AS hello;
|
||||
.sp
|
||||
.fi
|
||||
.PP
|
||||
Access to tables referenced in the view is determined by permissions of
|
||||
the view owner. However, functions called in the view are treated the
|
||||
same as if they had been called directly from the query using the view.
|
||||
Therefore the user of a view must have permissions to call all functions
|
||||
used by the view.
|
||||
.SH "EXAMPLES"
|
||||
.PP
|
||||
Create a view consisting of all comedy films:
|
||||
.sp
|
||||
.nf
|
||||
CREATE VIEW comedies AS
|
||||
SELECT *
|
||||
FROM films
|
||||
WHERE kind = 'Comedy';
|
||||
.sp
|
||||
.fi
|
||||
.SH "COMPATIBILITY"
|
||||
.PP
|
||||
The SQL standard specifies some additional capabilities for the
|
||||
\fBCREATE VIEW\fR statement:
|
||||
.sp
|
||||
.nf
|
||||
CREATE VIEW \fIname\fR [ ( \fIcolumn_name\fR [, ...] ) ]
|
||||
AS \fIquery\fR
|
||||
[ WITH [ CASCADED | LOCAL ] CHECK OPTION ]
|
||||
.sp
|
||||
.fi
|
||||
.PP
|
||||
The optional clauses for the full SQL command are:
|
||||
.TP
|
||||
\fBCHECK OPTION\fR
|
||||
This option has to do with updatable views. All
|
||||
\fBINSERT\fR and \fBUPDATE\fR commands on the view
|
||||
will be checked to ensure data satisfy the view-defining
|
||||
condition (that is, the new data would be visible through the
|
||||
view). If they do not, the update will be rejected.
|
||||
.TP
|
||||
\fBLOCAL\fR
|
||||
Check for integrity on this view.
|
||||
.TP
|
||||
\fBCASCADED\fR
|
||||
Check for integrity on this view and on any dependent
|
||||
view. CASCADED is assumed if neither
|
||||
CASCADED nor LOCAL is specified.
|
||||
.PP
|
||||
.PP
|
||||
\fBCREATE OR REPLACE VIEW\fR is a
|
||||
PostgreSQL language extension.
|
||||
So is the concept of a temporary view.
|
||||
.SH "SEE ALSO"
|
||||
DROP VIEW [\fBdrop_view\fR(l)]
|
||||
1174
samples/Groff/fsinterface.ms
Normal file
1174
samples/Groff/fsinterface.ms
Normal file
File diff suppressed because it is too large
Load Diff
328
samples/HTML/index.html.hl
Normal file
328
samples/HTML/index.html.hl
Normal file
@@ -0,0 +1,328 @@
|
||||
<script type="text/hoplon">
|
||||
(page "index.html")
|
||||
|
||||
(defn mouse-loc->vec
|
||||
"Given a Google Closure normalized DOM mouse event return the
|
||||
mouse x and y position as a two element vector."
|
||||
[e]
|
||||
[(.-clientX e) (.-clientY e)])
|
||||
|
||||
;; =============================================================================
|
||||
;; Example 1
|
||||
|
||||
(defc ex1-content ["Waiting for a click ...."])
|
||||
(defc ex1-click-count 0)
|
||||
(defn ex1 []
|
||||
(when (< @ex1-click-count 1)
|
||||
(swap! ex1-click-count inc)
|
||||
(swap! ex1-content conj "Got a click!")))
|
||||
|
||||
;; =============================================================================
|
||||
;; Example 2
|
||||
|
||||
(defc ex2-content ["Waiting for a click ...."])
|
||||
(defc ex2-click-count 0)
|
||||
(defn ex2 []
|
||||
(when (= @ex2-click-count 1)
|
||||
(swap! ex2-click-count inc)
|
||||
(swap! ex2-content conj "Done"))
|
||||
(when (= @ex2-click-count 0)
|
||||
(swap! ex2-click-count inc)
|
||||
(swap! ex2-content conj "Got a Click!" "Waiting for another click ....")))
|
||||
|
||||
;; =============================================================================
|
||||
;; Example 3
|
||||
|
||||
(defc ex3-content ["Waiting for a click from Button A ....."])
|
||||
(defc ex3-click-count-a 0)
|
||||
(defc ex3-click-count-b 0)
|
||||
(defn ex3a []
|
||||
(when (= @ex3-click-count-a 0)
|
||||
(swap! ex3-click-count-a inc)
|
||||
(swap! ex3-content conj "Got a click!" "Waiting for a click from Button B ....")) )
|
||||
(defn ex3b []
|
||||
(when (and (= @ex3-click-count-a 1) (= @ex3-click-count-b 0))
|
||||
(swap! ex3-click-count-b inc)
|
||||
(swap! ex3-content conj "Done!")))
|
||||
|
||||
;; =============================================================================
|
||||
;; Example 6
|
||||
|
||||
(defc ex6-content ["Click the button to start tracking the mouse."])
|
||||
(defc ex6-button-name "GO!")
|
||||
(defn ex6-toggle []
|
||||
(let [new-name (if (= @ex6-button-name "GO!") "STOP!" "GO!")]
|
||||
(reset! ex6-button-name new-name)))
|
||||
(defn ex6 [e]
|
||||
(when (= @ex6-button-name "STOP!")
|
||||
(swap! ex6-content conj (str (mouse-loc->vec e)))))
|
||||
|
||||
;; =============================================================================
|
||||
;; Example 7
|
||||
|
||||
(defc ex7-content ["Click the button to start tracking the mouse."])
|
||||
(defc ex7-button-name "GO!")
|
||||
(defn ex7-toggle []
|
||||
(let [new-name (if (= @ex7-button-name "GO!") "STOP!" "GO!")]
|
||||
(reset! ex7-button-name new-name)))
|
||||
(defn ex7 [e]
|
||||
(when (= @ex7-button-name "STOP!")
|
||||
(let [[x y :as m] (mouse-loc->vec e)]
|
||||
(when (zero? (mod y 5))
|
||||
(swap! ex7-content conj (str m))))))
|
||||
|
||||
;; =============================================================================
|
||||
;; Example 8
|
||||
|
||||
(defc ex8-content ["Click the button ten times."])
|
||||
(defc ex8-click-count 0)
|
||||
(defn ex8 []
|
||||
(when (< @ex8-click-count 10)
|
||||
(swap! ex8-click-count inc)
|
||||
(when (= @ex8-click-count 1)
|
||||
(swap! ex8-content conj "1 Click!"))
|
||||
(when (> @ex8-click-count 1)
|
||||
(swap! ex8-content conj (str @ex8-click-count " clicks!")))
|
||||
(when (= @ex8-click-count 10)
|
||||
(swap! ex8-content conj "Done."))))
|
||||
|
||||
;; =============================================================================
|
||||
;; Example 9
|
||||
|
||||
(defc ex9-index 0)
|
||||
(defc ex9-animals [:aardvark :beetle :cat :dog :elk :ferret
|
||||
:goose :hippo :ibis :jellyfish :kangaroo])
|
||||
(defc= ex9-card (nth ex9-animals ex9-index))
|
||||
(defn ex9-prev []
|
||||
(when (> @ex9-index 0)
|
||||
(swap! ex9-index dec)))
|
||||
(defn ex9-next []
|
||||
(when (< @ex9-index (dec (count @ex9-animals)))
|
||||
(swap! ex9-index inc)))
|
||||
|
||||
;; =============================================================================
|
||||
;; Example 10
|
||||
|
||||
(defc ex10-button-name "START!")
|
||||
(defc ex10-index 0)
|
||||
(defn ex10 []
|
||||
(let [the-name @ex10-button-name]
|
||||
(when (= the-name"START!")
|
||||
(reset! ex10-button-name "STOP!"))
|
||||
(when (= the-name"STOP!")
|
||||
(reset! ex10-button-name "DONE!"))))
|
||||
(defc ex10-animals [:aardvark :beetle :cat :dog :elk :ferret
|
||||
:goose :hippo :ibis :jellyfish :kangaroo])
|
||||
(defc= ex10-max (dec (count ex10-animals)))
|
||||
(defc= ex10-card (nth ex10-animals ex10-index))
|
||||
(defn ex10-prev []
|
||||
(if (> @ex10-index 0)
|
||||
(swap! ex10-index dec)
|
||||
(reset! ex10-index @ex10-max)))
|
||||
(defn ex10-next []
|
||||
(if (< @ex10-index @ex10-max)
|
||||
(swap! ex10-index inc)
|
||||
(reset! ex10-index 0)))
|
||||
(defn ex10-nav [k]
|
||||
(when (= @ex10-button-name "STOP!")
|
||||
(when (= k :next)
|
||||
(ex10-next))
|
||||
(when (= k :prev)
|
||||
(ex10-prev))))
|
||||
|
||||
(defn ex10-keys [e]
|
||||
(when (= @ex10-button-name "STOP!")
|
||||
(if (= (.-keyCode e) 39) (ex10-nav :next))
|
||||
(if (= (.-keyCode e) 37) (ex10-nav :prev))
|
||||
)
|
||||
)
|
||||
</script>
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<link rel="stylesheet" type="text/css" href="css/main.css" />
|
||||
</head>
|
||||
<body>
|
||||
<!-- Example 1 -->
|
||||
<div id="ex1" class="example">
|
||||
<h2>Example 1</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex1-button" on-click='{{ #(ex1) }}'>Click me</button>
|
||||
</td>
|
||||
<td id="ex1-display" class="display">
|
||||
<div id="ex1-messages">
|
||||
<loop-tpl bindings='{{ [x ex1-content] }}'>
|
||||
<p><text>~{x}</text></p>
|
||||
</loop-tpl>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 2 -->
|
||||
<div id="ex2" class="example">
|
||||
<h2>Example 2</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex2-button" on-click='{{ #(ex2) }}'>Click me</button>
|
||||
</td>
|
||||
<td id="ex2-display" class="display">
|
||||
<div id="ex2-messages">
|
||||
<loop-tpl bindings='{{ [x ex2-content] }}'>
|
||||
<p><text>~{x}</text></p>
|
||||
</loop-tpl>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 3 -->
|
||||
<div id="ex3" class="example">
|
||||
<h2>Example 3</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex3-button-a" on-click='{{ #(ex3a) }}'>Button A</button>
|
||||
<button id="ex3-button-b" on-click='{{ #(ex3b) }}'>Button B</button>
|
||||
</td>
|
||||
<td id="ex3-display" class="display">
|
||||
<div id="ex3-messages">
|
||||
<loop-tpl bindings='{{ [x ex3-content] }}'>
|
||||
<p><text>~{x}</text></p>
|
||||
</loop-tpl>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 4 -->
|
||||
<div id="ex4" class="example">
|
||||
<h2>Example 4</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex4-button-a">Go!</button>
|
||||
</td>
|
||||
<td id="ex4-display" class="display">
|
||||
<div id="ex4-messages"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 5 -->
|
||||
<div id="ex5" class="example">
|
||||
<h2>Example 5</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex5-button">Go!</button>
|
||||
</td>
|
||||
<td id="ex5-display" class="display">
|
||||
<div id="ex5-messages"></div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 6 -->
|
||||
<div id="ex6" class="example" on-mousemove='{{ #(ex6 %) }}' >
|
||||
<h2>Example 6</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex6-button" do-text='{{ ex6-button-name }}' on-click='{{ #(ex6-toggle)}}' ></button>
|
||||
</td>
|
||||
<td id="ex6-display" class="display">
|
||||
<div class="scrolling">
|
||||
<div id="ex6-messages">
|
||||
<loop-tpl bindings='{{ [x ex6-content] }}'>
|
||||
<p><text>~{x}</text></p>
|
||||
</loop-tpl>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 7 -->
|
||||
<div id="ex7" class="example" on-mousemove='{{ #(ex7 %) }}'>
|
||||
<h2>Example 7</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex7-button" do-text='{{ ex7-button-name }}' on-click='{{ #(ex7-toggle)}}'></button>
|
||||
</td>
|
||||
<td id="ex7-display" class="display">
|
||||
<div class="scrolling">
|
||||
<div id="ex7-messages">
|
||||
<loop-tpl bindings='{{ [x ex7-content] }}'>
|
||||
<p><text>~{x}</text></p>
|
||||
</loop-tpl>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 8 -->
|
||||
<div id="ex8" class="example">
|
||||
<h2>Example 8</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex8-button" on-click='{{ #(ex8) }}'>Click me!</button>
|
||||
</td>
|
||||
<td id="ex8-display" class="display card">
|
||||
<div class="scrolling">
|
||||
<div id="ex8-messages">
|
||||
<loop-tpl bindings='{{ [x ex8-content] }}'>
|
||||
<p><text>~{x}</text></p>
|
||||
</loop-tpl>
|
||||
</div>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 9 -->
|
||||
<div id="ex9" class="example">
|
||||
<h2>Example 9</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex9-button-prev" on-click='{{ #(ex9-prev) }}' do-class='{{ (cell= {:disabled (= ex9-index 0)})}}'>Previous</button>
|
||||
<button id="ex9-button-next" on-click='{{ #(ex9-next) }}' do-class='{{ (cell= {:disabled (= ex9-index (dec (count ex9-animals)))}) }}'>Next</button>
|
||||
</td>
|
||||
<td id="ex9-card" class="display card" do-text='{{ ex9-card }}'></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<!-- Example 10 -->
|
||||
<div id="ex10" class="example" on-keydown='{{ #(ex10-keys %) }}'>
|
||||
<h2>Example 10</h2>
|
||||
<table>
|
||||
<tr>
|
||||
<td class="left">
|
||||
<button id="ex10-button-start-stop" do-text='{{ ex10-button-name}}' on-click='{{ #(ex10) }}'></button>
|
||||
<button id="ex10-button-prev" on-click='{{ #(ex10-nav :prev) }}'
|
||||
do-class='{{ (cell= {:disabled (not= ex10-button-name "STOP!")}) }}'>Previous
|
||||
</button>
|
||||
<button id="ex10-button-next" on-click='{{ #(ex10-nav :next) }}' do-class='{{ (cell= {:disabled (not= ex10-button-name "STOP!")}) }}'>Next</button>
|
||||
</td>
|
||||
<td id="ex10-card" class="display card" do-text='{{ ex10-card }}'></td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
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;
|
||||
71
samples/INI/MouseKeyboard.pro
Normal file
71
samples/INI/MouseKeyboard.pro
Normal file
@@ -0,0 +1,71 @@
|
||||
update=Sun 15 Feb 2015 01:10:10 PM EST
|
||||
last_client=eeschema
|
||||
[pcbnew]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
LastNetListRead=
|
||||
UseCmpFile=1
|
||||
PadDrill=0.6
|
||||
PadDrillOvalY=0.6
|
||||
PadSizeH=1.5
|
||||
PadSizeV=1.5
|
||||
PcbTextSizeV=1.5
|
||||
PcbTextSizeH=1.5
|
||||
PcbTextThickness=0.3
|
||||
ModuleTextSizeV=1
|
||||
ModuleTextSizeH=1
|
||||
ModuleTextSizeThickness=0.15
|
||||
SolderMaskClearance=0
|
||||
SolderMaskMinWidth=0
|
||||
DrawSegmentWidth=0.2
|
||||
BoardOutlineThickness=0.09999999999999999
|
||||
ModuleOutlineThickness=0.15
|
||||
[pcbnew/libraries]
|
||||
LibDir=
|
||||
[general]
|
||||
version=1
|
||||
[eeschema]
|
||||
version=1
|
||||
PageLayoutDescrFile=
|
||||
SubpartIdSeparator=0
|
||||
SubpartFirstId=65
|
||||
LibDir=/home/hschmale/KiCad/LibMods-3rdParty
|
||||
NetFmtName=
|
||||
RptD_X=0
|
||||
RptD_Y=100
|
||||
RptLab=1
|
||||
LabSize=60
|
||||
[eeschema/libraries]
|
||||
LibName1=power
|
||||
LibName2=device
|
||||
LibName3=transistors
|
||||
LibName4=conn
|
||||
LibName5=linear
|
||||
LibName6=regul
|
||||
LibName7=74xx
|
||||
LibName8=cmos4000
|
||||
LibName9=adc-dac
|
||||
LibName10=memory
|
||||
LibName11=xilinx
|
||||
LibName12=special
|
||||
LibName13=microcontrollers
|
||||
LibName14=dsp
|
||||
LibName15=microchip
|
||||
LibName16=analog_switches
|
||||
LibName17=motorola
|
||||
LibName18=texas
|
||||
LibName19=intel
|
||||
LibName20=audio
|
||||
LibName21=interface
|
||||
LibName22=digital-audio
|
||||
LibName23=philips
|
||||
LibName24=display
|
||||
LibName25=cypress
|
||||
LibName26=siliconi
|
||||
LibName27=opto
|
||||
LibName28=atmel
|
||||
LibName29=contrib
|
||||
LibName30=valves
|
||||
LibName31=arduino_shieldsNCL
|
||||
LibName32=con-usb-2
|
||||
LibName33=2axispotwselect
|
||||
69
samples/Inno Setup/expat.iss
Normal file
69
samples/Inno Setup/expat.iss
Normal file
@@ -0,0 +1,69 @@
|
||||
; Basic setup script for the Inno Setup installer builder. For more
|
||||
; information on the free installer builder, see www.jrsoftware.org.
|
||||
;
|
||||
; This script was contributed by Tim Peters.
|
||||
; It was designed for Inno Setup 2.0.19 but works with later versions as well.
|
||||
|
||||
[Setup]
|
||||
AppName=Expat
|
||||
AppId=expat
|
||||
AppVersion=2.1.0
|
||||
AppVerName=Expat 2.1.0
|
||||
AppCopyright=Copyright 1998-2012 Thai Open Source Software Center, Clark Cooper, and the Expat maintainers
|
||||
AppPublisher=The Expat Developers
|
||||
AppPublisherURL=http://www.libexpat.org/
|
||||
AppSupportURL=http://www.libexpat.org/
|
||||
AppUpdatesURL=http://www.libexpat.org/
|
||||
UninstallDisplayName=Expat XML Parser 2.1.0
|
||||
VersionInfoVersion=2.1.0
|
||||
|
||||
DefaultDirName={pf}\Expat 2.1.0
|
||||
UninstallFilesDir={app}\Uninstall
|
||||
|
||||
Compression=lzma
|
||||
SolidCompression=yes
|
||||
SourceDir=..
|
||||
OutputDir=win32
|
||||
DisableStartupPrompt=yes
|
||||
AllowNoIcons=yes
|
||||
DisableProgramGroupPage=yes
|
||||
DisableReadyPage=yes
|
||||
|
||||
[Files]
|
||||
Flags: ignoreversion; Source: win32\bin\Release\xmlwf.exe; DestDir: "{app}\Bin"
|
||||
Flags: ignoreversion; Source: win32\MANIFEST.txt; DestDir: "{app}"
|
||||
Flags: ignoreversion; Source: Changes; DestDir: "{app}"; DestName: Changes.txt
|
||||
Flags: ignoreversion; Source: COPYING; DestDir: "{app}"; DestName: COPYING.txt
|
||||
Flags: ignoreversion; Source: README; DestDir: "{app}"; DestName: README.txt
|
||||
Flags: ignoreversion; Source: doc\*.html; DestDir: "{app}\Doc"
|
||||
Flags: ignoreversion; Source: doc\*.css; DestDir: "{app}\Doc"
|
||||
Flags: ignoreversion; Source: doc\*.png; DestDir: "{app}\Doc"
|
||||
Flags: ignoreversion; Source: win32\bin\Release\*.dll; DestDir: "{app}\Bin"
|
||||
Flags: ignoreversion; Source: win32\bin\Release\*.lib; DestDir: "{app}\Bin"
|
||||
Flags: ignoreversion; Source: expat.dsw; DestDir: "{app}\Source"
|
||||
Flags: ignoreversion; Source: win32\README.txt; DestDir: "{app}\Source"
|
||||
Flags: ignoreversion; Source: bcb5\*.bp*; DestDir: "{app}\Source\bcb5"
|
||||
Flags: ignoreversion; Source: bcb5\*.mak; DestDir: "{app}\Source\bcb5"
|
||||
Flags: ignoreversion; Source: bcb5\*.def; DestDir: "{app}\Source\bcb5"
|
||||
Flags: ignoreversion; Source: bcb5\*.txt; DestDir: "{app}\Source\bcb5"
|
||||
Flags: ignoreversion; Source: bcb5\*.bat; DestDir: "{app}\Source\bcb5"
|
||||
Flags: ignoreversion; Source: lib\*.c; DestDir: "{app}\Source\lib"
|
||||
Flags: ignoreversion; Source: lib\*.h; DestDir: "{app}\Source\lib"
|
||||
Flags: ignoreversion; Source: lib\*.def; DestDir: "{app}\Source\lib"
|
||||
Flags: ignoreversion; Source: lib\*.dsp; DestDir: "{app}\Source\lib"
|
||||
Flags: ignoreversion; Source: examples\*.c; DestDir: "{app}\Source\examples"
|
||||
Flags: ignoreversion; Source: examples\*.dsp; DestDir: "{app}\Source\examples"
|
||||
Flags: ignoreversion; Source: tests\*.c; DestDir: "{app}\Source\tests"
|
||||
Flags: ignoreversion; Source: tests\*.cpp; DestDir: "{app}\Source\tests"
|
||||
Flags: ignoreversion; Source: tests\*.h; DestDir: "{app}\Source\tests"
|
||||
Flags: ignoreversion; Source: tests\README.txt; DestDir: "{app}\Source\tests"
|
||||
Flags: ignoreversion; Source: tests\benchmark\*.c; DestDir: "{app}\Source\tests\benchmark"
|
||||
Flags: ignoreversion; Source: tests\benchmark\*.ds*; DestDir: "{app}\Source\tests\benchmark"
|
||||
Flags: ignoreversion; Source: tests\benchmark\README.txt; DestDir: "{app}\Source\tests\benchmark"
|
||||
Flags: ignoreversion; Source: xmlwf\*.c*; DestDir: "{app}\Source\xmlwf"
|
||||
Flags: ignoreversion; Source: xmlwf\*.h; DestDir: "{app}\Source\xmlwf"
|
||||
Flags: ignoreversion; Source: xmlwf\*.dsp; DestDir: "{app}\Source\xmlwf"
|
||||
|
||||
[Messages]
|
||||
WelcomeLabel1=Welcome to the Expat XML Parser Setup Wizard
|
||||
WelcomeLabel2=This will install [name/ver] on your computer.%n%nExpat is an XML parser with a C-language API, and is primarily made available to allow developers to build applications which use XML using a portable API and fast implementation.%n%nIt is strongly recommended that you close all other applications you have running before continuing. This will help prevent any conflicts during the installation process.
|
||||
73
samples/J/stwij.ijs
Normal file
73
samples/J/stwij.ijs
Normal file
@@ -0,0 +1,73 @@
|
||||
NB. From "Continuing to write in J".
|
||||
NB. See http://www.jsoftware.com/help/jforc/continuing_to_write_in_j.htm
|
||||
|
||||
empno=: 316 317 319 320
|
||||
payrate=: 60 42 44 54
|
||||
billrate=: 120 90 90 108
|
||||
clientlist=: 10011 10012 10025
|
||||
emp_client=: 10012 10025 10012 10025
|
||||
hoursworked=: 4 31 $ 8 0 3 10 9 8 8 9 4 0 8 7 10 10 12 9 0 6 8 9 9 9 0 0 10 11 9 7 10 2 0 8 0 0 9 9 8 9 10 0 0 8 8 10 7 10 0 0 7 8 9 8 9 0 4 9 8 9 8 9 0 0 5 0 0 8 9 9 9 9 0 0 8 7 0 0 9 0 2 10 10 9 11 8 0 0 8 9 10 8 9 0 0 9 0 0 9 10 8 6 6 8 0 9 8 10 6 9 7 0 6 8 8 8 9 0 5 8 9 8 8 12 0 0
|
||||
|
||||
NB. Finds the number of hours each employee worked in the given month.
|
||||
emphours=: 3 : '+/"1 hoursworked'
|
||||
|
||||
NB. Determines the wages earned by each employee in the given month.
|
||||
empearnings=: 3 : 'payrate * +/"1 hoursworked'
|
||||
|
||||
NB. Determines the profit brought in by each employee.
|
||||
empprofit=: 3 : 0
|
||||
(billrate - payrate) * +/"1 hoursworked
|
||||
)
|
||||
|
||||
NB. Returns the amount to bill a given client.
|
||||
billclient=: 3 : 0
|
||||
mask=. emp_client = y
|
||||
+/ (mask # billrate) * +/"1 mask # hoursworked
|
||||
)
|
||||
|
||||
NB. Finds for each day of the month the employee who billed the most hours.
|
||||
dailydrudge=: 3 : 0
|
||||
((|: hoursworked) i."1 0 >./ hoursworked) { empno
|
||||
)
|
||||
|
||||
NB. Returns the employees, in descending order of the profit brought in by each.
|
||||
producers=: 3 : 'empno \: empprofit 0'
|
||||
|
||||
NB. Returns the clients, in descending order of the profit generated by each.
|
||||
custbyprofit=: 3 : 0
|
||||
clientlist \: +/ (clientlist ="1 0 emp_client) * empprofit 0
|
||||
)
|
||||
|
||||
NB. Calculates withholding tax on each employee's earnings.
|
||||
renderuntocaesar=: 3 : 0
|
||||
bktmin=. 0 6000 10000 20000 NB. Four brackets, 0..6000..10000..20000.._
|
||||
bktrate=. 0.05 0.10 0.20 0.30
|
||||
bktearns=. 0 >. ((1 |.!._ bktmin) <."1 0 empearnings'') -"1 bktmin
|
||||
+/"1 bktrate *"1 bktearns
|
||||
)
|
||||
|
||||
NB. Main
|
||||
|
||||
echo 'Problem 1'
|
||||
echo emphours''
|
||||
|
||||
echo 'Problem 2'
|
||||
echo empearnings''
|
||||
|
||||
echo 'Problem 3'
|
||||
echo empprofit''
|
||||
|
||||
echo 'Problem 4'
|
||||
echo billclient 10025
|
||||
|
||||
echo 'Problem 5'
|
||||
echo dailydrudge''
|
||||
|
||||
echo 'Problem 6'
|
||||
echo producers''
|
||||
|
||||
echo 'Problem 7'
|
||||
echo custbyprofit''
|
||||
|
||||
echo 'Problem 8'
|
||||
echo 0j2 ": renderuntocaesar''
|
||||
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); }
|
||||
396
samples/Java/gen-java-linguist-thrift.java
Normal file
396
samples/Java/gen-java-linguist-thrift.java
Normal file
@@ -0,0 +1,396 @@
|
||||
/**
|
||||
* Autogenerated by Thrift Compiler (1.0.0-dev)
|
||||
*
|
||||
* DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||
* @generated
|
||||
*/
|
||||
import org.apache.thrift.scheme.IScheme;
|
||||
import org.apache.thrift.scheme.SchemeFactory;
|
||||
import org.apache.thrift.scheme.StandardScheme;
|
||||
|
||||
import org.apache.thrift.scheme.TupleScheme;
|
||||
import org.apache.thrift.protocol.TTupleProtocol;
|
||||
import org.apache.thrift.protocol.TProtocolException;
|
||||
import org.apache.thrift.EncodingUtils;
|
||||
import org.apache.thrift.TException;
|
||||
import org.apache.thrift.async.AsyncMethodCallback;
|
||||
import org.apache.thrift.server.AbstractNonblockingServer.*;
|
||||
import java.util.List;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Map;
|
||||
import java.util.HashMap;
|
||||
import java.util.EnumMap;
|
||||
import java.util.Set;
|
||||
import java.util.HashSet;
|
||||
import java.util.EnumSet;
|
||||
import java.util.Collections;
|
||||
import java.util.BitSet;
|
||||
import java.nio.ByteBuffer;
|
||||
import java.util.Arrays;
|
||||
import javax.annotation.Generated;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
@SuppressWarnings({"cast", "rawtypes", "serial", "unchecked"})
|
||||
@Generated(value = "Autogenerated by Thrift Compiler (1.0.0-dev)", date = "2015-5-12")
|
||||
public class PullRequest implements org.apache.thrift.TBase<PullRequest, PullRequest._Fields>, java.io.Serializable, Cloneable, Comparable<PullRequest> {
|
||||
private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("PullRequest");
|
||||
|
||||
private static final org.apache.thrift.protocol.TField TITLE_FIELD_DESC = new org.apache.thrift.protocol.TField("title", org.apache.thrift.protocol.TType.STRING, (short)1);
|
||||
|
||||
private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
|
||||
static {
|
||||
schemes.put(StandardScheme.class, new PullRequestStandardSchemeFactory());
|
||||
schemes.put(TupleScheme.class, new PullRequestTupleSchemeFactory());
|
||||
}
|
||||
|
||||
public String title; // required
|
||||
|
||||
/** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
|
||||
public enum _Fields implements org.apache.thrift.TFieldIdEnum {
|
||||
TITLE((short)1, "title");
|
||||
|
||||
private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
|
||||
|
||||
static {
|
||||
for (_Fields field : EnumSet.allOf(_Fields.class)) {
|
||||
byName.put(field.getFieldName(), field);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the _Fields constant that matches fieldId, or null if its not found.
|
||||
*/
|
||||
public static _Fields findByThriftId(int fieldId) {
|
||||
switch(fieldId) {
|
||||
case 1: // TITLE
|
||||
return TITLE;
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the _Fields constant that matches fieldId, throwing an exception
|
||||
* if it is not found.
|
||||
*/
|
||||
public static _Fields findByThriftIdOrThrow(int fieldId) {
|
||||
_Fields fields = findByThriftId(fieldId);
|
||||
if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!");
|
||||
return fields;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the _Fields constant that matches name, or null if its not found.
|
||||
*/
|
||||
public static _Fields findByName(String name) {
|
||||
return byName.get(name);
|
||||
}
|
||||
|
||||
private final short _thriftId;
|
||||
private final String _fieldName;
|
||||
|
||||
_Fields(short thriftId, String fieldName) {
|
||||
_thriftId = thriftId;
|
||||
_fieldName = fieldName;
|
||||
}
|
||||
|
||||
public short getThriftFieldId() {
|
||||
return _thriftId;
|
||||
}
|
||||
|
||||
public String getFieldName() {
|
||||
return _fieldName;
|
||||
}
|
||||
}
|
||||
|
||||
// isset id assignments
|
||||
public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
|
||||
static {
|
||||
Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
|
||||
tmpMap.put(_Fields.TITLE, new org.apache.thrift.meta_data.FieldMetaData("title", org.apache.thrift.TFieldRequirementType.DEFAULT,
|
||||
new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
|
||||
metaDataMap = Collections.unmodifiableMap(tmpMap);
|
||||
org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PullRequest.class, metaDataMap);
|
||||
}
|
||||
|
||||
public PullRequest() {
|
||||
}
|
||||
|
||||
public PullRequest(
|
||||
String title)
|
||||
{
|
||||
this();
|
||||
this.title = title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Performs a deep copy on <i>other</i>.
|
||||
*/
|
||||
public PullRequest(PullRequest other) {
|
||||
if (other.isSetTitle()) {
|
||||
this.title = other.title;
|
||||
}
|
||||
}
|
||||
|
||||
public PullRequest deepCopy() {
|
||||
return new PullRequest(this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clear() {
|
||||
this.title = null;
|
||||
}
|
||||
|
||||
public String getTitle() {
|
||||
return this.title;
|
||||
}
|
||||
|
||||
public PullRequest setTitle(String title) {
|
||||
this.title = title;
|
||||
return this;
|
||||
}
|
||||
|
||||
public void unsetTitle() {
|
||||
this.title = null;
|
||||
}
|
||||
|
||||
/** Returns true if field title is set (has been assigned a value) and false otherwise */
|
||||
public boolean isSetTitle() {
|
||||
return this.title != null;
|
||||
}
|
||||
|
||||
public void setTitleIsSet(boolean value) {
|
||||
if (!value) {
|
||||
this.title = null;
|
||||
}
|
||||
}
|
||||
|
||||
public void setFieldValue(_Fields field, Object value) {
|
||||
switch (field) {
|
||||
case TITLE:
|
||||
if (value == null) {
|
||||
unsetTitle();
|
||||
} else {
|
||||
setTitle((String)value);
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public Object getFieldValue(_Fields field) {
|
||||
switch (field) {
|
||||
case TITLE:
|
||||
return getTitle();
|
||||
|
||||
}
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
/** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */
|
||||
public boolean isSet(_Fields field) {
|
||||
if (field == null) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
|
||||
switch (field) {
|
||||
case TITLE:
|
||||
return isSetTitle();
|
||||
}
|
||||
throw new IllegalStateException();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean equals(Object that) {
|
||||
if (that == null)
|
||||
return false;
|
||||
if (that instanceof PullRequest)
|
||||
return this.equals((PullRequest)that);
|
||||
return false;
|
||||
}
|
||||
|
||||
public boolean equals(PullRequest that) {
|
||||
if (that == null)
|
||||
return false;
|
||||
|
||||
boolean this_present_title = true && this.isSetTitle();
|
||||
boolean that_present_title = true && that.isSetTitle();
|
||||
if (this_present_title || that_present_title) {
|
||||
if (!(this_present_title && that_present_title))
|
||||
return false;
|
||||
if (!this.title.equals(that.title))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int hashCode() {
|
||||
List<Object> list = new ArrayList<Object>();
|
||||
|
||||
boolean present_title = true && (isSetTitle());
|
||||
list.add(present_title);
|
||||
if (present_title)
|
||||
list.add(title);
|
||||
|
||||
return list.hashCode();
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(PullRequest other) {
|
||||
if (!getClass().equals(other.getClass())) {
|
||||
return getClass().getName().compareTo(other.getClass().getName());
|
||||
}
|
||||
|
||||
int lastComparison = 0;
|
||||
|
||||
lastComparison = Boolean.valueOf(isSetTitle()).compareTo(other.isSetTitle());
|
||||
if (lastComparison != 0) {
|
||||
return lastComparison;
|
||||
}
|
||||
if (isSetTitle()) {
|
||||
lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.title, other.title);
|
||||
if (lastComparison != 0) {
|
||||
return lastComparison;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public _Fields fieldForId(int fieldId) {
|
||||
return _Fields.findByThriftId(fieldId);
|
||||
}
|
||||
|
||||
public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException {
|
||||
schemes.get(iprot.getScheme()).getScheme().read(iprot, this);
|
||||
}
|
||||
|
||||
public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException {
|
||||
schemes.get(oprot.getScheme()).getScheme().write(oprot, this);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
StringBuilder sb = new StringBuilder("PullRequest(");
|
||||
boolean first = true;
|
||||
|
||||
sb.append("title:");
|
||||
if (this.title == null) {
|
||||
sb.append("null");
|
||||
} else {
|
||||
sb.append(this.title);
|
||||
}
|
||||
first = false;
|
||||
sb.append(")");
|
||||
return sb.toString();
|
||||
}
|
||||
|
||||
public void validate() throws org.apache.thrift.TException {
|
||||
// check for required fields
|
||||
// check for sub-struct validity
|
||||
}
|
||||
|
||||
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
|
||||
try {
|
||||
write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out)));
|
||||
} catch (org.apache.thrift.TException te) {
|
||||
throw new java.io.IOException(te);
|
||||
}
|
||||
}
|
||||
|
||||
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException {
|
||||
try {
|
||||
read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in)));
|
||||
} catch (org.apache.thrift.TException te) {
|
||||
throw new java.io.IOException(te);
|
||||
}
|
||||
}
|
||||
|
||||
private static class PullRequestStandardSchemeFactory implements SchemeFactory {
|
||||
public PullRequestStandardScheme getScheme() {
|
||||
return new PullRequestStandardScheme();
|
||||
}
|
||||
}
|
||||
|
||||
private static class PullRequestStandardScheme extends StandardScheme<PullRequest> {
|
||||
|
||||
public void read(org.apache.thrift.protocol.TProtocol iprot, PullRequest struct) throws org.apache.thrift.TException {
|
||||
org.apache.thrift.protocol.TField schemeField;
|
||||
iprot.readStructBegin();
|
||||
while (true)
|
||||
{
|
||||
schemeField = iprot.readFieldBegin();
|
||||
if (schemeField.type == org.apache.thrift.protocol.TType.STOP) {
|
||||
break;
|
||||
}
|
||||
switch (schemeField.id) {
|
||||
case 1: // TITLE
|
||||
if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
|
||||
struct.title = iprot.readString();
|
||||
struct.setTitleIsSet(true);
|
||||
} else {
|
||||
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
|
||||
}
|
||||
iprot.readFieldEnd();
|
||||
}
|
||||
iprot.readStructEnd();
|
||||
|
||||
// check for required fields of primitive type, which can't be checked in the validate method
|
||||
struct.validate();
|
||||
}
|
||||
|
||||
public void write(org.apache.thrift.protocol.TProtocol oprot, PullRequest struct) throws org.apache.thrift.TException {
|
||||
struct.validate();
|
||||
|
||||
oprot.writeStructBegin(STRUCT_DESC);
|
||||
if (struct.title != null) {
|
||||
oprot.writeFieldBegin(TITLE_FIELD_DESC);
|
||||
oprot.writeString(struct.title);
|
||||
oprot.writeFieldEnd();
|
||||
}
|
||||
oprot.writeFieldStop();
|
||||
oprot.writeStructEnd();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static class PullRequestTupleSchemeFactory implements SchemeFactory {
|
||||
public PullRequestTupleScheme getScheme() {
|
||||
return new PullRequestTupleScheme();
|
||||
}
|
||||
}
|
||||
|
||||
private static class PullRequestTupleScheme extends TupleScheme<PullRequest> {
|
||||
|
||||
@Override
|
||||
public void write(org.apache.thrift.protocol.TProtocol prot, PullRequest struct) throws org.apache.thrift.TException {
|
||||
TTupleProtocol oprot = (TTupleProtocol) prot;
|
||||
BitSet optionals = new BitSet();
|
||||
if (struct.isSetTitle()) {
|
||||
optionals.set(0);
|
||||
}
|
||||
oprot.writeBitSet(optionals, 1);
|
||||
if (struct.isSetTitle()) {
|
||||
oprot.writeString(struct.title);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void read(org.apache.thrift.protocol.TProtocol prot, PullRequest struct) throws org.apache.thrift.TException {
|
||||
TTupleProtocol iprot = (TTupleProtocol) prot;
|
||||
BitSet incoming = iprot.readBitSet(1);
|
||||
if (incoming.get(0)) {
|
||||
struct.title = iprot.readString();
|
||||
struct.setTitleIsSet(true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
60
samples/JavaScript/gen-js-linguist-thrift.js
Normal file
60
samples/JavaScript/gen-js-linguist-thrift.js
Normal file
@@ -0,0 +1,60 @@
|
||||
//
|
||||
// Autogenerated by Thrift Compiler (1.0.0-dev)
|
||||
//
|
||||
// DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING
|
||||
//
|
||||
|
||||
|
||||
PullRequest = function(args) {
|
||||
this.title = null;
|
||||
if (args) {
|
||||
if (args.title !== undefined) {
|
||||
this.title = args.title;
|
||||
}
|
||||
}
|
||||
};
|
||||
PullRequest.prototype = {};
|
||||
PullRequest.prototype.read = function(input) {
|
||||
input.readStructBegin();
|
||||
while (true)
|
||||
{
|
||||
var ret = input.readFieldBegin();
|
||||
var fname = ret.fname;
|
||||
var ftype = ret.ftype;
|
||||
var fid = ret.fid;
|
||||
if (ftype == Thrift.Type.STOP) {
|
||||
break;
|
||||
}
|
||||
switch (fid)
|
||||
{
|
||||
case 1:
|
||||
if (ftype == Thrift.Type.STRING) {
|
||||
this.title = input.readString().value;
|
||||
} else {
|
||||
input.skip(ftype);
|
||||
}
|
||||
break;
|
||||
case 0:
|
||||
input.skip(ftype);
|
||||
break;
|
||||
default:
|
||||
input.skip(ftype);
|
||||
}
|
||||
input.readFieldEnd();
|
||||
}
|
||||
input.readStructEnd();
|
||||
return;
|
||||
};
|
||||
|
||||
PullRequest.prototype.write = function(output) {
|
||||
output.writeStructBegin('PullRequest');
|
||||
if (this.title !== null && this.title !== undefined) {
|
||||
output.writeFieldBegin('title', Thrift.Type.STRING, 1);
|
||||
output.writeString(this.title);
|
||||
output.writeFieldEnd();
|
||||
}
|
||||
output.writeFieldStop();
|
||||
output.writeStructEnd();
|
||||
return;
|
||||
};
|
||||
|
||||
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
|
||||
75
samples/Lean/binary.lean
Normal file
75
samples/Lean/binary.lean
Normal file
@@ -0,0 +1,75 @@
|
||||
/-
|
||||
Copyright (c) 2014 Microsoft Corporation. All rights reserved.
|
||||
Released under Apache 2.0 license as described in the file LICENSE.
|
||||
|
||||
Module: algebra.binary
|
||||
Authors: Leonardo de Moura, Jeremy Avigad
|
||||
|
||||
General properties of binary operations.
|
||||
-/
|
||||
|
||||
import logic.eq
|
||||
open eq.ops
|
||||
|
||||
namespace binary
|
||||
section
|
||||
variable {A : Type}
|
||||
variables (op₁ : A → A → A) (inv : A → A) (one : A)
|
||||
|
||||
local notation a * b := op₁ a b
|
||||
local notation a ⁻¹ := inv a
|
||||
local notation 1 := one
|
||||
|
||||
definition commutative := ∀a b, a * b = b * a
|
||||
definition associative := ∀a b c, (a * b) * c = a * (b * c)
|
||||
definition left_identity := ∀a, 1 * a = a
|
||||
definition right_identity := ∀a, a * 1 = a
|
||||
definition left_inverse := ∀a, a⁻¹ * a = 1
|
||||
definition right_inverse := ∀a, a * a⁻¹ = 1
|
||||
definition left_cancelative := ∀a b c, a * b = a * c → b = c
|
||||
definition right_cancelative := ∀a b c, a * b = c * b → a = c
|
||||
|
||||
definition inv_op_cancel_left := ∀a b, a⁻¹ * (a * b) = b
|
||||
definition op_inv_cancel_left := ∀a b, a * (a⁻¹ * b) = b
|
||||
definition inv_op_cancel_right := ∀a b, a * b⁻¹ * b = a
|
||||
definition op_inv_cancel_right := ∀a b, a * b * b⁻¹ = a
|
||||
|
||||
variable (op₂ : A → A → A)
|
||||
|
||||
local notation a + b := op₂ a b
|
||||
|
||||
definition left_distributive := ∀a b c, a * (b + c) = a * b + a * c
|
||||
definition right_distributive := ∀a b c, (a + b) * c = a * c + b * c
|
||||
end
|
||||
|
||||
context
|
||||
variable {A : Type}
|
||||
variable {f : A → A → A}
|
||||
variable H_comm : commutative f
|
||||
variable H_assoc : associative f
|
||||
infixl `*` := f
|
||||
theorem left_comm : ∀a b c, a*(b*c) = b*(a*c) :=
|
||||
take a b c, calc
|
||||
a*(b*c) = (a*b)*c : H_assoc
|
||||
... = (b*a)*c : H_comm
|
||||
... = b*(a*c) : H_assoc
|
||||
|
||||
theorem right_comm : ∀a b c, (a*b)*c = (a*c)*b :=
|
||||
take a b c, calc
|
||||
(a*b)*c = a*(b*c) : H_assoc
|
||||
... = a*(c*b) : H_comm
|
||||
... = (a*c)*b : H_assoc
|
||||
end
|
||||
|
||||
context
|
||||
variable {A : Type}
|
||||
variable {f : A → A → A}
|
||||
variable H_assoc : associative f
|
||||
infixl `*` := f
|
||||
theorem assoc4helper (a b c d) : (a*b)*(c*d) = a*((b*c)*d) :=
|
||||
calc
|
||||
(a*b)*(c*d) = a*(b*(c*d)) : H_assoc
|
||||
... = a*((b*c)*d) : H_assoc
|
||||
end
|
||||
|
||||
end binary
|
||||
70
samples/Lean/set.hlean
Normal file
70
samples/Lean/set.hlean
Normal file
@@ -0,0 +1,70 @@
|
||||
-- Copyright (c) 2015 Jakob von Raumer. All rights reserved.
|
||||
-- Released under Apache 2.0 license as described in the file LICENSE.
|
||||
-- Authors: Jakob von Raumer
|
||||
-- Category of sets
|
||||
|
||||
import .basic types.pi trunc
|
||||
|
||||
open truncation sigma sigma.ops pi function eq morphism precategory
|
||||
open equiv
|
||||
|
||||
namespace precategory
|
||||
|
||||
universe variable l
|
||||
|
||||
definition set_precategory : precategory.{l+1 l} (Σ (A : Type.{l}), is_hset A) :=
|
||||
begin
|
||||
fapply precategory.mk.{l+1 l},
|
||||
intros, apply (a.1 → a_1.1),
|
||||
intros, apply trunc_pi, intros, apply b.2,
|
||||
intros, intro x, exact (a_1 (a_2 x)),
|
||||
intros, exact (λ (x : a.1), x),
|
||||
intros, apply funext.path_pi, intro x, apply idp,
|
||||
intros, apply funext.path_pi, intro x, apply idp,
|
||||
intros, apply funext.path_pi, intro x, apply idp,
|
||||
end
|
||||
|
||||
end precategory
|
||||
|
||||
namespace category
|
||||
|
||||
universe variable l
|
||||
local attribute precategory.set_precategory.{l+1 l} [instance]
|
||||
|
||||
definition set_category_equiv_iso (a b : (Σ (A : Type.{l}), is_hset A))
|
||||
: (a ≅ b) = (a.1 ≃ b.1) :=
|
||||
/-begin
|
||||
apply ua, fapply equiv.mk,
|
||||
intro H,
|
||||
apply (isomorphic.rec_on H), intros (H1, H2),
|
||||
apply (is_iso.rec_on H2), intros (H3, H4, H5),
|
||||
fapply equiv.mk,
|
||||
apply (isomorphic.rec_on H), intros (H1, H2),
|
||||
exact H1,
|
||||
fapply is_equiv.adjointify, exact H3,
|
||||
exact sorry,
|
||||
exact sorry,
|
||||
end-/ sorry
|
||||
|
||||
definition set_category : category.{l+1 l} (Σ (A : Type.{l}), is_hset A) :=
|
||||
/-begin
|
||||
assert (C : precategory.{l+1 l} (Σ (A : Type.{l}), is_hset A)),
|
||||
apply precategory.set_precategory,
|
||||
apply category.mk,
|
||||
assert (p : (λ A B p, (set_category_equiv_iso A B) ▹ iso_of_path p) = (λ A B p, @equiv_path A.1 B.1 p)),
|
||||
apply is_equiv.adjointify,
|
||||
intros,
|
||||
apply (isomorphic.rec_on a_1), intros (iso', is_iso'),
|
||||
apply (is_iso.rec_on is_iso'), intros (f', f'sect, f'retr),
|
||||
fapply sigma.path,
|
||||
apply ua, fapply equiv.mk, exact iso',
|
||||
fapply is_equiv.adjointify,
|
||||
exact f',
|
||||
intros, apply (f'retr ▹ _),
|
||||
intros, apply (f'sect ▹ _),
|
||||
apply (@is_hprop.elim),
|
||||
apply is_trunc_is_hprop,
|
||||
intros,
|
||||
end -/ sorry
|
||||
|
||||
end category
|
||||
601
samples/Lex/zend_ini_scanner.l
Normal file
601
samples/Lex/zend_ini_scanner.l
Normal file
@@ -0,0 +1,601 @@
|
||||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
| Zend Engine |
|
||||
+----------------------------------------------------------------------+
|
||||
| Copyright (c) 1998-2012 Zend Technologies Ltd. (http://www.zend.com) |
|
||||
+----------------------------------------------------------------------+
|
||||
| This source file is subject to version 2.00 of the Zend license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
| http://www.zend.com/license/2_00.txt. |
|
||||
| If you did not receive a copy of the Zend license and are unable to |
|
||||
| obtain it through the world-wide-web, please send a note to |
|
||||
| license@zend.com so we can mail you a copy immediately. |
|
||||
+----------------------------------------------------------------------+
|
||||
| Authors: Zeev Suraski <zeev@zend.com> |
|
||||
| Jani Taskinen <jani@php.net> |
|
||||
| Marcus Boerger <helly@php.net> |
|
||||
| Nuno Lopes <nlopess@php.net> |
|
||||
| Scott MacVicar <scottmac@php.net> |
|
||||
+----------------------------------------------------------------------+
|
||||
*/
|
||||
|
||||
/* $Id$ */
|
||||
|
||||
#include <errno.h>
|
||||
#include "zend.h"
|
||||
#include "zend_globals.h"
|
||||
#include <zend_ini_parser.h>
|
||||
#include "zend_ini_scanner.h"
|
||||
|
||||
#if 0
|
||||
# define YYDEBUG(s, c) printf("state: %d char: %c\n", s, c)
|
||||
#else
|
||||
# define YYDEBUG(s, c)
|
||||
#endif
|
||||
|
||||
#include "zend_ini_scanner_defs.h"
|
||||
|
||||
#define YYCTYPE unsigned char
|
||||
/* allow the scanner to read one null byte after the end of the string (from ZEND_MMAP_AHEAD)
|
||||
* so that if will be able to terminate to match the current token (e.g. non-enclosed string) */
|
||||
#define YYFILL(n) { if (YYCURSOR > YYLIMIT) return 0; }
|
||||
#define YYCURSOR SCNG(yy_cursor)
|
||||
#define YYLIMIT SCNG(yy_limit)
|
||||
#define YYMARKER SCNG(yy_marker)
|
||||
|
||||
#define YYGETCONDITION() SCNG(yy_state)
|
||||
#define YYSETCONDITION(s) SCNG(yy_state) = s
|
||||
|
||||
#define STATE(name) yyc##name
|
||||
|
||||
/* emulate flex constructs */
|
||||
#define BEGIN(state) YYSETCONDITION(STATE(state))
|
||||
#define YYSTATE YYGETCONDITION()
|
||||
#define yytext ((char*)SCNG(yy_text))
|
||||
#define yyleng SCNG(yy_leng)
|
||||
#define yyless(x) do { YYCURSOR = (unsigned char*)yytext + x; \
|
||||
yyleng = (unsigned int)x; } while(0)
|
||||
|
||||
/* #define yymore() goto yymore_restart */
|
||||
|
||||
/* perform sanity check. If this message is triggered you should
|
||||
increase the ZEND_MMAP_AHEAD value in the zend_streams.h file */
|
||||
/*!max:re2c */
|
||||
#if ZEND_MMAP_AHEAD < (YYMAXFILL + 1)
|
||||
# error ZEND_MMAP_AHEAD should be greater than YYMAXFILL
|
||||
#endif
|
||||
|
||||
|
||||
/* How it works (for the core ini directives):
|
||||
* ===========================================
|
||||
*
|
||||
* 1. Scanner scans file for tokens and passes them to parser.
|
||||
* 2. Parser parses the tokens and passes the name/value pairs to the callback
|
||||
* function which stores them in the configuration hash table.
|
||||
* 3. Later REGISTER_INI_ENTRIES() is called which triggers the actual
|
||||
* registering of ini entries and uses zend_get_configuration_directive()
|
||||
* to fetch the previously stored name/value pair from configuration hash table
|
||||
* and registers the static ini entries which match the name to the value
|
||||
* into EG(ini_directives) hash table.
|
||||
* 4. PATH section entries are used per-request from down to top, each overriding
|
||||
* previous if one exists. zend_alter_ini_entry() is called for each entry.
|
||||
* Settings in PATH section are ZEND_INI_SYSTEM accessible and thus mimics the
|
||||
* php_admin_* directives used within Apache httpd.conf when PHP is compiled as
|
||||
* module for Apache.
|
||||
* 5. User defined ini files (like .htaccess for apache) are parsed for each request and
|
||||
* stored in separate hash defined by SAPI.
|
||||
*/
|
||||
|
||||
/* TODO: (ordered by importance :-)
|
||||
* ===============================================================================
|
||||
*
|
||||
* - Separate constant lookup totally from plain strings (using CONSTANT pattern)
|
||||
* - Add #if .. #else .. #endif and ==, !=, <, > , <=, >= operators
|
||||
* - Add #include "some.ini"
|
||||
* - Allow variables to refer to options also when using parse_ini_file()
|
||||
*
|
||||
*/
|
||||
|
||||
/* Globals Macros */
|
||||
#define SCNG INI_SCNG
|
||||
#ifdef ZTS
|
||||
ZEND_API ts_rsrc_id ini_scanner_globals_id;
|
||||
#else
|
||||
ZEND_API zend_ini_scanner_globals ini_scanner_globals;
|
||||
#endif
|
||||
|
||||
/* Eat leading whitespace */
|
||||
#define EAT_LEADING_WHITESPACE() \
|
||||
while (yytext[0]) { \
|
||||
if (yytext[0] == ' ' || yytext[0] == '\t') { \
|
||||
SCNG(yy_text)++; \
|
||||
yyleng--; \
|
||||
} else { \
|
||||
break; \
|
||||
} \
|
||||
}
|
||||
|
||||
/* Eat trailing whitespace + extra char */
|
||||
#define EAT_TRAILING_WHITESPACE_EX(ch) \
|
||||
while (yyleng > 0 && ( \
|
||||
(ch != 'X' && yytext[yyleng - 1] == ch) || \
|
||||
yytext[yyleng - 1] == '\n' || \
|
||||
yytext[yyleng - 1] == '\r' || \
|
||||
yytext[yyleng - 1] == '\t' || \
|
||||
yytext[yyleng - 1] == ' ') \
|
||||
) { \
|
||||
yyleng--; \
|
||||
}
|
||||
|
||||
/* Eat trailing whitespace */
|
||||
#define EAT_TRAILING_WHITESPACE() EAT_TRAILING_WHITESPACE_EX('X')
|
||||
|
||||
#define zend_ini_copy_value(retval, str, len) { \
|
||||
Z_STRVAL_P(retval) = zend_strndup(str, len); \
|
||||
Z_STRLEN_P(retval) = len; \
|
||||
Z_TYPE_P(retval) = IS_STRING; \
|
||||
}
|
||||
|
||||
#define RETURN_TOKEN(type, str, len) { \
|
||||
zend_ini_copy_value(ini_lval, str, len); \
|
||||
return type; \
|
||||
}
|
||||
|
||||
static void _yy_push_state(int new_state TSRMLS_DC)
|
||||
{
|
||||
zend_stack_push(&SCNG(state_stack), (void *) &YYGETCONDITION(), sizeof(int));
|
||||
YYSETCONDITION(new_state);
|
||||
}
|
||||
|
||||
#define yy_push_state(state_and_tsrm) _yy_push_state(yyc##state_and_tsrm)
|
||||
|
||||
static void yy_pop_state(TSRMLS_D)
|
||||
{
|
||||
int *stack_state;
|
||||
zend_stack_top(&SCNG(state_stack), (void **) &stack_state);
|
||||
YYSETCONDITION(*stack_state);
|
||||
zend_stack_del_top(&SCNG(state_stack));
|
||||
}
|
||||
|
||||
static void yy_scan_buffer(char *str, unsigned int len TSRMLS_DC)
|
||||
{
|
||||
YYCURSOR = (YYCTYPE*)str;
|
||||
SCNG(yy_start) = YYCURSOR;
|
||||
YYLIMIT = YYCURSOR + len;
|
||||
}
|
||||
|
||||
#define ini_filename SCNG(filename)
|
||||
|
||||
/* {{{ init_ini_scanner()
|
||||
*/
|
||||
static int init_ini_scanner(int scanner_mode, zend_file_handle *fh TSRMLS_DC)
|
||||
{
|
||||
/* Sanity check */
|
||||
if (scanner_mode != ZEND_INI_SCANNER_NORMAL && scanner_mode != ZEND_INI_SCANNER_RAW) {
|
||||
zend_error(E_WARNING, "Invalid scanner mode");
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
SCNG(lineno) = 1;
|
||||
SCNG(scanner_mode) = scanner_mode;
|
||||
SCNG(yy_in) = fh;
|
||||
|
||||
if (fh != NULL) {
|
||||
ini_filename = zend_strndup(fh->filename, strlen(fh->filename));
|
||||
} else {
|
||||
ini_filename = NULL;
|
||||
}
|
||||
|
||||
zend_stack_init(&SCNG(state_stack));
|
||||
BEGIN(INITIAL);
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ shutdown_ini_scanner()
|
||||
*/
|
||||
void shutdown_ini_scanner(TSRMLS_D)
|
||||
{
|
||||
zend_stack_destroy(&SCNG(state_stack));
|
||||
if (ini_filename) {
|
||||
free(ini_filename);
|
||||
}
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ zend_ini_scanner_get_lineno()
|
||||
*/
|
||||
int zend_ini_scanner_get_lineno(TSRMLS_D)
|
||||
{
|
||||
return SCNG(lineno);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ zend_ini_scanner_get_filename()
|
||||
*/
|
||||
char *zend_ini_scanner_get_filename(TSRMLS_D)
|
||||
{
|
||||
return ini_filename ? ini_filename : "Unknown";
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ zend_ini_open_file_for_scanning()
|
||||
*/
|
||||
int zend_ini_open_file_for_scanning(zend_file_handle *fh, int scanner_mode TSRMLS_DC)
|
||||
{
|
||||
char *buf;
|
||||
size_t size;
|
||||
|
||||
if (zend_stream_fixup(fh, &buf, &size TSRMLS_CC) == FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
if (init_ini_scanner(scanner_mode, fh TSRMLS_CC) == FAILURE) {
|
||||
zend_file_handle_dtor(fh TSRMLS_CC);
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
yy_scan_buffer(buf, size TSRMLS_CC);
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ zend_ini_prepare_string_for_scanning()
|
||||
*/
|
||||
int zend_ini_prepare_string_for_scanning(char *str, int scanner_mode TSRMLS_DC)
|
||||
{
|
||||
int len = strlen(str);
|
||||
|
||||
if (init_ini_scanner(scanner_mode, NULL TSRMLS_CC) == FAILURE) {
|
||||
return FAILURE;
|
||||
}
|
||||
|
||||
yy_scan_buffer(str, len TSRMLS_CC);
|
||||
|
||||
return SUCCESS;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ zend_ini_escape_string()
|
||||
*/
|
||||
static void zend_ini_escape_string(zval *lval, char *str, int len, char quote_type TSRMLS_DC)
|
||||
{
|
||||
register char *s, *t;
|
||||
char *end;
|
||||
|
||||
zend_ini_copy_value(lval, str, len);
|
||||
|
||||
/* convert escape sequences */
|
||||
s = t = Z_STRVAL_P(lval);
|
||||
end = s + Z_STRLEN_P(lval);
|
||||
|
||||
while (s < end) {
|
||||
if (*s == '\\') {
|
||||
s++;
|
||||
if (s >= end) {
|
||||
*t++ = '\\';
|
||||
continue;
|
||||
}
|
||||
switch (*s) {
|
||||
case '"':
|
||||
if (*s != quote_type) {
|
||||
*t++ = '\\';
|
||||
*t++ = *s;
|
||||
break;
|
||||
}
|
||||
case '\\':
|
||||
case '$':
|
||||
*t++ = *s;
|
||||
Z_STRLEN_P(lval)--;
|
||||
break;
|
||||
default:
|
||||
*t++ = '\\';
|
||||
*t++ = *s;
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
*t++ = *s;
|
||||
}
|
||||
if (*s == '\n' || (*s == '\r' && (*(s+1) != '\n'))) {
|
||||
SCNG(lineno)++;
|
||||
}
|
||||
s++;
|
||||
}
|
||||
*t = 0;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
int ini_lex(zval *ini_lval TSRMLS_DC)
|
||||
{
|
||||
restart:
|
||||
SCNG(yy_text) = YYCURSOR;
|
||||
|
||||
/* yymore_restart: */
|
||||
/* detect EOF */
|
||||
if (YYCURSOR >= YYLIMIT) {
|
||||
if (YYSTATE == STATE(ST_VALUE) || YYSTATE == STATE(ST_RAW)) {
|
||||
BEGIN(INITIAL);
|
||||
return END_OF_LINE;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Eat any UTF-8 BOM we find in the first 3 bytes */
|
||||
if (YYCURSOR == SCNG(yy_start) && YYCURSOR + 3 < YYLIMIT) {
|
||||
if (memcmp(YYCURSOR, "\xef\xbb\xbf", 3) == 0) {
|
||||
YYCURSOR += 3;
|
||||
goto restart;
|
||||
}
|
||||
}
|
||||
/*!re2c
|
||||
re2c:yyfill:check = 0;
|
||||
LNUM [0-9]+
|
||||
DNUM ([0-9]*[\.][0-9]+)|([0-9]+[\.][0-9]*)
|
||||
NUMBER [-]?{LNUM}|{DNUM}
|
||||
ANY_CHAR (.|[\n\t])
|
||||
NEWLINE ("\r"|"\n"|"\r\n")
|
||||
TABS_AND_SPACES [ \t]
|
||||
WHITESPACE [ \t]+
|
||||
CONSTANT [a-zA-Z_][a-zA-Z0-9_]*
|
||||
LABEL [^=\n\r\t;|&$~(){}!"\[]+
|
||||
TOKENS [:,.\[\]"'()|^&+-/*=%$!~<>?@{}]
|
||||
OPERATORS [&|~()!]
|
||||
DOLLAR_CURLY "${"
|
||||
|
||||
SECTION_RAW_CHARS [^\]\n\r]
|
||||
SINGLE_QUOTED_CHARS [^']
|
||||
RAW_VALUE_CHARS [^"\n\r;\000]
|
||||
|
||||
LITERAL_DOLLAR ("$"([^{\000]|("\\"{ANY_CHAR})))
|
||||
VALUE_CHARS ([^$= \t\n\r;&|~()!"'\000]|{LITERAL_DOLLAR})
|
||||
SECTION_VALUE_CHARS ([^$\n\r;"'\]\\]|("\\"{ANY_CHAR})|{LITERAL_DOLLAR})
|
||||
|
||||
<!*> := yyleng = YYCURSOR - SCNG(yy_text);
|
||||
|
||||
<INITIAL>"[" { /* Section start */
|
||||
/* Enter section data lookup state */
|
||||
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
|
||||
yy_push_state(ST_SECTION_RAW TSRMLS_CC);
|
||||
} else {
|
||||
yy_push_state(ST_SECTION_VALUE TSRMLS_CC);
|
||||
}
|
||||
return TC_SECTION;
|
||||
}
|
||||
|
||||
<ST_VALUE,ST_SECTION_VALUE,ST_OFFSET>"'"{SINGLE_QUOTED_CHARS}+"'" { /* Raw string */
|
||||
/* Eat leading and trailing single quotes */
|
||||
if (yytext[0] == '\'' && yytext[yyleng - 1] == '\'') {
|
||||
SCNG(yy_text)++;
|
||||
yyleng = yyleng - 2;
|
||||
}
|
||||
RETURN_TOKEN(TC_RAW, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_SECTION_RAW,ST_SECTION_VALUE>"]"{TABS_AND_SPACES}*{NEWLINE}? { /* End of section */
|
||||
BEGIN(INITIAL);
|
||||
SCNG(lineno)++;
|
||||
return ']';
|
||||
}
|
||||
|
||||
<INITIAL>{LABEL}"["{TABS_AND_SPACES}* { /* Start of option with offset */
|
||||
/* Eat leading whitespace */
|
||||
EAT_LEADING_WHITESPACE();
|
||||
|
||||
/* Eat trailing whitespace and [ */
|
||||
EAT_TRAILING_WHITESPACE_EX('[');
|
||||
|
||||
/* Enter offset lookup state */
|
||||
yy_push_state(ST_OFFSET TSRMLS_CC);
|
||||
|
||||
RETURN_TOKEN(TC_OFFSET, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_OFFSET>{TABS_AND_SPACES}*"]" { /* End of section or an option offset */
|
||||
BEGIN(INITIAL);
|
||||
return ']';
|
||||
}
|
||||
|
||||
<ST_DOUBLE_QUOTES,ST_SECTION_VALUE,ST_VALUE,ST_OFFSET>{DOLLAR_CURLY} { /* Variable start */
|
||||
yy_push_state(ST_VARNAME TSRMLS_CC);
|
||||
return TC_DOLLAR_CURLY;
|
||||
}
|
||||
|
||||
<ST_VARNAME>{LABEL} { /* Variable name */
|
||||
/* Eat leading whitespace */
|
||||
EAT_LEADING_WHITESPACE();
|
||||
|
||||
/* Eat trailing whitespace */
|
||||
EAT_TRAILING_WHITESPACE();
|
||||
|
||||
RETURN_TOKEN(TC_VARNAME, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_VARNAME>"}" { /* Variable end */
|
||||
yy_pop_state(TSRMLS_C);
|
||||
return '}';
|
||||
}
|
||||
|
||||
<INITIAL,ST_VALUE>("true"|"on"|"yes"){TABS_AND_SPACES}* { /* TRUE value (when used outside option value/offset this causes parse error!) */
|
||||
RETURN_TOKEN(BOOL_TRUE, "1", 1);
|
||||
}
|
||||
|
||||
<INITIAL,ST_VALUE>("false"|"off"|"no"|"none"|"null"){TABS_AND_SPACES}* { /* FALSE value (when used outside option value/offset this causes parse error!)*/
|
||||
RETURN_TOKEN(BOOL_FALSE, "", 0);
|
||||
}
|
||||
|
||||
<INITIAL>{LABEL} { /* Get option name */
|
||||
/* Eat leading whitespace */
|
||||
EAT_LEADING_WHITESPACE();
|
||||
|
||||
/* Eat trailing whitespace */
|
||||
EAT_TRAILING_WHITESPACE();
|
||||
|
||||
RETURN_TOKEN(TC_LABEL, yytext, yyleng);
|
||||
}
|
||||
|
||||
<INITIAL>{TABS_AND_SPACES}*[=]{TABS_AND_SPACES}* { /* Start option value */
|
||||
if (SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW) {
|
||||
yy_push_state(ST_RAW TSRMLS_CC);
|
||||
} else {
|
||||
yy_push_state(ST_VALUE TSRMLS_CC);
|
||||
}
|
||||
return '=';
|
||||
}
|
||||
|
||||
<ST_RAW>["] {
|
||||
while (YYCURSOR < YYLIMIT) {
|
||||
switch (*YYCURSOR++) {
|
||||
case '\n':
|
||||
SCNG(lineno)++;
|
||||
break;
|
||||
case '\r':
|
||||
if (*YYCURSOR != '\n') {
|
||||
SCNG(lineno)++;
|
||||
}
|
||||
break;
|
||||
case '"':
|
||||
yyleng = YYCURSOR - SCNG(yy_text) - 2;
|
||||
SCNG(yy_text)++;
|
||||
RETURN_TOKEN(TC_RAW, yytext, yyleng);
|
||||
case '\\':
|
||||
if (YYCURSOR < YYLIMIT) {
|
||||
YYCURSOR++;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
yyleng = YYCURSOR - SCNG(yy_text);
|
||||
RETURN_TOKEN(TC_RAW, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_RAW>{RAW_VALUE_CHARS}+ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
|
||||
RETURN_TOKEN(TC_RAW, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_SECTION_RAW>{SECTION_RAW_CHARS}+ { /* Raw value, only used when SCNG(scanner_mode) == ZEND_INI_SCANNER_RAW. */
|
||||
RETURN_TOKEN(TC_RAW, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_VALUE,ST_RAW>{TABS_AND_SPACES}*{NEWLINE} { /* End of option value */
|
||||
BEGIN(INITIAL);
|
||||
SCNG(lineno)++;
|
||||
return END_OF_LINE;
|
||||
}
|
||||
|
||||
<ST_SECTION_VALUE,ST_VALUE,ST_OFFSET>{CONSTANT} { /* Get constant option value */
|
||||
RETURN_TOKEN(TC_CONSTANT, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_SECTION_VALUE,ST_VALUE,ST_OFFSET>{NUMBER} { /* Get number option value as string */
|
||||
RETURN_TOKEN(TC_NUMBER, yytext, yyleng);
|
||||
}
|
||||
|
||||
<INITIAL>{TOKENS} { /* Disallow these chars outside option values */
|
||||
return yytext[0];
|
||||
}
|
||||
|
||||
<ST_VALUE>{OPERATORS}{TABS_AND_SPACES}* { /* Boolean operators */
|
||||
return yytext[0];
|
||||
}
|
||||
|
||||
<ST_VALUE>[=] { /* Make = used in option value to trigger error */
|
||||
yyless(0);
|
||||
BEGIN(INITIAL);
|
||||
return END_OF_LINE;
|
||||
}
|
||||
|
||||
<ST_VALUE>{VALUE_CHARS}+ { /* Get everything else as option/offset value */
|
||||
RETURN_TOKEN(TC_STRING, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_SECTION_VALUE,ST_OFFSET>{SECTION_VALUE_CHARS}+ { /* Get rest as section/offset value */
|
||||
RETURN_TOKEN(TC_STRING, yytext, yyleng);
|
||||
}
|
||||
|
||||
<ST_SECTION_VALUE,ST_VALUE,ST_OFFSET>{TABS_AND_SPACES}*["] { /* Double quoted '"' string start */
|
||||
yy_push_state(ST_DOUBLE_QUOTES TSRMLS_CC);
|
||||
return '"';
|
||||
}
|
||||
|
||||
<ST_DOUBLE_QUOTES>["]{TABS_AND_SPACES}* { /* Double quoted '"' string ends */
|
||||
yy_pop_state(TSRMLS_C);
|
||||
return '"';
|
||||
}
|
||||
|
||||
<ST_DOUBLE_QUOTES>[^] { /* Escape double quoted string contents */
|
||||
if (YYCURSOR > YYLIMIT) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
while (YYCURSOR < YYLIMIT) {
|
||||
switch (*YYCURSOR++) {
|
||||
case '"':
|
||||
if (YYCURSOR < YYLIMIT && YYCURSOR[-2] == '\\' && *YYCURSOR != '\r' && *YYCURSOR != '\n') {
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
case '$':
|
||||
if (*YYCURSOR == '{') {
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
case '\\':
|
||||
if (YYCURSOR < YYLIMIT && *YYCURSOR != '"') {
|
||||
YYCURSOR++;
|
||||
}
|
||||
/* fall through */
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
|
||||
YYCURSOR--;
|
||||
break;
|
||||
}
|
||||
|
||||
yyleng = YYCURSOR - SCNG(yy_text);
|
||||
|
||||
zend_ini_escape_string(ini_lval, yytext, yyleng, '"' TSRMLS_CC);
|
||||
return TC_QUOTED_STRING;
|
||||
}
|
||||
|
||||
<ST_SECTION_VALUE,ST_VALUE,ST_OFFSET>{WHITESPACE} {
|
||||
RETURN_TOKEN(TC_WHITESPACE, yytext, yyleng);
|
||||
}
|
||||
|
||||
<INITIAL,ST_RAW>{TABS_AND_SPACES}+ {
|
||||
/* eat whitespace */
|
||||
goto restart;
|
||||
}
|
||||
|
||||
<INITIAL>{TABS_AND_SPACES}*{NEWLINE} {
|
||||
SCNG(lineno)++;
|
||||
return END_OF_LINE;
|
||||
}
|
||||
|
||||
<INITIAL,ST_VALUE,ST_RAW>{TABS_AND_SPACES}*[;][^\r\n]*{NEWLINE} { /* Comment */
|
||||
BEGIN(INITIAL);
|
||||
SCNG(lineno)++;
|
||||
return END_OF_LINE;
|
||||
}
|
||||
|
||||
<INITIAL>{TABS_AND_SPACES}*[#][^\r\n]*{NEWLINE} { /* #Comment */
|
||||
zend_error(E_DEPRECATED, "Comments starting with '#' are deprecated in %s on line %d", zend_ini_scanner_get_filename(TSRMLS_C), SCNG(lineno));
|
||||
BEGIN(INITIAL);
|
||||
SCNG(lineno)++;
|
||||
return END_OF_LINE;
|
||||
}
|
||||
|
||||
<ST_VALUE,ST_RAW>[^] { /* End of option value (if EOF is reached before EOL */
|
||||
BEGIN(INITIAL);
|
||||
return END_OF_LINE;
|
||||
}
|
||||
|
||||
<*>[^] {
|
||||
return 0;
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
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();
|
||||
};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user