📄 parse.c
字号:
ONCE Pidentifier() ENDRULE PformalNameRef IS ONCE Pidentifier() ENDRULE Pgenerate IS FORM(Kgenerate) REPEAT Pliteral() || Pactual() || Pbuild() || PforEach() || Pcomment() ENDFORMRULE PglobalPortRef IS FORM(KglobalPortRef) ONCE PportNameRef() ENDFORMRULE PgreaterThan IS FORM(KgreaterThan) ONCE PnumberValue() ENDFORMRULE PgridMap IS FORM(KgridMap) ONCE PnumberValue() && PnumberValue() ENDFORMRULE Pidentifier IS if (token->type != IDENT) return(FALSE); else { if (Fvref && !Fassign) token->type = VALUEREF; Fvref = Fassign = 0; add_token(); return(TRUE); } }RULE Pif IS FORM(Kif) ONCE PbooleanValue() && Pthen() OPTIONAL Pelse() ENDFORMRULE Pignore IS FORM(Kignore) ENDFORMRULE PincludeFigureGroup IS FORM(KincludeFigureGroup) ONCE PfigureGroupRef() || PfigureOp() ENDFORMRULE Pincreasing IS FORM(Kincreasing) ONCE PnumberValue() REPEAT PnumberValue() ENDFORMRULE Pinitial IS FORM(Kinitial) ENDFORMRULE Pinstance IS ZERO(n) ZERO(m) FORM(Kinstance) ONCE PinstanceNameDef() && (PviewRef() || PviewList()) REPEAT G1(n,Ptransform) || PparameterAssign() || PportInstance() || G1(m,Pdesignator) || Ptiming() || Pproperty() || Pcomment() || PuserData() ENDFORMRULE PinstanceBackAnnotate IS ZERO(n) FORM(KinstanceBackAnnotate) ONCE PinstanceRef() REPEAT G1(n,Pdesignator) || Ptiming() || Pproperty() || Pcomment() ENDFORMRULE PinstanceGroup IS FORM(KinstanceGroup) REPEAT PinstanceRef() ENDFORMRULE PinstanceMap IS FORM(KinstanceMap) REPEAT PinstanceRef() || PinstanceGroup() || Pcomment() || PuserData() ENDRULE PinstanceNameDef IS ONCE PnameDef() || Parray() ENDRULE PinstanceNameRef IS ONCE PnameRef() || Pmember() ENDRULE PinstanceRef IS FORM(KinstanceRef) ONCE PinstanceNameRef() OPTIONAL PinstanceRef() || PviewRef() ENDFORMRULE Pinteger IS FORM(Kinteger) REPEAT PintegerValue() || PintegerDisplay() || Pinteger() ENDFORMRULE PintegerDisplay IS FORM(KintegerDisplay) ONCE PintegerValue() REPEAT Pdisplay() ENDFORMRULE PintegerToken IS if (token->type != NUMBER) return(FALSE); else add_token(); return( TRUE);}RULE PintegerValue IS ONCE PintegerToken() || PvalueNameRef() || Pfloor() || Pceiling() || Pfix() || Pmod() || PxCoord() || PyCoord() || Pabs() || Pmax() || Pmin() || Pnegate() || Pproduct() || Psubtract() || Psum() ENDRULE Pinterface IS ZERO(k) ZERO(l) ZERO(m) ZERO(n) FORM(Kinterface) FLAG(Fintf) REPEAT Pport() || PportBundle() || G1(k,Psymbol) || G1(l,PprotectionFrame) || G1(m,ParrayRelatedInfo) || Pparameter() || Pjoined() || PmustJoin() || PweakJoined() || Ppermutable() || Ptiming() || Psimulate() || G1(n,Pdesignator) || Pconstant() || Pconstraint() || Pvariable() || Passign() || Pblock() || Pif() || Piterate() || Pwhile() || Pproperty() || Pcomment() || PuserData() UNFLAG(Fintf) ENDFORMRULE PinterFigureGroupSpacing IS FORM(KinterFigureGroupSpacing) ONCE PruleNameDef() && PfigureGroupObject() && PfigureGroupObject() && (Prange() || PsingleValueSet()) REPEAT Pcomment() || PuserData() ENDFORMRULE Pintersection IS FORM(Kintersection) ONCE PfigureGroupRef() || PfigureOp() REPEAT PfigureGroupRef() || PfigureOp() ENDFORMRULE PintraFigureGroupSpacing IS FORM(KintraFigureGroupSpacing) ONCE PruleNameDef() && PfigureGroupObject() && (Prange() || PsingleValueSet()) REPEAT Pcomment() || PuserData() ENDFORMRULE Pinverse IS FORM(Kinverse) ONCE PfigureGroupRef() || PfigureOp() ENDFORMRULE Pisolated IS FORM(Kisolated) ENDFORMRULE Piterate IS FORM(Kiterate) REPEAT Pstatement() ENDFORMRULE Pjoined IS FORM(Kjoined) REPEAT PportRef() || PportList() || PglobalPortRef() ENDFORMRULE Pjustify IS FORM(Kjustify) ONCE MATCH(KUPPERLEFT) || MATCH(KUPPERCENTER) || MATCH(KUPPERRIGHT) || MATCH(KCENTERLEFT) || MATCH(KCENTERCENTER) || MATCH(KCENTERRIGHT) || MATCH(KLOWERLEFT) || MATCH(KLOWERCENTER) || MATCH(KLOWERRIGHT) ENDFORMRULE PkeywordAlias IS FORM(KkeywordAlias) ONCE PkeywordNameDef() && PkeywordNameRef() ENDFORMRULE PkeywordDefine IS FORM(KkeywordDefine) ONCE PkeywordNameDef() && PkeywordParameters() && Pgenerate() ENDFORMRULE PkeywordDisplay IS FORM(KkeywordDisplay) ONCE PkeywordNameRef() REPEAT Pdisplay() ENDFORMRULE PkeywordLevel IS FORM(KkeywordLevel) ONCE PintegerToken() ENDFORMRULE PkeywordMap IS FORM(KkeywordMap) ONCE PkeywordLevel() REPEAT PkeywordAlias() || PkeywordDefine() || Pcomment() ENDFORMRULE PkeywordNameDef IS ONCE Pidentifier() ENDRULE PkeywordNameRef IS ONCE Pidentifier() ENDRULE PkeywordParameters IS FORM(KkeywordParameters) REPEAT Pformal() ENDFORMRULE PlayerNameDef IS ONCE PnameDef() ENDRULE PlessThan IS FORM(KlessThan) ONCE PnumberValue() ENDRULE Plibrary IS ZERO(n) FORM(Klibrary) ONCE PlibraryNameDef() && PedifLevel() && Ptechnology() REPEAT G1(n,Pstatus) || Pcell() || Pcomment() || PuserData() ENDFORMRULE PlibraryNameDef IS ONCE PnameDef() ENDRULE PlibraryNameRef IS ONCE PnameRef() ENDRULE PlibraryRef IS FORM(KlibraryRef) ONCE PlibraryNameRef() ENDFORMRULE PlistOfNets IS FORM(KlistOfNets) REPEAT Pnet() ENDFORMRULE PlistOfPorts IS FORM(KlistOfPorts) REPEAT Pport() || PportBundle() ENDFORMRULE Pliteral IS FORM(Kliteral) REPEAT PintegerToken() || PstringToken() || Pidentifier() || Pform() ENDFORMRULE PloadDelay IS FORM(KloadDelay) ONCE (PmiNoMaxValue() || PmiNoMaxDisplay()) && (PmiNoMaxValue() || PmiNoMaxDisplay()) ENDFORMRULE PlogicAssign IS FORM(KlogicAssign) ONCE (PportNameRef() || PportRef()) && (PportRef() || PlogicRef() || Ptable()) OPTIONAL Pdelay() || PloadDelay() ENDFORMRULE PlogicInput IS FORM(KlogicInput) ONCE (PportNameRef() || PportRef() || PportList()) && PlogicWaveform() ENDFORMRULE PlogicList IS FORM(KlogicList) REPEAT PlogicNameRef() || PlogicOneOf() || Pignore() ENDFORMRULE PlogicMapInput IS FORM(KlogicMapInput) REPEAT PlogicRef() ENDFORMRULE PlogicMapOutput IS FORM(KlogicMapOutput) REPEAT PlogicRef() ENDFORMRULE PlogicNameDef IS ONCE PnameDef() ENDRULE PlogicNameRef IS ONCE PnameRef() ENDRULE PlogicOneOf IS FORM(KlogicOneOf) REPEAT PlogicNameRef() || PlogicList() ENDFORMRULE PlogicOutput IS FORM(KlogicOutput) ONCE (PportNameRef() || PportRef() || PportList()) && PlogicWaveform() ENDFORMRULE PlogicPort IS CONDFORM(KlogicPort, LOGICMODEL) ONCE PportNameDef() REPEAT Pproperty() || Pcomment() || PuserData() ENDFORMRULE PlogicRef IS FORM(KlogicRef) ONCE PlogicNameRef() OPTIONAL PlibraryRef() ENDFORMRULE PlogicValue IS ZERO(m) ZERO(n) ZERO(o) ZERO(p) ZERO(q) ZERO(r) ZERO(s) ZERO(t) ZERO(u) ZERO(v) FORM(KlogicValue) ONCE PlogicNameDef() REPEAT G1(m,PvoltageMap) || G1(n,PcurrentMap) || G1(o,PbooleanMap) || G1(p,Pcompound) || G1(q,Pweak) || G1(r,Pstrong) || G1(s,Pdominates) || G1(t,PlogicMapOutput) || G1(u,PlogicMapInput) || G1(v,Pisolated) || Presolves() || Pproperty() || Pcomment() || PuserData() ENDFORMRULE PlogicWaveform IS FORM(KlogicWaveform) REPEAT PlogicNameRef() || PlogicList() || PlogicOneOf() || Pignore() ENDFORMRULE Pmaintain IS FORM(Kmaintain) ONCE PportNameRef() || PportRef() OPTIONAL Pdelay() || PloadDelay() ENDFORMRULE Pmatch IS FORM(Kmatch) ONCE (PportNameRef() || PportRef() || PportList()) && (PlogicNameRef() || PlogicList() || PlogicOneOf()) ENDFORMRULE Pmax IS FORM(Kmax) ONCE PnumberValue() REPEAT PnumberValue() ENDFORMRULE Pmember IS FORM(Kmember) ONCE PnameRef() && PintegerValue() REPEAT PintegerValue() ENDFORMRULE Pmin IS FORM(Kmin) ONCE PnumberValue() REPEAT PnumberValue() ENDFORMRULE PmiNoMax IS FORM(KmiNoMax) REPEAT PmiNoMaxValue() || PmiNoMaxDisplay() || PmiNoMax() ENDFORMRULE PmiNoMaxDisplay IS FORM(KmiNoMaxDisplay) ONCE PmiNoMaxValue() REPEAT Pdisplay() ENDFORMRULE PmiNoMaxValue IS ONCE PnumberValue() || Pmnm() ENDRULE Pmnm IS FORM(Kmnm) ONCE (PnumberValue() || Pundefined() || Punconstrained()) && (PnumberValue() || Pundefined() || Punconstrained()) && (PnumberValue() || Pundefined() || Punconstrained()) ENDFORMRULE Pmod IS FORM(Kmod) ONCE PintegerValue() && PintegerValue() ENDFORMRULE PmultipleValueSet IS FORM(KmultipleValueSet) REPEAT PrangeVector() ENDFORMRULE PmustJoin IS FORM(KmustJoin) REPEAT PportRef() || PportList() || PweakJoined() || Pjoined() ENDFORMRULE Pname IS FORM(Kname) ONCE Pidentifier() REPEAT Pdisplay() ENDFORMRULE PnameDef IS ONCE Pidentifier() || Pname() || Prename() ENDRULE PnameRef IS ONCE Pidentifier() || Pname() ENDRULE Pnegate IS FORM(Knegate) ONCE PnumberValue() ENDFORMRULE Pnet IS ZERO(n) FORM(Knet) ONCE PnetNameDef() && Pjoined() REPEAT G1(n,Pcriticality) || PnetDelay() || Pfigure() || Pnet() || Pinstance() || PcommentGraphics() || Pproperty() || Pcomment() || PuserData() ENDFORMRULE PnetBackAnnotate IS ZERO(n) FORM(KnetBackAnnotate) ONCE PnetRef() REPEAT PnetDelay() || G1(n,Pcriticality) || Pproperty() || Pcomment() ENDFORMRULE PnetBundle IS FORM(KnetBundle) ONCE PnetNameDef() && PlistOfNets() REPEAT Pfigure() || PcommentGraphics() || Pproperty() || Pcomment() || PuserData() ENDFORMRULE PnetDelay IS FORM(KnetDelay) ONCE Pderivation() && Pdelay() REPEAT Ptransition() || Pbecomes() ENDFORMRULE PnetGroup IS FORM(KnetGroup) REPEAT PnetNameRef() || PnetRef() ENDFORMRULE PnetMap IS FORM(KnetMap) REPEAT PnetRef() || PnetGroup() || Pcomment() || PuserData() ENDFORMRULE PnetNameDef IS ONCE PnameDef() || Parray() ENDRULE PnetNameRef IS ONCE PnameRef() || Pmember() ENDRULE PnetRef IS FORM(KnetRef) ONCE PnetNameRef() REPEAT PnetRef() || PinstanceRef() || PviewRef() ENDFORMRULE PnoChange IS FORM(KnoChange) ENDFORMRULE PnonPermutable IS FORM(KnonPermutable) REPEAT PportRef() || Ppermutable() ENDFORMRULE Pnot IS FORM(Knot) ONCE PbooleanValue() ENDFORMRULE PnotAllowed IS FORM(KnotAllowed) ONCE PruleNameDef() && PfigureGroupObject() REPEAT Pcomment() && PuserData() ENDFORMRULE PnotchSpacing IS FORM(KnotchSpacing) ONCE PruleNameDef() && PfigureGroupObject() && (Prange() || PsingleValueSet()) REPEAT Pcomment() && PuserData() ENDFORMRULE Pnumber IS FORM(Knumber) REPEAT PnumberValue() || PnumberDisplay() || Pnumber() ENDFORMRULE PnumberDefinition IS ZERO(n) FORM(KnumberDefinition) REPEAT Pscale() || G1(n,PgridMap) || Pcomment() ENDFORMRULE PnumberDisplay IS FORM(KnumberDisplay) ONCE PnumberValue() REPEAT Pdisplay() ENDFORMRULE PnumberValue IS ONCE PscaledInteger() || PvalueNameRef() || Pfloor() || Pceiling() || Pfix() || Pmod() || PxCoord() || PyCoord() || Pdivide() || Pabs() || Pmax() || Pmin() || Pnegate() || Pproduct() || Psubtract() || Psum() ENDRULE PoffPageConnector IS ZERO(n) FORM(KoffPageConnector) ONCE PportNameDef() REPEAT G1(n,Punused) || Pproperty() || Pcomment() || PuserData() ENDFORMRULE PoffsetEvent IS FORM(KoffsetEvent) ONCE Pevent() && PnumberValue() ENDFORMRULE PopenShape IS FORM(KopenShape) ONCE Pcurve() REPEAT Pproperty() ENDFORMRULE Poptional IS FORM(Koptional) ONCE Pliteral() || Pactual() || Pbuild() ENDFORMRULE Por IS FORM(Kor) REPEAT PbooleanValue() ENDFORMRULE Porientation IS FORM(Korientation) ONCE MATCH(KR0) || MATCH(KR90) || MATCH(KR180) || MATCH(KR270) || MATCH(KMX) || MATCH(KMY) || MATCH(KMYR90) || MATCH(KMXR90) ENDFORMRULE Porigin IS FORM(Korigin) ONCE PpointValue() ENDFORMRULE PoverhangDistance IS FORM(KoverhangDistance) ONCE PruleNameDef() && PfigureGroupObject() && PfigureGroupObject() && (Prange() || PsingleValueSet()) REPEAT Pcomment() || PuserData() ENDFORMRULE PoverlapDistance IS FORM(KoverlapDistance) ONCE PruleNameDef() && PfigureGroupObject() && PfigureGroupObject() && (Prange() || PsingleValueSet()) REPEAT Pcomment() || PuserData() ENDFORMRULE Poversize IS FORM(Koversize) ONCE PintegerValue() && (PfigureGroupRef() || PfigureOp()) && PcornerType() ENDFORMRULE Powner IS FORM(Kowner) ONCE PstringToken() ENDFORMRULE Ppage IS ZERO(n) ZERO(m) FORM(Kpage) FLAG(Fpage) ONCE PinstanceNameDef() REPEAT Pinstance() || Pnet() || PnetBundle() || PcommentGraphics() || PportImplementation() || G1(n,PpageSize) || G1(m,PboundingBox) || Pconstant() || Pconstraint() || Pvariable() || Passign() || Pblock() || Pif() || Piterate() || Pwhile() || Pcomment() || PuserData() UNFLAG(Fpage) ENDFORMRULE PpageSize IS FORM(KpageSize) ONCE Prectangle() ENDFORMRULE Pparameter IS FORM(Kparameter) ONCE PvalueNameDef() && PtypedValue() OPTIONAL Punit() ENDFORMRULE PparameterAssign IS FORM(KparameterAssign) FLAG(Fassign) ONCE PvalueNameRef() && PtypedValue() ENDFORMRULE PparameterDisplay IS FORM(KparameterDisplay)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -