Erlang - ตัวประมวลผลล่วงหน้า
ก่อนคอมไพล์โมดูล Erlang จะถูกประมวลผลโดยอัตโนมัติโดย Erlang Preprocessor ตัวประมวลผลก่อนขยายมาโครใด ๆ ที่อาจอยู่ในไฟล์ต้นฉบับและแทรกไฟล์ที่จำเป็น
โดยปกติคุณไม่จำเป็นต้องดูที่เอาต์พุตของตัวประมวลผลก่อนหน้า แต่ในสถานการณ์พิเศษ (ตัวอย่างเช่นเมื่อทำการดีบักแมโครที่ผิดพลาด) คุณอาจต้องการบันทึกเอาต์พุตของตัวประมวลผลล่วงหน้า เพื่อดูผลลัพธ์ของการประมวลผลโมดูลล่วงหน้าsome_module.erl ให้คำสั่ง OS shell
erlc -P some_module.erl
ตัวอย่างเช่นสมมติว่าเรามีไฟล์รหัสต่อไปนี้ -
ตัวอย่าง
-module(helloworld).
-export([start/0]).
-include("user.hrl").
start() ->
io:fwrite("~w",[?macro1(1,2)]).
และถ้าเราดำเนินการคำสั่งต่อไปนี้จากบรรทัดคำสั่ง -
erlc –P helloworld.erl
ไฟล์ที่เรียกว่า helloworld.Pจะถูกสร้างขึ้น หากคุณเปิดไฟล์นี้คุณจะพบเนื้อหาต่อไปนี้ซึ่งเป็นสิ่งที่ตัวประมวลผลล่วงหน้าจะรวบรวม
-file("helloworld.erl", 1). -module(helloworld).
-export([start/0]).
-file("user.hrl", 1).
-file("helloworld.erl", 3).
start() ->
io:fwrite("~w", [{1 + 2}]).