Tiếng AnhTiếng PhápTiếng Tây Ban Nha

Ad


Biểu tượng yêu thích OnWorks

ragel - Trực tuyến trên đám mây

Chạy ragel trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks trên Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

Đây là lệnh ragel có thể được chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình giả lập trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS

CHƯƠNG TRÌNH:

TÊN


ragel - biên dịch các ngôn ngữ thông thường thành các máy trạng thái thực thi được

SYNOPSIS


cơn thịnh nộ [lựa chọn] hồ sơ

MÔ TẢ


Ragel biên dịch các máy trạng thái hữu hạn có thể thực thi từ các ngôn ngữ thông thường. Ragel có thể
tạo mã C, C ++, Objective-C, D, Go hoặc Java. Máy trạng thái Ragel không chỉ có thể
nhận dạng chuỗi byte như các máy biểu thức chính quy, nhưng cũng có thể thực thi mã tại
điểm tùy ý trong việc nhận dạng một ngôn ngữ thông thường. Mã người dùng được nhúng bằng cách sử dụng
toán tử nội tuyến không làm gián đoạn cú pháp ngôn ngữ thông thường.

Ngôn ngữ cốt lõi bao gồm các toán tử biểu thức chính quy chuẩn, chẳng hạn như union,
nối và sao kleene, kèm theo toán tử nhúng hành động. Ragel cũng vậy
cung cấp các toán tử cho phép bạn kiểm soát bất kỳ yếu tố không xác định nào mà bạn tạo ra, xây dựng
máy quét sử dụng mô hình đối sánh dài nhất và xây dựng máy trạng thái bằng biểu đồ trạng thái
người mẫu. Nó cũng có thể ảnh hưởng đến việc thực thi một máy trạng thái từ bên trong một
hành động được nhúng bằng cách nhảy hoặc gọi đến các bộ phận khác của máy và xử lý lại
đầu vào.

Ragel cung cấp một giao diện rất linh hoạt cho ngôn ngữ máy chủ để cố gắng đặt
hạn chế tối thiểu về cách mã đã tạo được sử dụng và tích hợp vào
ứng dụng. Mã được tạo không có phụ thuộc.

LỰA CHỌN


-h, -H, -?, --Cứu giúp
Hiển thị trợ giúp và thoát.

-v In thông tin phiên bản và thoát.

-o hồ sơ
Ghi kết quả đầu ra vào tệp. Nếu -o không được cung cấp, tên tệp mặc định được chọn bởi
thay thế phần mở rộng tệp của tệp đầu vào. Đối với các tệp nguồn kết thúc bằng .rh,
hậu tố .h được sử dụng. Đối với tất cả các tệp nguồn khác, một hậu tố dựa trên ngôn ngữ đầu ra
được sử dụng (.c, .cpp, .m, v.v.). Nếu -o không được cung cấp cho Graphviz, kết quả đầu ra được tạo
tệp chấm được ghi vào đầu ra tiêu chuẩn.

-s In một số thống kê về lỗi tiêu chuẩn.

--error-format = gnu
In thông báo lỗi bằng định dạng "tệp: dòng: cột:" (mặc định)

--error-format = msvc
In thông báo lỗi bằng định dạng "tệp (dòng, cột):"

-d Không xóa các hành động trùng lặp khỏi danh sách hành động.

-I dir
Thêm dir vào danh sách thư mục để tìm kiếm các tệp được bao gồm và nhập

-n Không thực hiện thu nhỏ trạng thái.

-m Thực hiện thu nhỏ một lần vào cuối quá trình biên dịch máy trạng thái.

-l Giảm thiểu sau gần như mọi hoạt động. Danh sách các hoạt động tương tự như công đoàn là
thu nhỏ một lần vào cuối. Đây là tùy chọn thu nhỏ mặc định.

-e Giảm thiểu sau mỗi lần thao tác.

-x Biên dịch các máy trạng thái và phát ra một biểu diễn XML của dữ liệu máy chủ lưu trữ và
máy móc.

-V Tạo tệp chấm cho Graphviz.

-p Hiển thị các ký tự có thể in trên nhãn.

-S
Đặc tả FSM cho đầu ra.

-M
Định nghĩa máy / khởi tạo đầu ra.

-C Ngôn ngữ máy chủ là C, C ++, Obj-C hoặc Obj-C ++. Đây là ngôn ngữ máy chủ mặc định
tùy chọn.

-D Ngôn ngữ chủ nhà là D.

-J Ngôn ngữ máy chủ là Java.

-Z Ngôn ngữ chủ nhà là Go.

-R Ngôn ngữ máy chủ là Ruby.

-L Cấm viết lệnh # dòng.

-T0 (C / D / Java / Ruby / C # / Go) Tạo FSM hướng bảng. Đây là kiểu mã mặc định.
FSM hướng bảng biểu thị máy trạng thái dưới dạng dữ liệu tĩnh. Có bàn
trạng thái, chuyển tiếp, chỉ báo và hành động. Trạng thái hiện tại được lưu trữ trong một
Biến đổi. Việc thực thi là một vòng lặp trông giống với trạng thái hiện tại và
ký tự hiện tại để xử lý tra cứu quá trình chuyển đổi để thực hiện bằng cách sử dụng tìm kiếm nhị phân,
thực hiện bất kỳ hành động nào và chuyển đến trạng thái đích. Nói chung, bảng điều khiển
FSM tạo ra một tệp nhị phân nhỏ hơn và yêu cầu biên dịch ngôn ngữ máy chủ ít tốn kém hơn
nhưng dẫn đến mã chạy chậm hơn. FSM hướng bảng phù hợp với bất kỳ FSM nào.

-T1 (C / D / Ruby / C # / Go) Tạo FSM hướng bảng nhanh hơn bằng cách mở rộng danh sách hành động trong
mã thực thi hành động.

-F0 (C / D / Ruby / C # / Go) Tạo FSM hướng bảng phẳng. Quá trình chuyển đổi được biểu diễn dưới dạng
một mảng được lập chỉ mục bởi ký tự bảng chữ cái hiện tại. Điều này loại bỏ nhu cầu về một
tìm kiếm nhị phân để xác định vị trí chuyển đổi và tạo mã nhanh hơn, tuy nhiên nó chỉ
phù hợp với bảng chữ cái nhỏ.

-F1 (C / D / Ruby / C # / Go) Tạo FSM hướng bảng phẳng nhanh hơn bằng cách mở rộng danh sách hành động
trong mã thực thi hành động.

-G0 (C / D / C # / Go) Tạo FSM được điều khiển bởi goto. FSM điều khiển goto đại diện cho trạng thái
máy như một loạt các câu lệnh goto. Khi ở trong máy, trạng thái hiện tại là
được lưu trữ bởi con trỏ lệnh của bộ xử lý. Việc thực thi là một hàm phẳng
nơi kiểm soát được chuyển từ trạng thái này sang trạng thái khác bằng cách sử dụng gotos. Nói chung, goto FSM
tạo ra mã nhanh hơn nhưng dẫn đến một tệp nhị phân lớn hơn và một máy chủ đắt tiền hơn
biên dịch ngôn ngữ.

-G1 (C / D / C # / Go) Tạo FSM hướng goto nhanh hơn bằng cách mở rộng danh sách hành động trong
mã thực thi hành động.

-G2 (C / D / Go) Tạo FSM được điều khiển bởi goto thực sự nhanh chóng bằng cách nhúng danh sách hành động vào
mã điều khiển máy trạng thái.

-P (C / D) N-Way Split FSM điều khiển bằng goto rất nhanh.

cơn thịnh nộ ĐẦU VÀO


LƯU Ý: Đây là mô tả rất ngắn gọn về đầu vào Ragel. Ragel được mô tả chi tiết hơn
trong hướng dẫn sử dụng có sẵn từ trang chủ (xem bên dưới).

Ragel thường chuyển các tệp đầu vào thẳng đến đầu ra. Khi nó nhìn thấy một FSM
đặc điểm kỹ thuật có chứa các khởi tạo máy, nó dừng để tạo ra máy trạng thái.
Nếu có các câu lệnh write (chẳng hạn như "write execute") thì ragel sẽ phát ra
mã số. Có thể có bất kỳ số lượng đặc tả FSM nào trong một tệp đầu vào. FSM nhiều dòng
đặc điểm kỹ thuật bắt đầu bằng '%% {' và kết thúc bằng '} %%'. Đặc điểm kỹ thuật FSM một dòng
bắt đầu bằng %% và kết thúc ở dòng mới đầu tiên.

FSM CÁC CÂU LỆNH


Tên:
Đặt tên của máy. Nếu được đưa ra, nó phải là câu lệnh đầu tiên.

Bảng chữ cái Kiểu:
Đặt kiểu dữ liệu của bảng chữ cái.

Nhận khóa:
Chỉ định cách truy xuất ký tự bảng chữ cái từ loại phần tử.

Bao gồm:
Bao gồm máy có cùng tên với máy hiện tại hoặc có tên khác trong
tệp hiện tại hoặc một số tệp khác.

Hoạt động Định nghĩa:
Xác định một hành động có thể được gọi bởi FSM.

fsm Định nghĩa, Thuyết minh dài nhất Trận đấu Thuyết minh:
Được sử dụng để xây dựng FSM. Mô tả cú pháp trong một vài phần tiếp theo.

Truy cập:
Chỉ định cách truy cập các biến máy trạng thái liên tục.

Viết: Viết một số thành phần của máy.

Biến:
Ghi đè các tên biến mặc định (p, pe, cs, act, v.v.).

BASIC MÁY


Các máy cơ bản là toán hạng cơ sở của các biểu thức ngôn ngữ thông thường.

'xin chào'
Concat theo nghĩa đen. Tạo ra một nối các ký tự trong chuỗi. Hỗ trợ
thoát chuỗi với '\'. Kết quả sẽ có trạng thái bắt đầu và chuyển sang
một trạng thái mới cho mỗi ký tự trong chuỗi. Trạng thái cuối cùng trong chuỗi sẽ
được thực hiện cuối cùng. Để làm cho chuỗi không phân biệt chữ hoa chữ thường, hãy thêm 'i' vào chuỗi, như
trong 'cmd'i.

"xin chào"
Giống hệt với phiên bản trích dẫn duy nhất.

[xin chào]
Hoặc theo nghĩa đen. Tạo ra một liên hợp các ký tự. Hỗ trợ các dải ký tự với '-',
phủ định ý nghĩa liên kết với chuỗi ký tự đầu tiên '^' và thoát với '\'.
Kết quả sẽ có hai trạng thái với sự chuyển đổi giữa chúng cho mỗi ký tự
hoặc phạm vi.

LƯU Ý: '', "" và [] tạo ra các FSM rỗng. Máy rỗng có một trạng thái vừa là khởi động
trạng thái và trạng thái cuối cùng và khớp với chuỗi độ dài bằng không. Máy rỗng có thể được tạo
với máy nội trang rỗng.

số nguyên
Tạo một máy hai trạng thái với một lần chuyển đổi trên số nguyên đã cho.

hex Tạo một máy hai trạng thái với một lần chuyển đổi trên số thập phân đã cho.

/ simple_regex /
Một biểu thức chính quy đơn giản. Hỗ trợ ký hiệu '.', '*' Và '[]', ký tự
phạm vi với '-', phủ định ý nghĩa của biểu thức OR với và ký tự đầu '^' và
thoát chuỗi với '\'. Cũng hỗ trợ một cờ theo sau: i. Sử dụng nó để tạo ra một
biểu thức chính quy không phân biệt chữ hoa chữ thường, như trong / GET / i.

lit .. lit
Chỉ định một phạm vi. Các giới hạn trên và giới hạn dưới cho phép là các nghĩa nối của
chiều dài một và số máy. Ví dụ: 0x10..0x20, 0..63 và 'a' .. 'z' là
phạm vi hợp lệ.

Variable_name
Tham chiếu đến định nghĩa máy được gán cho tên biến đã cho.

dựng sẵn_machine
Có một số máy nội địa có sẵn. Chúng đều là hai máy trạng thái cho
mục đích của việc so khớp các lớp ký tự chung. Họ đang:

bất kì Bất kỳ ký tự nào trong bảng chữ cái.

ascii Ký tự Ascii 0..127.

thêm Ký tự mở rộng Ascii. Đây là phạm vi -128..127 cho các bảng chữ cái đã ký
và phạm vi 0..255 cho bảng chữ cái không dấu.

alpha Các ký tự chữ cái / [A-Za-z]/.

chữ số Chữ số / [0-9]/.

hàng năm Số alpha / [0-9A-Za-z]/.

thấp hơn Các ký tự viết thường / [az]/.

phía trên Ký tự viết hoa / [AZ]/.

x chữ số Chữ số hệ thập phân / [0-9A-Fa-f]/.

cntrl Các ký tự điều khiển 0..31.

đồ thị Nhân vật đồ họa / [! - ~]/.

in Các ký tự có thể in / [- ~]/.

điểm Chấm câu. Các ký tự đồ họa không phải là chữ số alpha
/ [! - /: - @ \ [- `{- ~]/.

không gian Khoảng trắng / [\ t \ v \ f \ n \ r]/.

vô giá trị Chuỗi có độ dài bằng không. Tương đương với '', "" và [].

trống Bộ trống. Không có gì phù hợp.

Anh NHÀ ĐIỀU HÀNH THAM KHẢO


Các toán tử được nhóm theo mức độ ưu tiên, nhóm 1 là nhóm thấp nhất và nhóm 6 là nhóm cao nhất.

NHÓM 1:

thể hiện , thể hiện
Nối các máy lại với nhau mà không cần vẽ bất kỳ quá trình chuyển đổi nào, thiết lập trạng thái khởi động hoặc
bất kỳ trạng thái cuối cùng nào. Trạng thái bắt đầu phải được chỉ định rõ ràng với nhãn "bắt đầu".
Các trạng thái cuối cùng có thể được chỉ định với sự chuyển đổi từ một epsilon sang một cách ngầm định
đã tạo trạng thái "cuối cùng".

NHÓM 2:

thể hiện | thể hiện
Tạo ra một máy phù hợp với bất kỳ chuỗi nào trong máy một hoặc máy hai.

thể hiện & thể hiện
Tạo ra một máy phù hợp với bất kỳ chuỗi nào có trong cả máy một và máy
hai.

thể hiện - thể hiện
Tạo ra một máy khớp với bất kỳ chuỗi nào có trong máy một nhưng không khớp trong
máy hai.

thể hiện -- thể hiện
Phép trừ mạnh. Khớp với bất kỳ chuỗi nào trong máy không có bất kỳ chuỗi nào
trong máy hai như một chuỗi con.

NHÓM 3:

thể hiện . thể hiện
Tạo ra một máy khớp với tất cả các chuỗi trong máy, theo sau là tất cả các chuỗi
chuỗi trong máy hai.

thể hiện :> thể hiện
Entry-Guarded Concatenation: kết thúc máy một khi máy hai vào.

thể hiện : >> thể hiện
Kết thúc kết thúc được bảo vệ: kết thúc máy một khi máy hai kết thúc.

thể hiện <: thể hiện
Kết nối được bảo vệ bên trái: ưu tiên cao hơn cho máy một.

LƯU Ý: Kết hợp là toán tử mặc định. Hai máy đặt cạnh nhau không có
toán tử giữa chúng dẫn đến hoạt động nối.

NHÓM 4:

nhãn: thể hiện
Gắn nhãn vào một biểu thức. Các nhãn có thể được sử dụng bằng cách chuyển đổi epsilon và
câu lệnh fgoto và fcall trong các hành động. Cũng lưu ý rằng tham chiếu của một máy
định nghĩa gây ra việc ngầm định tạo nhãn có cùng tên.

NHÓM 5:

thể hiện -> nhãn
Vẽ một chuyển đổi epsilon sang trạng thái được xác định bởi nhãn. Nhãn phải là một tên trong
phạm vi hiện tại. Chuyển đổi Epsilon được giải quyết khi các toán tử dấu phẩy
được đánh giá và ở gốc của cây biểu thức của máy
chuyển nhượng / khởi tạo.

NHÓM 6: Hoạt động

Một hành động có thể là một tên được xác định trước với một tuyên bố hành động hoặc có thể được chỉ định trực tiếp
với '{' và '}' trong biểu thức.

thể hiện > hoạt động
Nhúng hành động để bắt đầu chuyển đổi.

thể hiện @ hoạt động
Nhúng hành động vào quá trình chuyển đổi ở trạng thái cuối cùng.

thể hiện $ hoạt động
Nhúng hành động vào tất cả các quá trình chuyển đổi. Không bao gồm quá trình chuyển đổi đang chờ xử lý.

thể hiện % hoạt động
Nhúng hành động vào các chuyển đổi đang chờ xử lý từ các trạng thái cuối cùng.

NHÓM 6: EOF Hoạt động

Khi quy trình kết thúc của máy được gọi là các hành động EOF của trạng thái hiện tại được thực thi.

thể hiện >/ hoạt động
Nhúng một hành động EOF vào trạng thái bắt đầu.

thể hiện </ hoạt động
Nhúng một hành động EOF vào tất cả các trạng thái ngoại trừ trạng thái bắt đầu.

thể hiện $/ hoạt động
Nhúng một hành động EOF vào tất cả các trạng thái.

thể hiện %/ hoạt động
Nhúng một hành động EOF vào các trạng thái cuối cùng.

thể hiện @/ hoạt động
Nhúng một hành động EOF vào tất cả các trạng thái chưa phải là cuối cùng.

thể hiện <> / hoạt động
Nhúng một hành động EOF vào tất cả các trạng thái không phải là trạng thái bắt đầu và không phải là
cuối cùng (các trạng thái giữa).

NHÓM 6: Toàn cầu lỗi Hoạt động

Các hành động lỗi chung được lưu trữ ở các trạng thái cho đến khi máy trạng thái cuối cùng đã được hoàn thành
đã xây dựng. Sau đó, chúng được chuyển sang các quá trình chuyển đổi lỗi, tạo ra hiệu ứng của
Hành động mặc định.

thể hiện >! hoạt động
Nhúng một hành động lỗi chung vào trạng thái bắt đầu.

thể hiện <! hoạt động
Nhúng một hành động lỗi toàn cục vào tất cả các trạng thái ngoại trừ trạng thái bắt đầu.

thể hiện $! hoạt động
Nhúng một hành động lỗi chung vào tất cả các trạng thái.

thể hiện %! hoạt động
Nhúng một hành động lỗi chung vào các trạng thái cuối cùng.

thể hiện @! hoạt động
Nhúng hành động lỗi toàn cục vào tất cả các trạng thái chưa phải là cuối cùng.

thể hiện <>! hoạt động
Nhúng một hành động lỗi toàn cục vào tất cả các trạng thái không phải là trạng thái bắt đầu và
không cuối cùng (trạng thái giữa).

NHÓM 6: Địa phương lỗi Hoạt động

Các hành động lỗi cục bộ được lưu trữ ở các trạng thái cho đến khi máy được đặt tên được xây dựng hoàn chỉnh.
Sau đó, chúng được chuyển sang chuyển đổi lỗi, tạo ra hiệu ứng của một hành động mặc định cho
một mặt cắt của máy toàn đạc. Lưu ý rằng tên có thể bị bỏ qua, trong trường hợp đó,
hành động sẽ được chuyển sang các hành động lỗi khi xây dựng máy hiện tại.

thể hiện >^ hoạt động
Nhúng một hành động lỗi cục bộ vào trạng thái bắt đầu.

thể hiện <^ hoạt động
Nhúng một hành động lỗi cục bộ vào tất cả các trạng thái ngoại trừ trạng thái bắt đầu.

thể hiện $^ hoạt động
Nhúng một hành động lỗi cục bộ vào tất cả các trạng thái.

thể hiện %^ hoạt động
Nhúng một hành động lỗi cục bộ vào các trạng thái cuối cùng.

thể hiện @^ hoạt động
Nhúng hành động lỗi cục bộ vào tất cả các trạng thái chưa phải là cuối cùng.

thể hiện <> ^ hoạt động
Nhúng một hành động lỗi cục bộ vào tất cả các trạng thái không phải là trạng thái bắt đầu và
không cuối cùng (trạng thái giữa).

NHÓM 6: To-Nhà nước Hoạt động

Các hành động của trạng thái được lưu trữ trong các trạng thái và được thực thi bất kỳ lúc nào máy chuyển sang trạng thái
tiểu bang. Điều này bao gồm chuyển đổi thường xuyên và chuyển giao quyền kiểm soát như fgoto. Ghi chú
cài đặt trạng thái hiện tại từ bên ngoài máy (ví dụ: trong khi
khởi tạo) không được tính là một quá trình chuyển đổi thành một trạng thái.

thể hiện >~ hoạt động
Nhúng một hành động chuyển sang trạng thái vào trạng thái bắt đầu.

thể hiện <~ hoạt động
Nhúng một hành động chuyển sang trạng thái vào tất cả các trạng thái ngoại trừ trạng thái bắt đầu.

thể hiện $~ hoạt động
Nhúng một hành động chuyển sang trạng thái vào tất cả các trạng thái.

thể hiện %~ hoạt động
Nhúng một hành động ở trạng thái vào các trạng thái cuối cùng.

thể hiện @~ hoạt động
Nhúng một hành động chuyển sang trạng thái vào tất cả các trạng thái không phải là trạng thái cuối cùng.

thể hiện <> ~ hoạt động
Nhúng một hành động chuyển sang trạng thái vào tất cả các trạng thái không phải là trạng thái bắt đầu và không phải là
cuối cùng (các trạng thái giữa).

NHÓM 6: Từ tiểu bang Hoạt động

Các hành động từ trạng thái được thực hiện bất cứ khi nào một trạng thái thực hiện chuyển đổi trên một ký tự. Cái này
bao gồm quá trình chuyển đổi lỗi và quá trình chuyển đổi sang bản thân.

thể hiện >* hoạt động
Nhúng một hành động từ trạng thái vào trạng thái bắt đầu.

thể hiện <* hoạt động
Nhúng một hành động từ trạng thái vào mọi trạng thái ngoại trừ trạng thái bắt đầu.

thể hiện $* hoạt động
Nhúng một hành động từ trạng thái vào tất cả các trạng thái.

thể hiện %* hoạt động
Nhúng một hành động từ trạng thái vào các trạng thái cuối cùng.

thể hiện @* hoạt động
Nhúng một hành động từ trạng thái vào tất cả các trạng thái không phải là cuối cùng.

thể hiện <> * hoạt động
Nhúng một hành động từ trạng thái vào tất cả các trạng thái không phải là trạng thái bắt đầu và không phải là
cuối cùng (các trạng thái giữa).

NHÓM 6: Ưu tiên Chuyển nhượng

Các ưu tiên được chỉ định cho các tên trong quá trình chuyển đổi. Chỉ những ưu tiên có cùng tên mới là
được phép tương tác. Ở dạng ưu tiên đầu tiên, tên mặc định là tên của
định nghĩa máy, mức độ ưu tiên được chỉ định. Các chuyển đổi không có giá trị mặc định
các ưu tiên.

thể hiện > int
Gán int ưu tiên trong tất cả các chuyển đổi rời khỏi trạng thái bắt đầu.

thể hiện @ int
Gán int ưu tiên trong tất cả các chuyển đổi đi vào trạng thái cuối cùng.

thể hiện $ int
Gán int ưu tiên trong tất cả các chuyển đổi hiện có.

thể hiện % int
Gán int ưu tiên trong tất cả các chuyển đổi đang chờ xử lý.

Hình thức phân công ưu tiên thứ hai cho phép lập trình viên chỉ định tên mà
mức độ ưu tiên được chỉ định, cho phép các tương tác vượt qua ranh giới định nghĩa máy.

thể hiện > (tên, int)
Gán int ưu tiên cho tên trong tất cả các chuyển đổi rời khỏi trạng thái bắt đầu.

thể hiện @ (Tên, NS)
Gán int ưu tiên cho tên trong tất cả các chuyển đổi đi vào trạng thái cuối cùng.

thể hiện $ (Tên, NS)
Gán int ưu tiên cho tên trong tất cả các chuyển đổi hiện có.

thể hiện % (Tên, NS)
Gán int ưu tiên cho tên trong tất cả các chuyển đổi đang chờ xử lý.

NHÓM 7:

thể hiện * Tạo ra ngôi sao kleene của một chiếc máy. Khớp với không hoặc nhiều lần lặp lại
máy móc.

thể hiện **
Ngôi sao Kleene phù hợp nhất. Phiên bản sao kleene này đặt ưu tiên cao hơn
ở trong máy qua việc quấn quanh và bắt đầu lại. Nhà điều hành này là
tương đương với ((expr) $ 0% 1) *.

thể hiện ? Tạo một máy chấp nhận máy đã cho hoặc chuỗi null. Nhà điều hành này
tương đương với (expr | '').

thể hiện + Sản xuất máy được nối với ngôi sao kleen của chính nó. Khớp với một hoặc
nhiều lần lặp lại của máy hơn. Toán tử này tương đương với (expr. Expr *).

thể hiện {N}
Tạo ra một máy khớp chính xác n lần lặp lại của expr.

thể hiện {,N}
Tạo ra một máy khớp với bất kỳ đâu từ XNUMX đến n lần lặp lại của expr.

thể hiện {N,}
Tạo ra một máy phù hợp với n hoặc nhiều lần lặp lại expr.

thể hiện {n, m}
Tạo ra một máy so khớp từ n đến m lần lặp lại expr.

NHÓM 8:

! thể hiện Tạo ra một máy khớp với bất kỳ chuỗi nào không khớp với máy đã cho. Cái này
toán tử tương đương với (* extension - expr).

^ thể hiện Phủ định cấp độ nhân vật. Đối sánh bất kỳ ký tự đơn lẻ nào không khớp với ký tự đơn lẻ
ký tự máy tính expr.

NHÓM 9:

( thể hiện )
Bắt buộc ưu tiên các toán tử.

GIÁ TRỊ IN KHÓA


fc Nhân vật hiện tại. Tương đương với * p.

fpc Một con trỏ đến ký tự hiện tại. Tương đương với p.

lông chồn Một giá trị số nguyên đại diện cho trạng thái hiện tại.

ftargs Một giá trị số nguyên đại diện cho trạng thái đích.

fentry ( )
Một giá trị số nguyên đại diện cho điểm vào .

CÁC CÂU LỆNH IN KHÓA


kính cẩn; Không vượt quá ký tự hiện tại. Tương đương với --p ;.

fecec ;
Đặt ký tự hiện tại thành ký tự khác. Tương đương với p = ( ) -1;

fgoto ;
Chuyển đến máy được xác định bởi .

fgoto * ;
Chuyển đến điểm nhập cảnh được cung cấp bởi . Biểu thức phải đánh giá thành một số nguyên
giá trị đại diện cho một trạng thái.

tiếp theo ;
Đặt trạng thái tiếp theo là điểm vào được xác định bởi . Câu lệnh fnext
không ngay lập tức chuyển đến trạng thái được chỉ định. Bất kỳ mã hành động nào theo sau
câu lệnh được thực thi.

tiếp theo * ;
Đặt trạng thái tiếp theo là điểm vào do . Biểu thức phải
đánh giá thành một giá trị số nguyên đại diện cho một trạng thái.

gọi điện ;
Gọi máy được xác định bởi . Phím tiếp theo sẽ chuyển đến mục tiêu của
chuyển tiếp mà hành động được gọi.

gọi điện * ;
Gọi điểm nhập cảnh được cung cấp bởi . Phím tiếp theo sẽ chuyển đến mục tiêu của
chuyển tiếp mà hành động được gọi.

băn khoăn; Quay lại trạng thái đích của quá trình chuyển đổi mà lần gọi cuối cùng được thực hiện.

phá vỡ;
Lưu trạng thái hiện tại và thoát ra khỏi máy ngay lập tức.

TÍN


Ragel được viết bởi Adrian Thurston[email được bảo vệ]>. Đầu ra Objective-C
do Erich Ocean đóng góp. D đầu ra do Alan West đóng góp. Sản lượng ruby ​​đóng góp bởi
Victor Hugo Borja. C Sharp tạo mã do Daniel Tang đóng góp. Đóng góp cho
Tạo mã Java của Colin Fleming. Tạo mã cờ vây do Justine Tunney đóng góp.

Sử dụng ragel trực tuyến bằng các dịch vụ onworks.net


Máy chủ & Máy trạm miễn phí

Tải xuống ứng dụng Windows & Linux

  • 1
    KompoZer
    KompoZer
    KompoZer là một trình soạn thảo HTML wysiwyg sử dụng
    cơ sở mã của Mozilla Composer. Như
    Sự phát triển của Nvu đã bị dừng lại
    vào năm 2005, KompoZer sửa nhiều lỗi và
    thêm một f ...
    Tải xuống KompoZer
  • 2
    Tải xuống Manga miễn phí
    Tải xuống Manga miễn phí
    Trình tải xuống Manga miễn phí (FMD) là một
    ứng dụng mã nguồn mở được viết bằng
    Object-Pascal để quản lý và
    tải manga từ các trang web khác nhau.
    Đây là một tấm gương ...
    Tải xuống Trình tải xuống Manga miễn phí
  • 3
    Aetbootin
    Aetbootin
    UNetbootin cho phép bạn tạo khả năng khởi động
    Ổ đĩa USB trực tiếp cho Ubuntu, Fedora và
    các bản phân phối Linux khác mà không có
    ghi đĩa CD. Nó chạy trên Windows, Linux,
    và ...
    Tải xuống UNetbootin
  • 4
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM
    Dolibarr ERP - CRM dễ sử dụng
    Gói phần mềm mã nguồn mở ERP và CRM
    (chạy với máy chủ web php hoặc
    phần mềm độc lập) dành cho doanh nghiệp,
    nền tảng ...
    Tải xuống Dolibarr ERP - CRM
  • 5
    Máy khách SQL SQuirreL
    Máy khách SQL SQuirreL
    SQuirreL SQL Client là một SQL đồ họa
    ứng dụng khách được viết bằng Java sẽ cho phép
    bạn có thể xem cấu trúc của một JDBC
    cơ sở dữ liệu tuân thủ, duyệt dữ liệu trong
    những cái bàn...
    Tải xuống ứng dụng khách SQuirreL SQL
  • 6
    Chân đế
    Chân đế
    Chân đế là một mã nguồn mở hiện đại, miễn phí
    trình soạn thảo văn bản được tạo đặc biệt cho Web
    Phát triển. Được viết bằng HTML, CSS và
    JavaScript với các công cụ trực quan tập trung và
    chuẩn bị...
    Tải xuống dấu ngoặc
  • Khác »

Lệnh Linux

  • 1
    abi từ
    abi từ
    abiword � từ đa nền tảng linh hoạt
    bộ xử lý...
    Chạy abiword
  • 2
    abl
    abl
    abl - Đại diện tiền tố cho
    các hàm boolean MÔ TẢ:
    libablmmm.a là một thư viện cho phép
    biểu diễn hàm boolean trong một
    Dạng giống LISP. MỘT ...
    Chạy abl
  • 3
    danh sách cốt lõi
    danh sách cốt lõi
    corelist - một giao diện dòng lệnh để
    Mô-đun::CoreList MÔ TẢ: Xem
    Mô-đun::CoreList cho một. ...
    Chạy danh sách lõi
  • 4
    corelistp
    corelistp
    corelist - một giao diện dòng lệnh để
    Mô-đun::CoreList MÔ TẢ: Xem
    Mô-đun::CoreList cho một. ...
    Chạy corelistp
  • 5
    gatrib
    gatrib
    gattrib - thuộc tính lược đồ gEDA/gaf
    Người biên tập ...
    Chạy gattrib
  • 6
    công cụ
    công cụ
    gatttool - công cụ dành cho Bluetooth Thấp
    Thiết bị năng lượng...
    Chạy gatttool
  • Khác »

Ad