<?xml version="1.0"?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
          "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd">

<!-- $Id: yasm_parsers.xml,v 1.1.1.1 2012/03/29 17:20:59 uid42307 Exp $ -->     

<refentry id="yasm_parsers">

 <refentryinfo>
  <title>Yasm Supported Parsers</title>
  <date>October 2006</date>
  <productname>Yasm</productname>
  <author>
   <firstname>Peter</firstname>
   <surname>Johnson</surname>
   <affiliation>
    <address><email>peter@tortall.net</email></address>
   </affiliation>
  </author>

  <copyright>
   <year>2006</year>
   <holder>Peter Johnson</holder>
  </copyright>
 </refentryinfo>

 <refmeta>
  <refentrytitle>yasm_parsers</refentrytitle>
  <manvolnum>7</manvolnum>
 </refmeta>

 <refnamediv>
  <refname>yasm_parsers</refname>
  <refpurpose>Yasm Supported Parsers (Assembler Syntaxes)</refpurpose>
 </refnamediv>

 <refsynopsisdiv>
  <cmdsynopsis>
   <command>yasm</command>
   <arg choice="plain">
    <option>-p <replaceable>parser</replaceable></option>
   </arg>
   <arg choice="opt">
    <option>-r <replaceable>preproc</replaceable></option>
   </arg>
   <arg choice="plain">
    <option><replaceable>...</replaceable></option>
   </arg>
  </cmdsynopsis>
 </refsynopsisdiv>

 <refsect1>
  <title>Description</title>

  <para>The standard Yasm distribution includes a number of modules
   for different parsers (assembler syntaxes).</para>

  <para>The parser is selected on the
   
   <citerefentry>
    <refentrytitle>yasm</refentrytitle>
    <manvolnum>1</manvolnum>
   </citerefentry>
   
   command line by use of the <option>-p
    <replaceable>parser</replaceable></option> command line
   option.</para>
 </refsect1>

 <refsect1>
  <title>NASM Parser</title>

  <para>NASM syntax, selected with <option>-p nasm</option>, is the
   most full-featured syntax supported by Yasm.  Yasm is nearly 100%
   compatible with NASM for 16-bit and 32-bit x86 code.  Yasm
   additionally supports 64-bit AMD64 code with Yasm extensions to the
   NASM syntax; see

   <citerefentry>
    <refentrytitle>yasm_arch</refentrytitle>
    <manvolnum>7</manvolnum>
   </citerefentry>
   
   for details.  NASM syntax is the Yasm default.</para>
 </refsect1>

 <refsect1>
  <title>GAS Parser</title>

  <para>The GNU Assembler (GAS) is the de-facto cross-platform
   assembler for modern Unix systems, and is used as the backend for
   the GCC compiler.  Yasm's support for GAS syntax is moderately
   good, although immature: not all directives are supported, and only
   32-bit x86 and AMD64 architectures are supported.  There is also no
   support for the GAS preprocessor.  Despite these limitations,
   Yasm's GAS syntax support is good enough to handle essentially all
   x86 and AMD64 GCC compiler output.  The GAS parser can be selected
   with <option>-p gas</option>.</para>
 </refsect1>

 <refsect1>
  <title>See Also</title>

  <para><citerefentry>
   <refentrytitle>yasm</refentrytitle>
   <manvolnum>1</manvolnum>
  </citerefentry>,

  <citerefentry>
   <refentrytitle>yasm_arch</refentrytitle>
   <manvolnum>7</manvolnum>
  </citerefentry></para>
 </refsect1>
</refentry>
