Revision 6a2c1a43
Added by Arnaud Dieumegard about 6 years ago
src/backends/VHDL/mini_vhdl_ast_pp.ml | ||
---|---|---|
400 | 400 |
fun fmt -> |
401 | 401 |
function |
402 | 402 |
| VarDecl { names = anames; typ = atyp; init_val = ainit_val } -> |
403 |
(Format.fprintf fmt "@[<2>VarDecl {@,"; |
|
404 |
(((Format.fprintf fmt "@[%s =@ " "names"; |
|
405 |
((fun x -> |
|
406 |
Format.fprintf fmt "@[<2>["; |
|
403 |
(Format.fprintf fmt "variable "; |
|
404 |
((((fun x -> |
|
407 | 405 |
ignore |
408 | 406 |
(List.fold_left |
409 | 407 |
(fun sep -> |
410 | 408 |
fun x -> |
411 |
if sep then Format.fprintf fmt ";@ ";
|
|
409 |
if sep then Format.fprintf fmt ",";
|
|
412 | 410 |
((__0 ()) fmt) x; |
413 |
true) false x); |
|
414 |
Format.fprintf fmt "@,]@]")) anames; |
|
415 |
Format.fprintf fmt "@]"); |
|
416 |
Format.fprintf fmt ";@ "; |
|
417 |
Format.fprintf fmt "@[%s =@ " "typ"; |
|
411 |
true) false x);)) anames; |
|
412 |
Format.fprintf fmt " : "; |
|
418 | 413 |
((__1 ()) fmt) atyp; |
419 |
Format.fprintf fmt "@]"); |
|
420 |
Format.fprintf fmt ";@ "; |
|
421 |
Format.fprintf fmt "@[%s =@ " "init_val"; |
|
422 |
((__2 ()) fmt) ainit_val; |
|
423 |
Format.fprintf fmt "@]"); |
|
424 |
Format.fprintf fmt "@]}") |
|
414 |
(match ainit_val with |
|
415 |
| IsNull -> Format.pp_print_string fmt "" |
|
416 |
| _ -> |
|
417 |
(Format.fprintf fmt ":="; |
|
418 |
((__2 ()) fmt) ainit_val;))));) |
|
425 | 419 |
| CstDecl { names = anames; typ = atyp; init_val = ainit_val } -> |
426 |
(Format.fprintf fmt "@[<2>CstDecl {@,"; |
|
427 |
(((Format.fprintf fmt "@[%s =@ " "names"; |
|
428 |
((fun x -> |
|
429 |
Format.fprintf fmt "@[<2>["; |
|
420 |
(Format.fprintf fmt "constant "; |
|
421 |
((((fun x -> |
|
430 | 422 |
ignore |
431 | 423 |
(List.fold_left |
432 | 424 |
(fun sep -> |
433 | 425 |
fun x -> |
434 |
if sep then Format.fprintf fmt ";@ ";
|
|
426 |
if sep then Format.fprintf fmt ",";
|
|
435 | 427 |
((__3 ()) fmt) x; |
436 |
true) false x); |
|
437 |
Format.fprintf fmt "@,]@]")) anames; |
|
438 |
Format.fprintf fmt "@]"); |
|
439 |
Format.fprintf fmt ";@ "; |
|
440 |
Format.fprintf fmt "@[%s =@ " "typ"; |
|
441 |
((__4 ()) fmt) atyp; |
|
442 |
Format.fprintf fmt "@]"); |
|
443 |
Format.fprintf fmt ";@ "; |
|
444 |
Format.fprintf fmt "@[%s =@ " "init_val"; |
|
445 |
((__5 ()) fmt) ainit_val; |
|
446 |
Format.fprintf fmt "@]"); |
|
447 |
Format.fprintf fmt "@]}") |
|
428 |
true) false x);)) anames; |
|
429 |
Format.fprintf fmt " : "; |
|
430 |
((__4 ()) fmt) atyp; |
|
431 |
Format.fprintf fmt " := "; |
|
432 |
((__5 ()) fmt) ainit_val))) |
|
448 | 433 |
| SigDecl { names = anames; typ = atyp; init_val = ainit_val } -> |
449 |
(Format.fprintf fmt "@[<2>SigDecl {@,"; |
|
450 |
(((Format.fprintf fmt "@[%s =@ " "names"; |
|
451 |
((fun x -> |
|
452 |
Format.fprintf fmt "@[<2>["; |
|
453 |
ignore |
|
454 |
(List.fold_left |
|
455 |
(fun sep -> |
|
456 |
fun x -> |
|
457 |
if sep then Format.fprintf fmt ";@ "; |
|
458 |
((__6 ()) fmt) x; |
|
459 |
true) false x); |
|
460 |
Format.fprintf fmt "@,]@]")) anames; |
|
461 |
Format.fprintf fmt "@]"); |
|
462 |
Format.fprintf fmt ";@ "; |
|
463 |
Format.fprintf fmt "@[%s =@ " "typ"; |
|
464 |
((__7 ()) fmt) atyp; |
|
465 |
Format.fprintf fmt "@]"); |
|
466 |
Format.fprintf fmt ";@ "; |
|
467 |
Format.fprintf fmt "@[%s =@ " "init_val"; |
|
468 |
((__8 ()) fmt) ainit_val; |
|
469 |
Format.fprintf fmt "@]"); |
|
470 |
Format.fprintf fmt "@]}") |
|
434 |
(Format.fprintf fmt "signal "; |
|
435 |
((fun x -> |
|
436 |
ignore |
|
437 |
(List.fold_left |
|
438 |
(fun sep -> |
|
439 |
fun x -> |
|
440 |
if sep then Format.fprintf fmt ","; |
|
441 |
((__6 ()) fmt) x; |
|
442 |
true) false x); |
|
443 |
)) anames; |
|
444 |
Format.fprintf fmt " : "; |
|
445 |
((__7 ()) fmt) atyp; |
|
446 |
(match ainit_val with |
|
447 |
| IsNull -> Format.pp_print_string fmt "" |
|
448 |
| _ -> |
|
449 |
(Format.fprintf fmt ":="; |
|
450 |
((__8 ()) fmt) ainit_val;))) |
|
471 | 451 |
| ComponentDecl |
472 | 452 |
{ name = aname; generics = agenerics; ports = aports } -> |
473 |
(Format.fprintf fmt "@[<2>ComponentDecl {@,"; |
|
474 |
(((Format.fprintf fmt "@[%s =@ " "name"; |
|
475 |
((__9 ()) fmt) aname; |
|
476 |
Format.fprintf fmt "@]"); |
|
477 |
Format.fprintf fmt ";@ "; |
|
478 |
Format.fprintf fmt "@[%s =@ " "generics"; |
|
479 |
((fun x -> |
|
480 |
Format.fprintf fmt "@[<2>["; |
|
481 |
ignore |
|
482 |
(List.fold_left |
|
483 |
(fun sep -> |
|
484 |
fun x -> |
|
485 |
if sep then Format.fprintf fmt ";@ "; |
|
486 |
((__10 ()) fmt) x; |
|
487 |
true) false x); |
|
488 |
Format.fprintf fmt "@,]@]")) agenerics; |
|
489 |
Format.fprintf fmt "@]"); |
|
490 |
Format.fprintf fmt ";@ "; |
|
491 |
Format.fprintf fmt "@[%s =@ " "ports"; |
|
492 |
((fun x -> |
|
493 |
Format.fprintf fmt "@[<2>["; |
|
453 |
Format.fprintf fmt "@[<v 2>component "; |
|
454 |
((__9 ()) fmt) aname; |
|
455 |
Format.fprintf fmt " is@;"; |
|
456 |
(match agenerics with |
|
457 |
| [] -> () |
|
458 |
| _ -> |
|
459 |
Format.fprintf fmt "generic (@[<v>"; |
|
460 |
((fun x -> |
|
494 | 461 |
ignore |
495 | 462 |
(List.fold_left |
496 |
(fun sep -> |
|
497 |
fun x -> |
|
498 |
if sep then Format.fprintf fmt ";@ "; |
|
463 |
(fun sep -> |
|
464 |
fun x -> |
|
465 |
if sep then Format.fprintf fmt ";@;"; |
|
466 |
((__10 ()) fmt) x; |
|
467 |
true) false x))) agenerics; |
|
468 |
Format.fprintf fmt "@]);"); |
|
469 |
(match aports with |
|
470 |
| [] -> () |
|
471 |
| _ -> |
|
472 |
Format.fprintf fmt "port (@[<v>"; |
|
473 |
((fun x -> |
|
474 |
ignore |
|
475 |
(List.fold_left |
|
476 |
(fun sep -> |
|
477 |
fun x -> |
|
478 |
if sep then Format.fprintf fmt ";@;"; |
|
499 | 479 |
((__11 ()) fmt) x; |
500 |
true) false x); |
|
501 |
Format.fprintf fmt "@,]@]")) aports;
|
|
502 |
Format.fprintf fmt "@]");
|
|
503 |
Format.fprintf fmt "@]}")
|
|
504 |
| Subprogram { spec = aspec; decl_part = adecl_part; stmts = astmts }
|
|
480 |
true) false x))) aports;
|
|
481 |
Format.fprintf fmt "@]);");
|
|
482 |
Format.fprintf fmt "@]@;end component";
|
|
483 |
| Subprogram
|
|
484 |
{ spec = aspec; decl_part = adecl_part; stmts = astmts }
|
|
505 | 485 |
-> |
506 |
(Format.fprintf fmt "@[<2>Subprogram {@,";
|
|
507 |
(((Format.fprintf fmt "@[%s =@ " "spec";
|
|
508 |
((__12 ()) fmt) aspec;
|
|
509 |
Format.fprintf fmt "@]");
|
|
510 |
Format.fprintf fmt ";@ ";
|
|
511 |
Format.fprintf fmt "@[%s =@ " "decl_part";
|
|
512 |
((fun x -> |
|
513 |
Format.fprintf fmt "@[<2>[";
|
|
514 |
ignore
|
|
515 |
(List.fold_left
|
|
516 |
(fun sep ->
|
|
517 |
fun x ->
|
|
518 |
if sep then Format.fprintf fmt ";@ ";
|
|
486 |
Format.fprintf fmt "@[<v 2>";
|
|
487 |
((__12 ()) fmt) aspec;
|
|
488 |
Format.fprintf fmt " is";
|
|
489 |
(match adecl_part with
|
|
490 |
| [] -> Format.fprintf fmt "";
|
|
491 |
| _ ->
|
|
492 |
((fun x ->
|
|
493 |
ignore
|
|
494 |
(List.fold_left
|
|
495 |
(fun sep ->
|
|
496 |
fun x ->
|
|
497 |
if sep then Format.fprintf fmt "";
|
|
498 |
Format.fprintf fmt "@;";
|
|
519 | 499 |
((__13 ()) fmt) x; |
520 |
true) false x); |
|
521 |
Format.fprintf fmt "@,]@]")) adecl_part; |
|
522 |
Format.fprintf fmt "@]"); |
|
523 |
Format.fprintf fmt ";@ "; |
|
524 |
Format.fprintf fmt "@[%s =@ " "stmts"; |
|
500 |
Format.fprintf fmt ";"; |
|
501 |
true) false x))) adecl_part); |
|
502 |
Format.fprintf fmt "@]@;"; |
|
503 |
Format.fprintf fmt "@[<v 2>begin@;"; |
|
525 | 504 |
((fun x -> |
526 |
Format.fprintf fmt "@[<2>["; |
|
527 | 505 |
ignore |
528 | 506 |
(List.fold_left |
529 | 507 |
(fun sep -> |
530 | 508 |
fun x -> |
531 |
if sep then Format.fprintf fmt ";@ ";
|
|
509 |
if sep then Format.fprintf fmt "@;";
|
|
532 | 510 |
((__14 ()) fmt) x; |
533 |
true) false x); |
|
534 |
Format.fprintf fmt "@,]@]")) astmts; |
|
535 |
Format.fprintf fmt "@]"); |
|
536 |
Format.fprintf fmt "@]}")) |
|
537 |
[@ocaml.warning "-A"]) |
|
511 |
Format.fprintf fmt ";"; |
|
512 |
true) false x))) astmts; |
|
513 |
Format.fprintf fmt "@]@;end";) [@ocaml.warning "-A"]) |
|
538 | 514 |
|
539 | 515 |
and show_mini_vhdl_declaration_t : |
540 | 516 |
mini_vhdl_declaration_t -> Ppx_deriving_runtime.string = |
... | ... | |
675 | 651 |
((__2 ()) fmt) x; |
676 | 652 |
true) false x))) x.active_sigs; |
677 | 653 |
Format.fprintf fmt ")"); |
678 |
Format.fprintf fmt " is@;"; |
|
679 |
((fun x -> |
|
680 |
ignore |
|
681 |
(List.fold_left |
|
682 |
(fun sep -> |
|
683 |
fun x -> |
|
684 |
if sep then Format.fprintf fmt "@;"; |
|
685 |
((__1 ()) fmt) x; |
|
686 |
Format.fprintf fmt ";"; |
|
687 |
true) false x))) x.declarations; |
|
654 |
Format.fprintf fmt " is"; |
|
655 |
(match x.declarations with |
|
656 |
| [] -> Format.fprintf fmt ""; |
|
657 |
| _ -> |
|
658 |
(Format.fprintf fmt "@;"; |
|
659 |
((fun x -> |
|
660 |
ignore |
|
661 |
(List.fold_left |
|
662 |
(fun sep -> |
|
663 |
fun x -> |
|
664 |
if sep then Format.fprintf fmt "@;"; |
|
665 |
((__1 ()) fmt) x; |
|
666 |
Format.fprintf fmt ";"; |
|
667 |
true) false x))) x.declarations)); |
|
688 | 668 |
Format.fprintf fmt "@]@;@[<v 2>begin@;"; |
689 | 669 |
((fun x -> |
690 | 670 |
ignore |
Also available in: Unified diff
vhdl and mini-vhdl process printing