summaryrefslogtreecommitdiff
path: root/tests/examplefiles/gcode
diff options
context:
space:
mode:
authorAverter <averter@users.noreply.github.com>2021-03-14 08:07:43 +0000
committerGitHub <noreply@github.com>2021-03-14 09:07:43 +0100
commitb872095ed5c7c71ae119bb4e04bdf70689cc2336 (patch)
treed3e7d491f429836597d1c2582baf7394c77dfead /tests/examplefiles/gcode
parentbf5230460d47f23651f3b894c3f59508115fc0ad (diff)
downloadpygments-git-b872095ed5c7c71ae119bb4e04bdf70689cc2336.tar.gz
Add apdl and gcode lexers (#1714)
* Add apdl and gcode lexers * Added requested changes except words function * Added requested changes except words function * Added words function to handle lists of keywords * Add two testing example files * Delete two_dimensional_truss.ans * Delete coupled_example.ans * Create example1apdl.ans * Create example2apdl.ans * General cleanup of apdlexer and creation of mapfiles * Escaped backslashes in string literals on apdlexer * Removed backslashes. None was necessary in the first place * Added apdl aliase and a * based command in the test file * Forgot to create the map files * Tested version. Also removed an unused function from apdlexer * Added examples for gcode and golden output * Trimming of gcode files to a few dozens of lines * Removed duplicates from elafunb
Diffstat (limited to 'tests/examplefiles/gcode')
-rw-r--r--tests/examplefiles/gcode/SupportLogo.gcode67
-rw-r--r--tests/examplefiles/gcode/SupportLogo.gcode.output639
-rw-r--r--tests/examplefiles/gcode/boomerangv4.gcode52
-rw-r--r--tests/examplefiles/gcode/boomerangv4.gcode.output349
4 files changed, 1107 insertions, 0 deletions
diff --git a/tests/examplefiles/gcode/SupportLogo.gcode b/tests/examplefiles/gcode/SupportLogo.gcode
new file mode 100644
index 00000000..6d27cda3
--- /dev/null
+++ b/tests/examplefiles/gcode/SupportLogo.gcode
@@ -0,0 +1,67 @@
+%
+O0000
+ N10 (MACH3 MILL - )
+N20 (AUTHOR - {SCOTT SHAFER}) G0 ( second comment )
+N30 (GROUP - TOOLPATH GROUP #1)
+N40 (SYSTEM- ONECNC-XR2 MILL ADVANTAGE - VERSION 8.12)
+N50 (NOTES - NONE)
+N60 G0 G40 G49 G50 G80 G94
+N70 (.1875 INCH 3/16 HSS END MILL ) ( )
+N80 T4 M06 G43 H4
+N90 S3411.0 F25.0 M3 M07
+N100 G4 P3
+N110 G00 X14.9375 Y1.4106 Z0.1
+N120 Z0.05
+N130 G01 X14.9358 Y1.3786 Z0.0466 F25.0
+N140 X14.9376 Y1.3149 Z0.0399
+N150 X14.9445 Y1.2515 Z0.0332
+N220 X15.2348 Y0.8636 Z-0.0205
+N230 X15.309 Y0.8443 Z-0.0285
+N240 X15.3096
+N250 X15.3101
+N260 X15.3106
+N270 X15.3111
+N280 X15.3116
+N290 X15.3121 Y0.8437
+N300 X15.3812 Y0.8329 Z-0.0362
+N310 X15.4511 Y0.8279 Z-0.0436
+N320 X15.521 Y0.8289 Z-0.0509
+N330 X15.5907 Y0.8357 Z-0.0583
+N340 X15.6595 Y0.8485 Z-0.0656
+N350 X15.727 Y0.867 Z-0.073
+N360 X15.7772 Y0.8886 Z-0.0787
+N450 X16.0252 Y1.2813 Z-0.1299
+N460 X16.0288 Y1.3346 Z-0.1356
+N470 X16.0285 Y1.3881 Z-0.1412
+N480 Y1.3892 Z-0.1413
+N490 Y1.3904 Z-0.1414
+N500 Y1.3916 Z-0.1415
+N510 Y1.3927 Z-0.1417
+N520 Y1.3939 Z-0.1418
+N530 Y1.3951 Z-0.1419
+N540 Y1.4324 Z-0.1458
+N550 X16.0257 Y1.4697 Z-0.1498
+N600 X15.9644 Y1.6626 Z-0.1712
+N610 X15.9323 Y1.707 Z-0.177
+N620 X15.8944 Y1.7466 Z-0.1827
+N630 X15.8515 Y1.7806 Z-0.1885
+N640 X15.8044 Y1.8086 Z-0.1942
+N650 X15.7539 Y1.8298 Z-0.2
+N660 X15.7528 Y1.8321
+N670 X15.7032 Y1.6737
+N680 G02 X15.774 Y1.6404 I-0.2085 J-0.5347
+N690 X15.8954 Y1.5145 I-0.1426 J-0.259
+N700 X15.8975 Y1.51 I-0.082 J-0.0413
+N92490 G03 X0.964 Y1.615 I0.1291 J-0.3825
+N92500 X0.9254 Y1.4125 I0.5116 J-0.2025
+N92510 X0.9257 Y1.395 I0.5503 J0.
+N92520 G02 X0.9257 Y1.3921 I-0.0918 J-0.0029
+N92530 X0.9256 Y1.3881 I-0.0918 J0.
+N92540 G03 X0.925 Y1.357 I0.7199 J-0.0312
+N92550 X0.9827 Y1.0743 I0.7206 J0.
+N92560 G00 Z0.1
+N92570 M05 M09
+N92580 (END TOOL)
+N92590 M05 M09
+N92600 M30
+%
diff --git a/tests/examplefiles/gcode/SupportLogo.gcode.output b/tests/examplefiles/gcode/SupportLogo.gcode.output
new file mode 100644
index 00000000..fee1a84a
--- /dev/null
+++ b/tests/examplefiles/gcode/SupportLogo.gcode.output
@@ -0,0 +1,639 @@
+'%\n' Text
+
+'O' Keyword
+'0000' Literal.Number
+'\n' Text.Whitespace
+
+' ' Text.Whitespace
+' ' Text.Whitespace
+' ' Text.Whitespace
+' ' Text.Whitespace
+'N' Keyword
+'10' Literal.Number
+' ' Text.Whitespace
+'(MACH3 MILL - )\n' Text
+
+'N' Keyword
+'20' Literal.Number
+' ' Text.Whitespace
+'(AUTHOR - {SCOTT SHAFER}) G0 ( second comment )\n' Text
+
+'N' Keyword
+'30' Literal.Number
+' ' Text.Whitespace
+'(GROUP - TOOLPATH GROUP #1)\n' Text
+
+'N' Keyword
+'40' Literal.Number
+' ' Text.Whitespace
+'(SYSTEM- ONECNC-XR2 MILL ADVANTAGE - VERSION 8.12)\n' Text
+
+'N' Keyword
+'50' Literal.Number
+' ' Text.Whitespace
+'(NOTES - NONE)\n' Text
+
+'N' Keyword
+'60' Literal.Number
+' ' Text.Whitespace
+'G0 G40 G49 G50 G80 G94\n' Text
+
+'N' Keyword
+'70' Literal.Number
+' ' Text.Whitespace
+'(' Keyword
+'.1875' Literal.Number
+' ' Text.Whitespace
+'INCH 3/16 HSS END MILL ) ( )\n' Text
+
+'N' Keyword
+'80' Literal.Number
+' ' Text.Whitespace
+'T' Keyword
+'4' Literal.Number
+' ' Text.Whitespace
+'M06 G43 H4\n' Text
+
+'N' Keyword
+'90' Literal.Number
+' ' Text.Whitespace
+'S' Keyword
+'3411.0' Literal.Number
+' ' Text.Whitespace
+'F' Keyword
+'25.0' Literal.Number
+' ' Text.Whitespace
+'M3 M07\n' Text
+
+'N' Keyword
+'100' Literal.Number
+' ' Text.Whitespace
+'G4 P3\n' Text
+
+'N' Keyword
+'110' Literal.Number
+' ' Text.Whitespace
+'G00 X14.9375 Y1.4106 Z0.1\n' Text
+
+'N' Keyword
+'120' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.05' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'130' Literal.Number
+' ' Text.Whitespace
+'G01 X14.9358 Y1.3786 Z0.0466 F25.0\n' Text
+
+'N' Keyword
+'140' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'14.9376' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3149' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0399' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'150' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'14.9445' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.2515' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0332' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'220' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.2348' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8636' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0205' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'230' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.309' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8443' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0285' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'240' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.3096' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'250' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.3101' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'260' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.3106' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'270' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.3111' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'280' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.3116' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'290' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.3121' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8437' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'300' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.3812' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8329' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0362' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'310' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.4511' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8279' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0436' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'320' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.521' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8289' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0509' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'330' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.5907' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8357' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0583' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'340' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.6595' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8485' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0656' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'350' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.727' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.867' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.073' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'360' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.7772' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.8886' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0787' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'450' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'16.0252' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.2813' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1299' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'460' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'16.0288' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3346' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1356' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'470' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'16.0285' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3881' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1412' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'480' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3892' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1413' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'490' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3904' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1414' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'500' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3916' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1415' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'510' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3927' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1417' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'520' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3939' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1418' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'530' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3951' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1419' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'540' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.4324' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1458' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'550' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'16.0257' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.4697' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1498' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'600' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.9644' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.6626' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1712' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'610' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.9323' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.707' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.177' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'620' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.8944' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.7466' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1827' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'630' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.8515' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.7806' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1885' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'640' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.8044' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.8086' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.1942' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'650' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.7539' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.8298' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.2' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'660' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.7528' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.8321' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'670' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.7032' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.6737' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'680' Literal.Number
+' ' Text.Whitespace
+'G02 X15.774 Y1.6404 I-0.2085 J-0.5347\n' Text
+
+'N' Keyword
+'690' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.8954' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.5145' Literal.Number
+' ' Text.Whitespace
+'I' Keyword
+'-0.1426' Literal.Number
+' ' Text.Whitespace
+'J' Keyword
+'-0.259' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'700' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'15.8975' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.51' Literal.Number
+' ' Text.Whitespace
+'I' Keyword
+'-0.082' Literal.Number
+' ' Text.Whitespace
+'J' Keyword
+'-0.0413' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'92490' Literal.Number
+' ' Text.Whitespace
+'G03 X0.964 Y1.615 I0.1291 J-0.3825\n' Text
+
+'N' Keyword
+'92500' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'0.9254' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.4125' Literal.Number
+' ' Text.Whitespace
+'I' Keyword
+'0.5116' Literal.Number
+' ' Text.Whitespace
+'J' Keyword
+'-0.2025' Literal.Number
+'\n' Text.Whitespace
+
+'N' Keyword
+'92510' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'0.9257' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.395' Literal.Number
+' ' Text.Whitespace
+'I' Keyword
+'0.5503' Literal.Number
+' ' Text.Whitespace
+'J' Keyword
+'0' Literal.Number
+'.\n' Text
+
+'N' Keyword
+'92520' Literal.Number
+' ' Text.Whitespace
+'G02 X0.9257 Y1.3921 I-0.0918 J-0.0029\n' Text
+
+'N' Keyword
+'92530' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'0.9256' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.3881' Literal.Number
+' ' Text.Whitespace
+'I' Keyword
+'-0.0918' Literal.Number
+' ' Text.Whitespace
+'J' Keyword
+'0' Literal.Number
+'.\n' Text
+
+'N' Keyword
+'92540' Literal.Number
+' ' Text.Whitespace
+'G03 X0.925 Y1.357 I0.7199 J-0.0312\n' Text
+
+'N' Keyword
+'92550' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'0.9827' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.0743' Literal.Number
+' ' Text.Whitespace
+'I' Keyword
+'0.7206' Literal.Number
+' ' Text.Whitespace
+'J' Keyword
+'0' Literal.Number
+'.\n' Text
+
+'N' Keyword
+'92560' Literal.Number
+' ' Text.Whitespace
+'G00 Z0.1\n' Text
+
+'N' Keyword
+'92570' Literal.Number
+' ' Text.Whitespace
+'M05 M09\n' Text
+
+'N' Keyword
+'92580' Literal.Number
+' ' Text.Whitespace
+'(END TOOL)\n' Text
+
+'N' Keyword
+'92590' Literal.Number
+' ' Text.Whitespace
+'M05 M09\n' Text
+
+'N' Keyword
+'92600' Literal.Number
+' ' Text.Whitespace
+'M30\n' Text
+
+'%\n' Text
diff --git a/tests/examplefiles/gcode/boomerangv4.gcode b/tests/examplefiles/gcode/boomerangv4.gcode
new file mode 100644
index 00000000..91d44da4
--- /dev/null
+++ b/tests/examplefiles/gcode/boomerangv4.gcode
@@ -0,0 +1,52 @@
+( Made using CamBam - http://www.cambam.co.uk )
+( boomerangv3 1/14/2010 9:29:11 PM )
+( T0 : 0.25 )
+G20 G90 G64 G40
+G0 Z1.0
+( T0 : 0.25 )
+T0 M6
+( Profile1 )
+G17
+M3 S0
+G0 X11.4158 Y0.5132
+G1 F30.0 Z0.0
+G3 F300.0 X12.9975 Y1.714 I0.4346 J1.0696
+G0 Z1.0
+G0 X0.4562 Y1.7439
+G1 F30.0 Z0.0
+G3 F300.0 X2.018 Y0.538 I1.0998 J-0.1898
+( 3DSurface1 )
+S0
+G0 Z1.0
+G0 X0.1101 Y1.2205
+G1 F30.0 Z-0.0025
+G1 F300.0 Y1.4452
+G1 F30.0 X0.1851 Y1.5275
+G1 F300.0 Y1.504
+G1 Y1.479 Z0.001
+G1 Y1.404 Z0.0333
+G1 Y1.204
+G1 Y1.179 Z-0.0025
+G1 Y1.1581
+G1 F30.0 X0.2601 Y1.0964
+G1 F300.0 Y1.104
+G1 Y1.129 Z0.0973
+G1 Y1.329
+G1 Y1.379 Z0.0791
+G1 Y1.404 Z0.0688
+G1 Y1.554 Z0.0041
+G1 Y1.579 Z-0.0025
+G1 Y1.6098
+G1 F30.0 X0.3351 Y1.6921
+G1 F300.0 Y1.654
+G1 Y1.629 Z0.0072
+G1 Y1.479 Z0.0719
+G1 Y1.454 Z0.0817
+G1 Y1.304 Z0.1363
+G1 Y1.279 Z0.1451
+G1 Y1.079
+G1 Y1.054 Z-0.0025
+G1 Y1.0352
+G1 F30.0 X0.4101 Y0.9747
+M5
+M30
diff --git a/tests/examplefiles/gcode/boomerangv4.gcode.output b/tests/examplefiles/gcode/boomerangv4.gcode.output
new file mode 100644
index 00000000..cb337efe
--- /dev/null
+++ b/tests/examplefiles/gcode/boomerangv4.gcode.output
@@ -0,0 +1,349 @@
+'( Made using CamBam - http://www.cambam.co.uk )\n' Text
+
+'( boomerangv3 1/14/2010 9:29:11 PM )\n' Text
+
+'( T0 : 0.25 )\n' Text
+
+'G20 ' Name.Builtin
+'G90 G64 G40\n' Text
+
+'G0 ' Name.Builtin
+'Z' Keyword
+'1.0' Literal.Number
+'\n' Text.Whitespace
+
+'( T0 : 0.25 )\n' Text
+
+'T' Keyword
+'0' Literal.Number
+' ' Text.Whitespace
+'M6\n' Text
+
+'( Profile1 )\n' Text
+
+'G17\n' Name.Builtin
+
+'M3 ' Name.Builtin
+'S' Keyword
+'0' Literal.Number
+'\n' Text.Whitespace
+
+'G0 ' Name.Builtin
+'X' Keyword
+'11.4158' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.5132' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'30.0' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0' Literal.Number
+'\n' Text.Whitespace
+
+'G3 ' Name.Builtin
+'F' Keyword
+'300.0' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'12.9975' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.714' Literal.Number
+' ' Text.Whitespace
+'I' Keyword
+'0.4346' Literal.Number
+' ' Text.Whitespace
+'J' Keyword
+'1.0696' Literal.Number
+'\n' Text.Whitespace
+
+'G0 ' Name.Builtin
+'Z' Keyword
+'1.0' Literal.Number
+'\n' Text.Whitespace
+
+'G0 ' Name.Builtin
+'X' Keyword
+'0.4562' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.7439' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'30.0' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0' Literal.Number
+'\n' Text.Whitespace
+
+'G3 ' Name.Builtin
+'F' Keyword
+'300.0' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'2.018' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.538' Literal.Number
+' ' Text.Whitespace
+'I' Keyword
+'1.0998' Literal.Number
+' ' Text.Whitespace
+'J' Keyword
+'-0.1898' Literal.Number
+'\n' Text.Whitespace
+
+'( 3DSurface1 )\n' Text
+
+'S' Keyword
+'0' Literal.Number
+'\n' Text.Whitespace
+
+'G0 ' Name.Builtin
+'Z' Keyword
+'1.0' Literal.Number
+'\n' Text.Whitespace
+
+'G0 ' Name.Builtin
+'X' Keyword
+'0.1101' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.2205' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'30.0' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0025' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'300.0' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.4452' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'30.0' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'0.1851' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.5275' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'300.0' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.504' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.479' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.001' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.404' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0333' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.204' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.179' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0025' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.1581' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'30.0' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'0.2601' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.0964' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'300.0' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.104' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.129' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0973' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.329' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.379' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0791' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.404' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0688' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.554' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0041' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.579' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0025' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.6098' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'30.0' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'0.3351' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.6921' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'300.0' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'1.654' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.629' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0072' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.479' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0719' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.454' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.0817' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.304' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.1363' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.279' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'0.1451' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.079' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.054' Literal.Number
+' ' Text.Whitespace
+'Z' Keyword
+'-0.0025' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'Y' Keyword
+'1.0352' Literal.Number
+'\n' Text.Whitespace
+
+'G1 ' Name.Builtin
+'F' Keyword
+'30.0' Literal.Number
+' ' Text.Whitespace
+'X' Keyword
+'0.4101' Literal.Number
+' ' Text.Whitespace
+'Y' Keyword
+'0.9747' Literal.Number
+'\n' Text.Whitespace
+
+'M5\n' Name.Builtin
+
+'M30\n' Name.Builtin