gitlab-pygments.rb 0.3.2 → 0.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (199) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/CHANGELOG.md +71 -0
  4. data/Gemfile +1 -1
  5. data/LICENSE +17 -0
  6. data/README.md +28 -1
  7. data/Rakefile +2 -5
  8. data/lexers +0 -0
  9. data/lib/pygments/mentos.py +19 -12
  10. data/lib/pygments/popen.rb +21 -4
  11. data/lib/pygments/version.rb +1 -1
  12. data/pygments.rb.gemspec +2 -0
  13. data/test/test_pygments.rb +13 -2
  14. data/vendor/custom_lexers/github.py +206 -3
  15. data/vendor/pygments-main/AUTHORS +41 -3
  16. data/vendor/pygments-main/CHANGES +132 -5
  17. data/vendor/pygments-main/LICENSE +1 -1
  18. data/vendor/pygments-main/Makefile +1 -1
  19. data/vendor/pygments-main/REVISION +1 -1
  20. data/vendor/pygments-main/docs/generate.py +1 -1
  21. data/vendor/pygments-main/docs/src/api.txt +1 -1
  22. data/vendor/pygments-main/docs/src/index.txt +1 -1
  23. data/vendor/pygments-main/docs/src/integrate.txt +5 -0
  24. data/vendor/pygments-main/docs/src/java.txt +70 -0
  25. data/vendor/pygments-main/docs/src/lexerdevelopment.txt +52 -0
  26. data/vendor/pygments-main/external/autopygmentize +64 -0
  27. data/vendor/pygments-main/external/lasso-builtins-generator-9.lasso +144 -0
  28. data/vendor/pygments-main/external/markdown-processor.py +2 -2
  29. data/vendor/pygments-main/external/moin-parser.py +1 -1
  30. data/vendor/pygments-main/external/rst-directive-old.py +1 -1
  31. data/vendor/pygments-main/external/rst-directive.py +1 -1
  32. data/vendor/pygments-main/pygmentize +1 -1
  33. data/vendor/pygments-main/pygments/__init__.py +2 -2
  34. data/vendor/pygments-main/pygments/cmdline.py +14 -6
  35. data/vendor/pygments-main/pygments/console.py +1 -1
  36. data/vendor/pygments-main/pygments/filter.py +1 -1
  37. data/vendor/pygments-main/pygments/filters/__init__.py +3 -4
  38. data/vendor/pygments-main/pygments/formatter.py +4 -1
  39. data/vendor/pygments-main/pygments/formatters/__init__.py +1 -1
  40. data/vendor/pygments-main/pygments/formatters/_mapping.py +3 -3
  41. data/vendor/pygments-main/pygments/formatters/bbcode.py +1 -1
  42. data/vendor/pygments-main/pygments/formatters/html.py +73 -2
  43. data/vendor/pygments-main/pygments/formatters/img.py +2 -2
  44. data/vendor/pygments-main/pygments/formatters/latex.py +9 -9
  45. data/vendor/pygments-main/pygments/formatters/other.py +1 -3
  46. data/vendor/pygments-main/pygments/formatters/rtf.py +1 -1
  47. data/vendor/pygments-main/pygments/formatters/svg.py +1 -1
  48. data/vendor/pygments-main/pygments/formatters/terminal.py +1 -1
  49. data/vendor/pygments-main/pygments/formatters/terminal256.py +1 -1
  50. data/vendor/pygments-main/pygments/lexer.py +78 -10
  51. data/vendor/pygments-main/pygments/lexers/__init__.py +13 -2
  52. data/vendor/pygments-main/pygments/lexers/_asybuiltins.py +1 -1
  53. data/vendor/pygments-main/pygments/lexers/_clbuiltins.py +1 -1
  54. data/vendor/pygments-main/pygments/lexers/_lassobuiltins.py +5172 -0
  55. data/vendor/pygments-main/pygments/lexers/_luabuiltins.py +1 -1
  56. data/vendor/pygments-main/pygments/lexers/_mapping.py +92 -36
  57. data/vendor/pygments-main/pygments/lexers/_openedgebuiltins.py +562 -0
  58. data/vendor/pygments-main/pygments/lexers/_phpbuiltins.py +2 -2
  59. data/vendor/pygments-main/pygments/lexers/_postgres_builtins.py +4 -3
  60. data/vendor/pygments-main/pygments/lexers/_robotframeworklexer.py +557 -0
  61. data/vendor/pygments-main/pygments/lexers/_scilab_builtins.py +11 -0
  62. data/vendor/pygments-main/pygments/lexers/_sourcemodbuiltins.py +1072 -0
  63. data/vendor/pygments-main/pygments/lexers/_stan_builtins.py +360 -0
  64. data/vendor/pygments-main/pygments/lexers/_vimbuiltins.py +13 -3
  65. data/vendor/pygments-main/pygments/lexers/agile.py +525 -38
  66. data/vendor/pygments-main/pygments/lexers/asm.py +45 -7
  67. data/vendor/pygments-main/pygments/lexers/compiled.py +1257 -425
  68. data/vendor/pygments-main/pygments/lexers/dalvik.py +104 -0
  69. data/vendor/pygments-main/pygments/lexers/dotnet.py +97 -62
  70. data/vendor/pygments-main/pygments/lexers/foxpro.py +428 -0
  71. data/vendor/pygments-main/pygments/lexers/functional.py +931 -32
  72. data/vendor/pygments-main/pygments/lexers/github.py +206 -3
  73. data/vendor/pygments-main/pygments/lexers/hdl.py +3 -3
  74. data/vendor/pygments-main/pygments/lexers/jvm.py +309 -44
  75. data/vendor/pygments-main/pygments/lexers/math.py +876 -30
  76. data/vendor/pygments-main/pygments/lexers/other.py +956 -517
  77. data/vendor/pygments-main/pygments/lexers/parsers.py +85 -2
  78. data/vendor/pygments-main/pygments/lexers/shell.py +81 -18
  79. data/vendor/pygments-main/pygments/lexers/special.py +1 -1
  80. data/vendor/pygments-main/pygments/lexers/sql.py +2 -2
  81. data/vendor/pygments-main/pygments/lexers/templates.py +119 -8
  82. data/vendor/pygments-main/pygments/lexers/text.py +155 -15
  83. data/vendor/pygments-main/pygments/lexers/web.py +1578 -397
  84. data/vendor/pygments-main/pygments/modeline.py +40 -0
  85. data/vendor/pygments-main/pygments/plugin.py +1 -1
  86. data/vendor/pygments-main/pygments/scanner.py +1 -1
  87. data/vendor/pygments-main/pygments/style.py +1 -1
  88. data/vendor/pygments-main/pygments/styles/__init__.py +1 -1
  89. data/vendor/pygments-main/pygments/styles/autumn.py +1 -1
  90. data/vendor/pygments-main/pygments/styles/borland.py +1 -1
  91. data/vendor/pygments-main/pygments/styles/bw.py +1 -1
  92. data/vendor/pygments-main/pygments/styles/colorful.py +1 -1
  93. data/vendor/pygments-main/pygments/styles/default.py +1 -1
  94. data/vendor/pygments-main/pygments/styles/emacs.py +1 -1
  95. data/vendor/pygments-main/pygments/styles/friendly.py +1 -1
  96. data/vendor/pygments-main/pygments/styles/fruity.py +1 -1
  97. data/vendor/pygments-main/pygments/styles/manni.py +1 -1
  98. data/vendor/pygments-main/pygments/styles/monokai.py +1 -1
  99. data/vendor/pygments-main/pygments/styles/murphy.py +1 -1
  100. data/vendor/pygments-main/pygments/styles/native.py +1 -1
  101. data/vendor/pygments-main/pygments/styles/pastie.py +1 -1
  102. data/vendor/pygments-main/pygments/styles/perldoc.py +1 -1
  103. data/vendor/pygments-main/pygments/styles/rrt.py +1 -1
  104. data/vendor/pygments-main/pygments/styles/tango.py +1 -1
  105. data/vendor/pygments-main/pygments/styles/trac.py +1 -1
  106. data/vendor/pygments-main/pygments/styles/vim.py +1 -1
  107. data/vendor/pygments-main/pygments/styles/vs.py +1 -1
  108. data/vendor/pygments-main/pygments/token.py +1 -1
  109. data/vendor/pygments-main/pygments/unistring.py +36 -26
  110. data/vendor/pygments-main/pygments/util.py +46 -1
  111. data/vendor/pygments-main/scripts/check_sources.py +2 -2
  112. data/vendor/pygments-main/scripts/detect_missing_analyse_text.py +2 -0
  113. data/vendor/pygments-main/scripts/find_codetags.py +1 -1
  114. data/vendor/pygments-main/scripts/find_error.py +5 -6
  115. data/vendor/pygments-main/setup.cfg +1 -0
  116. data/vendor/pygments-main/setup.py +6 -4
  117. data/vendor/pygments-main/tests/examplefiles/BOM.js +1 -0
  118. data/vendor/pygments-main/tests/examplefiles/Config.in.cache +1973 -0
  119. data/vendor/pygments-main/tests/examplefiles/Deflate.fs +578 -0
  120. data/vendor/pygments-main/tests/examplefiles/Get-CommandDefinitionHtml.ps1 +66 -0
  121. data/vendor/pygments-main/tests/examplefiles/IPDispatchC.nc +104 -0
  122. data/vendor/pygments-main/tests/examplefiles/IPDispatchP.nc +671 -0
  123. data/vendor/pygments-main/tests/examplefiles/RoleQ.pm6 +23 -0
  124. data/vendor/pygments-main/tests/examplefiles/autoit_submit.au3 +25 -0
  125. data/vendor/pygments-main/tests/examplefiles/bigtest.nsi +308 -0
  126. data/vendor/pygments-main/tests/examplefiles/ca65_example +284 -0
  127. data/vendor/pygments-main/tests/examplefiles/cbmbas_example +9 -0
  128. data/vendor/pygments-main/tests/examplefiles/classes.dylan +89 -4
  129. data/vendor/pygments-main/tests/examplefiles/example.Rd +78 -0
  130. data/vendor/pygments-main/tests/examplefiles/example.bug +54 -0
  131. data/vendor/pygments-main/tests/examplefiles/example.ceylon +52 -0
  132. data/vendor/pygments-main/tests/examplefiles/example.clay +33 -0
  133. data/vendor/pygments-main/tests/examplefiles/example.cob +3556 -0
  134. data/vendor/pygments-main/tests/examplefiles/example.hx +142 -0
  135. data/vendor/pygments-main/tests/examplefiles/example.jag +48 -0
  136. data/vendor/pygments-main/tests/examplefiles/example.lagda +19 -0
  137. data/vendor/pygments-main/tests/examplefiles/example.monkey +152 -0
  138. data/vendor/pygments-main/tests/examplefiles/example.msc +43 -0
  139. data/vendor/pygments-main/tests/examplefiles/example.prg +161 -0
  140. data/vendor/pygments-main/tests/examplefiles/example.reg +19 -0
  141. data/vendor/pygments-main/tests/examplefiles/example.rexx +50 -0
  142. data/vendor/pygments-main/tests/examplefiles/example.rkt +95 -0
  143. data/vendor/pygments-main/tests/examplefiles/example.rpf +4 -0
  144. data/vendor/pygments-main/tests/examplefiles/example.shell-session +45 -0
  145. data/vendor/pygments-main/tests/examplefiles/example.stan +108 -0
  146. data/vendor/pygments-main/tests/examplefiles/example.ts +28 -0
  147. data/vendor/pygments-main/tests/examplefiles/example.xtend +34 -0
  148. data/vendor/pygments-main/tests/examplefiles/example2.msc +79 -0
  149. data/vendor/pygments-main/tests/examplefiles/garcia-wachs.kk +133 -0
  150. data/vendor/pygments-main/tests/examplefiles/grammar-test.p6 +22 -0
  151. data/vendor/pygments-main/tests/examplefiles/hello.smali +40 -0
  152. data/vendor/pygments-main/tests/examplefiles/hello.sp +9 -0
  153. data/vendor/pygments-main/tests/examplefiles/http_request_example +2 -1
  154. data/vendor/pygments-main/tests/examplefiles/http_response_example +4 -2
  155. data/vendor/pygments-main/tests/examplefiles/inet_pton6.dg +71 -0
  156. data/vendor/pygments-main/tests/examplefiles/json.lasso +301 -0
  157. data/vendor/pygments-main/tests/examplefiles/json.lasso9 +213 -0
  158. data/vendor/pygments-main/tests/examplefiles/livescript-demo.ls +41 -0
  159. data/vendor/pygments-main/tests/examplefiles/logos_example.xm +28 -0
  160. data/vendor/pygments-main/tests/examplefiles/matlab_sample +5 -2
  161. data/vendor/pygments-main/tests/examplefiles/metagrammar.treetop +455 -0
  162. data/vendor/pygments-main/tests/examplefiles/mg_sample.pro +73 -0
  163. data/vendor/pygments-main/tests/examplefiles/minehunt.qml +112 -0
  164. data/vendor/pygments-main/tests/examplefiles/nanomsg.intr +95 -0
  165. data/vendor/pygments-main/tests/examplefiles/objc_example.m +7 -0
  166. data/vendor/pygments-main/tests/examplefiles/phpMyAdmin.spec +163 -0
  167. data/vendor/pygments-main/tests/examplefiles/py3tb_test.py3tb +4 -0
  168. data/vendor/pygments-main/tests/examplefiles/pytb_test3.pytb +4 -0
  169. data/vendor/pygments-main/tests/examplefiles/robotframework.txt +39 -0
  170. data/vendor/pygments-main/tests/examplefiles/rust_example.rs +233 -0
  171. data/vendor/pygments-main/tests/examplefiles/session.dylan-console +9 -0
  172. data/vendor/pygments-main/tests/examplefiles/swig_java.swg +1329 -0
  173. data/vendor/pygments-main/tests/examplefiles/swig_std_vector.i +225 -0
  174. data/vendor/pygments-main/tests/examplefiles/test.R +149 -115
  175. data/vendor/pygments-main/tests/examplefiles/test.agda +102 -0
  176. data/vendor/pygments-main/tests/examplefiles/test.bb +95 -0
  177. data/vendor/pygments-main/tests/examplefiles/test.cu +36 -0
  178. data/vendor/pygments-main/tests/examplefiles/test.ebnf +31 -0
  179. data/vendor/pygments-main/tests/examplefiles/test.opa +10 -0
  180. data/vendor/pygments-main/tests/examplefiles/test.p6 +252 -0
  181. data/vendor/pygments-main/tests/examplefiles/test2.pypylog +120 -0
  182. data/vendor/pygments-main/tests/examplefiles/type.lisp +16 -0
  183. data/vendor/pygments-main/tests/examplefiles/unix-io.lid +37 -0
  184. data/vendor/pygments-main/tests/old_run.py +1 -1
  185. data/vendor/pygments-main/tests/run.py +3 -2
  186. data/vendor/pygments-main/tests/support/tags +36 -0
  187. data/vendor/pygments-main/tests/test_basic_api.py +4 -3
  188. data/vendor/pygments-main/tests/test_clexer.py +1 -1
  189. data/vendor/pygments-main/tests/test_cmdline.py +1 -1
  190. data/vendor/pygments-main/tests/test_examplefiles.py +3 -1
  191. data/vendor/pygments-main/tests/test_html_formatter.py +17 -1
  192. data/vendor/pygments-main/tests/test_latex_formatter.py +1 -1
  193. data/vendor/pygments-main/tests/test_lexers_other.py +68 -0
  194. data/vendor/pygments-main/tests/test_perllexer.py +1 -1
  195. data/vendor/pygments-main/tests/test_regexlexer.py +1 -1
  196. data/vendor/pygments-main/tests/test_token.py +1 -1
  197. data/vendor/pygments-main/tests/test_using_api.py +1 -1
  198. data/vendor/pygments-main/tests/test_util.py +22 -3
  199. metadata +84 -16
@@ -0,0 +1,142 @@
1
+ /**
2
+ * This is not really a valid Haxe file, but just an demo...
3
+ */
4
+
5
+ package;
6
+ package net.onthewings;
7
+
8
+ import net.onthewings.Test;
9
+ import net.onthewings.*;
10
+
11
+ using Lambda;
12
+ using net.onthewings.Test;
13
+
14
+ #if flash8
15
+ // Haxe code specific for flash player 8
16
+ #elseif flash
17
+ // Haxe code specific for flash platform (any version)
18
+ #elseif js
19
+ // Haxe code specific for javascript plaform
20
+ #elseif neko
21
+ // Haxe code specific for neko plaform
22
+ #else
23
+ // do something else
24
+ #error // will display an error "Not implemented on this platform"
25
+ #error "Custom error message" // will display an error "Custom error message"
26
+ #end
27
+
28
+ 0; // Int
29
+ -134; // Int
30
+ 0xFF00; // Int
31
+
32
+ 123.0; // Float
33
+ .14179; // Float
34
+ 13e50; // Float
35
+ -1e-99; // Float
36
+
37
+ "hello"; // String
38
+ "hello \"world\" !"; // String
39
+ 'hello "world" !'; // String
40
+
41
+ true; // Bool
42
+ false; // Bool
43
+
44
+ null; // Unknown<0>
45
+
46
+ ~/[a-z]+/i; // EReg : regular expression
47
+
48
+ var point = { "x" : 1, "y" : -5 };
49
+
50
+ {
51
+ var x;
52
+ var y = 3;
53
+ var z : String;
54
+ var w : String = "";
55
+ var a, b : Bool, c : Int = 0;
56
+ }
57
+
58
+ //haxe3 pattern matching
59
+ switch(e.expr) {
60
+ case EConst(CString(s)) if (StringTools.startsWith(s, "foo")):
61
+ "1";
62
+ case EConst(CString(s)) if (StringTools.startsWith(s, "bar")):
63
+ "2";
64
+ case EConst(CInt(i)) if (switch(Std.parseInt(i) * 2) { case 4: true; case _: false; }):
65
+ "3";
66
+ case EConst(_):
67
+ "4";
68
+ case _:
69
+ "5";
70
+ }
71
+
72
+ switch [true, 1, "foo"] {
73
+ case [true, 1, "foo"]: "0";
74
+ case [true, 1, _]: "1";
75
+ case _: "_";
76
+ }
77
+
78
+
79
+ class Test <T:Void->Void> {
80
+ private function new():Void {
81
+ inline function innerFun(a:Int, b:Int):Int {
82
+ return readOnlyField = a + b;
83
+ }
84
+
85
+ _innerFun(1, 2.3);
86
+ }
87
+
88
+ static public var instance(get,null):Test;
89
+ static function get_instance():Test {
90
+ return instance != null ? instance : instance = new Test();
91
+ }
92
+ }
93
+
94
+ @:native("Test") private class Test2 {}
95
+
96
+ extern class Ext {}
97
+
98
+ @:macro class M {
99
+ @:macro static function test(e:Array<Expr>):ExprOf<String> {
100
+ return macro "ok";
101
+ }
102
+ }
103
+
104
+ enum Color {
105
+ Red;
106
+ Green;
107
+ Blue;
108
+ Grey( v : Int );
109
+ Rgb( r : Int, g : Int, b : Int );
110
+ Alpha( a : Int, col : Color );
111
+ }
112
+
113
+ class Colors {
114
+ static function toInt( c : Color ) : Int {
115
+ return switch( c ) {
116
+ case Red: 0xFF0000;
117
+ case Green: 0x00FF00;
118
+ case Blue: 0x0000FF;
119
+ case Grey(v): (v << 16) | (v << 8) | v;
120
+ case Rgb(r,g,b): (r << 16) | (g << 8) | b;
121
+ case Alpha(a,c): (a << 24) | (toInt(c) & 0xFFFFFF);
122
+ }
123
+ }
124
+ }
125
+
126
+ class EvtQueue<T : (Event, EventDispatcher)> {
127
+ var evt : T;
128
+ }
129
+
130
+ typedef DS = Dynamic<String>;
131
+ typedef Pt = {
132
+ var x:Float;
133
+ var y:Float;
134
+ @:optional var z:Float; /* optional z */
135
+ function add(pt:Pt):Void;
136
+ }
137
+ typedef Pt2 = {
138
+ x:Float,
139
+ y:Float,
140
+ ?z:Float, //optional z
141
+ add : Point -> Void,
142
+ }
@@ -0,0 +1,48 @@
1
+ # lsat.jags example from classic-bugs examples in JAGS
2
+ # See http://sourceforge.net/projects/mcmc-jags/files/Examples/2.x/
3
+ var
4
+ response[R,T], m[R], culm[R], alpha[T], a[T], theta[N], r[N,T],
5
+ p[N,T], beta, theta.new, p.theta[T], p.item[R,T], P.theta[R];
6
+ data {
7
+ for (j in 1:culm[1]) {
8
+ r[j, ] <- response[1, ];
9
+ }
10
+ for (i in 2:R) {
11
+ for (j in (culm[i - 1] + 1):culm[i]) {
12
+ r[j, ] <- response[i, ];
13
+ }
14
+ }
15
+ }
16
+ model {
17
+ # 2-parameter Rasch model
18
+ for (j in 1:N) {
19
+ for (k in 1:T) {
20
+ probit(p[j,k]) <- delta[k]*theta[j] - eta[k];
21
+ r[j,k] ~ dbern(p[j,k]);
22
+ }
23
+ theta[j] ~ dnorm(0,1);
24
+ }
25
+
26
+ # Priors
27
+ for (k in 1:T) {
28
+ eta[k] ~ dnorm(0,0.0001);
29
+ e[k] <- eta[k] - mean(eta[]); # sum-to-zero constraint
30
+
31
+ delta[k] ~ dnorm(0,1) T(0,); # constrain variance to 1, slope +ve
32
+ d[k] <- delta[k]/pow(prod(delta), 1/T); # PRODUCT_k (d_k) = 1
33
+
34
+ g[k] <- e[k]/d[k]; # equivalent to B&A's threshold parameters
35
+ }
36
+
37
+ # Compute probability of response pattern i, for later use in computing G^2
38
+ theta.new ~ dnorm(0,1); # ability parameter for random student
39
+ for(k in 1:T) {
40
+ probit(p.theta[k]) <- delta[k]*theta.new - eta[k];
41
+ for(i in 1:R) {
42
+ p.item[i,k] <- p.theta[k]^response[i,k] * (1-p.theta[k])^(1-response[i,k]);
43
+ }
44
+ }
45
+ for(i in 1:R) {
46
+ P.theta[i] <- prod(p.item[i,])
47
+ }
48
+ }
@@ -0,0 +1,19 @@
1
+ \documentclass{article}
2
+ % this is a LaTeX comment
3
+ \usepackage{agda}
4
+
5
+ \begin{document}
6
+
7
+ Here's how you can define \emph{RGB} colors in Agda:
8
+
9
+ \begin{code}
10
+ module example where
11
+
12
+ open import Data.Fin
13
+ open import Data.Nat
14
+
15
+ data Color : Set where
16
+ RGB : Fin 256 → Fin 256 → Fin 256 → Color
17
+ \end{code}
18
+
19
+ \end{document}
@@ -0,0 +1,152 @@
1
+ Strict
2
+
3
+ ' single line comment
4
+
5
+ #rem
6
+ multi
7
+ line
8
+ comment
9
+ #end
10
+
11
+ #rem
12
+ nested
13
+ #rem
14
+ multi
15
+ line
16
+ #end
17
+ comment
18
+ #end
19
+
20
+ Import mojo
21
+
22
+ Const ONECONST:Int = 1
23
+ Const TWOCONST := 2
24
+ Const THREECONST := 3, FOURCONST:Int = 4
25
+
26
+ Global someVariable:Int = 4
27
+
28
+ ' sample class from the documentation
29
+ Class Game Extends App
30
+
31
+ Function New()
32
+ End
33
+
34
+ Function DrawSpiral(clock)
35
+ Local w=DeviceWidth/2
36
+ For Local i#=0 Until w*1.5 Step .2
37
+ Local x#,y#
38
+ x=w+i*Sin(i*3+clock)
39
+ y=w+i*Cos(i*2+clock)
40
+ DrawRect x,y,1,1
41
+ Next
42
+ hitbox.Collide(event.pos)
43
+ End
44
+
45
+ Field updateCount
46
+
47
+ Method OnCreate()
48
+ Print "spiral"
49
+
50
+ SetUpdateRate 60
51
+ End
52
+
53
+ Method OnUpdate()
54
+ updateCount+=1
55
+ End
56
+
57
+ Method OnRender()
58
+ Cls
59
+ DrawSpiral updateCount
60
+ DrawSpiral updateCount*1.1
61
+ End
62
+
63
+ End
64
+
65
+ Class Enemy
66
+ Method Die () Abstract
67
+ End
68
+
69
+ ' extending
70
+ Class Hoodlum Extends Enemy
71
+ ' field
72
+ Field testField:Bool = True
73
+
74
+ ' naming class with modulepath
75
+ Local currentNode:list.Node<Vector2D>
76
+
77
+ Method Die ()
78
+ Print "B'oss, he-- he killed me, b'oss!"
79
+ End
80
+ End
81
+
82
+ ' extending with generics
83
+ Class VectorNode Extends Node<Vector2D>
84
+ End
85
+
86
+ ' interfaces
87
+ Interface Computer
88
+ Method Boot ()
89
+ Method Process ()
90
+ Method Display ()
91
+ End
92
+
93
+ Class PC Implements Computer
94
+ End
95
+
96
+ ' array syntax
97
+ Global listOfStuff:String[42]
98
+ Global lessStuff:String[5] = listOfStuff[4..8]
99
+ Global oneStuff:String = listOfStuff[23]
100
+
101
+ 'a comma separated sequence
102
+ Global scores:Int[]=[10,20,30]
103
+ 'a comma separated sequence
104
+ Global text:String[]=["Hello","There","World"]
105
+ Global worstCase:worst.List<String[]>
106
+
107
+ ' string type
108
+ Global string1:String = "Hello world"
109
+ Global string2$ = "Hello world"
110
+
111
+ ' escape characers in strings
112
+ Global string3 := "Hello~zWorld"
113
+ Global string4 := "~qHello World~q"
114
+ Global string5 := "~tIndented~n"
115
+ Global string6 := "tilda is wavey... ~~"
116
+
117
+ ' string pseudofunctions
118
+ Print " Hello World ~n".Trim() ' prints "Hello World"
119
+ Print "Hello World".ToUpper() ' prints "HELLO WORLD"
120
+
121
+ ' Boolean shorttype
122
+ Global boolVariable1:Bool = True
123
+ Global boolVariable2? = False
124
+
125
+ ' number formats
126
+ Global hexNum1:Int = $3d0dead
127
+ Global hexNum2% = $CAFEBABE
128
+
129
+ Global floatNum1:Float = 3.141516
130
+ Global floatNum2# = 3.141516
131
+ Global floatNum3 := .141516
132
+
133
+ ' preprocessor keywords
134
+ #If TARGET = "android"
135
+ DoStuff()
136
+ #ElseIf TARGET = "ios"
137
+ DoOtherStuff()
138
+ #End
139
+
140
+ ' preprocessor variable
141
+ #SOMETHING = True
142
+ #Print SOMETHING
143
+ #If SOMETHING
144
+ #End
145
+
146
+ ' operators
147
+ Global a = 32
148
+ Global b = 32 ~ 0
149
+ b ~= 16
150
+ b |= 16
151
+ b &= 16
152
+ Global c = a | b
@@ -0,0 +1,43 @@
1
+ msc {
2
+ hscale=5;
3
+
4
+ //test comment
5
+
6
+ a,b,c,d;
7
+
8
+ /* another
9
+ comment
10
+ goes here */ /* too */ // now
11
+
12
+ ... [label="test1", id="1"];
13
+ --- [label="test2", id="2"];
14
+ ||| [label="test3", id="2"];
15
+ a ABOX b;
16
+ a--b [label="test4", id="2"];
17
+ a == b [label="test5", id="2"];
18
+ a .. b [label="test6", id="2"];
19
+ a::b [label="test7", id="2"];
20
+ a<<=>> b [label="test8", id="2"],
21
+ b <->c [label="test9", id="2"],
22
+ b RBOX c;
23
+ a BOX d;
24
+ a<=> b [label="test10", id="2"];
25
+ a <<>> b [label="test11", id="2"];
26
+ a<:>b [label="test12", id="2"];
27
+ a->b [label="test13", id="2"];
28
+ a =>> b [label="test14", id="2"],
29
+ b >> c [label="test15", id="2"],
30
+ a=> b [label="test16", id="2"];
31
+ a :>b [label="test17", id="2"];
32
+ a-x b [label="test18", id="2"];
33
+ a -Xb [label="test19", id="2"];
34
+ a<- b [label="test20", id="2"];
35
+ a <<=b [label="test21", id="2"];
36
+ a<< b [label="test22", id="2"];
37
+ a <= b [label="test23", id="2"];
38
+ a<: b [label="test24", id="2"];
39
+ a -xb [label="test25", id="2"];
40
+ a-X b [ label="test26",id="2" ];
41
+ a->* [label="test27" , id="2"];
42
+ *<-b [label="test28",id="28"];
43
+ }
@@ -0,0 +1,161 @@
1
+ && This is a concatenation of all VFP examples on Wikipedia.
2
+ && Copyright 2013 Wikimedia, under the GFDL.
3
+
4
+ FOR i = 1 to 10
5
+ x = x + 6.5
6
+ ENDFOR
7
+
8
+ IF i = 25
9
+ i = i + 1
10
+ ELSE
11
+ i = i + 3
12
+ ENDIF
13
+
14
+ x = 1
15
+ DO WHILE x < 50
16
+ x = x + 1
17
+ ENDDO
18
+
19
+ x = 1
20
+ DO WHILE .T.
21
+ x = x + 1
22
+ IF x < 50
23
+ LOOP
24
+ ELSE
25
+ EXIT
26
+ ENDIF
27
+ ENDDO
28
+
29
+ nMonth = MONTH(DATE())
30
+ DO CASE
31
+ CASE nMonth <= 3
32
+ MESSAGEBOX("Q1")
33
+
34
+ CASE nMonth <= 6
35
+ MESSAGEBOX("Q2")
36
+
37
+ CASE nMonth <= 9
38
+ MESSAGEBOX("Q3")
39
+
40
+ OTHERWISE
41
+ MESSAGEBOX("Q4")
42
+ ENDCASE
43
+
44
+ FOR EACH oControl IN THISFORM.Controls
45
+ MESSAGEBOX(oControl.Name)
46
+ ENDFOR
47
+
48
+ f = Factorial(10)
49
+
50
+ FUNCTION Factorial(n)
51
+ LOCAL i,r
52
+ r = 1
53
+ FOR i = n TO 1 STEP -1
54
+ r = r * n
55
+ ENDFOR
56
+ RETURN r
57
+ ENDFUNC
58
+
59
+ loForm = CREATEOBJECT("HiForm")
60
+ loForm.Show(1)
61
+
62
+ DEFINE CLASS HiForm AS Form
63
+ AutoCenter = .T.
64
+ Caption = "Hello, World"
65
+
66
+ ADD OBJECT lblHi as Label WITH ;
67
+ Caption = "Hello, World!"
68
+ ENDDEFINE
69
+
70
+ loMine = CREATEOBJECT("MyClass")
71
+ ? loMine.cProp1 && This will work. (Double-ampersand marks an end-of-line comment)
72
+ ? loMine.cProp2 && Program Error: Property CPROP2 is not found.
73
+
74
+ ? loMine.MyMethod1() && This will work.
75
+ ? loMine.MyMethod2() && Program Error: Property MYMETHOD2 is not found.
76
+
77
+ DEFINE CLASS MyClass AS Custom
78
+ cProp1 = "My Property" && This is a public property
79
+ HIDDEN cProp2 && This is a private (hidden) property
80
+ dProp3 = {} && Another public property
81
+
82
+ PROCEDURE Init() && Class constructor
83
+ This.cProp2 = "This is a hidden property."
84
+ ENDPROC
85
+
86
+ PROCEDURE dProp3_Access && Property Getter
87
+ RETURN DATE()
88
+ ENDPROC
89
+ PROCEDURE dProp3_Assign(vNewVal) && Property Setter
90
+ IF VARTYPE(vNewVal) = "D"
91
+ THIS.dProp3 = vNewVal
92
+ ENDIF
93
+ ENDPROC
94
+
95
+ PROCEDURE MyMethod1()
96
+ * This is a public method, calling a hidden method that returns
97
+ * the value of a hidden property.
98
+ RETURN This.MyMethod2()
99
+ ENDPROC
100
+
101
+ HIDDEN PROCEDURE MyMethod2() && This is a private (hidden) method
102
+ RETURN This.cProp2
103
+ ENDPROC
104
+ ENDDEFINE
105
+
106
+ && Create a table
107
+ CREATE TABLE randData (iData I)
108
+
109
+ && Populate with random data using xBase and SQL DML commands
110
+ FOR i = 1 TO 50
111
+ APPEND BLANK
112
+ REPLACE iData WITH (RAND() * 100)
113
+
114
+ INSERT INTO randData (iData) VALUES (RAND() * 100)
115
+ ENDFOR
116
+
117
+ && Place a structural index on the data
118
+ INDEX ON iData TAG iData
119
+ CLOSE ALL
120
+
121
+ && Display ordered data using xBase-style commands
122
+ USE randData
123
+ SET ORDER TO iData
124
+ GO TOP
125
+ LIST NEXT 10 && First 10
126
+ GO BOTTOM
127
+ SKIP -10
128
+ LIST REST && Last 10
129
+ CLOSE ALL
130
+
131
+ && Browse ordered data using SQL DML commands
132
+ SELECT * ;
133
+ FROM randData ;
134
+ ORDER BY iData DESCENDING
135
+
136
+
137
+ && Connect to an ODBC data source
138
+ LOCAL nHnd
139
+ nHnd = SQLCONNECT ("ODBCDSN", "user", "pwd")
140
+
141
+ && Execute a SQL command
142
+ LOCAL nResult
143
+ nResult = SQLEXEC (nHnd, "USE master")
144
+ IF nResult < 0
145
+ MESSAGEBOX ("MASTER database does not exist!")
146
+ RETURN
147
+ ENDIF
148
+
149
+ && Retrieve data from the remote server and stores it in
150
+ && a local data cursor
151
+ nResult = SQLEXEC (nHnd, "SELECT * FROM authors", "QAUTHORS")
152
+
153
+ && Update a record in a remote table using parameters
154
+ PRIVATE cAuthorID, cAuthorName
155
+ cAuthorID = "1001"
156
+ cAuthorName = "New name"
157
+ nResult = SQLEXEC (nHnd, "UPDATE authors SET auth_name = ?cAuthorName WHERE auth_id = ?cAuthorID")
158
+
159
+ && Close the connection
160
+ SQLDISCONNECT(nHnd)
161
+