665 lines
31 KiB
Ruby
665 lines
31 KiB
Ruby
# -*- coding: utf-8 -*- #
|
|
# frozen_string_literal: true
|
|
|
|
module Rouge
|
|
module Lexers
|
|
class IgorPro < RegexLexer
|
|
tag 'igorpro'
|
|
filenames '*.ipf'
|
|
mimetypes 'text/x-igorpro'
|
|
|
|
title "IgorPro"
|
|
desc "WaveMetrics Igor Pro"
|
|
|
|
def self.keywords
|
|
@keywords ||= Set.new %w(
|
|
structure endstructure
|
|
threadsafe static
|
|
macro proc window menu function end
|
|
if else elseif endif switch strswitch endswitch
|
|
break return continue
|
|
for endfor do while
|
|
case default
|
|
try catch endtry
|
|
abortonrte
|
|
)
|
|
end
|
|
|
|
def self.preprocessor
|
|
@preprocessor ||= Set.new %w(
|
|
pragma include
|
|
define ifdef ifndef undef
|
|
if elif else endif
|
|
)
|
|
end
|
|
|
|
def self.igorDeclarations
|
|
@igorDeclarations ||= Set.new %w(
|
|
variable string wave strconstant constant
|
|
nvar svar dfref funcref struct
|
|
char uchar int16 uint16 int32 uint32 int64 uint64 float double
|
|
)
|
|
end
|
|
|
|
def self.igorConstants
|
|
@igorConstants ||= Set.new %w(
|
|
nan inf
|
|
)
|
|
end
|
|
|
|
def self.igorFunction
|
|
@igorFunction ||= Set.new %w(
|
|
AddListItem AiryA AiryAD AiryB AiryBD AnnotationInfo
|
|
AnnotationList AxisInfo AxisList AxisValFromPixel
|
|
AxonTelegraphAGetDataNum AxonTelegraphAGetDataString
|
|
AxonTelegraphAGetDataStruct AxonTelegraphGetDataNum
|
|
AxonTelegraphGetDataString AxonTelegraphGetDataStruct
|
|
AxonTelegraphGetTimeoutMs AxonTelegraphSetTimeoutMs
|
|
Base64Decode Base64Encode Besseli Besselj Besselk
|
|
Bessely BinarySearch BinarySearchInterp CTabList
|
|
CaptureHistory CaptureHistoryStart CheckName
|
|
ChildWindowList CleanupName ContourInfo ContourNameList
|
|
ContourNameToWaveRef ContourZ ControlNameList
|
|
ConvertTextEncoding CountObjects CountObjectsDFR
|
|
CreationDate CsrInfo CsrWave CsrWaveRef CsrXWave
|
|
CsrXWaveRef DataFolderDir DataFolderExists
|
|
DataFolderRefStatus DataFolderRefsEqual DateToJulian
|
|
Dawson DimDelta DimOffset DimSize Faddeeva FetchURL
|
|
FindDimLabel FindListItem FontList FontSizeHeight
|
|
FontSizeStringWidth FresnelCos FresnelSin FuncRefInfo
|
|
FunctionInfo FunctionList FunctionPath
|
|
GISGetAllFileFormats GISSRefsAreEqual Gauss Gauss1D
|
|
Gauss2D GetBrowserLine GetBrowserSelection
|
|
GetDataFolder GetDataFolderDFR GetDefaultFont
|
|
GetDefaultFontSize GetDefaultFontStyle GetDimLabel
|
|
GetEnvironmentVariable GetErrMessage GetFormula
|
|
GetIndependentModuleName GetIndexedObjName
|
|
GetIndexedObjNameDFR GetKeyState GetRTErrMessage
|
|
GetRTError GetRTLocInfo GetRTLocation GetRTStackInfo
|
|
GetScrapText GetUserData GetWavesDataFolder
|
|
GetWavesDataFolderDFR GizmoInfo GizmoScale GrepList
|
|
GrepString GuideInfo GuideNameList HDF5AttributeInfo
|
|
HDF5DatasetInfo HDF5LibraryInfo HDF5TypeInfo Hash
|
|
HyperG0F1 HyperG1F1 HyperG2F1 HyperGNoise HyperGPFQ
|
|
IgorInfo IgorVersion ImageInfo ImageNameList
|
|
ImageNameToWaveRef IndependentModuleList IndexToScale
|
|
IndexedDir IndexedFile Inf Integrate1D Interp2D
|
|
Interp3D ItemsInList JacobiCn JacobiSn JulianToDate
|
|
Laguerre LaguerreA LaguerreGauss LambertW LayoutInfo
|
|
LegendreA ListMatch ListToTextWave ListToWaveRefWave
|
|
LowerStr MCC_AutoBridgeBal MCC_AutoFastComp
|
|
MCC_AutoPipetteOffset MCC_AutoSlowComp
|
|
MCC_AutoWholeCellComp MCC_GetBridgeBalEnable
|
|
MCC_GetBridgeBalResist MCC_GetFastCompCap
|
|
MCC_GetFastCompTau MCC_GetHolding MCC_GetHoldingEnable
|
|
MCC_GetMode MCC_GetNeutralizationCap
|
|
MCC_GetNeutralizationEnable MCC_GetOscKillerEnable
|
|
MCC_GetPipetteOffset MCC_GetPrimarySignalGain
|
|
MCC_GetPrimarySignalHPF MCC_GetPrimarySignalLPF
|
|
MCC_GetRsCompBandwidth MCC_GetRsCompCorrection
|
|
MCC_GetRsCompEnable MCC_GetRsCompPrediction
|
|
MCC_GetSecondarySignalGain MCC_GetSecondarySignalLPF
|
|
MCC_GetSlowCompCap MCC_GetSlowCompTau
|
|
MCC_GetSlowCompTauX20Enable MCC_GetSlowCurrentInjEnable
|
|
MCC_GetSlowCurrentInjLevel
|
|
MCC_GetSlowCurrentInjSetlTime MCC_GetWholeCellCompCap
|
|
MCC_GetWholeCellCompEnable MCC_GetWholeCellCompResist
|
|
MCC_SelectMultiClamp700B MCC_SetBridgeBalEnable
|
|
MCC_SetBridgeBalResist MCC_SetFastCompCap
|
|
MCC_SetFastCompTau MCC_SetHolding MCC_SetHoldingEnable
|
|
MCC_SetMode MCC_SetNeutralizationCap
|
|
MCC_SetNeutralizationEnable MCC_SetOscKillerEnable
|
|
MCC_SetPipetteOffset MCC_SetPrimarySignalGain
|
|
MCC_SetPrimarySignalHPF MCC_SetPrimarySignalLPF
|
|
MCC_SetRsCompBandwidth MCC_SetRsCompCorrection
|
|
MCC_SetRsCompEnable MCC_SetRsCompPrediction
|
|
MCC_SetSecondarySignalGain MCC_SetSecondarySignalLPF
|
|
MCC_SetSlowCompCap MCC_SetSlowCompTau
|
|
MCC_SetSlowCompTauX20Enable MCC_SetSlowCurrentInjEnable
|
|
MCC_SetSlowCurrentInjLevel
|
|
MCC_SetSlowCurrentInjSetlTime MCC_SetTimeoutMs
|
|
MCC_SetWholeCellCompCap MCC_SetWholeCellCompEnable
|
|
MCC_SetWholeCellCompResist MPFXEMGPeak
|
|
MPFXExpConvExpPeak MPFXGaussPeak MPFXLorenzianPeak
|
|
MPFXVoigtPeak MacroList MandelbrotPoint MarcumQ
|
|
MatrixCondition MatrixDet MatrixDot MatrixRank
|
|
MatrixTrace ModDate NVAR_Exists NaN NameOfWave
|
|
NewFreeDataFolder NewFreeWave NormalizeUnicode
|
|
NumVarOrDefault NumberByKey OperationList PICTInfo
|
|
PICTList PadString PanelResolution ParamIsDefault
|
|
ParseFilePath PathList Pi PixelFromAxisVal PolygonArea
|
|
PossiblyQuoteName ProcedureText RemoveByKey
|
|
RemoveEnding RemoveFromList RemoveListItem
|
|
ReplaceNumberByKey ReplaceString ReplaceStringByKey
|
|
SQL2DBinaryWaveToTextWave SQLAllocHandle SQLAllocStmt
|
|
SQLBinaryWavesToTextWave SQLBindCol SQLBindParameter
|
|
SQLBrowseConnect SQLBulkOperations SQLCancel
|
|
SQLCloseCursor SQLColAttributeNum SQLColAttributeStr
|
|
SQLColumnPrivileges SQLColumns SQLConnect
|
|
SQLDataSources SQLDescribeCol SQLDescribeParam
|
|
SQLDisconnect SQLDriverConnect SQLDrivers SQLEndTran
|
|
SQLError SQLExecDirect SQLExecute SQLFetch
|
|
SQLFetchScroll SQLForeignKeys SQLFreeConnect SQLFreeEnv
|
|
SQLFreeHandle SQLFreeStmt SQLGetConnectAttrNum
|
|
SQLGetConnectAttrStr SQLGetCursorName SQLGetDataNum
|
|
SQLGetDataStr SQLGetDescFieldNum SQLGetDescFieldStr
|
|
SQLGetDescRec SQLGetDiagFieldNum SQLGetDiagFieldStr
|
|
SQLGetDiagRec SQLGetEnvAttrNum SQLGetEnvAttrStr
|
|
SQLGetFunctions SQLGetInfoNum SQLGetInfoStr
|
|
SQLGetStmtAttrNum SQLGetStmtAttrStr SQLGetTypeInfo
|
|
SQLMoreResults SQLNativeSql SQLNumParams
|
|
SQLNumResultCols SQLNumResultRowsIfKnown
|
|
SQLNumRowsFetched SQLParamData SQLPrepare
|
|
SQLPrimaryKeys SQLProcedureColumns SQLProcedures
|
|
SQLPutData SQLReinitialize SQLRowCount
|
|
SQLSetConnectAttrNum SQLSetConnectAttrStr
|
|
SQLSetCursorName SQLSetDescFieldNum SQLSetDescFieldStr
|
|
SQLSetDescRec SQLSetEnvAttrNum SQLSetEnvAttrStr
|
|
SQLSetPos SQLSetStmtAttrNum SQLSetStmtAttrStr
|
|
SQLSpecialColumns SQLStatistics SQLTablePrivileges
|
|
SQLTables SQLTextWaveTo2DBinaryWave
|
|
SQLTextWaveToBinaryWaves SQLUpdateBoundValues
|
|
SQLXOPCheckState SVAR_Exists ScreenResolution Secs2Date
|
|
Secs2Time SelectNumber SelectString
|
|
SetEnvironmentVariable SortList SpecialCharacterInfo
|
|
SpecialCharacterList SpecialDirPath SphericalBessJ
|
|
SphericalBessJD SphericalBessY SphericalBessYD
|
|
SphericalHarmonics StartMSTimer StatsBetaCDF
|
|
StatsBetaPDF StatsBinomialCDF StatsBinomialPDF
|
|
StatsCMSSDCDF StatsCauchyCDF StatsCauchyPDF StatsChiCDF
|
|
StatsChiPDF StatsCorrelation StatsDExpCDF StatsDExpPDF
|
|
StatsEValueCDF StatsEValuePDF StatsErlangCDF
|
|
StatsErlangPDF StatsErrorPDF StatsExpCDF StatsExpPDF
|
|
StatsFCDF StatsFPDF StatsFriedmanCDF StatsGEVCDF
|
|
StatsGEVPDF StatsGammaCDF StatsGammaPDF
|
|
StatsGeometricCDF StatsGeometricPDF StatsHyperGCDF
|
|
StatsHyperGPDF StatsInvBetaCDF StatsInvBinomialCDF
|
|
StatsInvCMSSDCDF StatsInvCauchyCDF StatsInvChiCDF
|
|
StatsInvDExpCDF StatsInvEValueCDF StatsInvExpCDF
|
|
StatsInvFCDF StatsInvFriedmanCDF StatsInvGammaCDF
|
|
StatsInvGeometricCDF StatsInvKuiperCDF
|
|
StatsInvLogNormalCDF StatsInvLogisticCDF
|
|
StatsInvMaxwellCDF StatsInvMooreCDF
|
|
StatsInvNBinomialCDF StatsInvNCChiCDF StatsInvNCFCDF
|
|
StatsInvNormalCDF StatsInvParetoCDF StatsInvPoissonCDF
|
|
StatsInvPowerCDF StatsInvQCDF StatsInvQpCDF
|
|
StatsInvRayleighCDF StatsInvRectangularCDF
|
|
StatsInvSpearmanCDF StatsInvStudentCDF
|
|
StatsInvTopDownCDF StatsInvTriangularCDF
|
|
StatsInvUsquaredCDF StatsInvVonMisesCDF
|
|
StatsInvWeibullCDF StatsKuiperCDF StatsLogNormalCDF
|
|
StatsLogNormalPDF StatsLogisticCDF StatsLogisticPDF
|
|
StatsMaxwellCDF StatsMaxwellPDF StatsMedian
|
|
StatsMooreCDF StatsNBinomialCDF StatsNBinomialPDF
|
|
StatsNCChiCDF StatsNCChiPDF StatsNCFCDF StatsNCFPDF
|
|
StatsNCTCDF StatsNCTPDF StatsNormalCDF StatsNormalPDF
|
|
StatsParetoCDF StatsParetoPDF StatsPermute
|
|
StatsPoissonCDF StatsPoissonPDF StatsPowerCDF
|
|
StatsPowerNoise StatsPowerPDF StatsQCDF StatsQpCDF
|
|
StatsRayleighCDF StatsRayleighPDF StatsRectangularCDF
|
|
StatsRectangularPDF StatsRunsCDF StatsSpearmanRhoCDF
|
|
StatsStudentCDF StatsStudentPDF StatsTopDownCDF
|
|
StatsTriangularCDF StatsTriangularPDF StatsTrimmedMean
|
|
StatsUSquaredCDF StatsVonMisesCDF StatsVonMisesNoise
|
|
StatsVonMisesPDF StatsWaldCDF StatsWaldPDF
|
|
StatsWeibullCDF StatsWeibullPDF StopMSTimer
|
|
StrVarOrDefault StringByKey StringFromList StringList
|
|
StudentA StudentT TDMAddChannel TDMAddGroup
|
|
TDMAppendDataValues TDMAppendDataValuesTime
|
|
TDMChannelPropertyExists TDMCloseChannel TDMCloseFile
|
|
TDMCloseGroup TDMCreateChannelProperty TDMCreateFile
|
|
TDMCreateFileProperty TDMCreateGroupProperty
|
|
TDMFilePropertyExists TDMGetChannelPropertyNames
|
|
TDMGetChannelPropertyNum TDMGetChannelPropertyStr
|
|
TDMGetChannelPropertyTime TDMGetChannelPropertyType
|
|
TDMGetChannelStringPropertyLen TDMGetChannels
|
|
TDMGetDataType TDMGetDataValues TDMGetDataValuesTime
|
|
TDMGetFilePropertyNames TDMGetFilePropertyNum
|
|
TDMGetFilePropertyStr TDMGetFilePropertyTime
|
|
TDMGetFilePropertyType TDMGetFileStringPropertyLen
|
|
TDMGetGroupPropertyNames TDMGetGroupPropertyNum
|
|
TDMGetGroupPropertyStr TDMGetGroupPropertyTime
|
|
TDMGetGroupPropertyType TDMGetGroupStringPropertyLen
|
|
TDMGetGroups TDMGetLibraryErrorDescription
|
|
TDMGetNumChannelProperties TDMGetNumChannels
|
|
TDMGetNumDataValues TDMGetNumFileProperties
|
|
TDMGetNumGroupProperties TDMGetNumGroups
|
|
TDMGroupPropertyExists TDMOpenFile TDMOpenFileEx
|
|
TDMRemoveChannel TDMRemoveGroup TDMReplaceDataValues
|
|
TDMReplaceDataValuesTime TDMSaveFile
|
|
TDMSetChannelPropertyNum TDMSetChannelPropertyStr
|
|
TDMSetChannelPropertyTime TDMSetDataValues
|
|
TDMSetDataValuesTime TDMSetFilePropertyNum
|
|
TDMSetFilePropertyStr TDMSetFilePropertyTime
|
|
TDMSetGroupPropertyNum TDMSetGroupPropertyStr
|
|
TDMSetGroupPropertyTime TableInfo TagVal TagWaveRef
|
|
TextEncodingCode TextEncodingName TextFile
|
|
ThreadGroupCreate ThreadGroupGetDF ThreadGroupGetDFR
|
|
ThreadGroupRelease ThreadGroupWait ThreadProcessorCount
|
|
ThreadReturnValue TraceFromPixel TraceInfo
|
|
TraceNameList TraceNameToWaveRef TrimString URLDecode
|
|
URLEncode UnPadString UniqueName
|
|
UnsetEnvironmentVariable UpperStr VariableList Variance
|
|
VoigtFunc VoigtPeak WaveCRC WaveDims WaveExists
|
|
WaveHash WaveInfo WaveList WaveMax WaveMin WaveName
|
|
WaveRefIndexed WaveRefIndexedDFR WaveRefWaveToList
|
|
WaveRefsEqual WaveTextEncoding WaveType WaveUnits
|
|
WhichListItem WinList WinName WinRecreation WinType
|
|
XWaveName XWaveRefFromTrace ZernikeR abs acos acosh
|
|
alog area areaXY asin asinh atan atan2 atanh beta betai
|
|
binomial binomialNoise binomialln cabs ceil cequal
|
|
char2num chebyshev chebyshevU cmplx cmpstr conj cos
|
|
cosIntegral cosh cot coth cpowi csc csch date date2secs
|
|
datetime defined deltax digamma dilogarithm ei enoise
|
|
equalWaves erf erfc erfcw exists exp expInt
|
|
expIntegralE1 expNoise fDAQmx_AI_GetReader
|
|
fDAQmx_AO_UpdateOutputs fDAQmx_CTR_Finished
|
|
fDAQmx_CTR_IsFinished fDAQmx_CTR_IsPulseFinished
|
|
fDAQmx_CTR_ReadCounter fDAQmx_CTR_ReadWithOptions
|
|
fDAQmx_CTR_SetPulseFrequency fDAQmx_CTR_Start
|
|
fDAQmx_ConnectTerminals fDAQmx_DIO_Finished
|
|
fDAQmx_DIO_PortWidth fDAQmx_DIO_Read fDAQmx_DIO_Write
|
|
fDAQmx_DeviceNames fDAQmx_DisconnectTerminals
|
|
fDAQmx_ErrorString fDAQmx_ExternalCalDate
|
|
fDAQmx_NumAnalogInputs fDAQmx_NumAnalogOutputs
|
|
fDAQmx_NumCounters fDAQmx_NumDIOPorts fDAQmx_ReadChan
|
|
fDAQmx_ReadNamedChan fDAQmx_ResetDevice
|
|
fDAQmx_ScanGetAvailable fDAQmx_ScanGetNextIndex
|
|
fDAQmx_ScanStart fDAQmx_ScanStop fDAQmx_ScanWait
|
|
fDAQmx_ScanWaitWithTimeout fDAQmx_SelfCalDate
|
|
fDAQmx_SelfCalibration fDAQmx_WF_IsFinished
|
|
fDAQmx_WF_WaitUntilFinished fDAQmx_WaveformStart
|
|
fDAQmx_WaveformStop fDAQmx_WriteChan factorial fakedata
|
|
faverage faverageXY floor gamma gammaEuler gammaInc
|
|
gammaNoise gammln gammp gammq gcd gnoise hcsr hermite
|
|
hermiteGauss imag interp inverseERF inverseERFC leftx
|
|
limit ln log logNormalNoise lorentzianNoise magsqr max
|
|
mean median min mod norm note num2char num2istr num2str
|
|
numpnts numtype p2rect pcsr pnt2x poissonNoise poly
|
|
poly2D qcsr r2polar real rightx round sawtooth
|
|
scaleToIndex sec sech sign sin sinIntegral sinc sinh
|
|
sqrt str2num stringCRC stringmatch strlen strsearch sum
|
|
tan tango_close_device tango_command_inout
|
|
tango_compute_image_proj tango_get_dev_attr_list
|
|
tango_get_dev_black_box tango_get_dev_cmd_list
|
|
tango_get_dev_status tango_get_dev_timeout
|
|
tango_get_error_stack tango_open_device
|
|
tango_ping_device tango_read_attribute
|
|
tango_read_attributes tango_reload_dev_interface
|
|
tango_resume_attr_monitor tango_set_attr_monitor_period
|
|
tango_set_dev_timeout tango_start_attr_monitor
|
|
tango_stop_attr_monitor tango_suspend_attr_monitor
|
|
tango_write_attribute tango_write_attributes tanh ticks
|
|
time trunc vcsr viAssertIntrSignal viAssertTrigger
|
|
viAssertUtilSignal viClear viClose viDisableEvent
|
|
viDiscardEvents viEnableEvent viFindNext viFindRsrc
|
|
viGetAttribute viGetAttributeString viGpibCommand
|
|
viGpibControlATN viGpibControlREN viGpibPassControl
|
|
viGpibSendIFC viIn16 viIn32 viIn8 viLock viMapAddress
|
|
viMapTrigger viMemAlloc viMemFree viMoveIn16 viMoveIn32
|
|
viMoveIn8 viMoveOut16 viMoveOut32 viMoveOut8 viOpen
|
|
viOpenDefaultRM viOut16 viOut32 viOut8 viPeek16
|
|
viPeek32 viPeek8 viPoke16 viPoke32 viPoke8 viRead
|
|
viReadSTB viSetAttribute viSetAttributeString
|
|
viStatusDesc viTerminate viUnlock viUnmapAddress
|
|
viUnmapTrigger viUsbControlIn viUsbControlOut
|
|
viVxiCommandQuery viWaitOnEvent viWrite wnoise x2pnt
|
|
xcsr zcsr zeromq_client_connect zeromq_client_connect
|
|
zeromq_client_recv zeromq_client_recv
|
|
zeromq_client_send zeromq_client_send
|
|
zeromq_handler_start zeromq_handler_start
|
|
zeromq_handler_stop zeromq_handler_stop
|
|
zeromq_server_bind zeromq_server_bind
|
|
zeromq_server_recv zeromq_server_recv
|
|
zeromq_server_send zeromq_server_send zeromq_set
|
|
zeromq_set zeromq_stop zeromq_stop
|
|
zeromq_test_callfunction zeromq_test_callfunction
|
|
zeromq_test_serializeWave zeromq_test_serializeWave
|
|
zeta
|
|
)
|
|
end
|
|
|
|
def self.igorOperation
|
|
@igorOperation ||= Set.new %w(
|
|
APMath Abort AddFIFOData AddFIFOVectData AddMovieAudio
|
|
AddMovieFrame AddWavesToBoxPlot AddWavesToViolinPlot
|
|
AdoptFiles Append AppendBoxPlot AppendImage
|
|
AppendLayoutObject AppendMatrixContour AppendText
|
|
AppendToGizmo AppendToGraph AppendToLayout
|
|
AppendToTable AppendViolinPlot AppendXYZContour
|
|
AutoPositionWindow AxonTelegraphFindServers
|
|
BackgroundInfo Beep BoundingBall BoxSmooth BrowseURL
|
|
BuildMenu Button CWT Chart CheckBox CheckDisplayed
|
|
ChooseColor Close CloseHelp CloseMovie CloseProc
|
|
ColorScale ColorTab2Wave Concatenate ControlBar
|
|
ControlInfo ControlUpdate
|
|
ConvertGlobalStringTextEncoding ConvexHull Convolve
|
|
CopyDimLabels CopyFile CopyFolder CopyScales Correlate
|
|
CreateAliasShortcut CreateBrowser Cross CtrlBackground
|
|
CtrlFIFO CtrlNamedBackground Cursor CurveFit
|
|
CustomControl DAQmx_AI_SetupReader DAQmx_AO_SetOutputs
|
|
DAQmx_CTR_CountEdges DAQmx_CTR_OutputPulse
|
|
DAQmx_CTR_Period DAQmx_CTR_PulseWidth DAQmx_DIO_Config
|
|
DAQmx_DIO_WriteNewData DAQmx_Scan DAQmx_WaveformGen
|
|
DPSS DSPDetrend DSPPeriodogram DWT Debugger
|
|
DebuggerOptions DefaultFont DefaultGuiControls
|
|
DefaultGuiFont DefaultTextEncoding DefineGuide
|
|
DelayUpdate DeleteAnnotations DeleteFile DeleteFolder
|
|
DeletePoints Differentiate Display DisplayHelpTopic
|
|
DisplayProcedure DoAlert DoIgorMenu DoUpdate DoWindow
|
|
DoXOPIdle DrawAction DrawArc DrawBezier DrawLine
|
|
DrawOval DrawPICT DrawPoly DrawRRect DrawRect DrawText
|
|
DrawUserShape Duplicate DuplicateDataFolder EdgeStats
|
|
Edit ErrorBars EstimatePeakSizes Execute
|
|
ExecuteScriptText ExperimentInfo ExperimentModified
|
|
ExportGizmo Extract FBinRead FBinWrite FFT FGetPos
|
|
FIFO2Wave FIFOStatus FMaxFlat FPClustering FReadLine
|
|
FSetPos FStatus FTPCreateDirectory FTPDelete
|
|
FTPDownload FTPUpload FastGaussTransform FastOp
|
|
FilterFIR FilterIIR FindAPeak FindContour
|
|
FindDuplicates FindLevel FindLevels FindPeak
|
|
FindPointsInPoly FindRoots FindSequence FindValue
|
|
FuncFit FuncFitMD GBLoadWave GISCreateVectorLayer
|
|
GISGetRasterInfo GISGetRegisteredFileInfo
|
|
GISGetVectorLayerInfo GISLoadRasterData
|
|
GISLoadVectorData GISRasterizeVectorData
|
|
GISRegisterFile GISTransformCoords GISUnRegisterFile
|
|
GISWriteFieldData GISWriteGeometryData GISWriteRaster
|
|
GPIB2 GPIBRead2 GPIBReadBinary2 GPIBReadBinaryWave2
|
|
GPIBReadWave2 GPIBWrite2 GPIBWriteBinary2
|
|
GPIBWriteBinaryWave2 GPIBWriteWave2 GetAxis GetCamera
|
|
GetFileFolderInfo GetGizmo GetLastUserMenuInfo
|
|
GetMarquee GetMouse GetSelection GetWindow GraphNormal
|
|
GraphWaveDraw GraphWaveEdit Grep GroupBox
|
|
HDF5CloseFile HDF5CloseGroup HDF5ConvertColors
|
|
HDF5CreateFile HDF5CreateGroup HDF5CreateLink HDF5Dump
|
|
HDF5DumpErrors HDF5DumpState HDF5FlushFile
|
|
HDF5ListAttributes HDF5ListGroup HDF5LoadData
|
|
HDF5LoadGroup HDF5LoadImage HDF5OpenFile HDF5OpenGroup
|
|
HDF5SaveData HDF5SaveGroup HDF5SaveImage
|
|
HDF5TestOperation HDF5UnlinkObject HDFInfo
|
|
HDFReadImage HDFReadSDS HDFReadVset Hanning
|
|
HideIgorMenus HideInfo HideProcedures HideTools
|
|
HilbertTransform Histogram ICA IFFT ITCCloseAll2
|
|
ITCCloseDevice2 ITCConfigAllChannels2
|
|
ITCConfigChannel2 ITCConfigChannelReset2
|
|
ITCConfigChannelUpload2 ITCFIFOAvailable2
|
|
ITCFIFOAvailableAll2 ITCGetAllChannelsConfig2
|
|
ITCGetChannelConfig2 ITCGetCurrentDevice2
|
|
ITCGetDeviceInfo2 ITCGetDevices2 ITCGetErrorString2
|
|
ITCGetSerialNumber2 ITCGetState2 ITCGetVersions2
|
|
ITCInitialize2 ITCOpenDevice2 ITCReadADC2
|
|
ITCReadDigital2 ITCReadTimer2 ITCSelectDevice2
|
|
ITCSetDAC2 ITCSetGlobals2 ITCSetModes2 ITCSetState2
|
|
ITCStartAcq2 ITCStopAcq2 ITCUpdateFIFOPosition2
|
|
ITCUpdateFIFOPositionAll2 ITCWriteDigital2
|
|
ImageAnalyzeParticles ImageBlend ImageBoundaryToMask
|
|
ImageComposite ImageEdgeDetection ImageFileInfo
|
|
ImageFilter ImageFocus ImageFromXYZ ImageGLCM
|
|
ImageGenerateROIMask ImageHistModification
|
|
ImageHistogram ImageInterpolate ImageLineProfile
|
|
ImageLoad ImageMorphology ImageRegistration
|
|
ImageRemoveBackground ImageRestore ImageRotate
|
|
ImageSave ImageSeedFill ImageSkeleton3d ImageSnake
|
|
ImageStats ImageThreshold ImageTransform
|
|
ImageUnwrapPhase ImageWindow IndexSort InsertPoints
|
|
Integrate Integrate2D IntegrateODE Interp3DPath
|
|
Interpolate2 Interpolate3D JCAMPLoadWave
|
|
JointHistogram KMeans KillBackground KillControl
|
|
KillDataFolder KillFIFO KillFreeAxis KillPICTs
|
|
KillPath KillStrings KillVariables KillWaves
|
|
KillWindow Label Layout LayoutPageAction
|
|
LayoutSlideShow Legend LinearFeedbackShiftRegister
|
|
ListBox LoadData LoadPICT LoadPackagePreferences
|
|
LoadWave Loess LombPeriodogram MCC_FindServers
|
|
MFR_CheckForNewBricklets MFR_CloseResultFile
|
|
MFR_CreateOverviewTable MFR_GetBrickletCount
|
|
MFR_GetBrickletData MFR_GetBrickletDeployData
|
|
MFR_GetBrickletMetaData MFR_GetBrickletRawData
|
|
MFR_GetReportTemplate MFR_GetResultFileMetaData
|
|
MFR_GetResultFileName MFR_GetVernissageVersion
|
|
MFR_GetVersion MFR_GetXOPErrorMessage
|
|
MFR_OpenResultFile
|
|
MLLoadWave Make MakeIndex MarkPerfTestTime
|
|
MatrixConvolve MatrixCorr MatrixEigenV MatrixFilter
|
|
MatrixGLM MatrixGaussJ MatrixInverse MatrixLLS
|
|
MatrixLUBkSub MatrixLUD MatrixLUDTD MatrixLinearSolve
|
|
MatrixLinearSolveTD MatrixMultiply MatrixOP
|
|
MatrixSVBkSub MatrixSVD MatrixSchur MatrixSolve
|
|
MatrixTranspose MeasureStyledText Modify ModifyBoxPlot
|
|
ModifyBrowser ModifyCamera ModifyContour ModifyControl
|
|
ModifyControlList ModifyFreeAxis ModifyGizmo
|
|
ModifyGraph ModifyImage ModifyLayout ModifyPanel
|
|
ModifyTable ModifyViolinPlot ModifyWaterfall
|
|
MoveDataFolder MoveFile MoveFolder MoveString
|
|
MoveSubwindow MoveVariable MoveWave MoveWindow
|
|
MultiTaperPSD MultiThreadingControl NC_CloseFile
|
|
NC_DumpErrors NC_Inquire NC_ListAttributes
|
|
NC_ListObjects NC_LoadData NC_OpenFile NI4882
|
|
NILoadWave NeuralNetworkRun NeuralNetworkTrain
|
|
NewCamera NewDataFolder NewFIFO NewFIFOChan
|
|
NewFreeAxis NewGizmo NewImage NewLayout NewMovie
|
|
NewNotebook NewPanel NewPath NewWaterfall Note
|
|
Notebook NotebookAction Open OpenHelp OpenNotebook
|
|
Optimize PCA ParseOperationTemplate PathInfo
|
|
PauseForUser PauseUpdate PlayMovie PlayMovieAction
|
|
PlaySound PopupContextualMenu PopupMenu Preferences
|
|
PrimeFactors Print PrintGraphs PrintLayout
|
|
PrintNotebook PrintSettings PrintTable Project
|
|
PulseStats PutScrapText Quit RatioFromNumber
|
|
Redimension Remez Remove RemoveContour RemoveFromGizmo
|
|
RemoveFromGraph RemoveFromLayout RemoveFromTable
|
|
RemoveImage RemoveLayoutObjects RemovePath Rename
|
|
RenameDataFolder RenamePICT RenamePath RenameWindow
|
|
ReorderImages ReorderTraces ReplaceText ReplaceWave
|
|
Resample ResumeUpdate Reverse Rotate SQLHighLevelOp
|
|
STFT Save SaveData SaveExperiment SaveGizmoCopy
|
|
SaveGraphCopy SaveNotebook SavePICT
|
|
SavePackagePreferences SaveTableCopy
|
|
SetActiveSubwindow SetAxis SetBackground
|
|
SetDashPattern SetDataFolder SetDimLabel SetDrawEnv
|
|
SetDrawLayer SetFileFolderInfo SetFormula
|
|
SetIdlePeriod SetIgorHook SetIgorMenuMode
|
|
SetIgorOption SetMarquee SetProcessSleep SetRandomSeed
|
|
SetScale SetVariable SetWaveLock SetWaveTextEncoding
|
|
SetWindow ShowIgorMenus ShowInfo ShowTools Silent
|
|
Sleep Slider Smooth SmoothCustom Sort SortColumns
|
|
SoundInRecord SoundInSet SoundInStartChart
|
|
SoundInStatus SoundInStopChart SoundLoadWave
|
|
SoundSaveWave SphericalInterpolate
|
|
SphericalTriangulate SplitString SplitWave Stack
|
|
StackWindows StatsANOVA1Test StatsANOVA2NRTest
|
|
StatsANOVA2RMTest StatsANOVA2Test
|
|
StatsAngularDistanceTest StatsChiTest
|
|
StatsCircularCorrelationTest StatsCircularMeans
|
|
StatsCircularMoments StatsCircularTwoSampleTest
|
|
StatsCochranTest StatsContingencyTable StatsDIPTest
|
|
StatsDunnettTest StatsFTest StatsFriedmanTest
|
|
StatsHodgesAjneTest StatsJBTest StatsKDE StatsKSTest
|
|
StatsKWTest StatsKendallTauTest
|
|
StatsLinearCorrelationTest StatsLinearRegression
|
|
StatsMultiCorrelationTest StatsNPMCTest
|
|
StatsNPNominalSRTest StatsQuantiles
|
|
StatsRankCorrelationTest StatsResample StatsSRTest
|
|
StatsSample StatsScheffeTest StatsShapiroWilkTest
|
|
StatsSignTest StatsTTest StatsTukeyTest
|
|
StatsVariancesTest StatsWRCorrelationTest
|
|
StatsWatsonUSquaredTest StatsWatsonWilliamsTest
|
|
StatsWheelerWatsonTest StatsWilcoxonRankTest String
|
|
StructFill StructGet StructPut SumDimension SumSeries
|
|
TDMLoadData TDMSaveData TabControl Tag TextBox
|
|
ThreadGroupPutDF ThreadStart TickWavesFromAxis Tile
|
|
TileWindows TitleBox ToCommandLine ToolsGrid
|
|
Triangulate3d URLRequest Unwrap VDT2 VDTClosePort2
|
|
VDTGetPortList2 VDTGetStatus2 VDTOpenPort2
|
|
VDTOperationsPort2 VDTRead2 VDTReadBinary2
|
|
VDTReadBinaryWave2 VDTReadHex2 VDTReadHexWave2
|
|
VDTReadWave2 VDTTerminalPort2 VDTWrite2
|
|
VDTWriteBinary2 VDTWriteBinaryWave2 VDTWriteHex2
|
|
VDTWriteHexWave2 VDTWriteWave2 VISAControl VISARead
|
|
VISAReadBinary VISAReadBinaryWave VISAReadWave
|
|
VISAWrite VISAWriteBinary VISAWriteBinaryWave
|
|
VISAWriteWave ValDisplay Variable WaveMeanStdv
|
|
WaveStats WaveTransform WignerTransform WindowFunction
|
|
XLLoadWave cd dir fprintf printf pwd sprintf sscanf
|
|
wfprintf
|
|
)
|
|
end
|
|
|
|
def self.object_name
|
|
/\b[a-z][a-z0-9_\.]*?\b/i
|
|
end
|
|
|
|
object = self.object_name
|
|
noLineBreak = /(?:[ \t]|(?:\\\s*[\r\n]))+/
|
|
operator = %r([\#$~!%^&*+=\|?:<>/-])
|
|
punctuation = /[{}()\[\],.;]/
|
|
number_float= /0x[a-f0-9]+/i
|
|
number_hex = /\d+\.\d+(e[\+\-]?\d+)?/
|
|
number_int = /[\d]+(?:_\d+)*/
|
|
|
|
state :root do
|
|
rule %r(//), Comment, :comments
|
|
|
|
rule %r/#{object}/ do |m|
|
|
if m[0].downcase =~ /function/
|
|
token Keyword::Declaration
|
|
push :parse_function
|
|
elsif self.class.igorDeclarations.include? m[0].downcase
|
|
token Keyword::Declaration
|
|
push :parse_variables
|
|
elsif self.class.keywords.include? m[0].downcase
|
|
token Keyword
|
|
elsif self.class.igorConstants.include? m[0].downcase
|
|
token Keyword::Constant
|
|
elsif self.class.igorFunction.include? m[0].downcase
|
|
token Name::Builtin
|
|
elsif self.class.igorOperation.include? m[0].downcase
|
|
token Keyword::Reserved
|
|
push :operationFlags
|
|
elsif m[0].downcase =~ /\b(v|s|w)_[a-z]+[a-z0-9]*/
|
|
token Name::Constant
|
|
else
|
|
token Name
|
|
end
|
|
end
|
|
|
|
mixin :preprocessor
|
|
mixin :waveFlag
|
|
|
|
mixin :characters
|
|
mixin :numbers
|
|
mixin :whitespace
|
|
end
|
|
|
|
state :preprocessor do
|
|
rule %r((\#)(#{object})) do |m|
|
|
if self.class.preprocessor.include? m[2].downcase
|
|
token Comment::Preproc
|
|
else
|
|
token Punctuation, m[1] #i.e. ModuleFunctions
|
|
token Name, m[2]
|
|
end
|
|
|
|
|
|
end
|
|
end
|
|
|
|
state :assignment do
|
|
mixin :whitespace
|
|
rule %r/\"/, Literal::String::Double, :string1 #punctuation for string
|
|
mixin :string2
|
|
rule %r/#{number_float}/, Literal::Number::Float, :pop!
|
|
rule %r/#{number_int}/, Literal::Number::Integer, :pop!
|
|
rule %r/[\(\[\{][^\)\]\}]+[\)\]\}]/, Generic, :pop!
|
|
rule %r/[^\s\/\(]+/, Generic, :pop!
|
|
rule(//) { pop! }
|
|
end
|
|
|
|
state :parse_variables do
|
|
mixin :whitespace
|
|
rule %r/[=]/, Punctuation, :assignment
|
|
rule object, Name::Variable
|
|
rule %r/[\[\]]/, Punctuation # optional variables in functions
|
|
rule %r/[,]/, Punctuation, :parse_variables
|
|
rule %r/\)/, Punctuation, :pop! # end of function
|
|
rule %r([/][a-z]+)i, Keyword::Pseudo, :parse_variables
|
|
rule(//) { pop! }
|
|
end
|
|
|
|
state :parse_function do
|
|
rule %r([/][a-z]+)i, Keyword::Pseudo # only one flag
|
|
mixin :whitespace
|
|
rule object, Name::Function
|
|
rule %r/[\(]/, Punctuation, :parse_variables
|
|
rule(//) { pop! }
|
|
end
|
|
|
|
state :operationFlags do
|
|
rule %r/#{noLineBreak}/, Text
|
|
rule %r/[=]/, Punctuation, :assignment
|
|
rule %r([/][a-z]+)i, Keyword::Pseudo, :operationFlags
|
|
rule %r/(as)(\s*)(#{object})/i do
|
|
groups Keyword::Type, Text, Name::Label
|
|
end
|
|
rule(//) { pop! }
|
|
end
|
|
|
|
# inline variable assignments (i.e. for Make) with strict syntax
|
|
state :waveFlag do
|
|
rule %r(
|
|
(/(?:wave|X|Y))
|
|
(\s*)(=)(\s*)
|
|
(#{object})
|
|
)ix do |m|
|
|
token Keyword::Pseudo, m[1]
|
|
token Text, m[2]
|
|
token Punctuation, m[3]
|
|
token Text, m[4]
|
|
token Name::Variable, m[5]
|
|
end
|
|
end
|
|
|
|
state :characters do
|
|
rule %r/\s/, Text
|
|
rule %r/#{operator}/, Operator
|
|
rule %r/#{punctuation}/, Punctuation
|
|
rule %r/\"/, Literal::String::Double, :string1 #punctuation for string
|
|
mixin :string2
|
|
end
|
|
|
|
state :numbers do
|
|
rule %r/#{number_float}/, Literal::Number::Float
|
|
rule %r/#{number_hex}/, Literal::Number::Hex
|
|
rule %r/#{number_int}/, Literal::Number::Integer
|
|
end
|
|
|
|
state :whitespace do
|
|
rule %r/#{noLineBreak}/, Text
|
|
end
|
|
|
|
state :string1 do
|
|
rule %r/%\w\b/, Literal::String::Other
|
|
rule %r/\\\\/, Literal::String::Escape
|
|
rule %r/\\\"/, Literal::String::Escape
|
|
rule %r/\\/, Literal::String::Escape
|
|
rule %r/[^"]/, Literal::String
|
|
rule %r/\"/, Literal::String::Double, :pop! #punctuation for string
|
|
end
|
|
|
|
state :string2 do
|
|
rule %r/\'[^']*\'/, Literal::String::Single
|
|
end
|
|
|
|
state :comments do
|
|
rule %r{([/]\s*)([@]\w+\b)}i do
|
|
# doxygen comments
|
|
groups Comment, Comment::Special
|
|
end
|
|
rule %r/[^\r\n]/, Comment
|
|
rule(//) { pop! }
|
|
end
|
|
end
|
|
end
|
|
end
|