Python在嵌入式開發(fā)中也很流行生成實用腳本。Pyparsing還允許你輕松地定義在Python上下文中運行的定制腳本語言。
Python實現(xiàn)的系統(tǒng)旨在能夠獨立執(zhí)行用戶傳遞的一系列命令。你希望系統(tǒng)以腳本的形式接收命令。用戶應(yīng)該能夠定義條件。
這種對通信中邏輯元素的最初簡單的聲音要求,如果實施不正確,將很快導(dǎo)致接口不穩(wěn)定或不確定。除了兩種經(jīng)典方法外,還介紹了PyParsing作為嵌入式環(huán)境中典型問題的解決方法。PyParsing使你可以更輕松地從針對當前問題量身定制的洗禮中提升自己的語言。
定義你自己的腳本語言:方法靜態(tài)數(shù)據(jù)格式
通常,數(shù)據(jù)格式(如JSON或XML)用于與要控制的設(shè)備進行數(shù)據(jù)交換。JSON和XML旨在交換靜態(tài)數(shù)據(jù)。雖然有些項目試圖向JSON添加簡單的邏輯。但是,它們很快會導(dǎo)致復(fù)雜的嵌套詞典和列表。結(jié)果不僅難以閱讀,而且難以擴展到其他功能。
常規(guī)Python方法
在嵌入式開發(fā)中,另一種方法是使用Python本身。實際上,傳遞一個直接執(zhí)行的python腳本是可能的。但是,這種方法為腳本發(fā)送者提供了一個不必要的大而難以控制的語言空間。必須確保腳本在非常有限的上下文中運行,以防止導(dǎo)入任何庫或訪問數(shù)據(jù)。
PyParsing方法
PyParsing是一個Python模塊,支持Python 3.x創(chuàng)建簡單的語法。這是對傳統(tǒng)的Lex/Yacc方法的一種相反的設(shè)計。通過創(chuàng)建自己的語言,你可以定義具有所需功能的語言空間。模塊字母數(shù)字字符的正向聲明和類型(如alphas)等輔助功能使語法定義在功能不斷增長的情況下仍然清晰可見。
由于解析和解釋傳遞的腳本都是在python上下文中進行的,因此可以直接訪問python變量和方法。例如,在檢測到新創(chuàng)建的腳本語言中的函數(shù)調(diào)用時,可以直接調(diào)用python函數(shù)。
因此,PyParsing使嵌入式開發(fā)人員你可以用參數(shù)、If-Else和While函數(shù)在少于100行中描述用分號分隔的簡單腳本語言以及變量和函數(shù)調(diào)用。Python上下文中的解釋允許很好地集成python代碼。