Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
# Finnish messages for flex.
# Copyright © 2009, 2012 The Flex Project (msgids)
# This file is put in the public domain.
# This file is distributed under the same license as the flex package.
# Jorma Karvonen <karvonen.jorma@gmail.com>, 2009, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: flex 2.5.36\n"
"Report-Msgid-Bugs-To: flex-devel@lists.sourceforge.net\n"
"POT-Creation-Date: 2017-05-06 10:49-0400\n"
"PO-Revision-Date: 2012-08-02 21:16+0200\n"
"Last-Translator: Jorma Karvonen <karvonen.jorma@gmail.com>\n"
"Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n"
"Language: fi\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Bugs: Report translation errors to the Language-Team address.\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"

#: src/buf.c:79
msgid "Allocation of buffer to print string failed"
msgstr "Puskurin varaaminen merkkijonon tulostamiseen epäonnistui"

#: src/buf.c:107
msgid "Allocation of buffer for line directive failed"
msgstr "Puskurin varaaminen rividirektiiville epäonnistui"

#: src/buf.c:177
msgid "Allocation of buffer for m4 def failed"
msgstr "Puskurin varaaminen m4 def -määrittelylle epäonnistui"

#: src/buf.c:198
msgid "Allocation of buffer for m4 undef failed"
msgstr "Puskurin varaaminen m4 undef -määrittelylle epäonnistui"

#: src/dfa.c:59
#, c-format
msgid "State #%d is non-accepting -\n"
msgstr "Tila #%d on ei-hyväksyvä -\n"

# Sanastollisessa analyysissä (lexical analysis) esimerkiksi kauttaviivalla ilmoitetaan, että viivan jälkeinen teksti kuuluu "trailing context"-tekstiin
#: src/dfa.c:119
msgid "dangerous trailing context"
msgstr "vaarallinen jättökonteksti"

#: src/dfa.c:159
#, c-format
msgid " associated rule line numbers:"
msgstr " yhdistetyt sääntörivinumerot:"

#: src/dfa.c:193
#, c-format
msgid " out-transitions: "
msgstr " ulossiirtymät: "

#: src/dfa.c:201
#, c-format
msgid ""
"\n"
" jam-transitions: EOF "
msgstr ""
"\n"
" ruuhkasiirtymät: TIEDOSTONLOPPUMERKKI "

#: src/dfa.c:331
msgid "consistency check failed in epsclosure()"
msgstr "yhtenäisyystarkistus epäonnistui epsclosure()-funktiossa"

#  DFA on akronyymi käsitteelle "deterministic finite automaton" eli deterministinen äärellinen automaatti.
#: src/dfa.c:419
msgid ""
"\n"
"\n"
"DFA Dump:\n"
"\n"
msgstr ""
"\n"
"\n"
"Deterministisen äärellisen automaatin vedos:\n"
"\n"

#: src/dfa.c:587
msgid "could not create unique end-of-buffer state"
msgstr "ei voitu luoda uniikkia puskurinlopputilaa"

#: src/dfa.c:608
#, c-format
msgid "state # %d:\n"
msgstr "tila numero %d:\n"

#: src/dfa.c:768
msgid "Could not write yynxt_tbl[][]"
msgstr "Ei voitu kirjoittaa yynxt_tbl[][]"

#: src/dfa.c:1028
msgid "bad transition character detected in sympartition()"
msgstr "väärä siirtymämerkki havaittu funktiossa sympartition()"

#: src/gen.c:480
msgid ""
"\n"
"\n"
"Equivalence Classes:\n"
"\n"
msgstr ""
"\n"
"\n"
"Ekvivalenssiluokat:\n"
"\n"

#: src/gen.c:669 src/gen.c:698 src/gen.c:1218
#, c-format
msgid "state # %d accepts: [%d]\n"
msgstr "tila numero %d hyväksyy: [%d]\n"

#: src/gen.c:1115
#, c-format
msgid "state # %d accepts: "
msgstr "tila numero %d hyväksyy: "

#: src/gen.c:1162
msgid "Could not write yyacclist_tbl"
msgstr "Ei voitu kirjoittaa: yyacclist_tbl"

#: src/gen.c:1236
msgid "Could not write yyacc_tbl"
msgstr "Ei voitu kirjoittaa: yyacc_tbl"

#: src/gen.c:1251 src/gen.c:1623 src/gen.c:1646
msgid "Could not write ecstbl"
msgstr "Ei voitu kirjoitaa ecstbl"

#: src/gen.c:1271
msgid ""
"\n"
"\n"
"Meta-Equivalence Classes:\n"
msgstr ""
"\n"
"\n"
"Meta-ekvivalenssiluokkia:\n"

#: src/gen.c:1293
msgid "Could not write yymeta_tbl"
msgstr "Ei voitu kirjoittaa: yymeta_tbl"

#: src/gen.c:1352
msgid "Could not write yybase_tbl"
msgstr "Ei voitu kirjoittaa: yybase_tbl"

#: src/gen.c:1384
msgid "Could not write yydef_tbl"
msgstr "Ei voitu kirjoittaa: yydef_tbl"

#: src/gen.c:1422
msgid "Could not write yynxt_tbl"
msgstr "Ei voitu kirjoittaa: yynxt_tbl"

#: src/gen.c:1456
msgid "Could not write yychk_tbl"
msgstr "Ei voitu kirjoittaa: yychk_tbl"

#: src/gen.c:1608 src/gen.c:1637
msgid "Could not write ftbl"
msgstr "Ei voitu kirjoittaa: ftbl"

#: src/gen.c:1614
msgid "Could not write ssltbl"
msgstr "Ei voitu kirjoittaa: ssltbl"

#: src/gen.c:1665
msgid "Could not write eoltbl"
msgstr "Ei voitu kirjoittaa: eoltbl"

#: src/gen.c:1722
msgid "Could not write yynultrans_tbl"
msgstr "Ei voitu kirjoittaa: yynultrans_tbl"

#: src/main.c:178
msgid "rule cannot be matched"
msgstr "sääntö ei voinut täsmätä"

#: src/main.c:183
msgid "-s option given but default rule can be matched"
msgstr "valitsin -s annettu mutta oletussääntö ei voinut täsmätä"

#: src/main.c:221
msgid "Can't use -+ with -l option"
msgstr "Ei voi käyttää -+ valitsimen -l kanssa"

#: src/main.c:224
msgid "Can't use -f or -F with -l option"
msgstr "Ei voi käyttää valitsinta -f tai -F valitsimen -l kanssa"

#: src/main.c:228
msgid "Can't use --reentrant or --bison-bridge with -l option"
msgstr ""
"Ei voi käyttää valitsinta --reentrant tai --bison-bridge valitsimen -l kanssa"

#: src/main.c:260
msgid "-Cf/-CF and -Cm don't make sense together"
msgstr "-Cf/-CF ja -Cm eivät ole järkeviä yhdessä"

#: src/main.c:263
msgid "-Cf/-CF and -I are incompatible"
msgstr "-Cf/-CF ja -I ovat yhteensopimattomia"

#: src/main.c:267
msgid "-Cf/-CF are incompatible with lex-compatibility mode"
msgstr "-Cf/-CF ovat yhteensopimattomia lex-yhteensopivuustilassa"

#: src/main.c:272
msgid "-Cf and -CF are mutually exclusive"
msgstr "-Cf ja -CF ovat toisensa poissulkevia"

#: src/main.c:276
msgid "Can't use -+ with -CF option"
msgstr "Ei voi käyttää valitsinta -+ valitsimen -CF kanssa"

#: src/main.c:279
#, c-format
msgid "%array incompatible with -+ option"
msgstr "%array on yhteensopimaton valitsimen -+ kanssa"

#: src/main.c:284
msgid "Options -+ and --reentrant are mutually exclusive."
msgstr "Valitsimen -+ ja --reentrant ovat toisensa poissulkevia."

#  bison bridge tarkoittaa, että flex käyttää bison-ohjelmaa analyysissä
#: src/main.c:287
msgid "bison bridge not supported for the C++ scanner."
msgstr "”bison bridge”-menettelyä ei tueta C++-skannerille."

#: src/main.c:336 src/main.c:419
#, c-format
msgid "could not create %s"
msgstr "ei voitu luoda %s"

#: src/main.c:431
msgid "could not write tables header"
msgstr "ei voitu kirjoittaa tauluotsaketta"

#: src/main.c:435
#, c-format
msgid "can't open skeleton file %s"
msgstr "ei voi avata kehystiedostoa %s"

#: src/main.c:450
msgid "Prefix cannot include '[' or ']'"
msgstr ""

#: src/main.c:474
msgid "allocation of macro definition failed"
msgstr "Makromäärityksen varaaminen epäonnistui"

#: src/main.c:521
#, c-format
msgid "input error reading skeleton file %s"
msgstr "syötevirhe luettaessa kehystiedostoa %s"

#: src/main.c:525
#, c-format
msgid "error closing skeleton file %s"
msgstr "virhe suljettaessa kehystiedostoa %s"

#: src/main.c:709
#, c-format
msgid "error creating header file %s"
msgstr "virhe luotaessa otsaketiedostoa %s"

#: src/main.c:717
#, c-format
msgid "error writing output file %s"
msgstr "virhe kirjoitettaessa tulostetiedostoa %s"

#: src/main.c:721
#, c-format
msgid "error closing output file %s"
msgstr "virhe suljettaessa tulostetiedostoa %s"

#: src/main.c:725
#, c-format
msgid "error deleting output file %s"
msgstr "virhe poistettaessa tulostetiedostoa %s"

#: src/main.c:732
#, c-format
msgid "No backing up.\n"
msgstr "Ei varmuuskopiointia.\n"

#: src/main.c:736
#, c-format
msgid "%d backing up (non-accepting) states.\n"
msgstr "%d (ei-hyväksyvää) varmuuskopiointitilaa.\n"

#: src/main.c:740
#, c-format
msgid "Compressed tables always back up.\n"
msgstr "Tiivistetyt taulut varmuuskopioidaan aina.\n"

#: src/main.c:743
#, c-format
msgid "error writing backup file %s"
msgstr "virhe kirjoitettaessa varmuuskopiotiedostoa %s"

#: src/main.c:747
#, c-format
msgid "error closing backup file %s"
msgstr "virhe suljettaessa varmuuskopiotiedostoa %s"

#: src/main.c:752
#, c-format
msgid "%s version %s usage statistics:\n"
msgstr "%s-version %s käyttötilastot:\n"

#: src/main.c:755
#, c-format
msgid "  scanner options: -"
msgstr "  skannerivalitsimet: -"

#  Epädeterministinen äärellinen automaatti, lyh. NFA (engl. non-deterministic finite-state automaton)
#: src/main.c:834
#, c-format
msgid "  %d/%d NFA states\n"
msgstr "  %d/%d Epädeterministisen äärellisen automaatin tilaa\n"

#: src/main.c:836
#, c-format
msgid "  %d/%d DFA states (%d words)\n"
msgstr "  %d/%d Deterministisen äärellisen automaatin tilaa (%d sanaa)\n"

#: src/main.c:838
#, c-format
msgid "  %d rules\n"
msgstr "  %d sääntöä\n"

#: src/main.c:843
#, c-format
msgid "  No backing up\n"
msgstr "  Ei varmuuskopiointia\n"

#: src/main.c:847
#, c-format
msgid "  %d backing-up (non-accepting) states\n"
msgstr "  %d (ei-hyväksyvää) varmuuskopiotilaa\n"

#: src/main.c:852
#, c-format
msgid "  Compressed tables always back-up\n"
msgstr "  Tiivistetyt taulut varmuuskopioidaan aina\n"

#: src/main.c:856
#, c-format
msgid "  Beginning-of-line patterns used\n"
msgstr "  Rivin-alku-malleja käytetään\n"

#: src/main.c:858
#, c-format
msgid "  %d/%d start conditions\n"
msgstr "  %d/%d-käynnistysehtoja\n"

#: src/main.c:862
#, c-format
msgid "  %d epsilon states, %d double epsilon states\n"
msgstr "  %d epsilon-tilaa, %d double epsilon-tilaa\n"

#: src/main.c:866
#, c-format
msgid "  no character classes\n"
msgstr "  ei merkkiluokkia\n"

#: src/main.c:870
#, c-format
msgid "  %d/%d character classes needed %d/%d words of storage, %d reused\n"
msgstr ""
"  %d/%d merkkiluokkaa tarvittu %d/%d tallennussanaan, %d käytetty uudelleen\n"

#: src/main.c:875
#, c-format
msgid "  %d state/nextstate pairs created\n"
msgstr "  %d tila/seuraavatila-paria luotu\n"

#: src/main.c:878
#, c-format
msgid "  %d/%d unique/duplicate transitions\n"
msgstr "  %d/%d uniikkia/kaksoiskappelsiirtymää\n"

#: src/main.c:883
#, c-format
msgid "  %d table entries\n"
msgstr "  %d-tauluriviä\n"

#: src/main.c:891
#, c-format
msgid "  %d/%d base-def entries created\n"
msgstr "  %d/%d base-def-alkiota luotu\n"

#: src/main.c:895
#, c-format
msgid "  %d/%d (peak %d) nxt-chk entries created\n"
msgstr "  %d/%d (huippu %d) nxt-chk-alkiota luotu\n"

#: src/main.c:899
#, c-format
msgid "  %d/%d (peak %d) template nxt-chk entries created\n"
msgstr "  %d/%d (huippu %d) malline nxt-chk-alkiota luotu\n"

#: src/main.c:903
#, c-format
msgid "  %d empty table entries\n"
msgstr "  %d tyhjää taulualkiota\n"

#: src/main.c:905
#, c-format
msgid "  %d protos created\n"
msgstr "  %d protoa luotu\n"

#: src/main.c:908
#, c-format
msgid "  %d templates created, %d uses\n"
msgstr "  %d mallinetta luotu, %d käytetään\n"

#: src/main.c:916
#, c-format
msgid "  %d/%d equivalence classes created\n"
msgstr "  %d/%d ekvivalenssiluokkaa luotu\n"

#: src/main.c:924
#, c-format
msgid "  %d/%d meta-equivalence classes created\n"
msgstr "  %d/%d meta-ekvivalenssiluokkaa luotu\n"

#: src/main.c:930
#, c-format
msgid "  %d (%d saved) hash collisions, %d DFAs equal\n"
msgstr ""
"  %d (%d tallennettu) hash-törmäykset, yhtäsuuri kuin %d Deterministisen "
"äärellisen automaatin törmäystä\n"

#: src/main.c:932
#, c-format
msgid "  %d sets of reallocations needed\n"
msgstr "  %d uudelleenvarausjoukkoa tarvittu\n"

#: src/main.c:934
#, c-format
msgid "  %d total table entries needed\n"
msgstr "  %d taulukkoalkiota tarvittu yhteensä\n"

#: src/main.c:1008
#, c-format
msgid "Internal error. flexopts are malformed.\n"
msgstr "Sisäinen virhe. flex-valitsimet ovat vääränmuotoisia.\n"

#: src/main.c:1018
#, c-format
msgid "Try `%s --help' for more information.\n"
msgstr "Lisätietoja käskyllä ”%s --help”.\n"

#: src/main.c:1075
#, c-format
msgid "unknown -C option '%c'"
msgstr "tuntematon valitsin -C ”%c”"

#: src/main.c:1204
#, c-format
msgid "%s %s\n"
msgstr "%s %s\n"

#: src/main.c:1476
msgid "fatal parse error"
msgstr "vakava jäsennysvirhe"

#: src/main.c:1508
#, c-format
msgid "could not create backing-up info file %s"
msgstr "ei voitu luoda varmuuskopiotietotiedostoa %s"

#: src/main.c:1529
#, c-format
msgid "-l AT&T lex compatibility option entails a large performance penalty\n"
msgstr ""
"-l AT&T lex-yhteensopivuusvalitsin tuo mukanaan ison suorituskykysakon\n"

#: src/main.c:1532
#, c-format
msgid " and may be the actual source of other reported performance penalties\n"
msgstr ""
" ja saattaa olla muiden ilmoitettujen suorituskykysakkojen todellinen lähde\n"

#: src/main.c:1538
#, c-format
msgid ""
"%%option yylineno entails a performance penalty ONLY on rules that can match "
"newline characters\n"
msgstr ""
"%%option yylineno tuo mukanaan suorituskykysakon VAIN säännöissä, jotka "
"voivat täsmätä rivinvaihtomerkkeihin\n"

#: src/main.c:1545
#, c-format
msgid "-I (interactive) entails a minor performance penalty\n"
msgstr "-I (interaktiivinen) tuo mukanaan pienemmän suorituskykysakon\n"

#: src/main.c:1550
#, c-format
msgid "yymore() entails a minor performance penalty\n"
msgstr "yymore() tuo mukanaan pienemmän suorituskykysakon\n"

#: src/main.c:1556
#, c-format
msgid "REJECT entails a large performance penalty\n"
msgstr "REJECT tuo mukanaan ison suorituskykyrangaistuksen\n"

#: src/main.c:1561
#, c-format
msgid "Variable trailing context rules entail a large performance penalty\n"
msgstr "Muuttujajättökontekstisäännöt tuovat mukanaan ison suorityskykysakon\n"

#: src/main.c:1573
msgid "REJECT cannot be used with -f or -F"
msgstr "REJECT ei voida käyttää valitsimen -f tai -F kanssa"

#: src/main.c:1576
#, c-format
msgid "%option yylineno cannot be used with REJECT"
msgstr "%option yylineno ei voi käyttää REJECT:n kanssa"

#: src/main.c:1579
msgid "variable trailing context rules cannot be used with -f or -F"
msgstr ""
"muuttujajättökontekstisääntöjä ei voida käyttää valitsimen -f tai -F kanssa"

#: src/main.c:1704
#, c-format
msgid "%option yyclass only meaningful for C++ scanners"
msgstr "%option yyclass on merkityksellinen vain C++-skannereille"

#: src/main.c:1791
#, c-format
msgid "Usage: %s [OPTIONS] [FILE]...\n"
msgstr "Käyttö: %s [VALITSIMET] [TIEDOSTO]...\n"

#: src/main.c:1794
#, fuzzy, c-format
msgid ""
"Generates programs that perform pattern-matching on text.\n"
"\n"
"Table Compression:\n"
"  -Ca, --align      trade off larger tables for better memory alignment\n"
"  -Ce, --ecs        construct equivalence classes\n"
"  -Cf               do not compress tables; use -f representation\n"
"  -CF               do not compress tables; use -F representation\n"
"  -Cm, --meta-ecs   construct meta-equivalence classes\n"
"  -Cr, --read       use read() instead of stdio for scanner input\n"
"  -f, --full        generate fast, large scanner. Same as -Cfr\n"
"  -F, --fast        use alternate table representation. Same as -CFr\n"
"  -Cem              default compression (same as --ecs --meta-ecs)\n"
"\n"
"Debugging:\n"
"  -d, --debug             enable debug mode in scanner\n"
"  -b, --backup            write backing-up information to %s\n"
"  -p, --perf-report       write performance report to stderr\n"
"  -s, --nodefault         suppress default rule to ECHO unmatched text\n"
"  -T, --trace             %s should run in trace mode\n"
"  -w, --nowarn            do not generate warnings\n"
"  -v, --verbose           write summary of scanner statistics to stdout\n"
"      --hex               use hexadecimal numbers instead of octal in debug "
"outputs\n"
"\n"
"Files:\n"
"  -o, --outfile=FILE      specify output filename\n"
"  -S, --skel=FILE         specify skeleton file\n"
"  -t, --stdout            write scanner on stdout instead of %s\n"
"      --yyclass=NAME      name of C++ class\n"
"      --header-file=FILE   create a C header file in addition to the "
"scanner\n"
"      --tables-file[=FILE] write tables to FILE\n"
"\n"
"Scanner behavior:\n"
"  -7, --7bit              generate 7-bit scanner\n"
"  -8, --8bit              generate 8-bit scanner\n"
"  -B, --batch             generate batch scanner (opposite of -I)\n"
"  -i, --case-insensitive  ignore case in patterns\n"
"  -l, --lex-compat        maximal compatibility with original lex\n"
"  -X, --posix-compat      maximal compatibility with POSIX lex\n"
"  -I, --interactive       generate interactive scanner (opposite of -B)\n"
"      --yylineno          track line count in yylineno\n"
"\n"
"Generated code:\n"
"  -+,  --c++               generate C++ scanner class\n"
"  -Dmacro[=defn]           #define macro defn  (default defn is '1')\n"
"  -L,  --noline            suppress #line directives in scanner\n"
"  -P,  --prefix=STRING     use STRING as prefix instead of \"yy\"\n"
"  -R,  --reentrant         generate a reentrant C scanner\n"
"       --bison-bridge      scanner for bison pure parser.\n"
"       --bison-locations   include yylloc support.\n"
"       --stdinit           initialize yyin/yyout to stdin/stdout\n"
"       --nounistd          do not include <unistd.h>\n"
"       --noFUNCTION        do not generate a particular FUNCTION\n"
"\n"
"Miscellaneous:\n"
"  -c                      do-nothing POSIX option\n"
"  -n                      do-nothing POSIX option\n"
"  -?\n"
"  -h, --help              produce this help message\n"
"  -V, --version           report %s version\n"
msgstr ""
"Luo ohjelmia, jotka suorittavat tekstin mallintäsmäystä.\n"
"\n"
"Taulutiivistys:\n"
"  -Ca, --align      kompromissi laajoissa taulukoissa parempaa "
"muistitasausta varten\n"
"  -Ce, --ecs        rakenna ekvivalenssiluokkia\n"
"  -Cf               älä tiivistä tauluja; käytä valitsinta -f esittelyyn\n"
"  -CF               älä tiivistä tauluja; käytä valitsinta -F esittelyyn\n"
"  -Cm, --meta-ecs   rakenna meta-ekvivalenssiluokkia\n"
"  -Cr, --read       käytä funktiota read() eikä vakiosyötettä "
"skannerisyötteenä\n"
"  -f, --full        tuota nopea, laaja skanneri. Sama kuin -Cfr\n"
"  -F, --fast        käytä vaihtoehtoista tauluesittelyä. Sama kuin -CFr\n"
"  -Cem              oletustiivistys (sama kuin --ecs --meta-ecs)\n"
"\n"
"Virheenjäljitys:\n"
"  -d, --debug             ota käyttöön virheenjäljitystila skannerissa\n"
"  -b, --backup            kirjoita varmuuskopiotietoja osoitteeseen %s\n"
"  -p, --perf-report       kirjoita suorituskykyraportti vakiovirheeseen\n"
"  -s, --nodefault         vaimenna oletussääntö ECHO-täsmäämättömään "
"tekstiin\n"
"  -T, --trace             %s pitäisi suorittaa jäljitystilassa\n"
"  -w, --nowarn            älä tuota varoituksia\n"
"  -v, --verbose           kirjoita yhteenveto skanneritilastoista "
"vakiotulosteeseen\n"
"\n"
"Tiedostot:\n"
"  -o, --outfile=TIEDOSTO       määritä tulostetiedostonimi\n"
"  -S, --skel=TIEDOSTO          määritä runkotiedosto\n"
"  -t, --stdout                 kirjoita skanneri vakiotulosteeseen eikä "
"kohteeseen %s\n"
"      --yyclass=NIMI           C++-luokan nimi\n"
"      --header-file=TIEDOSTO   tuota C-otsaketiedosto etsijän lisäksi\n"
"      --tables-file[=TIEDOSTO] kirjoita taulut TIEDOSTOon\n"
"\n"
"Skannerikäyttäytyminen:\n"
"  -7, --7bit               tuota 7-bittinen skanneri\n"
"  -8, --8bit               tuota 8-bittinen skanneri\n"
"  -B, --batch              tuota eräajoskanneri (päinvastoin kuin -I)\n"
"  -i, --case-insensitive   älä välitä kirjainkoosta malleissa\n"
"  -l, --lex-compat         maksimiyhteensopivuus alkueräisen lex-ohjelman "
"kanssa\n"
"  -X, --posix-compat       maksimiyhteensopivuus POSIX lex-ohjelman kanssa\n"
"  -I, --interactive        tuota interaktiivinen skanneri (päinvastoin kuin -"
"B)\n"
"      --yylineno           jäljitä rivilukumäärä yylineno-ohjelmassa\n"
"\n"
"Generoitu koodi:\n"
"  -+,  --c++               tuota C++-skanneriluokka\n"
"  -Dmacro[=defn]           #define-makro defn  (oletus defn on ”1”)\n"
"  -L,  --noline            vaimenna #line-direktiviit skannerissa\n"
"  -P,  --prefix=MERKKIJONO käytä MERKKIJONO etuliitteenä eikä ”yy”\n"
"  -R,  --reentrant         tuota vapaakäyntinen C-skanneri\n"
"       --bison-bridge      skanneri ”bison pure”-jäsentimelle.\n"
"       --bison-locations   sisällytä yylloc-tuki.\n"
"       --stdinit           alusta yyin/yyout vakiosyötteeseen/"
"vakiotulosteeseen\n"
"       --noansi-definitions vanhantyyliset funktiomäärittelyt\n"
"       --noansi-prototypes  tyhjä parametriluettelo prototyypeissä\n"
"       --nounistd          älä sisällytä <unistd.h>-tiedostoa\n"
"       --noFUNKTIO         älä tuota määriteltyä FUNKTIOta\n"
"\n"
"Sekalaiset:\n"
"  -c                       älä tee mitään POSIX-valitsin\n"
"  -n                       älä tee mitään POSIX-valitsin\n"
"  -?\n"
"  -h, --help               tuota tämä opastesanoma\n"
"  -V, --version            ilmoita %s-versio\n"

#: src/misc.c:64
msgid "allocation of sko_stack failed"
msgstr "sko_stack-varaaminen epäonnistui"

#: src/misc.c:100
#, c-format
msgid "name \"%s\" ridiculously long"
msgstr "nimi ”%s” on naurettavan pitkä"

#: src/misc.c:155
msgid "memory allocation failed in allocate_array()"
msgstr "muistinvaraus epäonnistui funktiossa allocate_array()"

#: src/misc.c:205
#, c-format
msgid "bad character '%s' detected in check_char()"
msgstr "väärä merkki ”%s” havaittu funktiossa check_char()"

#: src/misc.c:210
#, c-format
msgid "scanner requires -8 flag to use the character %s"
msgstr "skanneri vaatiin lipun -8 käytettäväksi merkille %s"

#: src/misc.c:229
#, fuzzy
msgid "memory allocation failure in xstrdup()"
msgstr "muistinvaraus epäonnistui funktiossa allocate_array()"

#: src/misc.c:303
#, c-format
msgid "%s: fatal internal error, %s\n"
msgstr "%s: vakava sisäinen virhe, %s\n"

#: src/misc.c:671
msgid "attempt to increase array size failed"
msgstr "yritys taulukon koon kasvattamiseksi epäonnistui"

#: src/misc.c:795
msgid "bad line in skeleton file"
msgstr "väärä rivi kehystiedostossa"

#: src/misc.c:845
msgid "memory allocation failed in yy_flex_xmalloc()"
msgstr "muistinvaraus epäonnistui funktiossa yy_flex_xmalloc()"

#: src/nfa.c:100
#, c-format
msgid ""
"\n"
"\n"
"********** beginning dump of nfa with start state %d\n"
msgstr ""
"\n"
"\n"
"********** Epädeterministisen äärellisen automaatin vedoksen alku "
"aloitustilassa %d\n"

#: src/nfa.c:111
#, c-format
msgid "state # %4d\t"
msgstr "tila numero %4d\t"

#: src/nfa.c:126
#, c-format
msgid "********** end of dump\n"
msgstr "********** vedoksen loppu\n"

#: src/nfa.c:169
msgid "empty machine in dupmachine()"
msgstr "tyhjä kone funktiossa dupmachine()"

#: src/nfa.c:234
#, c-format
msgid "Variable trailing context rule at line %d\n"
msgstr "Muuttujajättökontekstisääntö rivillä %d\n"

#: src/nfa.c:357
msgid "bad state type in mark_beginning_as_normal()"
msgstr "väärä tilatyyppi funktiossa mark_beginning_as_normal()"

#: src/nfa.c:595
#, c-format
msgid "input rules are too complicated (>= %d NFA states)"
msgstr ""
"syötesäännöt ovat liian mutkikkaita (>= %d Epädeterministisen äärellisen "
"automaatin tilaa)"

#: src/nfa.c:673
msgid "found too many transitions in mkxtion()"
msgstr "löytyi liian monta siirtymää funktiossa mkxtion()"

#: src/nfa.c:699
#, c-format
msgid "too many rules (> %d)!"
msgstr "liian moni sääntöjä (> %d)!"

#: src/parse.y:159
msgid "unknown error processing section 1"
msgstr "tuntematon virhe käsiteltäessä lohkoa 1"

#: src/parse.y:184 src/parse.y:353
msgid "bad start condition list"
msgstr "väärä alkuehtoluettelo"

#: src/parse.y:204
msgid "Prefix must not contain [ or ]"
msgstr ""

#: src/parse.y:317
msgid "unrecognized rule"
msgstr "tunnistamaton sääntö"

#: src/parse.y:436 src/parse.y:449 src/parse.y:518
msgid "trailing context used twice"
msgstr "jättökontekstia käytetty kahdesti"

#: src/parse.y:554 src/parse.y:564 src/parse.y:637 src/parse.y:647
msgid "bad iteration values"
msgstr "vääriä iteraatioarvoja"

#: src/parse.y:582 src/parse.y:600 src/parse.y:665 src/parse.y:683
msgid "iteration value must be positive"
msgstr "iteraatioarvon on oltava positiivinen"

#: src/parse.y:806 src/parse.y:816
#, c-format
msgid "the character range [%c-%c] is ambiguous in a case-insensitive scanner"
msgstr ""
"merkkialue [%c-%c] ei ole yksiselitteinen skannerissa, joka ei välitä "
"kirjainkoosta"

#: src/parse.y:821
msgid "negative range in character class"
msgstr "negatiivinen lukualue merkkiluokassa"

#: src/parse.y:918
msgid "[:^lower:] is ambiguous in case insensitive scanner"
msgstr ""
"[:^lower:] ei ole yksiselitteinen skannerissa, joka ei välitä kirjainkoosta"

#: src/parse.y:924
msgid "[:^upper:] ambiguous in case insensitive scanner"
msgstr ""
"[:^upper:] ei ole yksiselitteinen skannerissa, joka ei välit kirjainkoosta"

#: src/scan.l:82 src/scan.l:644 src/scan.l:702
msgid "Input line too long\n"
msgstr "Syöterivi on liian pitkä\n"

#: src/scan.l:183
#, c-format
msgid "malformed '%top' directive"
msgstr "vääränmuotoinen ”%top”-direktiivi"

#: src/scan.l:205
#, no-c-format
msgid "unrecognized '%' directive"
msgstr "tunnistamaton ”%”-direktiivi"

#: src/scan.l:214
msgid "Definition name too long\n"
msgstr "Määritysnimi on liian pitkä\n"

#: src/scan.l:309
msgid "Unmatched '{'"
msgstr "Pariton ”{”"

#: src/scan.l:325
#, c-format
msgid "Definition value for {%s} too long\n"
msgstr "Määritysarvo kohteelle {%s} on liian pitkä\n"

#: src/scan.l:342
msgid "incomplete name definition"
msgstr "epätäydellinen nimimäärittely"

#: src/scan.l:467
msgid "Option line too long\n"
msgstr "Valitsinrivi on liian pitkä\n"

#: src/scan.l:475
#, c-format
msgid "unrecognized %%option: %s"
msgstr "tunnistamaton %%valitsin: %s"

#: src/scan.l:659 src/scan.l:832
msgid "bad character class"
msgstr "väärä merkkiluokka"

#: src/scan.l:709
#, c-format
msgid "undefined definition {%s}"
msgstr "määrittelemätön määrittely {%s}"

#: src/scan.l:772
msgid "unbalanced parenthesis"
msgstr ""

#: src/scan.l:787
#, c-format
msgid "bad <start condition>: %s"
msgstr "virheellinen <aloitusehto>: %s"

#: src/scan.l:800
msgid "missing quote"
msgstr "puuttuva lainausmerkki"

#: src/scan.l:866
#, c-format
msgid "bad character class expression: %s"
msgstr "väärä merkkiluokkalauseke: %s"

#: src/scan.l:888
msgid "bad character inside {}'s"
msgstr "väärä merkki aaltosulkeiden {} sisällä"

#: src/scan.l:894
msgid "missing }"
msgstr "puuttuva }"

#: src/scan.l:972
msgid "EOF encountered inside an action"
msgstr "Tiedoston loppumerkki EOF tavattu toiminnon sisällä"

#: src/scan.l:977
msgid "EOF encountered inside pattern"
msgstr "Tiedoston loppumerkki EOF tavattu mallin sisällä"

#: src/scan.l:1010
#, c-format
msgid "bad character: %s"
msgstr "väärä merkki: %s"

#: src/scan.l:1038
#, c-format
msgid "can't open %s"
msgstr "ei voi avata %s"

#: src/scanopt.c:259
#, c-format
msgid "Usage: %s [OPTIONS]...\n"
msgstr "Käyttö: %s [VALITSIMET]...\n"

#: src/scanopt.c:524
#, c-format
msgid "option `%s' doesn't allow an argument\n"
msgstr "valitsin ”%s” ei salli argumenttia\n"

#: src/scanopt.c:529
#, c-format
msgid "option `%s' requires an argument\n"
msgstr "valitsin ”%s” vaatii argumentin\n"

#: src/scanopt.c:533
#, c-format
msgid "option `%s' is ambiguous\n"
msgstr "valitsin ”%s” ei ole yksiselitteinen\n"

#: src/scanopt.c:537
#, c-format
msgid "Unrecognized option `%s'\n"
msgstr "Tunnistamaton valitsin ”%s”\n"

#: src/scanopt.c:541
#, c-format
msgid "Unknown error=(%d)\n"
msgstr "Tuntematon virhe=(%d)\n"

#: src/sym.c:92
msgid "symbol table memory allocation failed"
msgstr "symbolitaulun muistinvaraus epäonnistui"

#: src/sym.c:183
msgid "name defined twice"
msgstr "nimi määritelty kahdesti"

#: src/sym.c:231
#, c-format
msgid "start condition %s declared twice"
msgstr "alkuehto %s esitelty kahdesti"

#: src/yylex.c:57
msgid "premature EOF"
msgstr "ennenaikainen tiedoston loppumerkki EOF"

#: src/yylex.c:200
#, c-format
msgid "End Marker\n"
msgstr "Loppumerkki\n"

#: src/yylex.c:206
#, c-format
msgid "*Something Weird* - tok: %d val: %d\n"
msgstr "*Jotain outoa - tok: %d arvo: %d\n"

#~ msgid "dynamic memory failure in copy_string()"
#~ msgstr "dynaaminen muistivirhe funktiossa copy_string()"