gitlab-pygments.rb 0.3.2 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+