;;; poly-PL.el
;;
;; Author: Rado Rodopski
(require 'polymode)
(defcustom pm-host/verilog
(pm-bchunkmode "Verilog" :mode 'verilog-mode)
"Verilog host chunkmode"
:group 'hostmodes
:type 'object)
(defcustom pm-inner/perl-block
(pm-hbtchunkmode "perl-block"
:mode 'perl-mode
:head-mode 'body
:tail-mode 'body
:head-reg ""
:tail-reg "")
"Perl typical block chunk."
:group 'innermodes
:type 'object)
(defcustom pm-inner/perl-eval
(pm-hbtchunkmode "perl-eval"
:mode 'perl-mode
:head-mode 'body
:tail-mode 'body
:head-reg "<%"
:tail-reg "%>")
"Perl typical eval chunk."
:group 'innermodes
:type 'object)
(defcustom pm-inner/perl-line
(pm-hbtchunkmode "perl-line"
:mode 'perl-mode
:head-mode 'host
:tail-mode 'host
:head-reg ""
:tail-reg "$")
"Perl typical line chunk."
:group 'innermodes
:type 'object)
(defcustom pm-inner/perl-inline-var
(pm-hbtchunkmode "perl-inline-var"
:mode 'perl-mode
:head-mode 'body
:tail-mode 'body
:head-reg "<\\$+"
:tail-reg ">")
"Perl typical inline variable chunk."
:group 'innermodes
:type 'object)
(defcustom pm-poly/verilog+perl
(pm-polymode-multi "verilog+perl"
:hostmode 'pm-host/verilog
:innermodes '(pm-inner/perl-block
pm-inner/perl-eval
pm-inner/perl-line
pm-inner/perl-inline-var))
"verilog-perl typical polymode."
:group 'polymodes
:type 'object)
(define-polymode poly-verilog+perl-mode pm-poly/verilog+perl)
(provide 'poly-verilog)